Compare commits
649 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 10ffdc2f2b | |||
| fb4744bb88 | |||
| 49c1392641 | |||
| dd7a67a909 | |||
| 561e6ca1be | |||
| 3b6422d50a | |||
| 8b40477a0d | |||
| 6cc93027a8 | |||
| 7eaeb9f603 | |||
| 68ba826def | |||
| d5d6eef0a7 | |||
| afd8431220 | |||
| e87fff7c0c | |||
| bf040dfe62 | |||
| c4a9d8f6e2 | |||
| 6a1181de5e | |||
| ee9c92f555 | |||
| c4e3f98266 | |||
| 5a644af56f | |||
| 2ef1ad1eb2 | |||
| 86d5226bf9 | |||
| 54fb81dc7f | |||
| 431b72cae6 | |||
| 929784978c | |||
| dcfe4c3e5b | |||
| 7326677be0 | |||
| 85eb7eb896 | |||
| 2cf2505524 | |||
| 4b2ef6b407 | |||
| 310f76a7a4 | |||
| c558853bad | |||
| f5cc75723a | |||
| e62d5d9537 | |||
| 5d6b26e2a2 | |||
| 3ad1d920ff | |||
| 620e1e3757 | |||
| a949e24d5e | |||
| e7405b59f7 | |||
| a8d5f17058 | |||
| a164c8f44c | |||
| f11d96a50d | |||
| a75e7506aa | |||
| ea93f1b1c2 | |||
| 792a2a4997 | |||
| ba7f7b42ff | |||
| 4904757868 | |||
| 6da6028409 | |||
| 0370dbe2d7 | |||
| 2942ff1aad | |||
| 58e0a6a9fc | |||
| 87c53bae1b | |||
| 2b44505485 | |||
| aee7befa85 | |||
| 9c43f8ef5d | |||
| 085959a6c4 | |||
| 5e2e6c644e | |||
| b20878d2bc | |||
| 1de13e0834 | |||
| c153f97b17 | |||
| 11bfd53cf8 | |||
| 42cf825e98 | |||
| 2781636d3d | |||
| 7c9d2df76a | |||
| 2feecdeb7f | |||
| 1142117bef | |||
| 17845bce7f | |||
| 0961cffaac | |||
| 6742895fec | |||
| 2aea46660c | |||
| 8192e35c41 | |||
| 232868636f | |||
| c934b2c177 | |||
| 8f23935f77 | |||
| ecc9522b92 | |||
| e2a2786e3e | |||
| 8cd2f8f1b4 | |||
| d96e87c1ef | |||
| c5a9984ccd | |||
| 868994ba10 | |||
| 6b327e690b | |||
| f78293a3ae | |||
| 22c4d063c4 | |||
| af4aee1d54 | |||
| 4a184de91e | |||
| 31e3a9c1d0 | |||
| 3ef7c73511 | |||
| f950a8e3b6 | |||
| 46fc0226c4 | |||
| 4efde95974 | |||
| 3ce7872e02 | |||
| 96a5971f3d | |||
| ee6b90c990 | |||
| 11cff9be6e | |||
| 92dbd3e2e5 | |||
| 20c0d34d25 | |||
| 39ab44fb55 | |||
| fe7e5b1bd3 | |||
| 631fa8a1d8 | |||
| ea0e45cead | |||
| 8abc5bd50e | |||
| a228b7c128 | |||
| 9911e9c0fc | |||
| cbf5405ee0 | |||
| 0343b9a732 | |||
| 28b2541c92 | |||
| 500ef4e6d2 | |||
| 691c8756fc | |||
| f238344d0b | |||
| cb6ef5193f | |||
| afaffa8880 | |||
| edecccd163 | |||
| 915ac6b8af | |||
| 1826f23264 | |||
| 24fcd640b7 | |||
| 0e38fbe021 | |||
| 4707efb26a | |||
| 85cba6cb49 | |||
| efed65c8f4 | |||
| 163cd51aec | |||
| 41031f428c | |||
| c3cd6337af | |||
| b5b9073d2c | |||
| c39140442b | |||
| d81cd18d57 | |||
| 880f0c20e4 | |||
| 2d37c82cbe | |||
| c1ff85cc10 | |||
| 0604f797d0 | |||
| 3eb5ddf961 | |||
| c7ed32852d | |||
| e48d0f4029 | |||
| 979d2c663d | |||
| 16a57df9d6 | |||
| 6f0a7d0254 | |||
| 819895e2f1 | |||
| 470448dd2d | |||
| f22247dc70 | |||
| f141dba12d | |||
| b5f94deb81 | |||
| 39c7103cf6 | |||
| 97c47153ec | |||
| 1b43a3fe3f | |||
| 37974f2ce8 | |||
| f57b72d072 | |||
| dfd8d67480 | |||
| 06525bcaf6 | |||
| f68853e7ec | |||
| d41323e69e | |||
| 869fb5c16b | |||
| 58c59146bd | |||
| b0aff19ae0 | |||
| 089554e098 | |||
| a41116472f | |||
| 75eaa54481 | |||
| b4630845c5 | |||
| 3c3a67ea0a | |||
| 4a9cfcd5b0 | |||
| 5f08c555c4 | |||
| a39d0c3250 | |||
| 6b7283bcba | |||
| 7f702825f6 | |||
| 1ea0ba0097 | |||
| d88cae015d | |||
| 3fe0adfb8d | |||
| b679766581 | |||
| 4d2211e0d4 | |||
| 0b28d24e0a | |||
| fc9971fa15 | |||
| f596b3beb4 | |||
| 7897b39206 | |||
| 2ee94c9ba4 | |||
| cb5b12d5a8 | |||
| 2c46d6e052 | |||
| c34d28d230 | |||
| 60c8313816 | |||
| 915076a277 | |||
| 3356b98059 | |||
| 12dca831a2 | |||
| c279ecefd1 | |||
| 43f82c28fd | |||
| b811b5d313 | |||
| 00c02f49b2 | |||
| c90d1ccec2 | |||
| 535b47b98c | |||
| acff990289 | |||
| 17b7b7da9a | |||
| 5d47838aff | |||
| 924ad365a0 | |||
| 0a71e21a55 | |||
| 325d8acbf6 | |||
| e0202ebfd7 | |||
| f29cb1d27b | |||
| 7d80926069 | |||
| 77431b6dd2 | |||
| 3f73551f54 | |||
| 959e007e39 | |||
| 5370d35f44 | |||
| d50718f95b | |||
| 39a651278e | |||
| 77358c5636 | |||
| ea3da82e2c | |||
| 7edba7afe6 | |||
| 7c378bcb66 | |||
| 462390636f | |||
| 03cde21eb9 | |||
| a553b33783 | |||
| 8f7d44ccd5 | |||
| 91620a6f0d | |||
| 55973ef857 | |||
| 48b3f26ec8 | |||
| 276ed3de7c | |||
| 63366eecf3 | |||
| ec2adce39e | |||
| 65655a6138 | |||
| 3eb6a56e5b | |||
| fb2ce839a9 | |||
| 2ace2a5bdf | |||
| 5e73a679b6 | |||
| b5a9e910b0 | |||
| d6a94fd544 | |||
| 0c5e1b95f5 | |||
| 2b67413b62 | |||
| 60aab2998a | |||
| 47b87ac203 | |||
| 37bbc41639 | |||
| e39c569aa1 | |||
| 0913fc2f1b | |||
| 6fa0598169 | |||
| fdcf2786a8 | |||
| 450966cce6 | |||
| f2f04e214b | |||
| 44219ca6f2 | |||
| 81732320cc | |||
| 1f332f2b8c | |||
| 6bab6db32c | |||
| 6d76fabe91 | |||
| 9843debd21 | |||
| 9268b38d47 | |||
| 0cb23b3dc5 | |||
| 998e903e0d | |||
| 70613cc8e1 | |||
| 8fede3312a | |||
| 5f9646a028 | |||
| be8a718b3f | |||
| 3e28cbed05 | |||
| 964ab18730 | |||
| 71d6972d0f | |||
| b0534c44f6 | |||
| ea6144d963 | |||
| de4fa329e6 | |||
| c52a5c87bf | |||
| 1e4c2996b2 | |||
| c08bc7ccfe | |||
| ee8480787c | |||
| 59716c2909 | |||
| 88f267f748 | |||
| 98f4600df3 | |||
| 0794bc1ac9 | |||
| 8b8e383db8 | |||
| 0106c4ebcc | |||
| 8b35cf1023 | |||
| a8e5e51ab9 | |||
| 726d59c162 | |||
| ecae4a14bb | |||
| 1b6b2ec955 | |||
| ab5363bab6 | |||
| 829eca72ec | |||
| 867e2aa5d2 | |||
| c920ef5329 | |||
| 6be0c34ec4 | |||
| c6d76cdf46 | |||
| 0758977961 | |||
| 867362ac4f | |||
| 6a3887cbda | |||
| 770cebb255 | |||
| 9d0493a1ff | |||
| ebc1b0a8e6 | |||
| 24773f7613 | |||
| 92ff795aba | |||
| 72a2418903 | |||
| 4e461e1169 | |||
| 30c1e88a64 | |||
| d5fa605796 | |||
| a4d9cb8d88 | |||
| 76daa92441 | |||
| f3fa39016d | |||
| 14addb3984 | |||
| 00d4749826 | |||
| 682b1101a5 | |||
| 9622270923 | |||
| 5a94ee4e22 | |||
| 6080563916 | |||
| 458cc8825b | |||
| a91eea93ab | |||
| 103e6efdbd | |||
| 446b1b6c64 | |||
| 8df079eaf8 | |||
| d649f74a6e | |||
| 60fde960ce | |||
| 64a4d03a6c | |||
| 33cef9d9b9 | |||
| 5f9c626b14 | |||
| b6fd0b86bf | |||
| 63c9b00f51 | |||
| eddee76ee2 | |||
| f51bb4dde5 | |||
| e8e54853f3 | |||
| 57837f736b | |||
| 83f86b8edf | |||
| b8a1646823 | |||
| be6a556b87 | |||
| daa5fde02a | |||
| a7978430d1 | |||
| 5b8c2ffb95 | |||
| 9bc231a1db | |||
| ad696464c1 | |||
| bb4b72eab1 | |||
| 1fa18be37d | |||
| caf9090594 | |||
| db85e9479c | |||
| 8731346326 | |||
| 40bab74eb5 | |||
| f1c9e49f1f | |||
| c08116e133 | |||
| 1d1e57d9ca | |||
| 36b501e01a | |||
| 8f07d86087 | |||
| 40bfa15dea | |||
| a5ccd9da79 | |||
| f146c1c966 | |||
| e522ae74ab | |||
| b8c547f2f1 | |||
| 862a03b3a0 | |||
| 728f909db9 | |||
| 0d6a225991 | |||
| 1110b80184 | |||
| 624f98b817 | |||
| 9ed573f5f8 | |||
| 2104cae3a1 | |||
| 5ea8216e78 | |||
| e742db722c | |||
| 3456cafb38 | |||
| fc29c2902f | |||
| f7cd7860a0 | |||
| f564c9f2fc | |||
| 77c98a18cd | |||
| 503952a915 | |||
| 8456051d2f | |||
| 3324acd590 | |||
| e501b86472 | |||
| 21be2fd69c | |||
| 613afa2597 | |||
| 5e738ef248 | |||
| 478330d7e9 | |||
| 742a1203df | |||
| 19da5cde8a | |||
| 52c9f8dd33 | |||
| 7797f9b8a6 | |||
| 195437d8d2 | |||
| 19e1b4bba9 | |||
| 805a66ea2e | |||
| ecb4c0ca33 | |||
| fa5a714a1a | |||
| e0e907e537 | |||
| 72fc8b7b63 | |||
| 1afbc3ecf1 | |||
| 30d5cd3c81 | |||
| 56468347a7 | |||
| 08d00ccf62 | |||
| 40e5efddbc | |||
| 0b970709f4 | |||
| 7c5f90d572 | |||
| cd5aa0b9c1 | |||
| 376208f9a6 | |||
| 9a78bfe878 | |||
| 16a8b21eec | |||
| 544f19315b | |||
| 97e83ff7af | |||
| c8e19d44f2 | |||
| 15a2951b20 | |||
| c9fc1c506f | |||
| 46ac343181 | |||
| 4866b5ea40 | |||
| 4d6892b991 | |||
| d501f17525 | |||
| 122693d14c | |||
| 45db3b84fb | |||
| c207e161b5 | |||
| 21b875df96 | |||
| 35c7fc44b1 | |||
| 7a9d2b8e53 | |||
| ba5c190072 | |||
| de28157ebb | |||
| ee5858506b | |||
| 9b6d79ec07 | |||
| 3fc848e5d4 | |||
| 39b144b40c | |||
| 08659f0450 | |||
| 58d599d236 | |||
| ca50dda682 | |||
| 5e85045d49 | |||
| d5ecebf304 | |||
| 5711b52de6 | |||
| 83f2513a39 | |||
| decdba5e67 | |||
| 1d0ce7ddec | |||
| b9bcf28955 | |||
| ae97adc582 | |||
| 8d0772362f | |||
| ea20bf20c6 | |||
| 2be7b9bb15 | |||
| 8456f807d5 | |||
| 6c24f9fc97 | |||
| 44075917b7 | |||
| 9c4f670fa9 | |||
| b33b7c0c8a | |||
| 8aeeb5b3fd | |||
| 15f37c8531 | |||
| a421d148f3 | |||
| 3dd9a247dd | |||
| 135bc1c96c | |||
| d53ec6add8 | |||
| 2941d6926b | |||
| f0d27b0a9f | |||
| 4e031e260c | |||
| a6b35b2a87 | |||
| 37cf7e5a91 | |||
| 5f3fadf606 | |||
| 822bc6d6ae | |||
| 4be731ac7b | |||
| 79952e4ffa | |||
| 04be5a4812 | |||
| b40b6a751a | |||
| 137e19639a | |||
| a33e1d6372 | |||
| b2b4a618f9 | |||
| a8b400f6a2 | |||
| 1e5869bc35 | |||
| c10a26dca0 | |||
| b47934d874 | |||
| e1afe1bbbe | |||
| 2d961112b1 | |||
| 5afb3ecb5f | |||
| d14bd45e36 | |||
| b2a70dbbda | |||
| c5bf2cd00d | |||
| a5ee105c00 | |||
| 59744875ad | |||
| e98b4236f0 | |||
| 36492f70a0 | |||
| 8a2822c7ab | |||
| 7e4c38a057 | |||
| 04fd5cbf4d | |||
| 94c1148ada | |||
| 2958cecd18 | |||
| 3b1f389797 | |||
| 1d483f78bf | |||
| 6afcf1b4bb | |||
| 35ea8933d6 | |||
| 2c46940d12 | |||
| 446055bfe9 | |||
| 9e49d1ddf5 | |||
| efd92dde8a | |||
| d156c7652a | |||
| 636d69f07f | |||
| 8706879bc8 | |||
| af080a6328 | |||
| fe573f51d6 | |||
| 6f6efc7a5a | |||
| 0954705964 | |||
| 0b9cfac05e | |||
| d2351e8675 | |||
| 590d7852b0 | |||
| 9dfd2c05a7 | |||
| c907bc008f | |||
| 7e7a5560ef | |||
| 170b0d86c3 | |||
| 85253fd051 | |||
| 0529c85033 | |||
| c067c2b700 | |||
| b0d7421458 | |||
| 8211d494da | |||
| 1e1ad2a20a | |||
| 600828e1f6 | |||
| 91be337fb6 | |||
| 729a05ba51 | |||
| bae2ffc3e1 | |||
| 70ec08c5fb | |||
| 896a511473 | |||
| f795ea28e2 | |||
| 10a8cadb0f | |||
| edee850d8d | |||
| 3db7466bd8 | |||
| d979c02e45 | |||
| 47d88e6372 | |||
| 00791843a9 | |||
| 1707a1d61b | |||
| c534cc35e2 | |||
| 258e885186 | |||
| 1dfc392a2c | |||
| 87241bf620 | |||
| e3b15d9dbf | |||
| 0244d9c57f | |||
| b304e9b1bd | |||
| fa35dfca66 | |||
| 63aff154fc | |||
| a8ee346d33 | |||
| 850b535ff3 | |||
| aac62627f4 | |||
| 4b0816a083 | |||
| bb83c038a5 | |||
| c785da3484 | |||
| d7322f99d4 | |||
| e593890317 | |||
| fb5e1b633a | |||
| 1031826382 | |||
| 13760a0ade | |||
| 25c50c13b7 | |||
| d53099eaa7 | |||
| ec6fb9ac16 | |||
| abad685f22 | |||
| ef02f5a667 | |||
| 77889ac2d6 | |||
| 2edbc38190 | |||
| ceec16c9d5 | |||
| b4a365b880 | |||
| 9e1b731dc9 | |||
| b6fa7d0c6b | |||
| 779457aa65 | |||
| 9bb8009e14 | |||
| 49f3c0de99 | |||
| f105ec4861 | |||
| 17900f1bf4 | |||
| 1c5e8445c9 | |||
| 05a497e558 | |||
| 0ac0d399a0 | |||
| 153214cfe9 | |||
| 5c8db78657 | |||
| d30f9d1540 | |||
| 127a1c0023 | |||
| 684028d126 | |||
| 1dabac1b21 | |||
| df19ecb029 | |||
| 136b6ac483 | |||
| 31c9f720b1 | |||
| 049918f491 | |||
| 54268ef699 | |||
| 84689b6740 | |||
| 5c4329b104 | |||
| ed3e804016 | |||
| 940720ef6b | |||
| d631bab275 | |||
| ddfd1eb006 | |||
| 6e7cd9f317 | |||
| abc8ca41a2 | |||
| 348f87b6a8 | |||
| b31a623822 | |||
| 426de7f0cd | |||
| 43e2d1015e | |||
| dde56cb4d2 | |||
| 7aad188885 | |||
| 89c0d3cd06 | |||
| 06d61b44b2 | |||
| 7dd0d0a75a | |||
| d39dfd01e0 | |||
| 9537389e4e | |||
| 4e5e81d0e7 | |||
| 719f8d8047 | |||
| 4906d62e7e | |||
| 644fc96198 | |||
| f3af49ce24 | |||
| dcc6467291 | |||
| da1844fb6f | |||
| 197bdefa63 | |||
| e250bb1460 | |||
| 143963c2a9 | |||
| 3e79719ac4 | |||
| 9ff2e8839d | |||
| c1850588ef | |||
| f61f1f153b | |||
| a63cd2746b | |||
| 096d9ca801 | |||
| 77d7c8e3b7 | |||
| 34597a086e | |||
| d2e6d843ab | |||
| 8ddf6cba65 | |||
| a672aa02dd | |||
| fc736cf612 | |||
| 58dc5b3881 | |||
| 510c320f79 | |||
| dabc0760ee | |||
| 5d01ac1c63 | |||
| 27c6c3ab69 | |||
| e8e100a72e | |||
| 746ec37d97 | |||
| 750f5ea03f | |||
| ef88256411 | |||
| 2c825d4659 | |||
| 1dce4fed21 | |||
| ea7e89a290 | |||
| 555ff6469d | |||
| 4339d80750 | |||
| ea64b69437 | |||
| b11b631426 | |||
| 6df76f54e2 | |||
| 04e9dc0aec | |||
| b2b9042fe0 | |||
| 90527b2373 | |||
| 7ac37246bf | |||
| 4e7e377704 | |||
| d14e59afae | |||
| 5dfc44b1dc | |||
| dfaed72262 | |||
| ee8ba0a5a5 | |||
| 828dfd24a1 | |||
| 502bed2f72 | |||
| 0d2a895057 | |||
| 9635135e90 | |||
| 2184d898f6 | |||
| b780a9e783 | |||
| 9fd74e71f0 | |||
| 8236fdbce5 | |||
| 25b6f2d477 | |||
| fd9911c441 | |||
| 1d861274e2 | |||
| 89824df0b9 | |||
| 7b09020afd | |||
| 855e3c5c3e | |||
| bd7cbf89f0 | |||
| 26976aa541 | |||
| 9dad64ae57 | |||
| bd2f763f22 | |||
| 181bb77c67 | |||
| 535d61e64c | |||
| 694ddebf57 | |||
| efdf608484 | |||
| ed9ca3cbb4 | |||
| 42556e5e32 | |||
| 63217c943f | |||
| 28ace84c32 | |||
| 8fa32cc4f7 | |||
| 4582b76e92 | |||
| 66ea30f75e | |||
| 87192dca99 | |||
| 35e449b048 | |||
| 90775da352 | |||
| 3a7686471a | |||
| 13765df3ee | |||
| f01b67c07b |
@@ -1,31 +1,31 @@
|
||||
# Thank you for contributing to Delta Chat.
|
||||
|
||||
If you like to discuss a **new feature** or submit suggestions,
|
||||
please use the community forum:
|
||||
|
||||
* <https://support.delta.chat>
|
||||
|
||||
If you intend to send a **bug report** for Delta Chat,
|
||||
search for existing bugs first:
|
||||
|
||||
* [Core](https://github.com/deltachat/deltachat-core/issues?&q=is%3Aissue)
|
||||
* [Android](https://github.com/deltachat/deltachat-android-ii/issues?&q=is%3Aissue)
|
||||
* [iOS](https://github.com/deltachat/deltachat-ios/issues?&q=is%3Aissue)
|
||||
* [Desktop](https://github.com/deltachat/deltachat-ios/issues?&q=is%3Aissue)
|
||||
* [Node](https://github.com/deltachat/deltachat-node/issues?&q=is%3Aissue)
|
||||
|
||||
In short, the Android/iOS/Desktop parts are about the User Interface.
|
||||
The Core part is about handling the connection to the mail server and the chat
|
||||
or e-mail messages as well as providing secure communication by using
|
||||
[Autocrypt](https://autocrypt.org/en/latest/).
|
||||
|
||||
A _bug_ is a reproducable misbehaviour,
|
||||
when something happens but something else should happen instead.
|
||||
|
||||
Please try to create your issue in the respective issue tracker.
|
||||
|
||||
Did you know there is a [Help](https://delta.chat/en/help) page for Delta Chat?
|
||||
|
||||
To ask questions, you are also invited to join our IRC channel #deltachat
|
||||
on [Freenode](https://kiwiirc.com/nextclient/#irc://irc.freenode.net/deltachat).
|
||||
|
||||
# Thank you for contributing to Delta Chat.
|
||||
|
||||
If you like to discuss a **new feature** or submit suggestions,
|
||||
please use the community forum:
|
||||
|
||||
* <https://support.delta.chat>
|
||||
|
||||
If you intend to send a **bug report** for Delta Chat,
|
||||
search for existing bugs first:
|
||||
|
||||
* [Core](https://github.com/deltachat/deltachat-core/issues?&q=is%3Aissue)
|
||||
* [Android](https://github.com/deltachat/deltachat-android/issues?&q=is%3Aissue)
|
||||
* [iOS](https://github.com/deltachat/deltachat-ios/issues?&q=is%3Aissue)
|
||||
* [Desktop](https://github.com/deltachat/deltachat-ios/issues?&q=is%3Aissue)
|
||||
* [Node](https://github.com/deltachat/deltachat-node/issues?&q=is%3Aissue)
|
||||
|
||||
In short, the Android/iOS/Desktop parts are about the User Interface.
|
||||
The Core part is about handling the connection to the mail server and the chat
|
||||
or e-mail messages as well as providing secure communication by using
|
||||
[Autocrypt](https://autocrypt.org/en/latest/).
|
||||
|
||||
A _bug_ is a reproducable misbehaviour,
|
||||
when something happens but something else should happen instead.
|
||||
|
||||
Please try to create your issue in the respective issue tracker.
|
||||
|
||||
Did you know there is a [Help](https://delta.chat/en/help) page for Delta Chat?
|
||||
|
||||
To ask questions, you are also invited to join our IRC channel #deltachat
|
||||
on [Freenode](https://kiwiirc.com/nextclient/#irc://irc.freenode.net/deltachat).
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<!--
|
||||
Please fill in as much as you can below (leaving out if not applicable is ok). This is a bug report and feature-tracking forum, if you like to discuss a new feature, please use the community forum at https://support.delta.chat.
|
||||
This is a bug report tracker. New features are discussed in the forum: https://support.delta.chat
|
||||
|
||||
Please fill out as much of this form as you can (leaving out stuff that is not applicable is ok).
|
||||
-->
|
||||
|
||||
- Platform (android/blackberry/anbox):
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
*.keystore
|
||||
.classpath
|
||||
project.properties
|
||||
.project
|
||||
.settings
|
||||
bin/
|
||||
gen/
|
||||
gplay/
|
||||
.idea/
|
||||
*.iml
|
||||
*.so
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
lang_map = nl_NL:nl
|
||||
lang_map = nl_NL:nl, ja_JP:ja, pt_BR:pt-rBR
|
||||
|
||||
[delta-chat-app.stringsxml]
|
||||
file_filter = res/values-<lang>/strings.xml
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.thoughtcrime.securesms">
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.thoughtcrime.securesms">
|
||||
|
||||
<uses-sdk tools:overrideLibrary="com.amulyakhare.textdrawable,com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat,android.support.v13,com.davemorrissey.labs.subscaleview,com.tomergoldst.tooltips,com.klinker.android.send_message,com.takisoft.colorpicker,android.support.v14.preference"/>
|
||||
|
||||
@@ -15,26 +15,27 @@
|
||||
<uses-feature android:name="android.hardware.portrait" android:required="false"/>
|
||||
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
|
||||
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.INSTALL_SHORTCUT"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
|
||||
<uses-permission android:name="android.permission.INSTALL_SHORTCUT" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.SET_WALLPAPER" />
|
||||
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||
|
||||
<application android:name=".ApplicationContext"
|
||||
android:icon="@mipmap/ic_launcher_dev"
|
||||
android:label="Delta Chat dev"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="Delta Chat"
|
||||
android:supportsRtl="true"
|
||||
tools:replace="android:allowBackup"
|
||||
android:allowBackup="false"
|
||||
@@ -42,15 +43,13 @@
|
||||
android:largeHeap="true"
|
||||
tools:ignore="GoogleAppIndexingWarning">
|
||||
|
||||
<meta-data
|
||||
android:name="com.google.android.geo.API_KEY"
|
||||
android:value="AIzaSyCSx9xea86GwDKGznCAULE9Y5a8b-TfN9U"/>
|
||||
|
||||
<meta-data android:name="com.google.android.gms.version"
|
||||
android:value="@integer/google_play_services_version" />
|
||||
|
||||
<!-- android car support, see https://developer.android.com/training/auto/start/,
|
||||
as this potentially blocks releases on gplay due to extra-checks,
|
||||
we disable this during the first gplay releases -->
|
||||
<!--
|
||||
<meta-data android:name="com.google.android.gms.car.application"
|
||||
android:resource="@xml/automotive_app_desc" />
|
||||
-->
|
||||
|
||||
<activity android:name=".InviteActivity"
|
||||
android:theme="@style/TextSecure.HighlightTheme"
|
||||
@@ -67,7 +66,6 @@
|
||||
android:excludeFromRecents="true"
|
||||
android:launchMode="singleTask"
|
||||
android:taskAffinity=""
|
||||
android:noHistory="true"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
|
||||
@@ -83,6 +81,18 @@
|
||||
<data android:mimeType="*/*"/>
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.SEND_MULTIPLE" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<data android:mimeType="audio/*" />
|
||||
<data android:mimeType="image/*" />
|
||||
<data android:mimeType="text/plain" />
|
||||
<data android:mimeType="video/*" />
|
||||
<data android:mimeType="application/*"/>
|
||||
<data android:mimeType="text/*"/>
|
||||
<data android:mimeType="*/*"/>
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.service.chooser.chooser_target_service"
|
||||
android:value=".service.DirectShareService" />
|
||||
@@ -90,7 +100,7 @@
|
||||
</activity>
|
||||
|
||||
<activity android:name=".ConversationListActivity"
|
||||
android:label="Delta Chat dev"
|
||||
android:label="Delta Chat"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
@@ -146,8 +156,18 @@
|
||||
|
||||
<activity android:name=".NewConversationActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateAlwaysVisible"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
|
||||
<intent-filter>
|
||||
<data android:scheme="mailto"/>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<action android:name="android.intent.action.SENDTO"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
</intent-filter>
|
||||
|
||||
</activity>
|
||||
|
||||
<activity android:name=".ContactMultiSelectionActivity"
|
||||
android:label="@string/contacts_title"
|
||||
@@ -164,9 +184,19 @@
|
||||
|
||||
<activity android:name=".RegistrationActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
|
||||
<!-- this scheme is used as the redirect_url for getOauth2Url()
|
||||
and should be whitelisted by the supported oauth2 services -->
|
||||
<data android:scheme="chat.delta" android:path="/${applicationId}/auth" tools:ignore="AppLinkUrlError"/>
|
||||
<data android:scheme="chat.delta" android:path="/auth" tools:ignore="AppLinkUrlError"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".LogViewActivity"
|
||||
android:label="@string/pref_view_log"
|
||||
@@ -217,7 +247,7 @@
|
||||
|
||||
<activity android:name=".CreateProfileActivity"
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:windowSoftInputMode="stateVisible"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".QrScanActivity"
|
||||
@@ -244,7 +274,11 @@
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<service android:name=".connect.KeepAliveService" android:enabled="true"/>
|
||||
<activity android:name=".map.MapActivity" />
|
||||
|
||||
<service android:name=".connect.KeepAliveService" android:enabled="true" />
|
||||
|
||||
<service android:name=".geolocation.LocationBackgroundService" />
|
||||
|
||||
<service android:name=".service.DirectShareService"
|
||||
android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
|
||||
|
||||
@@ -0,0 +1,598 @@
|
||||
# Delta Chat Android Changelog
|
||||
|
||||
## v0.301.0
|
||||
2019-04-20
|
||||
|
||||
* Experimental location-streaming can be enabled in the advanced settings;
|
||||
when enabled, you can optionally stream your location to a group
|
||||
and view a map with the members that are also streaming their location
|
||||
* Tweaked dark-mode
|
||||
* Improved account setup and profile dialogs
|
||||
* Show and hide the virtual keyboard more gracefully
|
||||
* Speed up program start
|
||||
* Speed up message sending
|
||||
* Handle Webp-Images and Vcard-files
|
||||
* Add Japanese and Brazilian Portuguese translations
|
||||
* Update several other translations
|
||||
* Bug fixes
|
||||
|
||||
The changes have been done by Alexander, Ampli-fier, Angelo Fuchs,
|
||||
Asiel Díaz Benítez, Besnik, Björn Petersen, cyBerta, Daniel Böhrs, Enrico B.,
|
||||
ferhad.necef, Floris Bruynooghe, Friedel Ziegelmayer, Heimen Stoffels,
|
||||
Holger Krekel, Janka, Jikstra, Luis, Moo, Nico de Haen, Ole Carlsen, Osoitz,
|
||||
Ozancan Karataş, Racer1, sebek, Viktor Pracht, Webratte and others
|
||||
|
||||
## v0.200.0
|
||||
2019-03-14
|
||||
|
||||
* Simplified setup (OAuth2) for google.com and yandex.com
|
||||
* Improved setup for many other providers
|
||||
* Decide, which e-mails should appear - "Chats only", "Accepted contacts" or "All"
|
||||
* Improve moving chat messages to the DeltaChat folder
|
||||
* Optional a stronger image compression
|
||||
* Smaller message sizes in groups
|
||||
* Share files from other apps to Delta Chat
|
||||
* Share texts from mailto:-links
|
||||
* Log can be opened from setup screen
|
||||
* Add Lithuanian translation
|
||||
* Update several other translations
|
||||
* Bug fixes
|
||||
|
||||
The changes have been done by Alexandex, Angelo Fuchs, Asiel Díaz Benítez,
|
||||
Björn Petersen, Besnik, Christian Klump, cyBerta, Daniel Böhrs, Enrico B.,
|
||||
ferhad.necef, Florian Haar, Floris Bruynooghe, Friedel Ziegelmayer,
|
||||
Heimen Stoffels, Holger Krekel, Iskatel Istiny, Lech Rowerski, Moo,
|
||||
Ole Carlsen, violoncelloCH and others
|
||||
|
||||
|
||||
## v0.101.0
|
||||
2019-02-12
|
||||
|
||||
* First Play Store release, optimisations for Android O
|
||||
* Ask to disable battery optimisations
|
||||
* Start Azerbaijani and Swedish translations
|
||||
* Update several other translations
|
||||
* Many bug fixes
|
||||
|
||||
The changes have been done by Ampli-fier, Angelo Fuchs, Asiel Díaz Benítez,
|
||||
Besnik, Björn Petersen, Christian Klump, Daniel Böhrs, Enrico B., ferhad.necef,
|
||||
Florian Haar, Floris Bruynooghe, Heimen Stoffels, Holger Krekel,
|
||||
Iskatel Istiny, Lech Rowerski, violoncelloCH and others.
|
||||
|
||||
|
||||
## v0.100.0
|
||||
2019-01-23
|
||||
|
||||
* Complete rework of the ui using pure material design
|
||||
* Images and other files can be sent together with a description
|
||||
* Images can be modified before sending, eg. text can be added or
|
||||
hand-drawn signs
|
||||
* Image and media gallery for each chat
|
||||
* Embedded camera, new camera icon directly in input field
|
||||
* Embedded video player
|
||||
* New emoticons
|
||||
* Contacts and groups can be joined with a QR-code-scan
|
||||
* Options for watching several IMAP-folders
|
||||
* Option to move messages to the DeltaChat-folder
|
||||
* Improved multi-device behavior
|
||||
* Improved Accessiblity eg. for screen readers
|
||||
* Dark theme
|
||||
* Support right-to-left languages
|
||||
* Relative time display
|
||||
* Chatlist and contat list support a long click for several operations
|
||||
* Archive chats by swiping a chat right out of the chatlist
|
||||
* Show date always atop of the chat
|
||||
* Fix redraw problems with hidden system status or navigation bar
|
||||
* Reply directly from within notification
|
||||
* The system credentials has be be entered before exports
|
||||
* The app can be protected by the system credentials
|
||||
* Hide the permanent notification more reliable
|
||||
* Improved resending of messages
|
||||
* Allow password starting/ending with whitespaces
|
||||
* Bug fixes
|
||||
* Probably more i forgot
|
||||
|
||||
The changes have been done by Ampli-fier, Angelo Fuchs, Asiel Díaz Benítez,
|
||||
Björn Petersen, chklump, Daniel Böhrs, Florian Haar, Hocceruser, Holger Krekel,
|
||||
Lars-Magnus Skog
|
||||
|
||||
Translations are still in progress and video-recording is not yet re-implemented.
|
||||
Help is very welcome -:)
|
||||
|
||||
|
||||
## v0.20.0
|
||||
2018-08-14
|
||||
|
||||
* Check size before sending videos, files and other attachments
|
||||
* On sending problems, try over an appropriate number of times; then give up
|
||||
* Detect sending problems related to the message size,
|
||||
show an error and do not try over
|
||||
* Show message errors in the message info
|
||||
* Add user forum to website
|
||||
* Update python bindings
|
||||
* Seed node.js bindings and a CLI version based on this
|
||||
* Prepare Android bindings update
|
||||
* Update Danish, Italian and Russian translations
|
||||
|
||||
The changes have been done by Andrei Guliaikin, Angelo Fuchs, Björn Petersen,
|
||||
compl4xx, Boehrsi, Enrico B., Floris Bruynooghe, Holger Krekel, Janka, Jikstra,
|
||||
Karissa McKelvey, Lars-Magnus Skog, Ole Carlsen
|
||||
|
||||
|
||||
## v0.19.0
|
||||
2018-07-10
|
||||
|
||||
* Give advices for Google users
|
||||
* Speed up by making database-locks unneccessary
|
||||
* Fix drafts appearing twice
|
||||
* Update Albanian, Basque, Catalan, Danish, Dutch, English,
|
||||
Italian, Polish, Russian, and Turkish translations
|
||||
* Update website
|
||||
|
||||
The changes have been done by Allan Nordhøy, Angelo Fuchs, Besnik,
|
||||
Björn Petersen, Calbasi, Claudio Arseni, guland2000, Heimen Stoffels,
|
||||
Holger Krekel, Luis Fernando Stürmer da Rosa, Mahmut Özcan, Ole Carlsen,
|
||||
Osoitz, sebek, Thomas Oster
|
||||
|
||||
|
||||
## v0.18.2
|
||||
2018-06-23
|
||||
|
||||
* Fix initial configure process to hang at 95% under some circumstances
|
||||
|
||||
|
||||
## v0.18.0
|
||||
2018-06-21
|
||||
|
||||
* Speed up message sending/receiving
|
||||
* Retry failed sending/receiving jobs just in the moment
|
||||
the networks becomes available again
|
||||
* Make message sending/receiving more reliable
|
||||
* Handle attachment file names with non-ASCII characters correctly
|
||||
* Paging through images made available by Angelo Fuchs
|
||||
* Several connection issues with different configurations
|
||||
were fixed by Thomas Oster
|
||||
* Improve chat-folder creation by Thomas Oster
|
||||
* Request permissions before using the camera; added by Thomas Oster
|
||||
* Key import improved by Thomas Oster
|
||||
* Improve background and foreground message fetching reliability
|
||||
* Try to use the permanent notification only when really needed
|
||||
* Update internal sqlite library from 3.22.0 to 3.23.1
|
||||
* Update internal libEtPan library from 1.7 to 1.8
|
||||
* Add Danish translation from Ole Carlsen
|
||||
* Update Albanian, Basque, Danish, Italian, Norwegian, Dutch, Polish,
|
||||
Portuguese, Russian and Telugu translations
|
||||
|
||||
|
||||
## v0.17.3
|
||||
2018-05-17
|
||||
|
||||
* Fix system messages appearing twice
|
||||
* Fix: Use all gossipped verifications in verified groups
|
||||
* Update Basque, Polish, Russian and Ukrainian translations
|
||||
|
||||
|
||||
## v0.17.2
|
||||
2018-05-15
|
||||
|
||||
* Fix problem with adding formerly uncontacted members to groups
|
||||
* Unblock manually blocked members when they are added manually as contact again
|
||||
|
||||
|
||||
## v0.17.1
|
||||
2018-05-11
|
||||
|
||||
* Improve QR code scanning screens
|
||||
* Add a labs-option to disabled the new QR logo overlay
|
||||
* Update Russian translations
|
||||
|
||||
|
||||
## v0.17.0
|
||||
2018-05-07
|
||||
|
||||
* Show shared chats in user profiles
|
||||
* If a contact has changed his encryption setups,
|
||||
this is shown as a system messages in the middle of the chat view
|
||||
* Show added group members, changed group titles etc. as system messages
|
||||
* Show direct buttons to create a new group or contact in the "New Chat" dialog
|
||||
* Improve "Add contact" dialog
|
||||
* Move subject and most chat metadata to the encrypted part
|
||||
following the "Memoryhole" proposal
|
||||
* Show read-timestamps in message info
|
||||
* Do not add contacts from Bcc to group-memberlist
|
||||
to avoid privacy leaks and to get a unique memberlist for all group-members
|
||||
* In a mail contains plaintext and encrypted parts,
|
||||
the whole mail is treated as not being encrypted correctly
|
||||
* Restructure settings and advanced settings
|
||||
* Fix problems with Office 365 and similar services
|
||||
* Fix a problem where incoming messages are shown as being sent by oneself
|
||||
* Experimental QR code scanning options can be enabled in the advanced settings
|
||||
* Update Albanian, Catalan, Dutch, French, German, Italian, Norwegian, Polish,
|
||||
Russian, Spanish, Turkish and Ukrainian translations
|
||||
* Add Basque translation
|
||||
* Add Chinese translation
|
||||
* Add Japanese translation
|
||||
|
||||
|
||||
## v0.16.0
|
||||
2018-03-19
|
||||
|
||||
* Messages from normal clients to more than one recipient
|
||||
create an implicit "ad-hoc group"
|
||||
* Allow group creation though contact requests
|
||||
* Always display the _sending_ time in the chat list;
|
||||
the list itself is sorted by _receiving_ time
|
||||
and "Message info" shows both times now
|
||||
* If parts but the footnote are cut from mails,
|
||||
this is indicated "..."; use "Message info" to get the full text
|
||||
* Highlight the subject in the "Message info"
|
||||
* Autoconfigure prefers 'https' over 'http'
|
||||
* Bug fixes, eg. avoid freezes if the connection is lost
|
||||
* Update Russian, Tamil and Turkish translations
|
||||
|
||||
|
||||
## v0.15.0
|
||||
2018-02-27
|
||||
|
||||
* Render the waveform for voice messages
|
||||
* Fix problems with voice messages on various devices
|
||||
* Improve deletion of message that were moved around by another e-mail client
|
||||
* Really delete messages on the server, do not only mark them for deletion
|
||||
* Ignore subsequent keys or blocks in OpenPGP files
|
||||
* Leave incoming Autocrypt Setup Messages in the inbox
|
||||
so that any number of other e-mail-clients can process them
|
||||
* Avoid messages sent to the "Me" chat appearing twice in other e-mail clients
|
||||
* Update Albanian translation
|
||||
|
||||
|
||||
## v0.14.0
|
||||
2018-02-20
|
||||
|
||||
* Evaluate gossiped keys
|
||||
* Option to transfer the Autocrypt Setup to another device or e-mail client
|
||||
* Accept Autocrypt Setup transferred from other devices or e-mail client
|
||||
* Send any data from device to device
|
||||
using the chat "Me - Messages I sent to myself"
|
||||
* Do not send messages when there is an access error
|
||||
* Request for contact permissions only once
|
||||
* Bug fixes
|
||||
* Update French and Turkish translations
|
||||
|
||||
|
||||
## v0.13.0
|
||||
2018-01-18
|
||||
|
||||
* Reply encrypted if the sender has enabled encryption manually
|
||||
(esp. useful when chatting with clients as K-9 or Enigmail)
|
||||
* Update welcome screen graphics
|
||||
* Update Norwegian, Russian and Turkish translations
|
||||
|
||||
|
||||
## v0.12.0
|
||||
2018-01-07
|
||||
|
||||
* Gossip keys of other group members in the encrypted payload
|
||||
(will also be evaluated in one of the next versions)
|
||||
* Use SHA-256 instead of SHA-1 in signatures
|
||||
* Make the permanent notification clickable
|
||||
* Update permanent notification after import
|
||||
* Fix rendering of system messages
|
||||
* Various bug fixes
|
||||
* Update Albanian, French, Italian, Norwegian, Polish, Russian
|
||||
and Turkish translations
|
||||
|
||||
|
||||
## v0.11.4
|
||||
2017-12-17
|
||||
|
||||
* Add option to initiate Autocrypt Key Transfer
|
||||
* Connect after importing a backup
|
||||
* Reading memory hole headers
|
||||
* Add Albanian translation
|
||||
* Update German, Italian, Polish, Portuguese, Russian, Turkish
|
||||
and Ukrainian translations
|
||||
|
||||
|
||||
## v0.10.0
|
||||
2017-11-29
|
||||
|
||||
* Fix usage of multiple private keys
|
||||
* Fix various memory leaks
|
||||
* Update English, Portuguese and Turkish translations
|
||||
|
||||
|
||||
## v0.9.9
|
||||
2017-11-18
|
||||
|
||||
* Alternate include order for F-Droid
|
||||
* Add Serbian translation
|
||||
* Update Catalan, Dutch, English, French, German, Hungarian, Italian, Polish,
|
||||
Portuguese, Russian, Spanish, Tamil, Telugu and Ukrainian translations
|
||||
|
||||
|
||||
## v0.9.8
|
||||
2017-11-15
|
||||
|
||||
* Fix a bug that avoids chat creation under some circumstances
|
||||
(bug introduced in 0.9.7)
|
||||
|
||||
|
||||
## v0.9.7
|
||||
2017-11-14
|
||||
|
||||
* Archive chats or delete chats by a long press
|
||||
* Notify the user in the chatlist about contact requests
|
||||
of known users or of other Delta Chat clients
|
||||
* Show messages only for explicitly wanted chats
|
||||
* Show more detailed reasons about failed end-to-end-encryptions
|
||||
* Explicit option to leave a group
|
||||
* Do not show the padlock if end-to-end-encryption is disabled by the user
|
||||
* Import images from a backup when using a different device with different paths
|
||||
* Add copy-to-clipboard function for "About / Info"
|
||||
* Rework Emoji-code
|
||||
* Add Norwegian Bokmål translation
|
||||
* Add Tamil translation
|
||||
* Add Turkish translation
|
||||
* Update Catalan, German, French, Italian, Korean, Dutch, Polish, Portuguese,
|
||||
Russian, Telugu and Ukrainian translations
|
||||
|
||||
|
||||
## v0.9.6
|
||||
2017-10-18
|
||||
|
||||
* Support keys generated with multiple subkeys eg. from K-9
|
||||
* Show PDFs and other attachments with bad names
|
||||
* Bug fixes
|
||||
|
||||
|
||||
## v0.9.5
|
||||
2017-10-08
|
||||
|
||||
* Backup export and import function
|
||||
* Query password before export
|
||||
* Move replies from normal E-Mail-Clients to the "Chats" folder
|
||||
* Improve helping MUAs on showing chat threads
|
||||
* Improve onboarding
|
||||
* Add URL to default footer
|
||||
* Test a different approach for battery saving in this release
|
||||
* Update French, Italian, German, Polish, Portuguese, Russian
|
||||
and Ukrainian translations
|
||||
|
||||
|
||||
## v0.9.4
|
||||
2017-08-23
|
||||
|
||||
* Introduce an editable "Status" field that is shown eg. in email footers
|
||||
* Editable and synchronized group images
|
||||
* Show the subject of messages that cannot be decrypted
|
||||
* Do not send "Read receipts" when decryption fails
|
||||
* Do not request "Read receipts" from normal MUAs
|
||||
as there are too many MUAs responding with weird, non-standard formats
|
||||
* Deleting a chat always deletes all messages from the device permanently
|
||||
* Ignore messages from mailing lists
|
||||
* Do not spread the original authors name nor address on forwarding
|
||||
* Encrypt mails send to SMTP and to IMAP the same way
|
||||
* Improve showing HTML-mails
|
||||
* Cleanup Android code
|
||||
* Remove badge counter on app restart
|
||||
* Add Ukrainian translation
|
||||
* Add Telugu translation
|
||||
* Add Catalan translation
|
||||
* Update German, Spanish, French, Hungarian, Italian, Polish, Portuguese
|
||||
and Russian translations
|
||||
|
||||
|
||||
## v0.9.3
|
||||
2017-07-13
|
||||
|
||||
* Introduce "Read receipts" and avoid social pressure to leave it activated
|
||||
* Improve encryption dialog in profile
|
||||
* Fix marking messages as "seen" when opening the contact requests
|
||||
* Ignore signature.asc files of signed-only messages
|
||||
* Update Polish, Portuguese and Russian translations
|
||||
|
||||
|
||||
## v0.9.2
|
||||
2017-06-28
|
||||
|
||||
* Encrypt group chats
|
||||
* Cryptographically sign messages
|
||||
* Validate signatures of incoming messages ("Info" shows the state)
|
||||
* Show lock beside end-to-end-encrypted messages with a validated signature
|
||||
* If end-to-end-encryption is available on sending time,
|
||||
guarantee the message not to be sent without end-to-end-encryption later
|
||||
* Show special characters in HTML-mails
|
||||
* Help MUAs on showing chat threads
|
||||
* Show attachments from multipart/alternative structures
|
||||
* Upgrade from Autocrypt Level 0 to Level 1;
|
||||
as the levels are not compatible, encryption on mixed setups does not happen
|
||||
* Update Polish, Portuguese, Spanish and French translations
|
||||
|
||||
|
||||
## v0.9.1
|
||||
2017-06-04
|
||||
|
||||
* Profile: Improve encryption state dialog
|
||||
* Improved video quality of short clips
|
||||
* Make encryption-dialog localizable
|
||||
* Update Russian translation
|
||||
|
||||
|
||||
## v0.9.0
|
||||
2017-06-01
|
||||
|
||||
* Add end-to-end-encrypting following the OpenPGP and Autocrypt standards
|
||||
* Add a function to compare keys
|
||||
* Profile: Add option to copy the email address to the clipboard
|
||||
* Pimp GUI
|
||||
|
||||
|
||||
## v0.1.36
|
||||
2017-05-04
|
||||
|
||||
* Support camera on Android Nougat
|
||||
|
||||
|
||||
## v0.1.34
|
||||
2017-05-03
|
||||
|
||||
* Link to new homepage https://delta.chat
|
||||
* Localizable Help-URLs
|
||||
|
||||
|
||||
## v0.1.33
|
||||
2017-04-29
|
||||
|
||||
* Better support for right-to-left (RTL) languages, taking advantage of
|
||||
Android 4.2 (Jelly Bean MR1, API level 17).
|
||||
* Send PNG files without resizing and converting to JPEG
|
||||
* If JPEG files are send without compression,
|
||||
they still appear as image, not as attached files
|
||||
* Raise-to-speak defaults to false
|
||||
* Unify long click behaviour
|
||||
* Support Android's system function "Delete data"
|
||||
* Replies to messages pop up automatically
|
||||
even if send from other email addresses (typical scenario for alias addresses)
|
||||
* Fix group-replies from normal email-clients.
|
||||
|
||||
|
||||
## v0.1.32
|
||||
2017-04-22
|
||||
|
||||
* Update Spanish and Portuguese translations
|
||||
* Update internal sqlite library to version 3.18.0, released on 2017-03-28
|
||||
* Remove more of the custom language handling, use Android's routines instead
|
||||
* General code cleanup
|
||||
* Play GIF files
|
||||
* Option to disable autoplaying GIF files
|
||||
* When sending contacts, only use the names the receivers have set themselves
|
||||
* Show some hints when long-pressing icons in the action bar
|
||||
|
||||
|
||||
## v0.1.29
|
||||
2017-04-19
|
||||
|
||||
* Add Russian translation
|
||||
* For outgoing (group-)messages,
|
||||
only use the names the receivers have set themselves
|
||||
|
||||
|
||||
## v0.1.28
|
||||
2017-04-14
|
||||
|
||||
* Pimp notifications
|
||||
* Bug fixes
|
||||
|
||||
|
||||
## v0.1.27
|
||||
2017-04-12
|
||||
|
||||
* Use a permanent foreground service for reliable notifications
|
||||
* Monitor the IMAP-IDLE thread and reconnect if IMAP-IDLE seems to hang
|
||||
* Various battery and background optimizations
|
||||
|
||||
|
||||
## v0.1.25
|
||||
2017-04-04
|
||||
|
||||
* Use system or user selected video player.
|
||||
* Do not connect if not configured (avoids a warning on the first time startup)
|
||||
* Add vertical scrollbar, eg. to settings activities.
|
||||
* Pimp GUI and logo.
|
||||
* Update Korean.
|
||||
|
||||
|
||||
## v0.1.24
|
||||
2017-03-31
|
||||
|
||||
* Share images and documents from other apps to Delta Chat
|
||||
* Offer to mailto:-link-support to other apps
|
||||
* Ignore implausible sending time of incoming messages;
|
||||
use the receive time in these rare cases
|
||||
* Show errors only when Delta Chat is in foreground
|
||||
* Dynamically adapt video bitrate for longer videos
|
||||
to an attachment-size of max. 25 MB
|
||||
|
||||
|
||||
## v0.1.23
|
||||
2017-03-28
|
||||
|
||||
* Retry connecting to IMAP if there is not network available on the first try
|
||||
* Notify about new messages if the app is not active for hours,
|
||||
optimize battery consumption
|
||||
|
||||
|
||||
## v0.1.22
|
||||
2017-03-22
|
||||
|
||||
* Show HTML-only messages
|
||||
* Show connection errors
|
||||
* Add options for SSL/TLS and STARTTLS
|
||||
* Automatic account configuration, if possible
|
||||
* Recode large videos
|
||||
* Add Hungarian translation
|
||||
* Add Korean translation
|
||||
|
||||
|
||||
## v0.1.21
|
||||
2017-03-10
|
||||
|
||||
* Record and send voice messages
|
||||
* Record and send videos
|
||||
* Send and play music
|
||||
* Send contacts and email addresses
|
||||
* Sending and opening attachments of any type
|
||||
* Share and open commands for all attachments
|
||||
* Accept VCards send to us by other apps
|
||||
* Clickable email addresses
|
||||
* Update Polish translation
|
||||
* Fix tablet startup bug
|
||||
* Close the app when using the lock-app-via-pincode function
|
||||
* Protect data by using a content provider for sharing
|
||||
* Try to clear the task switcher's screenshots when locking the app via pincode
|
||||
* Pimp GUI
|
||||
|
||||
|
||||
## v0.1.20
|
||||
2017-02-16
|
||||
|
||||
* Avoid unwanted downloads of lots of old messages
|
||||
* Make the "Chats" folder visible if the server hides new folders by default
|
||||
* Fix a crash when the server returns empty folders
|
||||
* Update Polish and Portuguese translations
|
||||
* Use API level 25 (Nougat 7.1) as target
|
||||
|
||||
|
||||
## v0.1.18
|
||||
2017-02-11
|
||||
|
||||
* Add Polish translation
|
||||
* Use a new default background for chats
|
||||
* Improve typography by using the system font instead of a custom resource font
|
||||
* Remove custom plural handling, use Android's routines instead
|
||||
* Remove unused source code and strings
|
||||
* More fixes of lint errors and warnings
|
||||
|
||||
|
||||
## v0.1.17
|
||||
2017-02-07
|
||||
|
||||
* Drop two unnecessary permissions
|
||||
ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION
|
||||
* Really add French translation
|
||||
* Update Portuguese translation
|
||||
* Start fixing translation handling of the program
|
||||
* Remove special "foss" build, because the whole program is free now.
|
||||
|
||||
|
||||
## v0.1.16
|
||||
2017-02-06
|
||||
|
||||
* Add French translation
|
||||
* Fix some lint errors and warnings
|
||||
|
||||
|
||||
## v0.1.15
|
||||
2017-01-31
|
||||
|
||||
* Prepare for first release on F-Droid
|
||||
@@ -1,25 +1,28 @@
|
||||
## Delta Chat Android Client
|
||||
|
||||
This is the android client for Delta Chat. For the core library and other common
|
||||
information, please refer to [Delta Chat Core Library](https://github.com/deltachat/deltachat-core).
|
||||
For ready-to-use binaries, please go to https://delta.chat .
|
||||
This is the android client for [Delta Chat](https://delta.chat/).
|
||||
It is available on [F-Droid](https://f-droid.org/app/com.b44t.messenger) and
|
||||
the [Google Play Store](https://play.google.com/store/apps/details?id=chat.delta).
|
||||
The APK can also be downloaded from [github](https://github.com/deltachat/deltachat-android/releases)
|
||||
(for experienced users only).
|
||||
|
||||

|
||||
For the core library and other common information, please refer to the
|
||||
[Delta Chat Core Library](https://github.com/deltachat/deltachat-core).
|
||||
|
||||
[<img src="https://f-droid.org/badge/get-it-on.png" alt="Get it on F-Droid" height="75"/>](https://f-droid.org/packages/com.b44t.messenger)
|
||||
<img alt="Screenshot Chat List" src="docs/images/2019-01-chatlist.png" width="298" /> <img alt="Screenshot Chat View" src="docs/images/2019-01-chat.png" width="298" />
|
||||
|
||||
|
||||
# Build
|
||||
|
||||
When checking out _deltachat-android-ii_, make sure also to check out the
|
||||
When checking out _deltachat-android_, make sure also to check out the
|
||||
subproject _deltachat-core_:
|
||||
|
||||
- When using Git, you can do this initially by
|
||||
`$ git clone --recursive https://github.com/deltachat/deltachat-android-ii`
|
||||
`$ git clone --recursive https://github.com/deltachat/deltachat-android`
|
||||
or later by `git submodule update --init --recursive`. If you do this in your
|
||||
home directory, this results in the folder `~/deltachat-android-ii` which is just fine.
|
||||
home directory, this results in the folder `~/deltachat-android` which is just fine.
|
||||
|
||||
- Alternatively, you can download the [deltachat-android zip-file](https://github.com/deltachat/deltachat-android-ii/archive/master.zip); in this case, also download the [deltachat-core zip-file](https://github.com/deltachat/deltachat-core/archive/master.zip) and place its contents to `jni/messenger-backend`
|
||||
- Alternatively, you can download the [deltachat-android zip-file](https://github.com/deltachat/deltachat-android/archive/master.zip); in this case, also download the [deltachat-core zip-file](https://github.com/deltachat/deltachat-core/archive/master.zip) and place its contents to `jni/messenger-backend`
|
||||
|
||||
Then, call `ndk-build` in the root directory to build the C-part;
|
||||
this also builds deltachat-core. Afterwards run the project in Android Studio.
|
||||
@@ -79,4 +82,4 @@ The user interface classes are based on the Signal messenger.
|
||||
|
||||
Licensed under the GPLv3, see LICENSE file for details.
|
||||
|
||||
Copyright © 2017, 2018 Delta Chat contributors
|
||||
Copyright © 2017-2019 Delta Chat contributors
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
#! /usr/bin/env python
|
||||
|
||||
import sys
|
||||
from zipfile import ZipFile
|
||||
|
||||
class ApkDiff:
|
||||
|
||||
IGNORE_FILES = ["META-INF/CERT.RSA", "META-INF/CERT.SF", "META-INF/MANIFEST.MF"]
|
||||
|
||||
def compare(self, sourceApk, destinationApk):
|
||||
sourceZip = ZipFile(sourceApk, 'r')
|
||||
destinationZip = ZipFile(destinationApk, 'r')
|
||||
|
||||
if self.compareManifests(sourceZip, destinationZip) and self.compareEntries(sourceZip, destinationZip) == True:
|
||||
print "APKs match!"
|
||||
else:
|
||||
print "APKs don't match!"
|
||||
|
||||
def compareManifests(self, sourceZip, destinationZip):
|
||||
sourceEntrySortedList = sorted(sourceZip.namelist())
|
||||
destinationEntrySortedList = sorted(destinationZip.namelist())
|
||||
|
||||
for ignoreFile in self.IGNORE_FILES:
|
||||
while ignoreFile in sourceEntrySortedList: sourceEntrySortedList.remove(ignoreFile)
|
||||
while ignoreFile in destinationEntrySortedList: destinationEntrySortedList.remove(ignoreFile)
|
||||
|
||||
if len(sourceEntrySortedList) != len(destinationEntrySortedList):
|
||||
print "Manifest lengths differ!"
|
||||
|
||||
for (sourceEntryName, destinationEntryName) in zip(sourceEntrySortedList, destinationEntrySortedList):
|
||||
if sourceEntryName != destinationEntryName:
|
||||
print "Sorted manifests don't match, %s vs %s" % (sourceEntryName, destinationEntryName)
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
def compareEntries(self, sourceZip, destinationZip):
|
||||
sourceInfoList = filter(lambda sourceInfo: sourceInfo.filename not in self.IGNORE_FILES, sourceZip.infolist())
|
||||
destinationInfoList = filter(lambda destinationInfo: destinationInfo.filename not in self.IGNORE_FILES, destinationZip.infolist())
|
||||
|
||||
if len(sourceInfoList) != len(destinationInfoList):
|
||||
print "APK info lists of different length!"
|
||||
return False
|
||||
|
||||
for sourceEntryInfo in sourceInfoList:
|
||||
for destinationEntryInfo in list(destinationInfoList):
|
||||
if sourceEntryInfo.filename == destinationEntryInfo.filename:
|
||||
sourceEntry = sourceZip.open(sourceEntryInfo, 'r')
|
||||
destinationEntry = destinationZip.open(destinationEntryInfo, 'r')
|
||||
|
||||
if self.compareFiles(sourceEntry, destinationEntry) != True:
|
||||
print "APK entry %s does not match %s!" % (sourceEntryInfo.filename, destinationEntryInfo.filename)
|
||||
return False
|
||||
|
||||
destinationInfoList.remove(destinationEntryInfo)
|
||||
break
|
||||
|
||||
return True
|
||||
|
||||
def compareFiles(self, sourceFile, destinationFile):
|
||||
sourceChunk = sourceFile.read(1024)
|
||||
destinationChunk = destinationFile.read(1024)
|
||||
|
||||
while sourceChunk != "" or destinationChunk != "":
|
||||
if sourceChunk != destinationChunk:
|
||||
return False
|
||||
|
||||
sourceChunk = sourceFile.read(1024)
|
||||
destinationChunk = destinationFile.read(1024)
|
||||
|
||||
return True
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) != 3:
|
||||
print "Usage: apkdiff <pathToFirstApk> <pathToSecondApk>"
|
||||
sys.exit(1)
|
||||
|
||||
ApkDiff().compare(sys.argv[1], sys.argv[2])
|
||||
@@ -1,216 +1,110 @@
|
||||
import java.security.MessageDigest
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2"
|
||||
jcenter()
|
||||
}
|
||||
maven {
|
||||
url 'https://maven.google.com/'
|
||||
name 'Google'
|
||||
}
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2"
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.0.1'
|
||||
classpath files('libs/gradle-witness.jar')
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'witness'
|
||||
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2/"
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/preferencefragment/releases/"
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/smil/releases/"
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/photoview/releases/"
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/shortcutbadger/releases/"
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/circular-progress-button/releases/"
|
||||
}
|
||||
maven {
|
||||
url "https://maven.google.com"
|
||||
}
|
||||
maven { // textdrawable
|
||||
url 'https://dl.bintray.com/amulyakhare/maven'
|
||||
// Used only for PhotoView
|
||||
url "https://jitpack.io"
|
||||
name 'JitPack Github wrapper'
|
||||
}
|
||||
jcenter()
|
||||
mavenLocal()
|
||||
maven {
|
||||
url 'https://maven.google.com/'
|
||||
name 'Google'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile 'com.android.support:appcompat-v7:27.0.2'
|
||||
compile 'com.android.support:recyclerview-v7:27.0.2'
|
||||
compile 'com.android.support:design:27.0.2'
|
||||
compile 'com.android.support:support-v13:27.0.2'
|
||||
compile 'com.android.support:cardview-v7:27.0.2'
|
||||
compile 'com.android.support:preference-v7:27.0.2'
|
||||
compile 'com.android.support:preference-v14:27.0.2'
|
||||
compile 'com.android.support:gridlayout-v7:27.0.2'
|
||||
compile 'com.android.support:multidex:1.0.2'
|
||||
compile 'com.android.support:exifinterface:27.0.2'
|
||||
compile 'com.android.support.constraint:constraint-layout:1.1.2'
|
||||
compile 'android.arch.lifecycle:extensions:1.1.1'
|
||||
compile 'android.arch.lifecycle:common-java8:1.1.1'
|
||||
implementation 'com.android.support:appcompat-v7:27.1.1' // one use in SearchToolbar.
|
||||
implementation 'com.android.support:design:27.1.1' // used in various locations for a lot of components
|
||||
implementation 'com.android.support:support-v13:27.1.1' // used to prevent a 25... version to be loaded (from where ever)
|
||||
implementation 'com.android.support:preference-v7:27.1.1' // actually a dependency of -v14
|
||||
implementation 'com.android.support:preference-v14:27.1.1' // used to manage the users preferences
|
||||
implementation 'com.android.support:exifinterface:27.1.1' // Used to edit the Exif in BitmapUtil
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.1.2' // Used in several places
|
||||
implementation 'android.arch.lifecycle:extensions:1.1.1' // Used in situations where data changes should be displayed directly (e.G. Search)
|
||||
implementation 'android.arch.lifecycle:common-java8:1.1.1' // Used in situations where data changes should be displayed directly (e.G. Search)
|
||||
|
||||
compile 'com.google.android.gms:play-services-gcm:9.6.1'
|
||||
compile 'com.google.android.gms:play-services-maps:9.6.1'
|
||||
compile 'com.google.android.gms:play-services-places:9.6.1'
|
||||
implementation 'com.google.android.exoplayer:exoplayer:r2.3.1' // plays video.
|
||||
|
||||
compile 'com.google.android.exoplayer:exoplayer:r2.3.1'
|
||||
implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.5' // used as JSON library TODO: check if java builtin would work as well
|
||||
|
||||
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.5'
|
||||
implementation 'com.journeyapps:zxing-android-embedded:3.4.0' // QR Code scanner
|
||||
|
||||
compile 'com.journeyapps:zxing-android-embedded:3.4.0'
|
||||
|
||||
compile "me.leolin:ShortcutBadger:1.1.16"
|
||||
compile 'se.emilsjolander:stickylistheaders:2.7.0'
|
||||
compile 'com.jpardogo.materialtabstrip:library:1.0.9'
|
||||
compile 'com.github.chrisbanes:PhotoView:2.1.3'
|
||||
compile 'com.github.bumptech.glide:glide:4.5.0'
|
||||
implementation "me.leolin:ShortcutBadger:1.1.16" // display messagecount on the home screen icon.
|
||||
implementation 'com.jpardogo.materialtabstrip:library:1.0.9' // used in the emoji selector for the tab selection.
|
||||
implementation 'com.github.chrisbanes:PhotoView:2.1.3' // does the zooming on photos / media
|
||||
implementation 'com.github.bumptech.glide:glide:4.5.0'
|
||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'
|
||||
compile 'com.makeramen:roundedimageview:2.1.0'
|
||||
compile 'com.pnikosis:materialish-progress:1.5'
|
||||
compile 'com.soundcloud.android:android-crop:0.9.10@aar'
|
||||
compile 'com.melnykov:floatingactionbutton:1.3.0'
|
||||
compile 'mobi.upod:time-duration-picker:1.1.3'
|
||||
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
||||
compile 'com.google.zxing:core:3.2.1'
|
||||
compile ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') {
|
||||
implementation 'com.makeramen:roundedimageview:2.1.0' // crops the avatars to circles
|
||||
implementation 'com.pnikosis:materialish-progress:1.5' // used only in the "Progress Wheel" in Share Activity.
|
||||
implementation 'com.soundcloud.android:android-crop:0.9.10@aar' // used in Group Select Avatar, should be unified with profie
|
||||
implementation 'com.nineoldandroids:library:2.4.0' // DEPRECATED! Used to slide in the half-camera.
|
||||
implementation 'mobi.upod:time-duration-picker:1.1.3' // Used to pick the time for inactivity.
|
||||
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' // number of unread messages,
|
||||
// the one-letter circle for the contacts (when there is not avatar) and a white background.
|
||||
implementation 'com.google.zxing:core:3.2.1' // QR Code scanner
|
||||
implementation ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') { // for the zooming on photos / media
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
}
|
||||
compile ('cn.carbswang.android:NumberPickerView:1.0.9') {
|
||||
exclude group: 'com.android.support', module: 'appcompat-v7'
|
||||
}
|
||||
compile 'com.annimon:stream:1.1.8'
|
||||
compile ('com.takisoft.fix:colorpicker:0.9.1') {
|
||||
exclude group: 'com.android.support', module: 'appcompat-v7'
|
||||
exclude group: 'com.android.support', module: 'recyclerview-v7'
|
||||
}
|
||||
compile 'com.codewaves.stickyheadergrid:stickyheadergrid:0.9.4'
|
||||
compile 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3-S2'
|
||||
implementation 'com.annimon:stream:1.1.8' // brings future java streams api to SDK Version < 24
|
||||
implementation 'com.codewaves.stickyheadergrid:stickyheadergrid:0.9.4' // glues the current time segment text in the gallery to the top.
|
||||
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:7.2.0'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.assertj:assertj-core:1.7.1'
|
||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||
testCompile 'org.powermock:powermock-api-mockito:1.6.1'
|
||||
testCompile 'org.powermock:powermock-module-junit4:1.6.1'
|
||||
testCompile 'org.powermock:powermock-module-junit4-rule:1.6.1'
|
||||
testCompile 'org.powermock:powermock-classloading-xstream:1.6.1'
|
||||
//debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.6.3'
|
||||
//releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.6.3'
|
||||
//debugImplementation 'com.squareup.leakcanary:leakcanary-support-fragment:1.6.3'
|
||||
|
||||
androidTestCompile 'com.android.support:multidex:1.0.2'
|
||||
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.2'
|
||||
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
|
||||
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
|
||||
androidTestCompile ('org.assertj:assertj-core:1.7.1') {
|
||||
testImplementation 'junit:junit:4.12'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
testImplementation 'org.assertj:assertj-core:1.7.1'
|
||||
testImplementation 'org.mockito:mockito-core:1.9.5'
|
||||
testImplementation 'org.powermock:powermock-api-mockito:1.6.1'
|
||||
testImplementation 'org.powermock:powermock-module-junit4:1.6.1'
|
||||
testImplementation 'org.powermock:powermock-module-junit4-rule:1.6.1'
|
||||
testImplementation 'org.powermock:powermock-classloading-xstream:1.6.1'
|
||||
|
||||
androidTestImplementation ('org.assertj:assertj-core:1.7.1') {
|
||||
exclude group: 'org.hamcrest', module: 'hamcrest-core'
|
||||
}
|
||||
}
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'com.android.support:design:fa5c27a705310e95a8f4099c98777132ed901a0d69178942306bb34cd76f0d57',
|
||||
'com.android.support:preference-v14:1fcf40bd560dc21ce55b6a292d1326d28f52dc5e4f2a64eef2f38dd95777b645',
|
||||
'com.android.support:preference-v7:d9f32ddc92f8d6a0bd86a18f4fcaff805fa021245e395b6e7dd382907443ee53',
|
||||
'com.pnikosis:materialish-progress:d71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54',
|
||||
'mobi.upod:time-duration-picker:db469ce0f48dd96b892eac424ed76870e54bf00fe0a28cdcddfbe5f2a226a0e1',
|
||||
'com.codewaves.stickyheadergrid:stickyheadergrid:5b4aa6a52a957cfd55f60f4220c11c0c371385a3cb9786cae03c260dcdef5794',
|
||||
'com.android.support:appcompat-v7:b2825e8b47f665d3362d8481c8d147d1af9230d16f23a2b94f6ccbc53c68cec1',
|
||||
'com.melnykov:floatingactionbutton:15d58d4fac0f7a288d0e5301bbaf501a146f5b3f5921277811bf99bd3b397263',
|
||||
'com.android.support:recyclerview-v7:3eb953930f10941f2b0447ec123a9b03d2746a42a99c523e82c3ece3308ca70b',
|
||||
'com.android.support:support-v13:6f2848811ceef2e32cc98da02a045d65f7e7447a6bd7198b9ec10aa14d7ad55c',
|
||||
'com.android.support:cardview-v7:57f867a3c8f33e2d4dc0a03e2dfa03cad6267a908179f04a725a68ea9f0b8ccf',
|
||||
'com.android.support:gridlayout-v7:227b5fdffa20f53bd562503aab6d2293d52cf64b5a6ab1116d2150f87bff9e88',
|
||||
'com.android.support:multidex:7cd48755c7cfdb6dd2d21cbb02236ec390f6ac91cde87eb62f475b259ab5301d',
|
||||
'com.android.support:exifinterface:0e7cd526c4468895cd8549def46b3d33c8bcfb1ae4830569898d8c7326b15bb2',
|
||||
'android.arch.lifecycle:extensions:429426b2feec2245ffc5e75b3b5309bedb36159cf06dc71843ae43526ac289b6',
|
||||
'android.arch.lifecycle:common-java8:7078b5c8ccb94203df9cc2a463c69cf0021596e6cf966d78fbfd697aaafe0630',
|
||||
'com.google.android.gms:play-services-gcm:312e61253a236f2d9b750b9c04fc92fd190d23b0b2755c99de6ce4a28b259dae',
|
||||
'com.google.android.gms:play-services-places:abf3a4a3b146ec7e6e753be62775e512868cf37d6f88ffe2d81167b33b57132b',
|
||||
'com.google.android.gms:play-services-maps:45e8021e7ddac4a44a82a0e9698991389ded3023d35c58f38dbd86d54211ec0e',
|
||||
'com.google.android.exoplayer:exoplayer:955085aa611a8f7cf6c61b88ae03d1a392f4ad94c9bfbc153f3dedb9ffb14718',
|
||||
'me.leolin:ShortcutBadger:e3cb3e7625892129b0c92dd5e4bc649faffdd526d5af26d9c45ee31ff8851774',
|
||||
'se.emilsjolander:stickylistheaders:a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb',
|
||||
'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa',
|
||||
'com.github.chrisbanes:PhotoView:ed06775308da260e1fd86d1d3288988fcd3d80db24ce0d7c9fcfedc39e622292',
|
||||
'com.github.bumptech.glide:glide:997de7ac95be6c944d3b8cbe13de11307736ea45451c1b09a6cec7c328ead59f',
|
||||
'com.makeramen:roundedimageview:1f5a1865796b308c6cdd114acc6e78408b110f0a62fc63553278fbeacd489cd1',
|
||||
'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
|
||||
'com.amulyakhare:com.amulyakhare.textdrawable:54c92b5fba38cfd316a07e5a30528068f45ce8515a6890f1297df4c401af5dcb',
|
||||
'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
|
||||
'com.davemorrissey.labs:subsampling-scale-image-view:550c5baa07e0bb4ff0a18b705e96d34436d22619248bd8c08c08c730b1f55cfe',
|
||||
'cn.carbswang.android:NumberPickerView:18b3c316d62c7c277978a8d4ed57a5b8f4e943762264960f579a8a549c756729',
|
||||
'com.annimon:stream:5da6e2e3e0551d61a3ea7014f04312276549e3dd739cf637996e4cf43c5535b9',
|
||||
'com.takisoft.fix:colorpicker:f5d0dbabe406a1800498ca9c1faf34db36e021d8488bf10360f29961fe3ab0d1',
|
||||
'com.github.dmytrodanylyk.circular-progress-button:library:8dc6a29a5a8db7b2ad5a9a7fda1dc9ae0893f4c8f0545732b2c63854ea693e8e',
|
||||
'com.google.android.gms:play-services-iid:54e919f9957b8b7820da7ee9b83471d00d0cac1cf08ddea8b5b41aea80bb1a70',
|
||||
'com.google.android.gms:play-services-base:0ca636a8fc9a5af45e607cdcd61783bf5d561cbbb0f862021ce69606eee5ad49',
|
||||
'com.google.android.gms:play-services-tasks:69ec265168e601d0203d04cd42e34bb019b2f029aa1e16fabd38a5153eea2086',
|
||||
'com.google.android.gms:play-services-basement:95dd882c5ffba15b9a99de3fefb05d3a01946623af67454ca00055d222f85a8d',
|
||||
'com.android.support:support-v4:1b2b37169fcccfef5e563d273749e3792decdce9818bc17932403a2363f537b4',
|
||||
'com.android.support:support-fragment:e4358388022a2205777575a7251fe357334658e4123d5d6e3b082f5899d9b011',
|
||||
'com.android.support:animated-vector-drawable:5b117a2c13a898c2a3c84c480d64edcfac2ef720aa9b742c29249fac774ffc48',
|
||||
'com.android.support:support-core-ui:2284072511a95d504c074de80c82cd33724c6d2754117833b98ba3a09994163e',
|
||||
'com.android.support:transition:1a7db0453c1467fc8fd815e6d50ca6bb475a7a9ba6b5f3b307329688a7c62a68',
|
||||
'com.android.support:support-core-utils:b69c6e1e7731b876b910fc7100bcadf40a57f27b32ca26b91400995542112c96',
|
||||
'com.android.support:support-media-compat:6dd9327ee9aa467cab479aad97df375072b2b6ba61eadffdaa5a88de3843c457',
|
||||
'com.android.support:support-vector-drawable:bf4f4fcbf58b1380616581224e6487c230bfdb3434ec353d4adaa4b1f4865cfa',
|
||||
'com.android.support:support-compat:ed4d25d91a0b13d8b9def1c0de69ed03d7fb89d50fb37eb0e9b63b0cf7a42357',
|
||||
'android.arch.lifecycle:livedata:50ab0490c1ff1a7cfb4e554032998b080888946d0dd424f39900efc4a1bcd750',
|
||||
'android.arch.lifecycle:livedata-core:d6fdd8b985d6178d7ea2f16986a24e83f1bee936b74d43167c69e08d3cc12c50',
|
||||
'android.arch.core:runtime:c3215aa5873311b3f88a6f4e4a3c25ad89971bc127de8c3e1291c57f93a05c39',
|
||||
'android.arch.lifecycle:runtime:c4e4be66c1b2f0abec593571454e1de14013f7e0f96bf2a9f212931a48cae550',
|
||||
'android.arch.core:common:3a616a32f433e9e23f556b38575c31b013613d3ae85206263b7625fe1f4c151a',
|
||||
'android.arch.lifecycle:common:8d378e88ebd5189e09eef623414812c868fd90aa519d6160e2311fb8b81cff56',
|
||||
'android.arch.lifecycle:viewmodel:7de29cfaba77d6b5d5be234c57f6812d0150d087e63941af22ba1d1f8e2bc96a',
|
||||
'com.github.bumptech.glide:gifdecoder:59ccf3bb0cec11dab4b857382cbe0b171111b6fc62bf141adce4e1180889af15',
|
||||
'com.android.support:support-annotations:af05330d997eb92a066534dbe0a3ea24347d26d7001221092113ae02a8f233da',
|
||||
'com.github.bumptech.glide:disklrucache:c1b1b6f5bbd01e2fcdc9d7f60913c8d338bdb65ed4a93bfa02b56f19daaade4b',
|
||||
'com.github.bumptech.glide:annotations:bede99ef9f71517a4274bac18fd3e483e9f2b6108d7d6fe8f4949be4aa4d9512',
|
||||
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
|
||||
'com.google.android:flexbox:a9989fd13ae2ee42765dfc515fe362edf4f326e74925d02a10369df8092a4935',
|
||||
]
|
||||
}
|
||||
|
||||
android {
|
||||
flavorDimensions "none"
|
||||
compileSdkVersion 27
|
||||
buildToolsVersion '27.0.1'
|
||||
buildToolsVersion '27.0.3'
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
dexOptions {
|
||||
javaMaxHeapSize "4g"
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
versionCode 404
|
||||
versionName "0.92.0"
|
||||
applicationId "chat.delta.androidii"
|
||||
versionCode 542
|
||||
versionName "0.301.0"
|
||||
|
||||
applicationId "com.b44t.messenger"
|
||||
|
||||
minSdkVersion 14
|
||||
targetSdkVersion 25
|
||||
multiDexEnabled true
|
||||
targetSdkVersion 26
|
||||
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
project.ext.set("archivesBaseName", "Deltachat");
|
||||
|
||||
buildConfigField "long", "BUILD_TIMESTAMP", getLastCommitTimestamp() + "L"
|
||||
// base name of the generated apk
|
||||
project.ext.set("archivesBaseName", "deltachat");
|
||||
|
||||
buildConfigField "boolean", "DEV_BUILD", "false"
|
||||
buildConfigField "String", "MAP_ACCESS_TOKEN", '"pk.eyJ1IjoiZGVsdGFjaGF0IiwiYSI6ImNqc3c1aWczMzBjejY0M28wZmU0a3cwMzMifQ.ZPTH9dFJaav06RAu4rTYHw"'
|
||||
|
||||
ndk {
|
||||
abiFilters "armeabi", "armeabi-v7a", "x86"
|
||||
@@ -234,6 +128,23 @@ android {
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
signingConfigs {
|
||||
debug {
|
||||
// add `DC_DEBUG_STORE_FILE=/path/to/debug.keystore` to `~/.gradle/gradle.properties`
|
||||
if(project.hasProperty("DC_DEBUG_STORE_FILE" )) {
|
||||
storeFile file(DC_DEBUG_STORE_FILE )
|
||||
}
|
||||
}
|
||||
release {
|
||||
// can be defined at `~/.gradle/gradle.properties` or at "Build/Generate signed APK"
|
||||
if(project.hasProperty("DC_RELEASE_STORE_FILE")) {
|
||||
storeFile file(DC_RELEASE_STORE_FILE)
|
||||
storePassword DC_RELEASE_STORE_PASSWORD
|
||||
keyAlias DC_RELEASE_KEY_ALIAS
|
||||
keyPassword DC_RELEASE_KEY_PASSWORD
|
||||
}
|
||||
}
|
||||
}
|
||||
release
|
||||
}
|
||||
|
||||
@@ -241,7 +152,6 @@ android {
|
||||
debug {
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'),
|
||||
'proguard-google-play-services.pro',
|
||||
'proguard-jackson.pro',
|
||||
'proguard-appcompat-v7.pro',
|
||||
'proguard-rounded-image-view.pro',
|
||||
@@ -252,6 +162,7 @@ android {
|
||||
'proguard.cfg'
|
||||
testProguardFiles 'proguard-automation.pro',
|
||||
'proguard.cfg'
|
||||
applicationIdSuffix ".beta"
|
||||
}
|
||||
release {
|
||||
minifyEnabled true
|
||||
@@ -261,14 +172,12 @@ android {
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
play {
|
||||
fat {
|
||||
dimension "none"
|
||||
buildConfigField "boolean", "PLAY_STORE_DISABLED", "false"
|
||||
}
|
||||
|
||||
website {
|
||||
gplay {
|
||||
dimension "none"
|
||||
buildConfigField "boolean", "PLAY_STORE_DISABLED", "true"
|
||||
applicationId "chat.delta"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -289,99 +198,12 @@ android {
|
||||
assets.srcDirs = ['assets']
|
||||
jniLibs.srcDirs = ['libs']
|
||||
}
|
||||
androidTest {
|
||||
java.srcDirs = ['test/androidTest/java']
|
||||
}
|
||||
test {
|
||||
java.srcDirs = ['test/unitTest/java']
|
||||
java.srcDirs = ['test']
|
||||
}
|
||||
|
||||
website.manifest.srcFile 'website/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
}
|
||||
|
||||
task assembleWebsiteDescriptor << {
|
||||
android.applicationVariants.all { variant ->
|
||||
if (variant.name.equals("websiteDebug") ||
|
||||
variant.name.equals("websiteRelease"))
|
||||
{
|
||||
File file = new File(variant.outputs[0].outputFile.path)
|
||||
|
||||
if (file.exists()) {
|
||||
MessageDigest md = MessageDigest.getInstance("SHA-256");
|
||||
file.eachByte 4096, {bytes, size ->
|
||||
md.update(bytes, 0, size);
|
||||
}
|
||||
|
||||
String digest = md.digest().collect {String.format "%02x", it}.join();
|
||||
String url = variant.productFlavors.get(0).ext.websiteUpdateUrl
|
||||
String apkName = variant.outputs[0].outputFile.name
|
||||
|
||||
String descriptor = "{" +
|
||||
"\"versionCode\" : $project.android.defaultConfig.versionCode," +
|
||||
"\"versionName\" : \"$project.android.defaultConfig.versionName\"," +
|
||||
"\"sha256sum\" : \"$digest\"," +
|
||||
"\"url\" : \"$url/$apkName\"" +
|
||||
"}"
|
||||
|
||||
File descriptorFile = new File(variant.outputs[0].outputFile.parent, apkName.replace(".apk", ".json"))
|
||||
|
||||
descriptorFile.write(descriptor)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.whenTaskAdded { task ->
|
||||
if (task.name.equals("lint")) {
|
||||
task.enabled = false
|
||||
}
|
||||
|
||||
if (task.name.equals("assembleWebsiteDebug") ||
|
||||
task.name.equals("assembleWebsiteRelease"))
|
||||
{
|
||||
task.finalizedBy assembleWebsiteDescriptor
|
||||
}
|
||||
}
|
||||
|
||||
def getLastCommitTimestamp() {
|
||||
new ByteArrayOutputStream().withStream { os ->
|
||||
def result = exec {
|
||||
executable = 'git'
|
||||
args = ['log', '-1', '--pretty=format:%ct']
|
||||
standardOutput = os
|
||||
}
|
||||
|
||||
return os.toString() + "000"
|
||||
}
|
||||
}
|
||||
|
||||
def Properties props = new Properties()
|
||||
def propFile = new File('signing.properties')
|
||||
|
||||
if (propFile.canRead()){
|
||||
props.load(new FileInputStream(propFile))
|
||||
|
||||
if (props !=null &&
|
||||
props.containsKey('STORE_FILE') &&
|
||||
props.containsKey('STORE_PASSWORD') &&
|
||||
props.containsKey('KEY_ALIAS') &&
|
||||
props.containsKey('KEY_PASSWORD'))
|
||||
{
|
||||
android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
|
||||
android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
|
||||
android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
|
||||
android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
|
||||
} else {
|
||||
println 'signing.properties found but some entries are missing'
|
||||
android.buildTypes.release.signingConfig = null
|
||||
}
|
||||
}else {
|
||||
println 'signing.properties not found'
|
||||
android.buildTypes.release.signingConfig = null
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# F-Droid - Overview
|
||||
|
||||
- https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/com.b44t.messenger.yml
|
||||
contains the descripion and all meta data shown for Delta Chat on F-Droid
|
||||
|
||||
- when a new tag in the form `v1.2.3` is added to the deltachat-android repo,
|
||||
F-Droid will pick up this version and distribute it -
|
||||
this may take some days or even weeks.
|
||||
before creating a new version, please have a look at docs/release-checklist.md
|
||||
|
||||
|
||||
# F-Droid Build status
|
||||
|
||||
- <https://f-droid.org/wiki/page/com.b44t.messenger/lastbuild>
|
||||
shows the last build attempt
|
||||
|
||||
- <https://f-droid.org/repo/com.b44t.messenger_VERSIONCODE.apk>
|
||||
(with VERSIONCODE = 537 or so) links to successfully built apk
|
||||
even if it is not yet in the index (which may take some more time).
|
||||
|
||||
|
||||
# Use F-Droid-tools locally
|
||||
|
||||
$ git clone https://gitlab.com/fdroid/fdroiddata
|
||||
$ git clone https://gitlab.com/fdroid/fdroidserver
|
||||
$ cd fdroiddata
|
||||
|
||||
now, metadata/com.b44t.messenger.txt can be modified.
|
||||
for testing, one can change the repo to a branch
|
||||
by adding the line `Update Check Mode:RepoManifest/BRANCH` to the file.
|
||||
|
||||
set some path to ndk etc:
|
||||
$ cp ../fdroidserver/examples/config.py . # adapt file as needed
|
||||
|
||||
checkout repo as f-droid would do:
|
||||
$ ../fdroidserver/fdroid checkupdates -v com.b44t.messenger
|
||||
(for testing with uncommited changes, add --allow-dirty)
|
||||
|
||||
build repo as f-droid would do:
|
||||
$ ../froidserver/fdroid build -v com.b44t.messenger:<versionCode>
|
||||
|
||||
(via https://f-droid.org/docs/Installing_the_Server_and_Repo_Tools/
|
||||
and https://f-droid.org/docs/Building_Applications/ -
|
||||
might require `pip install pyasn1 pyasn1_modules pyaml requests`)
|
||||
|
||||
|
||||
# Changing the Description on F-Droid
|
||||
|
||||
- the description can be changed via a PR to the file above
|
||||
|
||||
- make sure there is a "newline" at the end of the description
|
||||
(see https://gitlab.com/fdroid/fdroiddata/merge_requests/3580)
|
||||
|
||||
- reformat the metadata using
|
||||
$ ../fdroidserver/fdroid rewritemeta com.b44t.messenger # called from fdroiddata dir
|
||||
|
||||
|
After Width: | Height: | Size: 443 KiB |
|
After Width: | Height: | Size: 99 KiB |
@@ -0,0 +1,14 @@
|
||||
# Google Play Store
|
||||
|
||||
If you have access to uploading and signing apks,
|
||||
this can be done at
|
||||
https://play.google.com/apps/publish/
|
||||
|
||||
The description can be discussed and changed at
|
||||
https://github.com/deltachat/deltachat-android/blob/master/store/text.md
|
||||
In future, we can also add the screenshots or other assets there.
|
||||
|
||||
|
||||
# Google Play Releases
|
||||
|
||||
see `release-checklist.md`
|
||||
@@ -0,0 +1,45 @@
|
||||
# Release new F-Droid version
|
||||
|
||||
Release core, if needed, then:
|
||||
|
||||
1. $ ./tools/update-core.sh
|
||||
2. $ tx pull # test and commit changes
|
||||
3. bump version, adapt changelog, commit
|
||||
4. deltachat-android on Github: "Draft a new release" with the version form `v1.2.3`
|
||||
|
||||
... some days later, F-Droid should be updated.
|
||||
|
||||
|
||||
# Release new Play Store version
|
||||
|
||||
Release core, f-droid, then:
|
||||
|
||||
5. In Android Studio, select "Build / Generate signed APK"
|
||||
(not: App Bundle as this would require uploading the signing key to Google)
|
||||
6. Select flavor `gplayRelease` with V1 signature enabled
|
||||
(needed for easy APK verificarion), V2 is optional
|
||||
7. Test the generated APK from `gplay/release`
|
||||
8. Upload the APK to https://play.google.com/apps/publish/
|
||||
|
||||
|
||||
# For an additional APK
|
||||
|
||||
9. In Android Studio make sure, the target is fatDebug
|
||||
and select "Build / Build APK"
|
||||
(TODO: or also use the release signing key)
|
||||
10. Upload the generated APK to the created Github release
|
||||
|
||||
|
||||
# Testing checklist
|
||||
|
||||
Only some rough ideas, ideally, this should result into a simple checklist
|
||||
that can be checked before releasing.
|
||||
However, although it would be nice to test "everything", we should keep in mind
|
||||
that the test should be doable in, say, 10~15 minutes.
|
||||
- create new account with (one of?): gmail, yandex, other
|
||||
or (?) test an existing account
|
||||
- send and receive a message
|
||||
- create a group
|
||||
- do a contact verification
|
||||
- join a group via a qr scan
|
||||
|
||||
@@ -898,12 +898,15 @@ messenger-backend/src/dc_contact.c \
|
||||
messenger-backend/src/dc_dehtml.c \
|
||||
messenger-backend/src/dc_hash.c \
|
||||
messenger-backend/src/dc_imap.c \
|
||||
messenger-backend/src/dc_oauth2.c \
|
||||
messenger-backend/src/dc_job.c \
|
||||
messenger-backend/src/dc_jobthread.c \
|
||||
messenger-backend/src/dc_key.c \
|
||||
messenger-backend/src/dc_keyring.c \
|
||||
messenger-backend/src/dc_loginparam.c \
|
||||
messenger-backend/src/dc_lot.c \
|
||||
messenger-backend/src/dc_move.c \
|
||||
messenger-backend/src/dc_location.c \
|
||||
messenger-backend/src/dc_context.c \
|
||||
messenger-backend/src/dc_configure.c \
|
||||
messenger-backend/src/dc_e2ee.c \
|
||||
@@ -920,6 +923,7 @@ messenger-backend/src/dc_msg.c \
|
||||
messenger-backend/src/dc_param.c \
|
||||
messenger-backend/src/dc_pgp.c \
|
||||
messenger-backend/src/dc_saxparser.c \
|
||||
messenger-backend/src/dc_jsmn.c \
|
||||
messenger-backend/src/dc_simplify.c \
|
||||
messenger-backend/src/dc_smtp.c \
|
||||
messenger-backend/src/dc_sqlite3.c \
|
||||
|
||||
@@ -64,8 +64,15 @@ static jstring jstring_new__(JNIEnv* env, const char* a)
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
// convert c-timestamp to java-timestamp
|
||||
#define JTIMESTAMP(a) (((jlong)a)*((jlong)1000))
|
||||
|
||||
|
||||
// convert java-timestamp to c-timestamp
|
||||
#define CTIMESTAMP(a) (((jlong)a)/((jlong)1000))
|
||||
|
||||
|
||||
static jintArray dc_array2jintArray_n_unref(JNIEnv *env, dc_array_t* ca)
|
||||
{
|
||||
/* takes a C-array of type dc_array_t and converts it it a Java-Array.
|
||||
@@ -262,6 +269,24 @@ JNIEXPORT void Java_com_b44t_messenger_DcContext_interruptImapIdle(JNIEnv *env,
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcContext_performSentboxFetch(JNIEnv *env, jobject obj)
|
||||
{
|
||||
dc_perform_sentbox_fetch(get_dc_context(env, obj));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcContext_performSentboxIdle(JNIEnv *env, jobject obj)
|
||||
{
|
||||
dc_perform_sentbox_idle(get_dc_context(env, obj));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcContext_interruptSentboxIdle(JNIEnv *env, jobject obj)
|
||||
{
|
||||
dc_interrupt_sentbox_idle(get_dc_context(env, obj));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcContext_performMvboxFetch(JNIEnv *env, jobject obj)
|
||||
{
|
||||
dc_perform_mvbox_fetch(get_dc_context(env, obj));
|
||||
@@ -581,7 +606,7 @@ JNIEXPORT void Java_com_b44t_messenger_DcContext_setConfig(JNIEnv *env, jobject
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_DcContext_getConfig(JNIEnv *env, jobject obj, jstring key, jstring def/*may be NULL*/)
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_DcContext_getConfig(JNIEnv *env, jobject obj, jstring key)
|
||||
{
|
||||
CHAR_REF(key);
|
||||
char* temp = dc_get_config(get_dc_context(env, obj), keyPtr);
|
||||
@@ -633,6 +658,19 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcContext_getInfo(JNIEnv *env, jobject
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_DcContext_getOauth2Url(JNIEnv *env, jobject obj, jstring addr, jstring redirectUrl)
|
||||
{
|
||||
CHAR_REF(addr);
|
||||
CHAR_REF(redirectUrl);
|
||||
char* temp = dc_get_oauth2_url(get_dc_context(env, obj), addrPtr, redirectUrlPtr);
|
||||
jstring ret = JSTRING_NEW(temp);
|
||||
free(temp);
|
||||
CHAR_UNREF(redirectUrl);
|
||||
CHAR_UNREF(addr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_DcContext_getContactEncrInfo(JNIEnv *env, jobject obj, jint contact_id)
|
||||
{
|
||||
char* temp = dc_get_contact_encrinfo(get_dc_context(env, obj), contact_id);
|
||||
@@ -703,6 +741,114 @@ JNIEXPORT jint Java_com_b44t_messenger_DcContext_addAddressBook(JNIEnv *env, job
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcContext_sendLocationsToChat(JNIEnv *env, jobject obj, jint chat_id, jint seconds)
|
||||
{
|
||||
dc_send_locations_to_chat(get_dc_context(env, obj), chat_id, seconds);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jboolean Java_com_b44t_messenger_DcContext_isSendingLocationsToChat(JNIEnv *env, jobject obj, jint chat_id)
|
||||
{
|
||||
return (dc_is_sending_locations_to_chat(get_dc_context(env, obj), chat_id)!=0);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jboolean Java_com_b44t_messenger_DcContext_setLocation(JNIEnv *env, jobject obj, jfloat latitude, jfloat longitude, jfloat accuracy)
|
||||
{
|
||||
return (dc_set_location(get_dc_context(env, obj), latitude, longitude, accuracy)!=0);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jlong Java_com_b44t_messenger_DcContext_getLocationsCPtr(JNIEnv *env, jobject obj, jint chat_id, jint contact_id, jlong timestamp_start, jlong timestamp_end)
|
||||
{
|
||||
return (jlong)dc_get_locations(get_dc_context(env, obj), chat_id, contact_id, CTIMESTAMP(timestamp_start), CTIMESTAMP(timestamp_end));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcContext_deleteAllLocations(JNIEnv *env, jobject obj)
|
||||
{
|
||||
dc_delete_all_locations(get_dc_context(env, obj));
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* DcArray
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
static dc_array_t* get_dc_array(JNIEnv *env, jobject obj)
|
||||
{
|
||||
static jfieldID fid = 0;
|
||||
if (fid==0) {
|
||||
jclass cls = (*env)->GetObjectClass(env, obj);
|
||||
fid = (*env)->GetFieldID(env, cls, "arrayCPtr", "J" /*Signature, J=long*/);
|
||||
}
|
||||
if (fid) {
|
||||
return (dc_array_t*)(*env)->GetLongField(env, obj, fid);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void Java_com_b44t_messenger_DcArray_unrefArrayCPtr(JNIEnv *env, jobject obj)
|
||||
{
|
||||
dc_array_unref(get_dc_array(env, obj));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jint Java_com_b44t_messenger_DcArray_getCnt(JNIEnv *env, jobject obj)
|
||||
{
|
||||
return dc_array_get_cnt(get_dc_array(env, obj));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jfloat Java_com_b44t_messenger_DcArray_getLatitude(JNIEnv *env, jobject obj, jint index)
|
||||
{
|
||||
return (jfloat)dc_array_get_latitude(get_dc_array(env, obj), index);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jfloat Java_com_b44t_messenger_DcArray_getLongitude(JNIEnv *env, jobject obj, jint index)
|
||||
{
|
||||
return (jfloat)dc_array_get_longitude(get_dc_array(env, obj), index);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jfloat Java_com_b44t_messenger_DcArray_getAccuracy(JNIEnv *env, jobject obj, jint index)
|
||||
{
|
||||
return (jfloat)dc_array_get_accuracy(get_dc_array(env, obj), index);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jlong Java_com_b44t_messenger_DcArray_getTimestamp(JNIEnv *env, jobject obj, jint index)
|
||||
{
|
||||
return JTIMESTAMP(dc_array_get_timestamp(get_dc_array(env, obj), index));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jint Java_com_b44t_messenger_DcArray_getMsgId(JNIEnv *env, jobject obj, jint index)
|
||||
{
|
||||
return dc_array_get_msg_id(get_dc_array(env, obj), index);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jint Java_com_b44t_messenger_DcArray_getLocationId(JNIEnv *env, jobject obj, jint index)
|
||||
{
|
||||
return dc_array_get_id(get_dc_array(env, obj), index);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_DcArray_getMarker(JNIEnv *env, jobject obj, jint index)
|
||||
{
|
||||
char* temp = dc_array_get_marker(get_dc_array(env, obj), index);
|
||||
jstring ret = NULL;
|
||||
if (temp) {
|
||||
ret = JSTRING_NEW(temp);
|
||||
}
|
||||
free(temp);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* DcChatlist
|
||||
@@ -862,16 +1008,22 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isVerified(JNIEnv *env, jobjec
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jintArray Java_com_b44t_messenger_DcContext_getChatMedia(JNIEnv *env, jobject obj, jint chat_id, jint msg_type, jint or_msg_type)
|
||||
JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isSendingLocations(JNIEnv *env, jobject obj)
|
||||
{
|
||||
dc_array_t* ca = dc_get_chat_media(get_dc_context(env, obj), chat_id, msg_type, or_msg_type);
|
||||
return dc_chat_is_sending_locations(get_dc_chat(env, obj))!=0;
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jintArray Java_com_b44t_messenger_DcContext_getChatMedia(JNIEnv *env, jobject obj, jint chat_id, jint type1, jint type2, jint type3)
|
||||
{
|
||||
dc_array_t* ca = dc_get_chat_media(get_dc_context(env, obj), chat_id, type1, type2, type3);
|
||||
return dc_array2jintArray_n_unref(env, ca);
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jint Java_com_b44t_messenger_DcContext_getNextMedia(JNIEnv *env, jobject obj, jint msg_id, jint dir)
|
||||
JNIEXPORT jint Java_com_b44t_messenger_DcContext_getNextMedia(JNIEnv *env, jobject obj, jint msg_id, jint dir, jint type1, jint type2, jint type3)
|
||||
{
|
||||
return dc_get_next_media(get_dc_context(env, obj), msg_id, dir);
|
||||
return dc_get_next_media(get_dc_context(env, obj), msg_id, dir, type1, type2, type3);
|
||||
}
|
||||
|
||||
|
||||
@@ -953,6 +1105,18 @@ JNIEXPORT jlong Java_com_b44t_messenger_DcMsg_getTimestamp(JNIEnv *env, jobject
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jlong Java_com_b44t_messenger_DcMsg_getSortTimestamp(JNIEnv *env, jobject obj)
|
||||
{
|
||||
return JTIMESTAMP(dc_msg_get_sort_timestamp(get_dc_msg(env, obj)));
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jboolean Java_com_b44t_messenger_DcMsg_hasDeviatingTimestamp(JNIEnv *env, jobject obj)
|
||||
{
|
||||
return dc_msg_has_deviating_timestamp(get_dc_msg(env, obj))!=0;
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jint Java_com_b44t_messenger_DcMsg_getType(JNIEnv *env, jobject obj)
|
||||
{
|
||||
return dc_msg_get_viewtype(get_dc_msg(env, obj));
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
## Google Play Services 4.3.23 specific rules ##
|
||||
## https://developer.android.com/google/play-services/setup.html#Proguard ##
|
||||
|
||||
-keep class * extends java.util.ListResourceBundle {
|
||||
protected Object[][] getContents();
|
||||
}
|
||||
|
||||
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
|
||||
public static final *** NULL;
|
||||
}
|
||||
|
||||
-keepnames @com.google.android.gms.common.annotation.KeepName class *
|
||||
-keepclassmembernames class * {
|
||||
@com.google.android.gms.common.annotation.KeepName *;
|
||||
}
|
||||
|
||||
-keepnames class * implements android.os.Parcelable {
|
||||
public static final ** CREATOR;
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
/**
|
||||
* Copyright (C) 2018 Open Whisper Systems
|
||||
*
|
||||
* Licensed according to the LICENSE file in this repository.
|
||||
*/
|
||||
|
||||
package signal;
|
||||
|
||||
option java_package = "org.thoughtcrime.securesms.backup";
|
||||
option java_outer_classname = "BackupProtos";
|
||||
|
||||
message SqlStatement {
|
||||
message SqlParameter {
|
||||
optional string stringParamter = 1;
|
||||
optional uint64 integerParameter = 2;
|
||||
optional double doubleParameter = 3;
|
||||
optional bytes blobParameter = 4;
|
||||
optional bool nullparameter = 5;
|
||||
}
|
||||
|
||||
optional string statement = 1;
|
||||
repeated SqlParameter parameters = 2;
|
||||
}
|
||||
|
||||
message SharedPreference {
|
||||
optional string file = 1;
|
||||
optional string key = 2;
|
||||
optional string value = 3;
|
||||
}
|
||||
|
||||
message Attachment {
|
||||
optional uint64 rowId = 1;
|
||||
optional uint64 attachmentId = 2;
|
||||
optional uint32 length = 3;
|
||||
}
|
||||
|
||||
message Avatar {
|
||||
optional string name = 1;
|
||||
optional uint32 length = 2;
|
||||
}
|
||||
|
||||
message DatabaseVersion {
|
||||
optional uint32 version = 1;
|
||||
}
|
||||
|
||||
message Header {
|
||||
optional bytes iv = 1;
|
||||
optional bytes salt = 2;
|
||||
}
|
||||
|
||||
message BackupFrame {
|
||||
optional Header header = 1;
|
||||
optional SqlStatement statement = 2;
|
||||
optional SharedPreference preference = 3;
|
||||
optional Attachment attachment = 4;
|
||||
optional DatabaseVersion version = 5;
|
||||
optional bool end = 6;
|
||||
optional Avatar avatar = 7;
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
|
||||
all:
|
||||
protoc --java_out=../src/ WebRtcData.proto Backups.proto
|
||||
@@ -1,31 +0,0 @@
|
||||
/**
|
||||
* Copyright (C) 2014-2016 Open Whisper Systems
|
||||
*
|
||||
* Licensed according to the LICENSE file in this repository.
|
||||
*/
|
||||
|
||||
package signal;
|
||||
|
||||
option java_package = "org.thoughtcrime.securesms.webrtc";
|
||||
option java_outer_classname = "WebRtcDataProtos";
|
||||
|
||||
message Connected {
|
||||
optional uint64 id = 1;
|
||||
}
|
||||
|
||||
message Hangup {
|
||||
optional uint64 id = 1;
|
||||
}
|
||||
|
||||
message VideoStreamingStatus {
|
||||
optional uint64 id = 1;
|
||||
optional bool enabled = 2;
|
||||
}
|
||||
|
||||
message Data {
|
||||
|
||||
optional Connected connected = 1;
|
||||
optional Hangup hangup = 2;
|
||||
optional VideoStreamingStatus videoStreamingStatus = 3;
|
||||
|
||||
}
|
||||
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 585 B |
|
Before Width: | Height: | Size: 196 B |
|
Before Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 427 B |
|
After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 220 B |
|
Before Width: | Height: | Size: 449 B |
|
After Width: | Height: | Size: 410 B |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 284 B |
|
Before Width: | Height: | Size: 341 B |
|
Before Width: | Height: | Size: 386 B |
|
Before Width: | Height: | Size: 353 B |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 133 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 159 B |
|
Before Width: | Height: | Size: 361 B |
|
Before Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 799 B |
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/textsecure_primary">
|
||||
android:color="@color/delta_primary">
|
||||
<item android:id="@android:id/mask" android:drawable="@android:color/black" />
|
||||
<item>
|
||||
<selector>
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_selected="true" />
|
||||
</selector>
|
||||
</item>
|
||||
</ripple>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/textsecure_primary">
|
||||
android:color="@color/delta_primary">
|
||||
<item android:id="@android:id/mask" android:drawable="@android:color/black" />
|
||||
<item>
|
||||
<selector>
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_selected="true" />
|
||||
</selector>
|
||||
</item>
|
||||
</ripple>
|
||||
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 758 B |
|
Before Width: | Height: | Size: 158 B |
|
Before Width: | Height: | Size: 328 B |
|
After Width: | Height: | Size: 811 B |
|
After Width: | Height: | Size: 490 B |
|
Before Width: | Height: | Size: 245 B |
|
Before Width: | Height: | Size: 471 B |
|
After Width: | Height: | Size: 522 B |
|
Before Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 378 B |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 213 B |
|
Before Width: | Height: | Size: 381 B |
|
After Width: | Height: | Size: 739 B |
|
Before Width: | Height: | Size: 308 B |
|
Before Width: | Height: | Size: 421 B |
|
After Width: | Height: | Size: 829 B |
|
Before Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 502 B |
|
After Width: | Height: | Size: 848 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
|
||||
<stroke android:width="2px" android:color="?attr/conversation_list_item_date_color"/>
|
||||
<!-- read issue: https://github.com/deltachat/deltachat-android/issues/480 before introducing an attr here. -->
|
||||
<stroke android:width="2px" android:color="@color/core_light_60"/>
|
||||
<corners android:radius="1dp"/>
|
||||
</shape>
|
||||
</shape>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<solid android:color="?attr/floating_mini_button_bg_color" />
|
||||
</shape>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<solid android:color="?attr/send_button_color" />
|
||||
</shape>
|
||||
@@ -1,17 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape android:shape="rectangle">
|
||||
<size android:height="30dp" android:width="30dp"/>
|
||||
<solid android:color="@color/grey_400_transparent"/>
|
||||
<corners android:bottomLeftRadius="0dp" android:topLeftRadius="0dp" android:topRightRadius="0dp" android:bottomRightRadius="@dimen/message_bubble_corner_radius"/>
|
||||
<shape android:shape="oval">
|
||||
<size android:height="42dp" android:width="42dp"/>
|
||||
<solid android:color="@color/universal_overlay"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item android:drawable="@drawable/ic_create_white_24dp"
|
||||
android:left="5dp"
|
||||
android:right="5dp"
|
||||
android:top="5dp"
|
||||
android:bottom="5dp"
|
||||
android:left="7dp"
|
||||
android:right="7dp"
|
||||
android:top="7dp"
|
||||
android:bottom="7dp"
|
||||
android:scaleType="centerInside">
|
||||
</item>
|
||||
</layer-list>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/primary_alpha_focus" android:state_focused="true" />
|
||||
</selector>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="1000">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/primary_alpha_focus" android:state_focused="true" />
|
||||
</selector>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="?attr/conversation_item_update_bg_color" />
|
||||
<!-- read issue: https://github.com/deltachat/deltachat-android/issues/480 before introducing an attr here. -->
|
||||
<solid android:color="@color/universal_overlay" />
|
||||
<corners android:radius="8dp" />
|
||||
</shape>
|
||||
</shape>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:left="83dp">
|
||||
<item android:left="0dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/gray12" />
|
||||
<size android:height="1px" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:left="83dp">
|
||||
<item android:left="0dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#33ffffff" />
|
||||
<size android:height="1px" />
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/primary_alpha_focus" android:state_focused="true" />
|
||||
</selector>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/primary_alpha_focus" android:state_focused="true" />
|
||||
</selector>
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
|
||||
<solid android:color="@color/white"/>
|
||||
<size android:width="12dp" android:height="12dp"/>
|
||||
<padding android:right="5dp"/>
|
||||
<padding android:left="5dp"/>
|
||||
<padding android:top="5dp"/>
|
||||
<padding android:bottom="5dp"/>
|
||||
</shape>
|
||||
@@ -3,10 +3,6 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:startColor="#aa000000"
|
||||
android:centerColor="#88000000"
|
||||
android:endColor="#00000000"/>
|
||||
<solid android:color="#00000000" />
|
||||
|
||||
</shape>
|
||||
@@ -1,16 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- <item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners
|
||||
android:topLeftRadius="@dimen/message_corner_radius"
|
||||
android:topRightRadius="@dimen/message_corner_radius"
|
||||
android:bottomRightRadius="@dimen/message_corner_radius"
|
||||
android:bottomLeftRadius="@dimen/message_corner_collapse_radius" />
|
||||
<solid android:color="?attr/conversation_item_incoming_bubble_border_color" />
|
||||
</shape>
|
||||
</item> -->
|
||||
<item
|
||||
android:top="2px"
|
||||
android:bottom="2px">
|
||||
@@ -18,8 +8,8 @@
|
||||
<corners
|
||||
android:topLeftRadius="@dimen/message_corner_radius"
|
||||
android:topRightRadius="@dimen/message_corner_radius"
|
||||
android:bottomRightRadius="@dimen/message_corner_radius"
|
||||
android:bottomLeftRadius="@dimen/message_corner_collapse_radius" />
|
||||
android:bottomRightRadius="@dimen/message_corner_radius" />
|
||||
<!-- read issue: https://github.com/deltachat/deltachat-android/issues/480 before introducing an attr here. -->
|
||||
<solid android:color="@color/white" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- <item>
|
||||
<shape android:shape="rectangle">
|
||||
<corners
|
||||
android:topLeftRadius="@dimen/message_corner_radius"
|
||||
android:topRightRadius="@dimen/message_corner_radius"
|
||||
android:bottomRightRadius="@dimen/message_corner_collapse_radius"
|
||||
android:bottomLeftRadius="@dimen/message_corner_radius" />
|
||||
<solid android:color="?attr/conversation_item_outgoing_bubble_border_color" />
|
||||
</shape>
|
||||
</item> -->
|
||||
<item
|
||||
android:top="2px"
|
||||
android:bottom="2px">
|
||||
@@ -18,9 +8,9 @@
|
||||
<corners
|
||||
android:topLeftRadius="@dimen/message_corner_radius"
|
||||
android:topRightRadius="@dimen/message_corner_radius"
|
||||
android:bottomRightRadius="@dimen/message_corner_collapse_radius"
|
||||
android:bottomLeftRadius="@dimen/message_corner_radius" />
|
||||
<!-- read issue: https://github.com/deltachat/deltachat-android/issues/480 before introducing an attr here. -->
|
||||
<solid android:color="@color/white" />
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
</layer-list>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
android:thickness="8dp"
|
||||
android:useLevel="false">
|
||||
|
||||
<solid android:color="@color/blue_400"/>
|
||||
<solid android:color="@color/delta_accent"/>
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
|
||||
<solid android:color="?attr/dialog_background_color"/>
|
||||
<corners android:radius="20dp"/>
|
||||
</shape>
|
||||
@@ -4,14 +4,7 @@
|
||||
<item>
|
||||
<shape>
|
||||
<padding android:top="1dp" android:right="0dp" android:bottom="0dp" android:left="0dp" />
|
||||
<solid android:color="#101010" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<shape>
|
||||
<padding android:top="1dp" android:right="0dp" android:bottom="0dp" android:left="0dp" />
|
||||
<solid android:color="#222222" />
|
||||
<solid android:color="#000000" />
|
||||
<size android:height="20dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true"
|
||||
android:color="@color/textsecure_primary"/>
|
||||
android:color="@color/delta_primary"/>
|
||||
<item android:state_focused="true"
|
||||
android:color="@color/textsecure_primary"/>
|
||||
android:color="@color/delta_primary"/>
|
||||
<item android:state_enabled="false"
|
||||
android:color="@color/textsecure_primary"/>
|
||||
android:color="@color/delta_primary"/>
|
||||
<item android:state_enabled="true"
|
||||
android:color="@color/textsecure_primary"/>
|
||||
android:color="@color/delta_primary"/>
|
||||
</selector>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true" android:drawable="@color/signal_primary" />
|
||||
<item android:state_focused="true" android:drawable="@color/signal_primary" />
|
||||
<item android:drawable="@color/signal_primary_dark" />
|
||||
<item android:state_pressed="true" android:drawable="@color/delta_primary" />
|
||||
<item android:state_focused="true" android:drawable="@color/delta_primary" />
|
||||
<item android:drawable="@color/delta_primary_dark" />
|
||||
</selector>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true" android:drawable="@color/touch_highlight" />
|
||||
<item android:state_focused="true" android:drawable="@color/signal_primary" />
|
||||
<item android:state_focused="true" android:drawable="@color/delta_primary" />
|
||||
<item android:drawable="@android:color/transparent" />
|
||||
</selector>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".map.MapActivity">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"/>
|
||||
|
||||
<include layout="@layout/bottom_map_sheet" />
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||