mirror of https://github.com/tasks/tasks
Compare commits
1606 Commits
Author | SHA1 | Date |
---|---|---|
Alex Baker | ac00a81751 | 15 hours ago |
Alex Baker | cf6ff06843 | 16 hours ago |
Alex Baker | 4e9342d75e | 16 hours ago |
Alex Baker | f95b7059bf | 16 hours ago |
Alex Baker | ec14d5f02b | 16 hours ago |
Alex Baker | f941141cff | 16 hours ago |
renovate[bot] | 4c44b7a9a3 | 16 hours ago |
renovate[bot] | 12d9bd7acf | 16 hours ago |
Alex Baker | fb5038c50e | 16 hours ago |
renovate[bot] | 5e60af1a65 | 16 hours ago |
renovate[bot] | 9cf76ab124 | 16 hours ago |
dependabot[bot] | 4abfd4b30e | 16 hours ago |
Josep Mengual | d9b0bc5925 | 16 hours ago |
Anonymous | e15656282c | 16 hours ago |
atmosphericignition | d2ee2b18bb | 16 hours ago |
Don | 1e1d1fc481 | 16 hours ago |
tct123 | a216b4bac6 | 16 hours ago |
Josep Mengual | 331593b145 | 16 hours ago |
abc0922001 | 1d3ad03c58 | 16 hours ago |
raulmagdalena | 830dc77179 | 16 hours ago |
Don | f075266bcb | 16 hours ago |
Don | 065264fb85 | 16 hours ago |
atmosphericignition | 65af76bd72 | 16 hours ago |
Alex Baker | 8dc11dbe93 | 16 hours ago |
renovate[bot] | 26e5e2c29b | 17 hours ago |
renovate[bot] | 3986fe1431 | 2 months ago |
renovate[bot] | ceac030ca5 | 2 months ago |
renovate[bot] | 66ef650e2c | 2 months ago |
renovate[bot] | 73529cfe35 | 2 months ago |
renovate[bot] | 41e2ee3416 | 2 months ago |
Don Zouras | 456d063243 | 2 months ago |
Abdullhakim Sami Alshanqiti | aff90cb740 | 2 months ago |
Don Zouras | ecfdac5401 | 2 months ago |
tct123 | 0f8199b1c8 | 2 months ago |
Luna | d7f77913ff | 2 months ago |
Don Zouras | a4d1b683dd | 2 months ago |
bittin1ddc447d824349b2 | 4d5b1a604a | 2 months ago |
bittin1ddc447d824349b2 | f6e103d4e1 | 2 months ago |
Anonymous | 1e3850127e | 2 months ago |
Ettore Atalan | e24eb0d933 | 2 months ago |
dependabot[bot] | 13d4c029e8 | 2 months ago |
renovate[bot] | 17bb50efb4 | 2 months ago |
renovate[bot] | 8b685da563 | 2 months ago |
dependabot[bot] | 6dce036427 | 2 months ago |
renovate[bot] | a6c05fe600 | 2 months ago |
renovate[bot] | adb4d20c12 | 2 months ago |
Alex Baker | 865cec7220 | 2 months ago |
Jose Delvani | fcc4b2ef2a | 2 months ago |
Luna | 2a194bdcb0 | 2 months ago |
Pierfrancesco Passerini | 0b463fe331 | 2 months ago |
Luna | 0b34b2630c | 2 months ago |
renovate[bot] | 46cc225ceb | 2 months ago |
renovate[bot] | 34750e052c | 2 months ago |
renovate[bot] | 71cdabad8b | 2 months ago |
Jose Delvani | ffd5806bc8 | 2 months ago |
Pierfrancesco Passerini | 33734e031f | 2 months ago |
Kat Alimpieva | b67f849c53 | 2 months ago |
Jose Delvani | e88220cc70 | 2 months ago |
RonnyAL182e77f4e26446af | b4ced4698a | 2 months ago |
Alex Baker | 4aee7ee2fe | 2 months ago |
Alex Baker | 3ab672bfbc | 2 months ago |
Alex Baker | f66df67592 | 2 months ago |
renovate[bot] | 4f3df04921 | 2 months ago |
Alex Baker | 25557579f9 | 2 months ago |
Jonatan Nyberg | 40ec1d86f7 | 2 months ago |
Tntdruid | 42d4cbc7fb | 2 months ago |
Milo Ivir | fb2cd132de | 2 months ago |
Marc Van Impe | 435c42920d | 2 months ago |
Tntdruid | 8373e8238e | 2 months ago |
Milo Ivir | e1f50c5cf4 | 2 months ago |
renovate[bot] | 75f1f057aa | 2 months ago |
Alex Baker | 2566b86fec | 3 months ago |
Alex Baker | e6cb93c57d | 3 months ago |
Alex Baker | 5314736958 | 3 months ago |
Alex Baker | 12f8ba360c | 3 months ago |
Alex Baker | 5f0b6b668a | 3 months ago |
109247019824 | aadcb6355f | 3 months ago |
renovate[bot] | 4491eb1cc6 | 3 months ago |
renovate[bot] | 6d023303cf | 3 months ago |
renovate[bot] | 81dd8fc2ea | 3 months ago |
renovate[bot] | bb7209a07f | 3 months ago |
renovate[bot] | a7b92ecb4b | 3 months ago |
Alex Baker | c2bd95ed06 | 3 months ago |
Alex Baker | da1139f6a4 | 3 months ago |
Alex Baker | 0ba6164ac9 | 3 months ago |
Alex Baker | 9894919f49 | 3 months ago |
Alex Baker | 7731b90672 | 3 months ago |
Alex Baker | 8f4514fc78 | 3 months ago |
Alex Baker | d3421bd0c3 | 3 months ago |
renovate[bot] | 65f3240ce6 | 3 months ago |
renovate[bot] | c9f4242c2a | 3 months ago |
renovate[bot] | 4cdf7efef2 | 3 months ago |
renovate[bot] | b45588410d | 3 months ago |
Alex Baker | 8f68811a59 | 3 months ago |
Alex Baker | 93f1735965 | 3 months ago |
Alex Baker | 686b141bb8 | 3 months ago |
Alex Baker | 41f8835717 | 3 months ago |
Alex Baker | 1acb2a3658 | 3 months ago |
renovate[bot] | 6275dfbd36 | 3 months ago |
Alex Baker | bd7ad1ad9d | 3 months ago |
Alex Baker | 64ad4ca33a | 3 months ago |
Alex Baker | 6700ce5aa1 | 3 months ago |
Ihor Hordiichuk | 0422412cb9 | 3 months ago |
Alex Baker | e7ce174ffe | 3 months ago |
Ihor Hordiichuk | 4956a136fa | 3 months ago |
Alex Baker | a067651c23 | 3 months ago |
Alex Baker | 83e43ba72c | 3 months ago |
Alex Baker | f8633bbd63 | 3 months ago |
Alex Baker | ddfedb58ae | 3 months ago |
Alex Baker | ca5b7daa36 | 3 months ago |
Alex Baker | ba8d56cc96 | 3 months ago |
Alex Baker | a538c25dcc | 3 months ago |
Alex Baker | 939f801382 | 3 months ago |
Alex Baker | dbff9758ef | 3 months ago |
Josep Torrens | beb44f7634 | 3 months ago |
Sergi Ventosa Ordóñez | 131ab0747f | 3 months ago |
hugoalh | 21ebf7c867 | 3 months ago |
大王叫我来巡山 | 27c0530825 | 3 months ago |
Jose Delvani | 1fc04af48e | 3 months ago |
Florian Trayon | 6622f16b14 | 3 months ago |
gallegonovato | b2d2a614de | 3 months ago |
109247019824 | f7211a45e0 | 3 months ago |
Oğuz Ersen | e7140fd042 | 3 months ago |
Alex Baker | 00d2ef4916 | 3 months ago |
大王叫我来巡山 | bf818ee817 | 3 months ago |
hugoalh | 15cc9c1b56 | 3 months ago |
Florian Trayon | 31aea94d07 | 3 months ago |
gallegonovato | 82ae20bfc8 | 3 months ago |
109247019824 | 94b7e04444 | 3 months ago |
Jose Delvani | ae1c15cd1e | 3 months ago |
Oğuz Ersen | edb09ebbb5 | 3 months ago |
Alex Baker | eef736a3c1 | 3 months ago |
Alex Baker | 95bc9aa6f2 | 3 months ago |
Alex Baker | 33798b3255 | 3 months ago |
Alex Baker | 053cffd389 | 3 months ago |
Alex Baker | bf3da3249d | 3 months ago |
Alex Baker | 05fbdaba88 | 3 months ago |
Alex Baker | b4b5d8d80f | 3 months ago |
Alex Baker | 86f23a0768 | 3 months ago |
Alex Baker | 72759e67d2 | 3 months ago |
Alex Baker | ae6b068b66 | 3 months ago |
Alex Baker | 0ce07152cf | 3 months ago |
Alex Baker | ec94d92e11 | 3 months ago |
Alex Baker | 2c62d928d3 | 3 months ago |
Alex Baker | 4c727722c3 | 3 months ago |
Alex Baker | bfe8d1c929 | 3 months ago |
Alex Baker | 9cd8af6d78 | 3 months ago |
Alex Baker | 08da2f56a6 | 3 months ago |
Alex Baker | 7d52d58f3d | 3 months ago |
Alex Baker | 282042538c | 3 months ago |
Alex Baker | 8ccab99f23 | 3 months ago |
Alex Baker | f459541902 | 3 months ago |
renovate[bot] | c2feb2144f | 3 months ago |
renovate[bot] | 22366a8de6 | 3 months ago |
renovate[bot] | 5ae53e63ff | 3 months ago |
CSharpest | 00c3a117ac | 3 months ago |
Rami Lehtinen | 922dd861b0 | 3 months ago |
Alex Baker | 4770acbd65 | 3 months ago |
Alex Baker | 45911b149a | 3 months ago |
Alex Baker | 9f7dfc11ec | 3 months ago |
Alex Baker | 0b76553122 | 3 months ago |
Alex Baker | 8ac5d51308 | 3 months ago |
Alex Baker | 4f2d676ae4 | 3 months ago |
Alex Baker | 59d81f5755 | 3 months ago |
Alex Baker | 8547fa2459 | 3 months ago |
Milo Ivir | 6bb1a9748c | 3 months ago |
gallegonovato | 81a0034cba | 3 months ago |
renovate[bot] | 475ff37d70 | 3 months ago |
renovate[bot] | 2015f8d0ef | 3 months ago |
Alex Baker | 8c9b996cb8 | 3 months ago |
Alex Baker | 87ae179efc | 3 months ago |
Alex Baker | 79ebc9a2c7 | 3 months ago |
Alex Baker | bf4167651b | 3 months ago |
renovate[bot] | b990716502 | 3 months ago |
Alex Baker | 285b0a9486 | 3 months ago |
Alex Baker | 01a788bdb6 | 3 months ago |
大王叫我来巡山 | 12c7170a0b | 3 months ago |
Oğuz Ersen | aa278922f5 | 3 months ago |
Jose Delvani | 2be5d3bbbc | 3 months ago |
renovate[bot] | 7673710d44 | 3 months ago |
Alex Baker | cb31651c2a | 3 months ago |
Alex Baker | fb7960bf26 | 3 months ago |
renovate[bot] | fecfea8df5 | 3 months ago |
Alex Baker | 6ce170533e | 3 months ago |
Alex Baker | ad4d938b94 | 3 months ago |
renovate[bot] | 1702249abc | 3 months ago |
renovate[bot] | b52d954731 | 3 months ago |
Alex Baker | a1a02faf3d | 3 months ago |
Alex Baker | 9307b8fb7d | 3 months ago |
Alex Baker | 8b345316a8 | 3 months ago |
Alex Baker | ab0f123c8a | 3 months ago |
renovate[bot] | 36a28b6210 | 3 months ago |
renovate[bot] | d2ae1008f5 | 3 months ago |
Alex Baker | 17af8ab373 | 3 months ago |
renovate[bot] | e78d452d7b | 3 months ago |
renovate[bot] | e9ddf29b9c | 3 months ago |
renovate[bot] | 898c88bec9 | 3 months ago |
renovate[bot] | 184e7def49 | 3 months ago |
Alex Baker | d8186e5fe4 | 3 months ago |
Alex Baker | a4cd0829b0 | 4 months ago |
Alex Baker | 9a693177db | 4 months ago |
Alex Baker | 58955bd0a1 | 4 months ago |
renovate[bot] | 95ecac8e7c | 4 months ago |
renovate[bot] | 57395423c6 | 4 months ago |
renovate[bot] | b1613e9845 | 4 months ago |
renovate[bot] | dcd70c7bc2 | 4 months ago |
Alex Baker | c1e2eb7cd0 | 4 months ago |
Alex Baker | 145ea03714 | 4 months ago |
Alex Baker | bada09f5c2 | 4 months ago |
Alex Baker | 007c536312 | 4 months ago |
renovate[bot] | 28de989a05 | 4 months ago |
Alex Baker | 97c3852f2f | 4 months ago |
hugoalh | f739cac8b4 | 4 months ago |
min7-i | cd6a474cce | 4 months ago |
Jose Delvani | 4ffc11903e | 4 months ago |
Jose Delvani | 70d6cc63ca | 4 months ago |
islam2hamy | 6e97e602c9 | 4 months ago |
Alex Baker | 3251becf9b | 4 months ago |
Alex Baker | d9293c7262 | 4 months ago |
Alex Baker | 929a01cd8c | 4 months ago |
Alex Baker | 0d5803b9ca | 4 months ago |
Alex Baker | bbaaf27386 | 4 months ago |
Alex Baker | 4c1121869d | 4 months ago |
Alex Baker | b918e87e05 | 4 months ago |
Alex Baker | df8f637239 | 4 months ago |
Alex Baker | 9fad43c6c9 | 4 months ago |
Alex Baker | eb95cd24d7 | 4 months ago |
Alex Baker | 30cb374a21 | 4 months ago |
Alex Baker | b09a8967e4 | 4 months ago |
Alex Baker | 39b56296bd | 4 months ago |
Alex Baker | 1d8d2efce6 | 4 months ago |
Alex Baker | c9af39b6ba | 4 months ago |
renovate[bot] | f8bb045d76 | 4 months ago |
renovate[bot] | 4040a2379b | 4 months ago |
Alex Baker | c4ee7479ca | 4 months ago |
Alex Baker | be861597ef | 4 months ago |
Alex Baker | f27332595d | 4 months ago |
Alex Baker | ea7f051d85 | 4 months ago |
Alex Baker | 8be7fab033 | 4 months ago |
Alex Baker | d6e0c0bdcf | 4 months ago |
Alex Baker | 5ec02011f8 | 4 months ago |
Alex Baker | b35090cd43 | 4 months ago |
renovate[bot] | 92f62450ae | 4 months ago |
renovate[bot] | 3ca6912492 | 4 months ago |
renovate[bot] | 080b1428dd | 4 months ago |
Alex Baker | f67c3bc56c | 4 months ago |
renovate[bot] | 5d0e88a620 | 4 months ago |
renovate[bot] | c5d5795fe2 | 4 months ago |
renovate[bot] | 3bbc0e0ab0 | 4 months ago |
Alex Baker | 009a195580 | 4 months ago |
renovate[bot] | 772f69d8c0 | 4 months ago |
renovate[bot] | 4229bf7067 | 4 months ago |
Alex Baker | 212a4b0a3d | 4 months ago |
Alex Baker | 4ddfe937b0 | 4 months ago |
Alex Baker | 19de0e08a5 | 4 months ago |
Alex Baker | 60211355e0 | 4 months ago |
Alex Baker | 17d218aa4e | 4 months ago |
Alex Baker | 505c8c29d5 | 4 months ago |
Alex Baker | 7149308c97 | 4 months ago |
Alex Baker | 2c5a497007 | 4 months ago |
Alex Baker | 09f53fe1e5 | 4 months ago |
Alex Baker | 5da4183aed | 4 months ago |
Alex Baker | d35912e503 | 4 months ago |
renovate[bot] | 82fd99f83e | 4 months ago |
renovate[bot] | f944becea1 | 4 months ago |
Alex Baker | acd713dc5b | 4 months ago |
Alex Baker | 1a93c87ad9 | 4 months ago |
Alex Baker | c4e25b8b15 | 4 months ago |
Alex Baker | e11c0d2528 | 4 months ago |
Alex Baker | 2fc6833854 | 4 months ago |
Alex Baker | 4a2fb13d10 | 4 months ago |
Alex Baker | a2572e2dee | 4 months ago |
Alex Baker | 64e05c9f8f | 4 months ago |
Alex Baker | ad833b5f49 | 4 months ago |
Alex Baker | eea944cc7b | 4 months ago |
Alex Baker | c82dfc7d39 | 4 months ago |
Alex Baker | 8607f9556a | 4 months ago |
Alex Baker | f338e84d46 | 4 months ago |
Alex Baker | 9ee739627e | 4 months ago |
Alex Baker | a49c233584 | 4 months ago |
Alex Baker | 74fca07c1b | 4 months ago |
Alex Baker | 5bd0cef42e | 4 months ago |
Alex Baker | 4c245edbb4 | 4 months ago |
Alex Baker | 97a3f074d0 | 4 months ago |
Alex Baker | 86ecd3cf81 | 4 months ago |
Alex Baker | 07a2eda5ea | 4 months ago |
renovate[bot] | 09ffbdd036 | 4 months ago |
renovate[bot] | 60f22146ca | 4 months ago |
renovate[bot] | c11225abaf | 4 months ago |
dependabot[bot] | 133ea493e3 | 4 months ago |
Alex Baker | 0ba901be69 | 5 months ago |
Alex Baker | ebe5e5c009 | 5 months ago |
Alex Baker | d556863fda | 5 months ago |
Alex Baker | 55adbc2025 | 5 months ago |
Alex Baker | 06c4255886 | 5 months ago |
renovate[bot] | 4734a99bae | 5 months ago |
Alex Baker | a6a8cac8e4 | 5 months ago |
Alex Baker | c3fc9a57cc | 5 months ago |
Alex Baker | 6e14d07d0c | 5 months ago |
Alex Baker | 6118121698 | 5 months ago |
Alex Baker | 6bf3bd4d08 | 5 months ago |
Alex Baker | 065be79355 | 5 months ago |
Alex Baker | f8f8ba3c51 | 5 months ago |
Alex Baker | 89465f36b3 | 5 months ago |
Alex Baker | 1380a34ffa | 5 months ago |
Alex Baker | 10af5280a3 | 5 months ago |
Alex Baker | 8c0f7b952d | 5 months ago |
Alex Baker | 65362b203f | 5 months ago |
Alex Baker | 3327f97a17 | 5 months ago |
Alex Baker | c9fc02a42e | 5 months ago |
renovate[bot] | 93670bb9e4 | 5 months ago |
Alex Baker | 1fc6a50d0b | 5 months ago |
Alex Baker | e1ef924909 | 5 months ago |
Alex Baker | 686cb5d346 | 5 months ago |
renovate[bot] | ebec25c4cb | 5 months ago |
renovate[bot] | c140f7e673 | 5 months ago |
renovate[bot] | efbcf11a4a | 5 months ago |
renovate[bot] | 6adee85a37 | 5 months ago |
Alex Baker | 5c8643110b | 5 months ago |
Alex Baker | abd13aeb75 | 5 months ago |
Alex Baker | c210fe1893 | 5 months ago |
Alex Baker | 26aa916c20 | 5 months ago |
renovate[bot] | 1eff2d1cd5 | 5 months ago |
islam2hamy | c90e683ea3 | 5 months ago |
Alex Baker | 3cd0295b71 | 5 months ago |
Alex Baker | 95c351e9fd | 5 months ago |
renovate[bot] | 4ddb7816f1 | 5 months ago |
renovate[bot] | 91c30f7bbf | 5 months ago |
renovate[bot] | 3f4398b6e0 | 5 months ago |
renovate[bot] | c822e989a3 | 5 months ago |
renovate[bot] | da146723e5 | 5 months ago |
109247019824 | 931626c84a | 5 months ago |
Alex Baker | c534632c52 | 5 months ago |
Alex Baker | c1347a7455 | 5 months ago |
renovate[bot] | 9544909a58 | 5 months ago |
Yurt Page | 5c10dce2b9 | 5 months ago |
Alex Baker | 584d4a5cbb | 5 months ago |
Alex Baker | 7c68a7fa59 | 5 months ago |
purushottamyadavbattula | 215cc838ef | 5 months ago |
Alex Baker | d60472d1bc | 5 months ago |
Alex Baker | f84a37a60a | 5 months ago |
Alex Baker | 7fb85b6da1 | 5 months ago |
Alex Baker | dc90e583e4 | 5 months ago |
Don Zouras | 0eac5f61eb | 5 months ago |
Milo Ivir | c686ce883d | 5 months ago |
大王叫我来巡山 | ab25398cd0 | 5 months ago |
renovate[bot] | 3b1c133d22 | 5 months ago |
renovate[bot] | 3bfd0ab4f8 | 5 months ago |
Liz de Sartiges | ffc0113d7f | 5 months ago |
Don Zouras | 9de9718ad5 | 5 months ago |
Oğuz Ersen | a7d2c9c406 | 5 months ago |
gallegonovato | b3006b9ac2 | 5 months ago |
Don Zouras | de3ef1f9c9 | 5 months ago |
Alex Baker | ce9e722a3f | 5 months ago |
Alex Baker | 4b892a0eb1 | 5 months ago |
Hady | e6e275834a | 5 months ago |
Alex Baker | 782f4d6d7c | 5 months ago |
elmuffo | a1da71d3e1 | 5 months ago |
Alex Baker | c793a300cc | 5 months ago |
Ilya Bizyaev | bf84bf9e82 | 5 months ago |
SC | 363b29babb | 6 months ago |
min7-i | c1ff953f5c | 6 months ago |
Alex Baker | 63482e5db9 | 6 months ago |
Emin Tufan Çetin | 2f7dc0c7f1 | 6 months ago |
Lionel HANNEQUIN | d672507fae | 6 months ago |
Jonatan Nyberg | ce2a3c8a3f | 6 months ago |
sorifukobexomajepasiricupuva33 | 9cd114d68b | 6 months ago |
Patrick V. Leguizamon | 0e663f0e08 | 6 months ago |
Mayhm | 1d1efd008d | 6 months ago |
Alex Baker | 26ab3d5866 | 6 months ago |
Mayhm | 9a4fcbbd39 | 6 months ago |
Alex Baker | 72bfda9224 | 6 months ago |
Alex Baker | 1067de4183 | 6 months ago |
Alex Baker | d686b8c7e0 | 6 months ago |
Alex Baker | b2efb42d55 | 6 months ago |
Fabio Parri | 3448808c94 | 6 months ago |
Alex Baker | 06a9626052 | 6 months ago |
Alex Baker | e92ab7f7e1 | 6 months ago |
Alex Baker | 4ff7b18c0f | 6 months ago |
Alex Baker | 91887f6b17 | 6 months ago |
Alex Baker | cf30b56098 | 6 months ago |
Alex Baker | 9bcadaab5a | 6 months ago |
Alex Baker | be766074b0 | 6 months ago |
Ihor Hordiichuk | 64a42a3f61 | 6 months ago |
Mayhm | 7b65ba6f06 | 6 months ago |
109247019824 | ac2b270e9e | 6 months ago |
Alex Baker | db2ea0a039 | 6 months ago |
renovate[bot] | 08b78fe9f4 | 6 months ago |
Alex Baker | 1a1301ae3e | 6 months ago |
Milo Ivir | d00061aa7f | 6 months ago |
大王叫我来巡山 | 45add6ab32 | 6 months ago |
Pierfrancesco Passerini | af43737c4e | 6 months ago |
macpac59 | dd40e59b17 | 6 months ago |
gallegonovato | 13f3248a01 | 6 months ago |
renovate[bot] | f6972e3e30 | 6 months ago |
Alex Baker | 83cf48a836 | 6 months ago |
Alex Baker | b7b4747a04 | 6 months ago |
Alex Baker | 6bec2ceef0 | 6 months ago |
Milo Ivir | d1e60d6512 | 6 months ago |
bittin1ddc447d824349b2 | 2b85089d3a | 6 months ago |
ferranpujolcamins | 2a0ef9feb6 | 6 months ago |
109247019824 | 33adbbd884 | 6 months ago |
Alex Baker | c25eb2e0c5 | 6 months ago |
Alex Baker | 14026356eb | 6 months ago |
Alex Baker | b328651dd4 | 6 months ago |
Alex Baker | a0e9bfabeb | 6 months ago |
大王叫我来巡山 | a1ad421b33 | 6 months ago |
Mayhm | 3488a08af1 | 6 months ago |
gallegonovato | b71d1af516 | 6 months ago |
Alex Baker | 041dce8617 | 6 months ago |
Alex Baker | 3d92ca78dd | 6 months ago |
Alex Baker | a32fce2d8b | 6 months ago |
Alex Baker | 4fb3cda173 | 7 months ago |
Alex Baker | f33cc896dd | 7 months ago |
Alex Baker | 4d1d6a06a8 | 7 months ago |
Alex Baker | 2202516688 | 7 months ago |
Alex Baker | d4a5008ecb | 7 months ago |
Alex Baker | 08189e10f1 | 7 months ago |
Anonymous | d3e4c066d8 | 7 months ago |
Anonymous | bbc5ae4d6d | 7 months ago |
Anonymous | c6cc00cf07 | 7 months ago |
Anonymous | 22e8720021 | 7 months ago |
Anonymous | a3ce98f0ea | 7 months ago |
macpac59 | 258f607d52 | 7 months ago |
ngocanhtve | 927acae7e4 | 7 months ago |
Odweta | 49ad9bafe3 | 7 months ago |
Alex Baker | 6df616d9ce | 7 months ago |
Alex Baker | 157668e35a | 7 months ago |
Aslam Karachiwala | efdf343869 | 7 months ago |
renovate[bot] | 5606df17c5 | 7 months ago |
renovate[bot] | fc3b4971f4 | 7 months ago |
renovate[bot] | 6a1699bb33 | 7 months ago |
renovate[bot] | e49303d5ca | 7 months ago |
renovate[bot] | 4b55569b51 | 7 months ago |
renovate[bot] | 2d7145cde3 | 7 months ago |
renovate[bot] | f2ab8bed95 | 7 months ago |
renovate[bot] | a5bc4cf536 | 7 months ago |
renovate[bot] | 1b35372b3a | 7 months ago |
Alex Baker | c0fd4bf66a | 7 months ago |
renovate[bot] | 5d366f0d61 | 7 months ago |
renovate[bot] | d0635ac6f3 | 7 months ago |
renovate[bot] | 8d4cf4daa5 | 7 months ago |
renovate[bot] | d1e439e70e | 7 months ago |
renovate[bot] | 4d4c3e5193 | 8 months ago |
Alex Baker | 20f87061fd | 8 months ago |
renovate[bot] | c03e3747c6 | 8 months ago |
renovate[bot] | 925b1b9124 | 8 months ago |
Alex Baker | 43db712f64 | 8 months ago |
Alex Baker | 9d33a73ee6 | 8 months ago |
renovate[bot] | 391c600ce2 | 8 months ago |
renovate[bot] | ee4ae94817 | 8 months ago |
renovate[bot] | 70b4be1447 | 8 months ago |
Don Zouras | bc54d92789 | 8 months ago |
Сергій | 2f34724b95 | 8 months ago |
Alex Baker | 940fdc28dd | 8 months ago |
Alex Baker | 68542fce38 | 8 months ago |
renovate[bot] | 7ba2977100 | 8 months ago |
Don Zouras | cb242539f0 | 8 months ago |
bittin1ddc447d824349b2 | 304841f2c3 | 8 months ago |
Don Zouras | 819ea797e6 | 8 months ago |
abc0922001 | 2dbea57262 | 8 months ago |
Don Zouras | 516a916fd5 | 8 months ago |
109247019824 | 3bd52efc80 | 8 months ago |
renovate[bot] | 64af955ea7 | 8 months ago |
Milo Ivir | 4cc5ec9639 | 8 months ago |
大王叫我来巡山 | 0d9292e53a | 8 months ago |
Oğuz Ersen | 732ccf1913 | 8 months ago |
gallegonovato | a2852bdbbf | 8 months ago |
Don Zouras | 68790ad401 | 8 months ago |
Alex Baker | e9afacb595 | 8 months ago |
Alex Baker | cf182aceab | 8 months ago |
Alex Baker | db889d233a | 8 months ago |
Alex Baker | 457b89c092 | 8 months ago |
Don Zouras | ad53af1b6a | 8 months ago |
renovate[bot] | 2c32b08c97 | 8 months ago |
renovate[bot] | a2fcf57c9e | 8 months ago |
renovate[bot] | 59a61325f2 | 8 months ago |
vulewuxe86 | 38a6064677 | 8 months ago |
renovate[bot] | 67daccf3e8 | 8 months ago |
renovate[bot] | dfe829d2a1 | 8 months ago |
renovate[bot] | 23c64f4d28 | 8 months ago |
renovate[bot] | e4b8f694f3 | 8 months ago |
renovate[bot] | e667c80731 | 8 months ago |
renovate[bot] | 909b077e25 | 8 months ago |
Don Zouras | e6fab9ad45 | 8 months ago |
raulmagdalena | 9474f5b7af | 8 months ago |
Don Zouras | 1ee051d768 | 8 months ago |
Don Zouras | f42edaa158 | 8 months ago |
RayBB | b97eade59c | 8 months ago |
renovate[bot] | 41aa1ca65f | 8 months ago |
renovate[bot] | 3e9a13ea14 | 9 months ago |
renovate[bot] | d966e8a12b | 9 months ago |
renovate[bot] | 8ba4e64994 | 9 months ago |
109247019824 | ee792f1ceb | 9 months ago |
renovate[bot] | caa09163a1 | 9 months ago |
renovate[bot] | d270abf5b3 | 9 months ago |
renovate[bot] | 1ef530abad | 9 months ago |
renovate[bot] | df26a6dbb9 | 9 months ago |
renovate[bot] | 1882c3b7e0 | 9 months ago |
renovate[bot] | cb53a0ca9f | 9 months ago |
renovate[bot] | b2fdef1ae7 | 9 months ago |
renovate[bot] | defb16ce95 | 9 months ago |
renovate[bot] | 823f99b28a | 9 months ago |
renovate[bot] | 6df872b1a1 | 10 months ago |
renovate[bot] | 133b960583 | 10 months ago |
renovate[bot] | 2e6753faec | 10 months ago |
renovate[bot] | cb07c2c267 | 10 months ago |
renovate[bot] | 23757ab320 | 10 months ago |
Alex Baker | 1b6ce0e48e | 10 months ago |
Kakaeo | 5af012068f | 10 months ago |
Alex Baker | 6c9ffa57d7 | 10 months ago |
Alex Baker | 52c54b1eac | 10 months ago |
Alex Baker | c8d81b44b6 | 10 months ago |
renovate[bot] | ef27a50e42 | 10 months ago |
Alex Baker | bde1356e7f | 10 months ago |
Alex Baker | 6c031925ba | 10 months ago |
Alex Baker | 8058414137 | 10 months ago |
Alex Baker | 3e37ea50f0 | 10 months ago |
renovate[bot] | 62f5a9c492 | 10 months ago |
renovate[bot] | a84fd65722 | 10 months ago |
renovate[bot] | 517b2d8f1b | 10 months ago |
renovate[bot] | 90942bf0be | 10 months ago |
Alex Baker | 83c3d1c4ba | 10 months ago |
Software In Interlingua | 6362ece569 | 10 months ago |
renovate[bot] | 8df85041b8 | 10 months ago |
ngocanhtve | 6d85af4c34 | 10 months ago |
Olli | 63f001dd72 | 10 months ago |
renovate[bot] | de49a50944 | 10 months ago |
renovate[bot] | df20d2f593 | 10 months ago |
renovate[bot] | fd16772236 | 10 months ago |
renovate[bot] | b77caac255 | 10 months ago |
renovate[bot] | ad058ed09b | 10 months ago |
Alex Baker | 8312113d7b | 10 months ago |
Alex Baker | ee21cc660e | 10 months ago |
Alex Baker | 5edc481ffe | 10 months ago |
Alex Baker | d0360a4862 | 10 months ago |
Alex Baker | ac35002408 | 10 months ago |
Subham Jena | 582ebad0f0 | 10 months ago |
Shaban Mamedov | 684c47184a | 10 months ago |
ngocanhtve | ac7a519e4e | 10 months ago |
renovate[bot] | 5c2b41af9d | 11 months ago |
renovate[bot] | 13986cf380 | 11 months ago |
CennoxX | c4f0b404e9 | 11 months ago |
Alex Baker | 145b5afbc6 | 11 months ago |
elig0n | 0b87a206fe | 11 months ago |
mm4c | d0e70ceea8 | 11 months ago |
J. Lavoie | bf3546a878 | 11 months ago |
Alex Baker | 8895acbf6b | 11 months ago |
Alex Baker | a52b1200f5 | 11 months ago |
renovate[bot] | 23964e807a | 11 months ago |
Alex Baker | 287b106dd4 | 11 months ago |
renovate[bot] | 33bab626e0 | 11 months ago |
renovate[bot] | a980cd75cc | 11 months ago |
renovate[bot] | 7eac4ac223 | 11 months ago |
renovate[bot] | 82cb2f7d3f | 11 months ago |
renovate[bot] | da2646597c | 11 months ago |
renovate[bot] | 495855133c | 11 months ago |
renovate[bot] | 242cb61662 | 11 months ago |
renovate[bot] | ab8886f3dc | 11 months ago |
Alex Baker | e48e92d2e6 | 11 months ago |
Alex Baker | 5f22f5cd38 | 11 months ago |
Alex Baker | 8a47cc2934 | 11 months ago |
Alex Baker | 0d94729d37 | 11 months ago |
Alex Baker | 14599eb3c0 | 11 months ago |
Alex Baker | b477623524 | 11 months ago |
Alex Baker | c8bfb67b50 | 11 months ago |
Alex Baker | 0a36e58525 | 11 months ago |
Alex Baker | 94a719cb66 | 11 months ago |
Alex Baker | b5748aa8e6 | 11 months ago |
Alex Baker | 7fd5647cb8 | 11 months ago |
Alex Baker | 2545832d67 | 11 months ago |
Alex Baker | 738bf435db | 11 months ago |
renovate[bot] | ab02323f29 | 11 months ago |
Alex Baker | d73a9d2795 | 11 months ago |
Alex Baker | ebe67354b6 | 11 months ago |
Alex Baker | 58edc6b4d8 | 11 months ago |
Weblate (bot) | 78b2cdac06 | 11 months ago |
renovate[bot] | c3d7db0087 | 11 months ago |
renovate[bot] | d7b1770b85 | 11 months ago |
Weblate (bot) | bebb3165a5 | 11 months ago |
Alex Baker | ad1198aace | 11 months ago |
Alex Baker | 7ae77a81e1 | 11 months ago |
Weblate (bot) | 3e79dd5190 | 11 months ago |
renovate[bot] | 9d57a849bf | 11 months ago |
Alex Baker | 82103eb477 | 11 months ago |
renovate[bot] | 11fa9a2bbd | 11 months ago |
renovate[bot] | b65831120f | 11 months ago |
renovate[bot] | f26a90a4f9 | 11 months ago |
renovate[bot] | dd3aa20485 | 11 months ago |
renovate[bot] | 8c84e1af50 | 11 months ago |
renovate[bot] | dc1eac23b9 | 11 months ago |
renovate[bot] | 5883952883 | 12 months ago |
Alex Baker | 775289b058 | 12 months ago |
Alex Baker | ee500c24b1 | 12 months ago |
Igor Sorocean | 68fd36b14d | 12 months ago |
renovate[bot] | b8f265fa36 | 12 months ago |
Alex Baker | cf4e6c1273 | 12 months ago |
renovate[bot] | 0dcc577497 | 12 months ago |
kmj-99 | b525e8cab3 | 12 months ago |
renovate[bot] | db0ad280eb | 12 months ago |
Alex Baker | 5092f80dcc | 12 months ago |
Kazushi Hayama | 6bc42363dd | 12 months ago |
Michal Šmahel | 115461c7b0 | 12 months ago |
renovate[bot] | 369c508890 | 12 months ago |
bittin1ddc447d824349b2 | a432cc33cc | 12 months ago |
Alex Baker | e5b51150cb | 12 months ago |
renovate[bot] | d43639556e | 12 months ago |
Alex Baker | ef2dd8f202 | 12 months ago |
Alex Baker | abc099c309 | 12 months ago |
Alex Baker | 348367e084 | 12 months ago |
renovate[bot] | 6a73f6745c | 12 months ago |
renovate[bot] | 5185c14e44 | 12 months ago |
Olli | aa7ff0fa16 | 12 months ago |
renovate[bot] | 12b979d363 | 12 months ago |
Alex Baker | 082f741983 | 12 months ago |
Alex Baker | 0bdd83988f | 12 months ago |
Alex Baker | 60784c10b5 | 12 months ago |
Alex Baker | da8467ac56 | 12 months ago |
renovate[bot] | 434d067822 | 12 months ago |
renovate[bot] | 04af310285 | 12 months ago |
renovate[bot] | 5555771f45 | 12 months ago |
renovate[bot] | 35b60df0ff | 12 months ago |
renovate[bot] | fef19b4995 | 12 months ago |
Alex Baker | 4c25b81a4d | 1 year ago |
Alex Baker | 0f37f4859e | 1 year ago |
Alex Baker | ee3d3fa4f5 | 1 year ago |
Alex Baker | a32d35720a | 1 year ago |
Alex Baker | bf6fe02fe3 | 1 year ago |
Alex Baker | 6664defc16 | 1 year ago |
renovate[bot] | b318b930a5 | 1 year ago |
Loucura | 91d18fd675 | 1 year ago |
Alex Baker | 94b6d7569b | 1 year ago |
Alex Baker | e70f5f3b24 | 1 year ago |
renovate[bot] | 68c21c4b1f | 1 year ago |
renovate[bot] | cbcc7f9bee | 1 year ago |
Milo Ivir | ba394b9db4 | 1 year ago |
Eric | 13298aa3be | 1 year ago |
Alex Baker | 993c41b197 | 1 year ago |
Alex Baker | 2bfc46f32b | 1 year ago |
Alex Baker | 4c61353411 | 1 year ago |
Alex Baker | f8d3985e97 | 1 year ago |
Alex Baker | c2a9d21f01 | 1 year ago |
Alex Baker | 20c81417a0 | 1 year ago |
Alex Baker | 77c86bbfb4 | 1 year ago |
renovate[bot] | 7e9ec26f53 | 1 year ago |
Alex Baker | 928ec9f647 | 1 year ago |
Alex Baker | 84ab8d0517 | 1 year ago |
Alex Baker | db66a66578 | 1 year ago |
Alex Baker | ea8a4b5e2d | 1 year ago |
Alex Baker | 5a4485818f | 1 year ago |
renovate[bot] | 1d348fcac9 | 1 year ago |
renovate[bot] | 79250cb8ff | 1 year ago |
renovate[bot] | 5d550df62e | 1 year ago |
Pierfrancesco Passerini | 1267fbeb0d | 1 year ago |
renovate[bot] | 2b0e285b42 | 1 year ago |
Alex Baker | 374f10c731 | 1 year ago |
abc0922001 | a38fdc065e | 1 year ago |
Ihor Hordiichuk | 6d4159eaac | 1 year ago |
Oğuz Ersen | 20fe494cd9 | 1 year ago |
Frits van Bommel | e7686bd9eb | 1 year ago |
Kaci | d4d721f060 | 1 year ago |
Florian Trayon | 1e9b39afd5 | 1 year ago |
Florian Trayon | 8878df27c4 | 1 year ago |
C. Rüdinger | 07eb9db157 | 1 year ago |
109247019824 | b4ad27152f | 1 year ago |
kmj-99 | 417a1cca46 | 1 year ago |
renovate[bot] | 3a6086adbd | 1 year ago |
Alex Baker | 9f3f0a9698 | 1 year ago |
Alex Baker | 8a085861de | 1 year ago |
Alex Baker | 7048f6a965 | 1 year ago |
Alex Baker | a9cb7b0e89 | 1 year ago |
Alex Baker | 4c7e2caa73 | 1 year ago |
Alex Baker | 3a5e45283a | 1 year ago |
renovate[bot] | a1885574da | 1 year ago |
vulewuxe86 | 113cf6f1b8 | 1 year ago |
renovate[bot] | 138cc21796 | 1 year ago |
Alex Baker | dea3484a2f | 1 year ago |
Alex Baker | 5948e4a958 | 1 year ago |
renovate[bot] | 10d2e8feda | 1 year ago |
renovate[bot] | cef7998a52 | 1 year ago |
renovate[bot] | 834bef7933 | 1 year ago |
renovate[bot] | 8ed6afff2b | 1 year ago |
renovate[bot] | 7d13e4f0ba | 1 year ago |
Alex Baker | 5cb8419206 | 1 year ago |
Alex Baker | 7283491872 | 1 year ago |
Alex Baker | 2de5b3c275 | 1 year ago |
Alex Baker | 864550d027 | 1 year ago |
renovate[bot] | b48348f30e | 1 year ago |
renovate[bot] | 81fdddc631 | 1 year ago |
Luna Jernberg | 21cb25d902 | 1 year ago |
Anaemix | b73ba43735 | 1 year ago |
renovate[bot] | a3ba87e4e6 | 1 year ago |
renovate[bot] | 26321633e2 | 1 year ago |
renovate[bot] | 1c3656a69c | 1 year ago |
renovate[bot] | 88bb66a7b3 | 1 year ago |
renovate[bot] | 0f7c200851 | 1 year ago |
renovate[bot] | f6d5732c07 | 1 year ago |
renovate[bot] | b278a04fce | 1 year ago |
renovate[bot] | 71c2e2b0f6 | 1 year ago |
renovate[bot] | 87639da922 | 1 year ago |
Anaemix | d7e366712c | 1 year ago |
renovate[bot] | 74ecb4a8bf | 1 year ago |
Emin Tufan Çetin | 305bd24883 | 1 year ago |
renovate[bot] | 68b7bef1ca | 1 year ago |
renovate[bot] | f6a6b0716f | 1 year ago |
renovate[bot] | dced669176 | 1 year ago |
Emin Tufan Çetin | 1b431f7a61 | 1 year ago |
Joan Montané | 2b3b7184e0 | 1 year ago |
renovate[bot] | a7062fe937 | 1 year ago |
Alex Baker | 573f6b897e | 1 year ago |
renovate[bot] | e1845d71bc | 1 year ago |
renovate[bot] | 1027d57860 | 1 year ago |
renovate[bot] | a2c92b8fd9 | 1 year ago |
renovate[bot] | 77643d7355 | 1 year ago |
Patrick V. Leguizamon | 54911021a5 | 1 year ago |
renovate[bot] | 908ac19754 | 1 year ago |
Alex Baker | 4ebd53fdf7 | 1 year ago |
Alex Baker | a0fbeba938 | 1 year ago |
Alex Baker | bd6000fcd6 | 1 year ago |
Alex Baker | aa861cb5e5 | 1 year ago |
Alex Baker | 17818c6e29 | 1 year ago |
Poesty Li | ca6521db23 | 1 year ago |
Alex Baker | dedf306106 | 1 year ago |
Alex Baker | 40f9b83dba | 1 year ago |
Alex Baker | c8b057867f | 1 year ago |
Alex Baker | d1ebd45492 | 1 year ago |
Alex Baker | ac28e26333 | 1 year ago |
renovate[bot] | fdf9fbce08 | 1 year ago |
renovate[bot] | 6d712642b3 | 1 year ago |
renovate[bot] | 329939e2b0 | 1 year ago |
Alex Baker | f62de8b7f3 | 1 year ago |
deep map | a2ef184c7d | 1 year ago |
Salif Mehmed | 6ac2c88782 | 1 year ago |
Naga | ada31293ea | 1 year ago |
Pierfrancesco Passerini | 805d914ff4 | 1 year ago |
109247019824 | aa1b4ef71a | 1 year ago |
vulewuxe86 | 3d0cf46f8d | 1 year ago |
abc0922001 | f7e2c7824a | 1 year ago |
Stefan | 2e2bdbe07a | 1 year ago |
Alex Baker | 427ee369b4 | 1 year ago |
Alex Baker | 804c0f974a | 1 year ago |
109247019824 | 691dc635a9 | 1 year ago |
renovate[bot] | 9f2364867b | 1 year ago |
renovate[bot] | cd638bba71 | 1 year ago |
Naga | 156669cb86 | 1 year ago |
Kazushi Hayama | 6c1daf5a3c | 1 year ago |
Pierfrancesco Passerini | 0a297c595f | 1 year ago |
qwerty287 | b698fc04db | 1 year ago |
109247019824 | ab6f3463d0 | 1 year ago |
Alex Baker | dbcaa36812 | 1 year ago |
Alex Baker | 83a42c9d8f | 1 year ago |
Alex Baker | ec97722857 | 1 year ago |
Alex Baker | dd78acadcd | 1 year ago |
Htet Oo Hlaing | 454faa234e | 1 year ago |
bruh | 55027ad625 | 1 year ago |
Alex Tereschenko | 13740c3d0d | 1 year ago |
Alex Tereschenko | 6037ee70e5 | 1 year ago |
Kazushi Hayama | 0f2e659e6f | 1 year ago |
Milo Ivir | 7945ecb9c4 | 1 year ago |
Poesty Li | 56f0be50ff | 1 year ago |
Ihor Hordiichuk | 91d46c5f11 | 1 year ago |
Htet Oo Hlaing | bab3898a7f | 1 year ago |
Alex Baker | 7b12e491ad | 1 year ago |
Alex Baker | ce2bc81276 | 1 year ago |
Frits van Bommel | 39ddc8d0d6 | 1 year ago |
Pierfrancesco Passerini | 8081da3a36 | 1 year ago |
Florian Trayon | 766d5fa043 | 1 year ago |
Florian Trayon | b2135f33c5 | 1 year ago |
109247019824 | d1afb5891a | 1 year ago |
Alex Baker | dff522437d | 1 year ago |
Alex Baker | 5308404ed6 | 1 year ago |
renovate[bot] | 320b399ab3 | 1 year ago |
renovate[bot] | 28c1ecaebc | 1 year ago |
renovate[bot] | 7083eb2ede | 1 year ago |
renovate[bot] | 194edd2084 | 1 year ago |
Michal Šmahel | e21637cb3c | 1 year ago |
Alex Baker | ee82f683bd | 1 year ago |
Alex Baker | 166635e18b | 1 year ago |
Alex Baker | 8ed5242573 | 1 year ago |
Alex Baker | a3d86dcb03 | 1 year ago |
Alex Baker | c065525cef | 1 year ago |
renovate[bot] | 049f995e96 | 1 year ago |
renovate[bot] | 8ac962d9ea | 1 year ago |
renovate[bot] | 849e785189 | 1 year ago |
renovate[bot] | 1b1288678b | 1 year ago |
renovate[bot] | d2710a3c61 | 1 year ago |
renovate[bot] | 0fe5b7fdb9 | 1 year ago |
renovate[bot] | dcf645c2b8 | 1 year ago |
renovate[bot] | 1fcd780b3f | 1 year ago |
renovate[bot] | 5fc3ac2e7f | 1 year ago |
Luna Jernberg | 3ad24f49d8 | 1 year ago |
SC | 5d386bc83a | 1 year ago |
Kaci | c7a65c81d4 | 1 year ago |
Sunjae Choi | 2034a4be74 | 1 year ago |
Sameer Rustamzada | ca4f120433 | 1 year ago |
renovate[bot] | 7c6aae3219 | 1 year ago |
renovate[bot] | 18450e8e2b | 1 year ago |
renovate[bot] | 1181125417 | 1 year ago |
renovate[bot] | e52c80ea3f | 1 year ago |
renovate[bot] | 2474dbab2a | 1 year ago |
renovate[bot] | 049d46ceff | 1 year ago |
renovate[bot] | 6f01f9a590 | 1 year ago |
renovate[bot] | de2f39b2df | 1 year ago |
Naga | 393f7868d8 | 1 year ago |
renovate[bot] | cad6470497 | 1 year ago |
renovate[bot] | 065385d105 | 1 year ago |
renovate[bot] | 159fc3ad50 | 1 year ago |
Alex Baker | f697015d7f | 1 year ago |
Alex Baker | b977f01402 | 1 year ago |
Naga | 07c7297bc8 | 1 year ago |
Gerald Schneider | 7fc81f4876 | 1 year ago |
Naga | 3cebc6f874 | 1 year ago |
Frits van Bommel | 1d997ae411 | 1 year ago |
renovate[bot] | 2e213312fe | 1 year ago |
renovate[bot] | dc7c9aec76 | 1 year ago |
renovate[bot] | 2faff24ac9 | 1 year ago |
Eudald Puy Polls | 045ec4cb3f | 1 year ago |
Milo Ivir | f5a2e9282e | 1 year ago |
Ander Romero | 5ef7b6f786 | 1 year ago |
109247019824 | 936dfb29c9 | 1 year ago |
renovate[bot] | e8ac6ed556 | 1 year ago |
Alex Baker | a45959052b | 1 year ago |
Alex Baker | e1aed0f1af | 1 year ago |
Alex Baker | 52d664856d | 1 year ago |
Alex Baker | 53738031d1 | 1 year ago |
Alex Baker | b0bb58bb4c | 1 year ago |
Alex Baker | 1811eb561f | 1 year ago |
Alex Baker | 6ef2f4a989 | 1 year ago |
renovate[bot] | 6b041dc47d | 1 year ago |
Alex Baker | 2659f4fa4a | 1 year ago |
Alex Baker | 09a1e5bc4f | 1 year ago |
renovate[bot] | cc370557df | 1 year ago |
Poesty Li | d7fc766b49 | 1 year ago |
Ihor Hordiichuk | 6734e0b281 | 1 year ago |
Frits van Bommel | ec75338027 | 1 year ago |
Pierfrancesco Passerini | 407adb07d2 | 1 year ago |
Florian Trayon | 664d8bc1f8 | 1 year ago |
Florian Trayon | 51441e4ad0 | 1 year ago |
109247019824 | 4c7e88b18a | 1 year ago |
renovate[bot] | e7372f3e8b | 1 year ago |
Milo Ivir | c9a5d19b83 | 1 year ago |
Frits van Bommel | b317a3885a | 1 year ago |
Pierfrancesco Passerini | 98dc48decd | 1 year ago |
Florian Trayon | 2f36ad8043 | 1 year ago |
Florian Trayon | ed2acfbe97 | 1 year ago |
C. Rüdinger | acb95583dc | 1 year ago |
Alex Baker | 4830aed7b4 | 1 year ago |
Alex Baker | f5ab0e6f56 | 1 year ago |
Ihor Hordiichuk | be55a3bc5d | 1 year ago |
Frits van Bommel | 643af2e2fb | 1 year ago |
Kaci | 24f810763f | 1 year ago |
Florian Trayon | cb792e8111 | 1 year ago |
Florian Trayon | c451a1e272 | 1 year ago |
109247019824 | a25e93f3de | 1 year ago |
renovate[bot] | 50926bc0ad | 1 year ago |
Alex Baker | 48e73b4bb3 | 1 year ago |
renovate[bot] | a4184fa63a | 1 year ago |
Alex Baker | 08ae11046a | 1 year ago |
Ander Romero | 74a1ee9e4f | 1 year ago |
Alex Baker | d4192803f8 | 1 year ago |
Alex Baker | 7945160536 | 1 year ago |
renovate[bot] | 79e1a73c2a | 1 year ago |
renovate[bot] | f7bc821a16 | 1 year ago |
renovate[bot] | 4ac6a5fdf6 | 1 year ago |
renovate[bot] | f623046385 | 1 year ago |
renovate[bot] | afdabb3dc3 | 1 year ago |
Alex Baker | 48804de63d | 1 year ago |
qwerty287 | 2ad445aceb | 1 year ago |
Alex Baker | f1790b574f | 1 year ago |
Alex Baker | ac9e782527 | 1 year ago |
Don Zouras | e0758206d8 | 1 year ago |
Alex Baker | 85c0ba9ccf | 1 year ago |
Alex Baker | a0f85fcbbd | 1 year ago |
Alex Baker | 02958e46e6 | 1 year ago |
Alex Baker | fce12ae4a8 | 1 year ago |
Alex Baker | fc3dc96ade | 1 year ago |
renovate[bot] | 559858d19c | 1 year ago |
Ander Romero | 99ffb68e7a | 1 year ago |
renovate[bot] | 1ce507b0bb | 1 year ago |
Sunjae Choi | d4feb8fd31 | 1 year ago |
o20n3 | 16270f66c8 | 1 year ago |
Sunjae Choi | 3f8c8feb08 | 1 year ago |
Oğuz Ersen | 8f370fec62 | 1 year ago |
Alex Baker | f3c28fe60d | 1 year ago |
Alex Baker | b06b10f930 | 1 year ago |
Alex Baker | 6efac620c4 | 1 year ago |
Alex Baker | 41c8a803a1 | 1 year ago |
renovate[bot] | 0ed04d7739 | 1 year ago |
renovate[bot] | f9dbedad3b | 1 year ago |
Alex Baker | 16d91aafb1 | 1 year ago |
Alex Baker | 4882570b3c | 1 year ago |
renovate[bot] | ece1758696 | 1 year ago |
renovate[bot] | cfebf04b4b | 1 year ago |
Alex Baker | 3c87ab4fc1 | 1 year ago |
Alex Baker | 1562c1315c | 1 year ago |
Alex Baker | 2668e9a1df | 1 year ago |
Alex Baker | ac0fbccb54 | 1 year ago |
Alex Baker | d25f859385 | 1 year ago |
Alex Baker | 3555c11b33 | 1 year ago |
Alex Baker | a7662d9cb6 | 1 year ago |
Alex Baker | 2da4dcd17a | 1 year ago |
Alex Baker | 1d58292a07 | 1 year ago |
renovate[bot] | df2a7f8857 | 1 year ago |
renovate[bot] | 56c6f2ce33 | 1 year ago |
renovate[bot] | 019dc6ecaa | 1 year ago |
renovate[bot] | e6ac0b072e | 1 year ago |
Alex Baker | 86d4bcbc40 | 1 year ago |
Alex Baker | e05874d36a | 1 year ago |
Alex Baker | 7d83e8ba06 | 1 year ago |
Alex Baker | 99243e5751 | 1 year ago |
Don Zouras | c6652c851e | 1 year ago |
Alex Baker | 585f12d2f9 | 1 year ago |
Alex Baker | 47c425f7e8 | 1 year ago |
Alex Baker | 72a337d572 | 1 year ago |
Alex Baker | cbaede67cf | 1 year ago |
Alex Baker | 7b2f526f7b | 1 year ago |
renovate[bot] | 2e6ec655db | 1 year ago |
Alex Baker | 57c4018e37 | 1 year ago |
Alex Baker | 067317b5a0 | 1 year ago |
Alex Baker | ad3c35bc5d | 1 year ago |
Alex Baker | 8907d3f520 | 1 year ago |
renovate[bot] | 9f59d8ddf2 | 1 year ago |
Alex Baker | af72e35f05 | 1 year ago |
Alex Baker | 251edd39ed | 1 year ago |
renovate[bot] | 455221c625 | 1 year ago |
Alex Baker | f62d007ff1 | 1 year ago |
Subham Jena | b466170bbf | 1 year ago |
109247019824 | ebeeb06420 | 1 year ago |
Milo Ivir | 81646bb133 | 1 year ago |
Ihor Hordiichuk | 98cc3908b6 | 1 year ago |
Frits van Bommel | 41f4faebe7 | 1 year ago |
Pierfrancesco Passerini | bf512537fe | 1 year ago |
Florian Trayon | 76e19e292b | 1 year ago |
Florian Trayon | 77db8dbe86 | 1 year ago |
Subham Jena | 31f6c85f89 | 1 year ago |
renovate[bot] | eeb448729c | 1 year ago |
Alex Baker | 84e45f0b20 | 1 year ago |
Alex Baker | 114ec3f03b | 1 year ago |
Alex Baker | f72860cef1 | 1 year ago |
Alex Baker | 686a36ecbd | 1 year ago |
renovate[bot] | 4f01e4dba4 | 1 year ago |
Alex Baker | a8d62b6632 | 1 year ago |
Alex Baker | 19b2551f54 | 1 year ago |
Alex Baker | c303ce32ab | 1 year ago |
Alex Baker | f18a646d09 | 1 year ago |
renovate[bot] | 1ec48feb36 | 1 year ago |
renovate[bot] | 8c60f54f77 | 1 year ago |
Alex Baker | cfa46c7e24 | 1 year ago |
Alex Baker | 1d6d8e87d1 | 1 year ago |
Alex Baker | 18242e5284 | 1 year ago |
Alex Baker | 13b4f80c70 | 1 year ago |
renovate[bot] | e72ceca528 | 1 year ago |
renovate[bot] | b331f1440f | 1 year ago |
Alex Baker | a739b21f0f | 1 year ago |
Alex Baker | 47f4ae8dde | 1 year ago |
Alex Baker | 9e60949019 | 1 year ago |
renovate[bot] | d00987fcc8 | 1 year ago |
renovate[bot] | 52d9fdce79 | 1 year ago |
Alex Baker | 2848bd4f53 | 1 year ago |
Alex Baker | 70ab826598 | 1 year ago |
Alex Baker | 5f4753da6f | 1 year ago |
renovate[bot] | 5ac6a3ca79 | 1 year ago |
renovate[bot] | 0ba7b319b2 | 1 year ago |
Alex Baker | bdc01b271d | 1 year ago |
Alex Baker | 013f43ca34 | 1 year ago |
Alex Baker | e41b9561dc | 1 year ago |
Alex Baker | 2c697fd5b9 | 1 year ago |
renovate[bot] | 1a810e0298 | 1 year ago |
Alex Baker | 4121163008 | 1 year ago |
renovate[bot] | f4e5c5c72b | 1 year ago |
renovate[bot] | a21ee0a3c2 | 1 year ago |
Alex Baker | e37497b77f | 1 year ago |
Alex Baker | 4018277645 | 1 year ago |
Alex Baker | 97e1b75781 | 1 year ago |
109247019824 | d477dfb448 | 1 year ago |
renovate[bot] | 360a85c57b | 2 years ago |
Alex Baker | 88a3da822b | 2 years ago |
Alex Baker | df50cf9459 | 2 years ago |
renovate[bot] | 05bad27d63 | 2 years ago |
renovate[bot] | acbf3f2f97 | 2 years ago |
renovate[bot] | b6116623fa | 2 years ago |
renovate[bot] | 5ecc52bf78 | 2 years ago |
renovate[bot] | 26af7d74f7 | 2 years ago |
renovate[bot] | 72e4f853b2 | 2 years ago |
renovate[bot] | 4c572f7504 | 2 years ago |
Kazushi Hayama | 31d7f489a7 | 2 years ago |
renovate[bot] | 14d4fa702b | 2 years ago |
renovate[bot] | 887007d898 | 2 years ago |
Alex Baker | db82ef7fd6 | 2 years ago |
Alex Baker | b75be2c5af | 2 years ago |
renovate[bot] | 8574c4f8bd | 2 years ago |
renovate[bot] | 94eb48c326 | 2 years ago |
renovate[bot] | db8744123f | 2 years ago |
renovate[bot] | 63e3311fd3 | 2 years ago |
renovate[bot] | fc58a059e4 | 2 years ago |
renovate[bot] | 7010d06432 | 2 years ago |
renovate[bot] | c206634de1 | 2 years ago |
renovate[bot] | b13a080ba4 | 2 years ago |
Alex Baker | 26e1ffcc85 | 2 years ago |
Simona Iacob | 4be0a80d17 | 2 years ago |
renovate[bot] | 272b7d9dcf | 2 years ago |
renovate[bot] | 2f8d698dd6 | 2 years ago |
Alex Baker | 049e4a9329 | 2 years ago |
Alex Baker | 91da3191c5 | 2 years ago |
Alex Baker | 2bc906868d | 2 years ago |
Alex Baker | 9d142bd80b | 2 years ago |
Alex Baker | db563b04ae | 2 years ago |
Alex Baker | e2ab005e29 | 2 years ago |
Alex Baker | b1b85444bd | 2 years ago |
renovate[bot] | 2c6ebf3c3e | 2 years ago |
renovate[bot] | 58230f5e61 | 2 years ago |
renovate[bot] | 80d69ea3f5 | 2 years ago |
Alex Baker | 4b325c0133 | 2 years ago |
Alex Baker | 32eed65f04 | 2 years ago |
renovate[bot] | fe87eac962 | 2 years ago |
Alex Baker | 43a943dedd | 2 years ago |
Alex Baker | de61bb3fe9 | 2 years ago |
renovate[bot] | b6523bf30f | 2 years ago |
renovate[bot] | 6fa7b53cd7 | 2 years ago |
renovate[bot] | ad5c1dc8d0 | 2 years ago |
renovate[bot] | 089337aabc | 2 years ago |
renovate[bot] | ae87325c58 | 2 years ago |
renovate[bot] | 73dfa62fcc | 2 years ago |
renovate[bot] | 0dd10e835c | 2 years ago |
renovate[bot] | 19cd5b967a | 2 years ago |
renovate[bot] | 406ae0dfdd | 2 years ago |
renovate[bot] | 72fbf21067 | 2 years ago |
renovate[bot] | fc13be33c4 | 2 years ago |
renovate[bot] | 204f8312ad | 2 years ago |
renovate[bot] | 82b1b7bd57 | 2 years ago |
renovate[bot] | 973bd086dd | 2 years ago |
renovate[bot] | 3778aaaf05 | 2 years ago |
Alex Baker | c2cc2e0c31 | 2 years ago |
Alex Baker | 567c3ba0e7 | 2 years ago |
renovate[bot] | 38d273d149 | 2 years ago |
renovate[bot] | 1bd3cb84b2 | 2 years ago |
renovate[bot] | 273c9ebe52 | 2 years ago |
renovate[bot] | ddee3b44d1 | 2 years ago |
renovate[bot] | ccfd494b49 | 2 years ago |
renovate[bot] | 3e3b37a66b | 2 years ago |
renovate[bot] | 3ce8f864ce | 2 years ago |
Alex Baker | 8d2aee359b | 2 years ago |
Alex Baker | 7ced8a2fdc | 2 years ago |
Alex Baker | 5ecc604b37 | 2 years ago |
Alex Baker | 379a49fa81 | 2 years ago |
Alex Baker | bd1101d73e | 2 years ago |
Alex Baker | e114bb4851 | 2 years ago |
Don Zouras | 82fae728c4 | 2 years ago |
Don Zouras | 5f25f953fd | 2 years ago |
Chih-Hsuan Yen | a1487e4c41 | 2 years ago |
Poesty Li | 5c10c748dd | 2 years ago |
Naga | ea994122e7 | 2 years ago |
Kisaragi Hiu | c1008a31b7 | 2 years ago |
NN | 1be1f3e0ae | 2 years ago |
Gabriel Camargo | ea0a110576 | 2 years ago |
Olli | 582e0a1a3d | 2 years ago |
Don Zouras | 3d490f0ed6 | 2 years ago |
AHOHNMYC | 8764b01301 | 2 years ago |
Alex Baker | 100928d002 | 2 years ago |
Alex Baker | b85dc20d24 | 2 years ago |
Alex Baker | 1fdeb5fb35 | 2 years ago |
Alex Baker | 0738ebb758 | 2 years ago |
Alex Baker | 417f5ac224 | 2 years ago |
Alex Baker | ad54394c08 | 2 years ago |
Alex Baker | 3cb8cd9a45 | 2 years ago |
Alex Baker | 6c10466904 | 2 years ago |
Alex Baker | 3131c56651 | 2 years ago |
Alex Baker | e644971619 | 2 years ago |
Alex Baker | 120eb4dd30 | 2 years ago |
Alex Baker | c2222657ec | 2 years ago |
Alex Baker | f6ca98e096 | 2 years ago |
Alex Baker | ac62b4f385 | 2 years ago |
Alex Baker | 2006e2c84b | 2 years ago |
Alex Baker | 513f8b017f | 2 years ago |
Alex Baker | a04fbebd0f | 2 years ago |
Alex Baker | 0c2b31b84b | 2 years ago |
Alex Baker | 1eba02604d | 2 years ago |
Alex Baker | 0f6013cecc | 2 years ago |
Alex Baker | 68d80a5d2a | 2 years ago |
Alex Baker | c5587d9fea | 2 years ago |
gnu-ewm | e4e0ec013b | 2 years ago |
Alex Baker | ab8af2a3a1 | 2 years ago |
Alex Baker | e2ad2507d3 | 2 years ago |
Don Zouras | 705b6e05dd | 2 years ago |
JoseFabio El que Conoces | ab968dcf17 | 2 years ago |
Don Zouras | 50bb209cd3 | 2 years ago |
Julius Härtl | 99d1dea0f1 | 2 years ago |
bruh | 9a5c4ea010 | 2 years ago |
Olli | 6f7890ea3b | 2 years ago |
Alex Baker | 63fda6f681 | 2 years ago |
Alex Baker | 738870ac6b | 2 years ago |
Kazushi Hayama | 3b04ddb44f | 2 years ago |
Alex Baker | 4f6749dc24 | 2 years ago |
Kazushi Hayama | c18eac2b00 | 2 years ago |
C. Rüdinger | 5ac9df3cb6 | 2 years ago |
o20n3 | 6405d5fe66 | 2 years ago |
Pierfrancesco Passerini | 6df420d584 | 2 years ago |
Tntdruid | 9bea3ee6df | 2 years ago |
haidarah esmander | b85694eebd | 2 years ago |
Slávek Banko | fb5ab13d99 | 2 years ago |
Alex Baker | 172be4fa6a | 2 years ago |
Alex Baker | 2d3d136012 | 2 years ago |
Alex Baker | 1315f59199 | 2 years ago |
Kazushi Hayama | 3a61cbf735 | 2 years ago |
Pierfrancesco Passerini | 4997d9e2f1 | 2 years ago |
Alex Baker | dad625d402 | 2 years ago |
Alex Baker | 65ef69f46e | 2 years ago |
Alex Baker | 927168dcf6 | 2 years ago |
Alex Baker | ec81bf7b85 | 2 years ago |
SC | e034b43b39 | 2 years ago |
Alex Baker | e162cc7809 | 2 years ago |
Alex Baker | 2a825ce2c7 | 2 years ago |
Alex Baker | 71f22dd05d | 2 years ago |
Alex Baker | 644eda1eef | 2 years ago |
Kaci | 67ace66204 | 2 years ago |
Milo Ivir | 00db98b3ca | 2 years ago |
Eric | 188cf998fa | 2 years ago |
Ihor Hordiichuk | 8f41bf99a9 | 2 years ago |
Oğuz Ersen | e1e7dde890 | 2 years ago |
Nikita Epifanov | 9be2fbf505 | 2 years ago |
Frits van Bommel | 45f2aa801a | 2 years ago |
Gediminas Murauskas | ee61aced63 | 2 years ago |
Pierfrancesco Passerini | 7ea84b2659 | 2 years ago |
Kaci | 2295e14f8a | 2 years ago |
Florian Trayon | a8698d8080 | 2 years ago |
Olli | d5a89649fa | 2 years ago |
Florian Trayon | 222d831220 | 2 years ago |
World Test | e9d5afa9e7 | 2 years ago |
109247019824 | 137b3ce8b2 | 2 years ago |
Alex Baker | 9ed8486cfc | 2 years ago |
Nikita Epifanov | e529de066e | 2 years ago |
Alex Baker | 38e1c09b24 | 2 years ago |
Alex Baker | 3d110347b0 | 2 years ago |
Alex Baker | ff48aa18c2 | 2 years ago |
Alex Baker | d82e594043 | 2 years ago |
Alex Baker | 03f695f625 | 2 years ago |
Alex Baker | f38b2324e9 | 2 years ago |
Alex Baker | dd48d074be | 2 years ago |
Alex Baker | 670fc1591f | 2 years ago |
Alex Baker | 5c368cf970 | 2 years ago |
Alex Baker | 80abbbcce5 | 2 years ago |
Alex Baker | 35f4ebc7a2 | 2 years ago |
Alex Baker | c17e2ef98b | 2 years ago |
Alex Baker | 980ee440d5 | 2 years ago |
Alex Baker | a07851bc5a | 2 years ago |
Alex Baker | 8c5edf35f4 | 2 years ago |
Alex Baker | f2a728a579 | 2 years ago |
Alex Baker | 55a994fcca | 2 years ago |
Alex Baker | 3691975b9d | 2 years ago |
Alex Baker | 4b3e7b026b | 2 years ago |
Alex Baker | 71b70c43b2 | 2 years ago |
Alex Baker | 9787a420d9 | 2 years ago |
Alex Baker | 8d78a5bfdb | 2 years ago |
Alex Baker | 23bf69d3f4 | 2 years ago |
Alex Baker | eb3dd461ad | 2 years ago |
Alex Baker | 390265a9df | 2 years ago |
Alex Baker | e13d16d644 | 2 years ago |
Alex Baker | 1cd4e00919 | 2 years ago |
Alex Baker | 28e92e00c9 | 2 years ago |
Alex Baker | d0dfb30860 | 2 years ago |
Milo Ivir | eabde2ac57 | 2 years ago |
Alex Baker | eb631967fd | 2 years ago |
Gontzal Manuel Pujana Onaindia | 124a9f84ee | 2 years ago |
SC | ff7f55be5a | 2 years ago |
Eric | cb4c589b60 | 2 years ago |
Ihor Hordiichuk | fc8e7c0226 | 2 years ago |
Oğuz Ersen | 3845222f9f | 2 years ago |
Frits van Bommel | f3c1fd9628 | 2 years ago |
Pierfrancesco Passerini | 4020999c40 | 2 years ago |
Florian Trayon | 14814c3d18 | 2 years ago |
Florian Trayon | 3b7d4315b5 | 2 years ago |
qwerty287 | 9dd62bcfe5 | 2 years ago |
109247019824 | 9740891171 | 2 years ago |
Alex Baker | e2d3ccacda | 2 years ago |
Alex Baker | e5259b898a | 2 years ago |
Orel | 48613bc925 | 2 years ago |
Alex Baker | c36e1e8173 | 2 years ago |
Alex Baker | 9219796c6b | 2 years ago |
Alex Baker | f68ef7cbe5 | 2 years ago |
Pierfrancesco Passerini | 29519c24cc | 2 years ago |
109247019824 | e62f556d27 | 2 years ago |
Ihor Hordiichuk | 4a2aa97282 | 2 years ago |
Alex Baker | eaa47029e7 | 2 years ago |
Alex Baker | d589a89506 | 2 years ago |
Alex Baker | 1793d95d4d | 2 years ago |
Alex Baker | 1299bce67f | 2 years ago |
Alex Baker | 23bd8ba914 | 2 years ago |
Alex Baker | 1f07b17e75 | 2 years ago |
Alex Baker | 1ff960c496 | 2 years ago |
Alex Baker | 7778c21692 | 2 years ago |
Frits van Bommel | 7538f2bdbb | 2 years ago |
Alex Baker | 8f0d30408c | 2 years ago |
Milo Ivir | 6a8428cd06 | 2 years ago |
Eric | e8c0ab68ff | 2 years ago |
Oğuz Ersen | 8f0d0e9d45 | 2 years ago |
Allan Nordhøy | e49a033234 | 2 years ago |
Florian Trayon | 6e8ff8485d | 2 years ago |
Florian Trayon | b947f2d765 | 2 years ago |
Milo Ivir | 12381f9e02 | 2 years ago |
Eric | 10ba0917b7 | 2 years ago |
Ihor Hordiichuk | a7232546d8 | 2 years ago |
Oğuz Ersen | c707b981f1 | 2 years ago |
Frits van Bommel | 33de54aa14 | 2 years ago |
Pierfrancesco Passerini | 38031083a3 | 2 years ago |
Florian Trayon | 10ee541c7d | 2 years ago |
J. Lavoie | 64231fc742 | 2 years ago |
Florian Trayon | b17fde11f9 | 2 years ago |
109247019824 | 191bf5a182 | 2 years ago |
Alex Baker | 7327572db4 | 2 years ago |
Alex Baker | 9522c14891 | 2 years ago |
Alex Baker | 3c16a0c99a | 2 years ago |
Alex Baker | 780667b798 | 2 years ago |
Alex Baker | 26fc731e8e | 2 years ago |
Enol P | 23de9cb129 | 2 years ago |
Milo Ivir | feb1f18470 | 2 years ago |
Enol P | 949bc10ca0 | 2 years ago |
qwerty287 | b65e9f673a | 2 years ago |
Alex Baker | 5452d578be | 2 years ago |
Simona Iacob | 55f33a3f75 | 2 years ago |
Alex Baker | 9a19c0adc0 | 2 years ago |
Alex Baker | f8c5fa47b3 | 2 years ago |
Alex Baker | 0ae473e27f | 2 years ago |
Alex Baker | 37a59099cf | 2 years ago |
Alex Baker | 060e674727 | 2 years ago |
Alex Baker | 395ef07b4e | 2 years ago |
Alex Baker | 4db88b9865 | 2 years ago |
cketti | 468d42e4f6 | 2 years ago |
Alex Baker | 2783e80608 | 2 years ago |
SC | 0907f7c54e | 2 years ago |
Varun Sharma | a0328112fb | 2 years ago |
Alex Baker | bf829727ff | 2 years ago |
Alex Baker | 8dd47881a2 | 2 years ago |
Alex Baker | 6cb0069f76 | 2 years ago |
Alex Baker | c100d21bb4 | 2 years ago |
Alex Baker | 6ba234ebfd | 2 years ago |
Alex Baker | e3ff3bf499 | 2 years ago |
Alex Baker | 45e48f122a | 2 years ago |
Alex Baker | a51593170f | 2 years ago |
Eric | 837e4e5406 | 2 years ago |
Ihor Hordiichuk | d83f79864b | 2 years ago |
Oğuz Ersen | 906188f5e3 | 2 years ago |
Frits van Bommel | 2ef4adb9d8 | 2 years ago |
Florian Trayon | 9639b16305 | 2 years ago |
Florian Trayon | 956dd111eb | 2 years ago |
109247019824 | 0259da8322 | 2 years ago |
Pierfrancesco Passerini | d4b2f72ae6 | 2 years ago |
Alex Baker | e16f076fb7 | 2 years ago |
Alex Baker | 68b91ed2c7 | 2 years ago |
Alex Baker | 336279ee63 | 2 years ago |
Alex Baker | b8470ccc2b | 2 years ago |
Alex Baker | a6da3332d3 | 2 years ago |
Alex Baker | 2c45f0da94 | 2 years ago |
Alex Baker | 73adb86854 | 2 years ago |
Alex Baker | 587db3fa5c | 2 years ago |
Alex Baker | 2eabaad0e2 | 2 years ago |
Alex Baker | 95d5f74752 | 2 years ago |
Alex Baker | 2ac6c2413b | 2 years ago |
Alex Baker | 226687fee8 | 2 years ago |
Alex Baker | 3ce0433f9c | 2 years ago |
Alex Baker | 99f13df068 | 2 years ago |
Alex Baker | ba11ec2747 | 2 years ago |
Pierfrancesco Passerini | 2a8ae1709d | 2 years ago |
Ela Bogucka | 1d1a2eb6c7 | 2 years ago |
Alex Baker | a0e26263b1 | 2 years ago |
Alex Baker | 4ccba6f2b1 | 2 years ago |
Alex Baker | 8258c73a7f | 2 years ago |
Alex Baker | bb9e2f90b4 | 2 years ago |
Lukas Kempf | 7344f66189 | 2 years ago |
Alex Baker | 5fca19e21f | 2 years ago |
Alex Baker | 532fea0d29 | 2 years ago |
Alex Baker | d157bbec53 | 2 years ago |
Alex Baker | 5f3b706b81 | 2 years ago |
Alex Baker | 135f628dae | 2 years ago |
Alex Baker | df65415a83 | 2 years ago |
Alex Baker | c1b915baf8 | 2 years ago |
Alex Baker | 4f267ad989 | 2 years ago |
Alex Baker | 437d69d741 | 2 years ago |
Alex Baker | 9a33f54202 | 2 years ago |
Alex Baker | c2e87a86fa | 2 years ago |
DilshanH | b3ed7ea43b | 2 years ago |
Simona Iacob | 7017f14401 | 2 years ago |
Alex Baker | 8f5b7ccc20 | 2 years ago |
Alex Baker | 20ab106e12 | 2 years ago |
Alex Baker | 8ed2880953 | 2 years ago |
Alex Baker | 2ee7715c16 | 2 years ago |
Sergio Varela | 2841af08de | 2 years ago |
Alex Baker | e450e262a5 | 2 years ago |
Alex Baker | 60820ab3c9 | 2 years ago |
Alex Baker | 7b9b71dd67 | 2 years ago |
Alex Baker | d0fcca1a1f | 2 years ago |
Alex Baker | 22de530590 | 2 years ago |
Alex Baker | cdd163efbf | 2 years ago |
Alex Baker | 3163150e8f | 2 years ago |
Alex Baker | 738c345275 | 2 years ago |
Alex Baker | eabe2b37ee | 2 years ago |
Alex Baker | c4cd694948 | 2 years ago |
Alex Baker | c532abc87f | 2 years ago |
Alex Baker | 9c8e897f3a | 2 years ago |
Alex Baker | ccaed6ddb4 | 2 years ago |
Alex Baker | 1cac090c9d | 2 years ago |
Alex Baker | 00c80337de | 2 years ago |
Alex Baker | e7b6c96576 | 2 years ago |
Alex Baker | b13db7d23a | 2 years ago |
Alex Baker | b6efff59b4 | 2 years ago |
Alex Baker | d48d457a3d | 2 years ago |
Alex Baker | 85b8092982 | 2 years ago |
Alex Baker | 3e3de3c1d6 | 2 years ago |
Alex Baker | 5c3af50c9d | 2 years ago |
Alex Baker | e39bc8b8cc | 2 years ago |
Alex Baker | f4d69a8a69 | 2 years ago |
SC | 1615f215c4 | 2 years ago |
Alex Baker | e450f51f60 | 2 years ago |
SC | 0711176ae2 | 2 years ago |
Alex Baker | 4d8a058bfb | 2 years ago |
Alex Baker | 57ca2f013a | 2 years ago |
bruh | c52f90adb9 | 2 years ago |
Milo Ivir | 5be37001c0 | 2 years ago |
Alex Baker | 5e607f73a3 | 2 years ago |
Alex Baker | b4c3bec3ab | 2 years ago |
Alex Baker | 8c137f6521 | 2 years ago |
Oğuz Ersen | 2e2e74217e | 2 years ago |
Alex Baker | 3fa9040549 | 2 years ago |
Alex Baker | 9b3f5a0c65 | 2 years ago |
Alex Baker | ef308d6c14 | 2 years ago |
Alex Baker | 12f9352f69 | 2 years ago |
Alex Baker | f5a53e6453 | 2 years ago |
Alex Baker | 908d75909d | 2 years ago |
Sameer Rustamzada | 3736c4596e | 2 years ago |
Alex Baker | 8f4db8374d | 2 years ago |
Alex Baker | 08069d0a3d | 2 years ago |
Alex Baker | 91cb5a158b | 2 years ago |
Eric | 3df26c5401 | 2 years ago |
Ihor Hordiichuk | a5313d567e | 2 years ago |
Nikita Epifanov | fcec3228f7 | 2 years ago |
Frits van Bommel | 70552aa886 | 2 years ago |
Pierfrancesco Passerini | e97b32b5b1 | 2 years ago |
Florian Trayon | 5bc0b47ab6 | 2 years ago |
Florian Trayon | 198252cd84 | 2 years ago |
qwerty287 | db49fe46bd | 2 years ago |
Shimon | f936d60cdf | 2 years ago |
109247019824 | 977ae091de | 2 years ago |
Alex Baker | d8c70a4b5c | 2 years ago |
Alex Baker | 8e8b8c9f64 | 2 years ago |
Alex Baker | 6513c40c97 | 2 years ago |
Ihor Hordiichuk | 1f3b8fd228 | 2 years ago |
Artem | 90e47dc63e | 2 years ago |
Alex Baker | 6173192e72 | 2 years ago |
Alex Baker | c2580e1e68 | 2 years ago |
Alex Baker | 30961ec53a | 2 years ago |
Alex Baker | de50854c99 | 2 years ago |
Alex Baker | 70e4e96ed6 | 2 years ago |
Pierfrancesco Passerini | 8957056304 | 2 years ago |
Allineer | 99e67b2317 | 2 years ago |
SC | bf17a7522a | 2 years ago |
mhmdanas | a70b54592a | 2 years ago |
Milo Ivir | 3bbfa11966 | 2 years ago |
Eric | 839419353f | 2 years ago |
Ihor Hordiichuk | a5a6b0f84b | 2 years ago |
Oğuz Ersen | 1cc3485918 | 2 years ago |
Frits van Bommel | 55d3f463ca | 2 years ago |
Florian Trayon | 2d6b69b95b | 2 years ago |
Florian Trayon | 6388a02a81 | 2 years ago |
109247019824 | 25c82ee906 | 2 years ago |
Alex Baker | fcda6efe0c | 2 years ago |
Alex Baker | 1fbc2b1661 | 2 years ago |
Alex Baker | 99b1c2e38d | 2 years ago |
Alex Baker | 460269351a | 2 years ago |
Alex Baker | 9ea490572a | 2 years ago |
Alex Baker | 6f73765fd2 | 2 years ago |
Alex Baker | 47d6aeddea | 2 years ago |
Alex Baker | 3a93af4b0a | 2 years ago |
Alex Baker | b455e531d3 | 2 years ago |
Alex Baker | 43e787ad0c | 2 years ago |
Alex Baker | 2137bf8004 | 2 years ago |
Alex Baker | 543e169e33 | 2 years ago |
Alex Baker | 25877f05e2 | 2 years ago |
Alex Baker | 9832eef2c6 | 2 years ago |
109247019824 | b7342b770d | 2 years ago |
Alex Baker | cb0ca40f4e | 2 years ago |
Alex Baker | 0cecbbb376 | 2 years ago |
Alex Baker | 95918e3ae8 | 2 years ago |
Alex Baker | ba87311759 | 2 years ago |
Alex Baker | 708e2b14e6 | 2 years ago |
Alex Baker | 1ca6076005 | 2 years ago |
Alex Baker | 6b0ef5189d | 2 years ago |
Alex Baker | 07bf02f9e5 | 2 years ago |
Alex Baker | 6e70fc0912 | 2 years ago |
Alex Baker | 0b93712b05 | 2 years ago |
Alex Baker | 3bda6ccb4c | 2 years ago |
sunflowerskater | a51e742f39 | 2 years ago |
Alex Baker | 151dc36165 | 2 years ago |
Alex Baker | ead0255bbb | 2 years ago |
Alex Baker | 5439bc1611 | 2 years ago |
Alex Baker | 09de639b1c | 2 years ago |
Alex Baker | 75648de415 | 2 years ago |
Alex Baker | 9927ee786d | 2 years ago |
Osoitz | 0b4f9d6185 | 2 years ago |
Андрей | 8fd757c322 | 2 years ago |
Grzegorz Kulik | 0b23505da1 | 2 years ago |
109247019824 | 8feadf5a2f | 2 years ago |
Sergio Varela | 6f05d8c488 | 2 years ago |
SC | 10273c289f | 2 years ago |
Álvaro Oliveira | 509556654a | 2 years ago |
Shimon | 16651dc411 | 2 years ago |
hanthor | 5d624fec07 | 2 years ago |
Alex Baker | 01ad7e0081 | 2 years ago |
Alex Baker | 90e99e226a | 2 years ago |
Levy Marcelino | 1e1e9164e4 | 2 years ago |
Cyua Pyua | b014d753e5 | 2 years ago |
Emin Tufan Çetin | 23b9f6d14c | 2 years ago |
Levy Marcelino | c842bb42a5 | 2 years ago |
109247019824 | 208ab48936 | 2 years ago |
Alex Baker | 8d350949c1 | 2 years ago |
Shimoon Horanek | 06b5c723a7 | 2 years ago |
109247019824 | c52a9bd59b | 2 years ago |
Kaci | 8c4a2c4853 | 2 years ago |
109247019824 | 6f3c05e605 | 2 years ago |
Alexey Zinchenko | 6bae3d4812 | 3 years ago |
Alexey Zinchenko | 5f7389bd52 | 3 years ago |
109247019824 | 6417cc1711 | 3 years ago |
Txopi | 53995af675 | 3 years ago |
mm4c | 88c395bf39 | 3 years ago |
Yuri Dario | 7a17dc3719 | 3 years ago |
Jonatan Nyberg | 56dbadc415 | 3 years ago |
mm4c | 651ea9e690 | 3 years ago |
109247019824 | 413cf6fb1e | 3 years ago |
Yuri Dario | bb4ce22542 | 3 years ago |
bruh | 9e63551ad0 | 3 years ago |
Wiktor | 3923dd43a7 | 3 years ago |
Tntdruid | ce1b2c2018 | 3 years ago |
109247019824 | 86c8069a16 | 3 years ago |
109247019824 | 62332f87fc | 3 years ago |
mm4c | 395dc8fc3f | 3 years ago |
Pierfrancesco Passerini | 73a2114f81 | 3 years ago |
3ole | b77a78caf7 | 3 years ago |
Alex Baker | 6e695b144e | 3 years ago |
Alex Baker | 500cc3e6c2 | 3 years ago |
Nikita | 7334c41560 | 3 years ago |
mm4c | 5ff25d0c3d | 3 years ago |
Alex Baker | 7da45d780c | 3 years ago |
Alex Baker | 49774a5ec5 | 3 years ago |
Alex Baker | 8952286dff | 3 years ago |
Alex Baker | 3198392d38 | 3 years ago |
Milo Ivir | 2a36eeed64 | 3 years ago |
JY3 | f19ef4ef4a | 3 years ago |
Eric | 841c474660 | 3 years ago |
Ihor Hordiichuk | 65d4124c27 | 3 years ago |
Oğuz Ersen | 529a8cfebf | 3 years ago |
Frits van Bommel | bfa35f328d | 3 years ago |
mm4c | 899960415e | 3 years ago |
Allan Nordhøy | 5af9084d06 | 3 years ago |
Florian Trayon | f144f1811b | 3 years ago |
Florian Trayon | 79a3e02396 | 3 years ago |
Alex Baker | 99b533e5cd | 3 years ago |
Alex Baker | f97a9fc2a3 | 3 years ago |
Alex Baker | 0165cda12b | 3 years ago |
Alex Baker | 2564116341 | 3 years ago |
Alex Baker | b23aa62d42 | 3 years ago |
JY3 | 626d2422b7 | 3 years ago |
Ihor Hordiichuk | c321a996c6 | 3 years ago |
Emin Tufan Çetin | e50db3bacd | 3 years ago |
Nikita Epifanov | 7f0c904c11 | 3 years ago |
Wiktor | 853c2deb20 | 3 years ago |
Frits van Bommel | 51c991078d | 3 years ago |
mm4c | 7d80ae0e65 | 3 years ago |
Kaci | 6f07b9f007 | 3 years ago |
Florian Trayon | f89be76f03 | 3 years ago |
Florian Trayon | 3fb3935f26 | 3 years ago |
qwerty287 | 4492abcbc1 | 3 years ago |
109247019824 | 75de4569b8 | 3 years ago |
109247019824 | a823ab0f17 | 3 years ago |
Eric | 1572c58a6d | 3 years ago |
Alex Baker | 46a6996982 | 3 years ago |
Alex Baker | 1de4b220c3 | 3 years ago |
Oğuz Ersen | 64a5ea2c69 | 3 years ago |
bruh | 08d61e1eb8 | 3 years ago |
Jonatan Nyberg | ce6feb3984 | 3 years ago |
Nikita Epifanov | 521ff41454 | 3 years ago |
Wiktor | 8c1109f622 | 3 years ago |
Miguel | dca36b9fad | 3 years ago |
J. Lavoie | 26b861a07d | 3 years ago |
109247019824 | 6875e3f14a | 3 years ago |
Miguel | 08a87d0815 | 3 years ago |
mm4c | 0b4c852a99 | 3 years ago |
Francesco Saltori | b276d7bcb4 | 3 years ago |
109247019824 | d442c4dd42 | 3 years ago |
Alex Baker | 7bb0d0a84f | 3 years ago |
Alex Baker | a27047b6f8 | 3 years ago |
Unpublished | 5e9d97e06f | 3 years ago |
Alex Baker | d5ccc1aa8f | 3 years ago |
Alex Baker | ed48ab15e3 | 3 years ago |
Alex Baker | 437bb48d62 | 3 years ago |
Alex Baker | 68700a7319 | 3 years ago |
Alex Baker | b087cc090f | 3 years ago |
mm4c | 2c96e6ef29 | 3 years ago |
Alex Baker | 2c189f9610 | 3 years ago |
Alex Baker | 2aee91a04b | 3 years ago |
Alex Baker | ce191d3325 | 3 years ago |
J. Lavoie | 51609e54a9 | 3 years ago |
Simona Iacob | 31792efaf0 | 3 years ago |
mm4c | a7de841bc2 | 3 years ago |
J. Lavoie | 54a1fffd79 | 3 years ago |
Alex Baker | e6f90e622d | 3 years ago |
tsunamistonefly | 083b83816d | 3 years ago |
Alex Baker | ebb8f96795 | 3 years ago |
Alex Baker | 26796c0a57 | 3 years ago |
Alex Baker | e46ef8d7b0 | 3 years ago |
Milo Ivir | ae3d0f3d05 | 3 years ago |
qwerty287 | e3497f3f7d | 3 years ago |
Alex Baker | 4ca80e08c5 | 3 years ago |
Milo Ivir | 9adc822610 | 3 years ago |
Eric | 7083b377f5 | 3 years ago |
Ihor Hordiichuk | 84bddafa16 | 3 years ago |
Oğuz Ersen | a2a3bb454a | 3 years ago |
mm4c | 636d7a5a70 | 3 years ago |
Pierfrancesco Passerini | 16b6f90743 | 3 years ago |
Florian Trayon | 3da3a62d96 | 3 years ago |
Sebas Romero | ecdf8c61e4 | 3 years ago |
Florian Trayon | 85d53c02de | 3 years ago |
Alex Baker | 494c449fe6 | 3 years ago |
Alex Baker | e8f231b288 | 3 years ago |
Alex Baker | 0cfb27df22 | 3 years ago |
Alex Baker | f4398d82c6 | 3 years ago |
Alex Baker | c7f9f6e0e3 | 3 years ago |
Alex Baker | a62ffbc9fb | 3 years ago |
Alex Baker | b5993d0bee | 3 years ago |
Allineer | 94a8ff68f2 | 3 years ago |
J. Lavoie | 57200d5c1f | 3 years ago |
J. Lavoie | 94b277141a | 3 years ago |
Arne Klein | 453d57cb7e | 3 years ago |
Alex Baker | 36e9a8493d | 3 years ago |
Alex Baker | 62c5d21322 | 3 years ago |
Alex Baker | b4c85ed5c7 | 3 years ago |
Alex Baker | 7941373a37 | 3 years ago |
Alex Baker | 446de069ae | 3 years ago |
Alex Baker | 62931a5c70 | 3 years ago |
Alex Baker | 52a902c51a | 3 years ago |
Alex Baker | 3d9835a162 | 3 years ago |
Alex Baker | a5e0a06762 | 3 years ago |
Alex Baker | 25ab16faa8 | 3 years ago |
Alex Baker | a8f9fd1b77 | 3 years ago |
Jonatan Nyberg | 992e5048ec | 3 years ago |
Toni Estévez | 83d3820cf1 | 3 years ago |
eldiep | aded5e4d06 | 3 years ago |
109247019824 | f7e6fd8684 | 3 years ago |
Alex Baker | 73eeec9663 | 3 years ago |
Alex Baker | 50dde0b4c8 | 3 years ago |
Alex Baker | 968ba7080d | 3 years ago |
Simona Iacob | f5a01f71c9 | 3 years ago |
Pierfrancesco Passerini | 477b3c29ce | 3 years ago |
Kaci | 295fe61eff | 3 years ago |
Alex Baker | fdb2662e99 | 3 years ago |
Hugo Musso Gualandi | 957ad8f4d5 | 3 years ago |
JY3 | f8e1b1f828 | 3 years ago |
Frits van Bommel | cee7e39824 | 3 years ago |
JY3 | 9ac05e1e2c | 3 years ago |
mm4c | d4f594127f | 3 years ago |
Frits van Bommel | 97ac2989b0 | 3 years ago |
mm4c | 63cadc30e8 | 3 years ago |
Alex Baker | b026502bf8 | 3 years ago |
Alex Baker | 5e94537849 | 3 years ago |
Alex Baker | c9be5728b1 | 3 years ago |
Alex Baker | 75701f0b42 | 3 years ago |
bruh | 15d4e5182c | 3 years ago |
RainSlide | d5a8b86deb | 3 years ago |
RainSlide | e20e746490 | 3 years ago |
109247019824 | 64f0c95aaa | 3 years ago |
Alex Baker | 323fa0eb8a | 3 years ago |
Alex Baker | f512b8291b | 3 years ago |
Alex Baker | cb9661bc56 | 3 years ago |
Alex Baker | cf701e40c8 | 3 years ago |
Alex Baker | 2bf58b6977 | 3 years ago |
Alex Baker | 64dee60111 | 3 years ago |
Milo Ivir | c77f0770ad | 3 years ago |
Eric | 2940f3bd54 | 3 years ago |
Oğuz Ersen | 1bb0d39d78 | 3 years ago |
SC | 2ec8ffd0c5 | 3 years ago |
mm4c | 64ba437ac4 | 3 years ago |
Florian Trayon | 0e0743dc1f | 3 years ago |
109247019824 | ac3866339a | 3 years ago |
Alex Baker | 672dcdd268 | 3 years ago |
Alex Baker | 1154ba4be4 | 3 years ago |
Alex Baker | 433ae41200 | 3 years ago |
Alex Baker | 978d27de73 | 3 years ago |
Alex Baker | ad672d33aa | 3 years ago |
Alex Baker | 188acb4378 | 3 years ago |
Alex Baker | 0557ab4d18 | 3 years ago |
Alex Baker | 9d71c3f999 | 3 years ago |
Alex Baker | b45ed3bc14 | 3 years ago |
Alex Baker | 5c45d356c3 | 3 years ago |
Alex Baker | f99fcd3125 | 3 years ago |
Alex Baker | 259f428d71 | 3 years ago |
Alex Baker | 128715879a | 3 years ago |
Alex Baker | efd9276e7a | 3 years ago |
Ihor Hordiichuk | db334c792a | 3 years ago |
mm4c | 7167aa2862 | 3 years ago |
Roj | 7acc00d4ff | 3 years ago |
mm4c | 1a38ff07b5 | 3 years ago |
Roj | a2b3fcea2b | 3 years ago |
Alex Baker | b4315f9beb | 3 years ago |
Alex Baker | dfe64d5f6f | 3 years ago |
Alex Baker | 656c856737 | 3 years ago |
Jeffree Romero | a5afc509fe | 3 years ago |
Sebas Romero | 45b41e167f | 3 years ago |
Trevor Terris | bc906090aa | 3 years ago |
Trevor Terris | 9742d93e83 | 3 years ago |
@ -0,0 +1,47 @@
|
|||||||
|
name: Assemble bundle
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
uses: ./.github/workflows/check.yml
|
||||||
|
bundle:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [ check ]
|
||||||
|
steps:
|
||||||
|
- name: Decode Keystore
|
||||||
|
run: |
|
||||||
|
echo ${{ secrets.KEY_STORE }} | base64 -di > "${RUNNER_TEMP}"/keystore.jks
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
bundler-cache: true
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: '17'
|
||||||
|
cache: 'gradle'
|
||||||
|
- name: Grant execute permission for gradlew
|
||||||
|
run: chmod +x gradlew
|
||||||
|
- name: Bundle
|
||||||
|
env:
|
||||||
|
KEY_PATH: ${{ runner.temp }}/keystore.jks
|
||||||
|
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
|
||||||
|
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||||
|
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||||
|
MAPBOX_KEY: ${{ secrets.MAPBOX_KEY }}
|
||||||
|
GOOGLE_KEY: ${{ secrets.GOOGLE_KEY }}
|
||||||
|
run: bundle exec fastlane bundle
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: release
|
||||||
|
path: app/build/outputs/**
|
@ -0,0 +1,91 @@
|
|||||||
|
name: Run automated checks
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
workflow_call:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: ruby/setup-ruby@v1
|
||||||
|
with:
|
||||||
|
bundler-cache: true
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: '17'
|
||||||
|
cache: 'gradle'
|
||||||
|
- name: Grant execute permission for gradlew
|
||||||
|
run: chmod +x gradlew
|
||||||
|
- name: Lint checks
|
||||||
|
run: bundle exec fastlane lint
|
||||||
|
- name: Archive lint reports
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: lint-reports
|
||||||
|
path: app/build/reports/*.html
|
||||||
|
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
flavor: [Googleplay, Generic]
|
||||||
|
api-level: [29]
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up JDK 17
|
||||||
|
uses: actions/setup-java@v4
|
||||||
|
with:
|
||||||
|
distribution: 'temurin'
|
||||||
|
java-version: '17'
|
||||||
|
cache: 'gradle'
|
||||||
|
|
||||||
|
- name: Enable KVM
|
||||||
|
run: |
|
||||||
|
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
||||||
|
sudo udevadm control --reload-rules
|
||||||
|
sudo udevadm trigger --name-match=kvm
|
||||||
|
|
||||||
|
# - name: AVD cache
|
||||||
|
# uses: actions/cache@v4
|
||||||
|
# id: avd-cache
|
||||||
|
# with:
|
||||||
|
# path: |
|
||||||
|
# ~/.android/avd/*
|
||||||
|
# ~/.android/adb*
|
||||||
|
# key: avd-${{ matrix.api-level }}
|
||||||
|
#
|
||||||
|
# - name: create AVD and generate snapshot for caching
|
||||||
|
# if: steps.avd-cache.outputs.cache-hit != 'true'
|
||||||
|
# uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
# with:
|
||||||
|
# api-level: ${{ matrix.api-level }}
|
||||||
|
# force-avd-creation: false
|
||||||
|
# emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
# disable-animations: false
|
||||||
|
# script: echo "Generated AVD snapshot for caching."
|
||||||
|
|
||||||
|
- name: run tests
|
||||||
|
uses: reactivecircus/android-emulator-runner@v2
|
||||||
|
with:
|
||||||
|
api-level: ${{ matrix.api-level }}
|
||||||
|
force-avd-creation: false
|
||||||
|
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||||
|
disable-animations: true
|
||||||
|
script: ./gradlew -Pcoverage app:test${{ matrix.flavor }}DebugUnitTest app:connected${{ matrix.flavor }}DebugAndroidTest
|
||||||
|
|
||||||
|
- name: Upload test reports
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ always() }}
|
||||||
|
with:
|
||||||
|
name: test-reports-${{ matrix.flavor }}
|
||||||
|
path: app/build/reports/**
|
@ -1,36 +0,0 @@
|
|||||||
# This workflow will build a Java project with Gradle
|
|
||||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
|
|
||||||
|
|
||||||
name: Check licenses
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths-ignore:
|
|
||||||
- CODE_OF_CONDUCT.md
|
|
||||||
- CONTRIBUTING.md
|
|
||||||
- README.md
|
|
||||||
- 'fastlane/**'
|
|
||||||
- .github/FUNDING.yml
|
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- CODE_OF_CONDUCT.md
|
|
||||||
- CONTRIBUTING.md
|
|
||||||
- README.md
|
|
||||||
- 'fastlane/**'
|
|
||||||
- .github/FUNDING.yml
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Set up JDK 11
|
|
||||||
uses: actions/setup-java@v1
|
|
||||||
with:
|
|
||||||
java-version: '11.0.8'
|
|
||||||
- name: Grant execute permission for gradlew
|
|
||||||
run: chmod +x gradlew
|
|
||||||
- name: Build with Gradle
|
|
||||||
run: ./gradlew checkLicense
|
|
@ -1,42 +0,0 @@
|
|||||||
name: Lint
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths-ignore:
|
|
||||||
- CODE_OF_CONDUCT.md
|
|
||||||
- CONTRIBUTING.md
|
|
||||||
- README.md
|
|
||||||
- 'fastlane/**'
|
|
||||||
- .github/FUNDING.yml
|
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- CODE_OF_CONDUCT.md
|
|
||||||
- CONTRIBUTING.md
|
|
||||||
- README.md
|
|
||||||
- 'fastlane/**'
|
|
||||||
- .github/FUNDING.yml
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: ruby/setup-ruby@v1
|
|
||||||
with:
|
|
||||||
bundler-cache: true
|
|
||||||
- name: Set up JDK 11
|
|
||||||
uses: actions/setup-java@v1
|
|
||||||
with:
|
|
||||||
java-version: '11.0.8'
|
|
||||||
- name: Grant execute permission for gradlew
|
|
||||||
run: chmod +x gradlew
|
|
||||||
- name: Lint checks
|
|
||||||
run: bundle exec fastlane lint
|
|
||||||
- name: Archive lint reports
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: lint-reports
|
|
||||||
if: always()
|
|
||||||
path: app/build/reports/*.html
|
|
@ -1,37 +0,0 @@
|
|||||||
name: Run tests
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths-ignore:
|
|
||||||
- CODE_OF_CONDUCT.md
|
|
||||||
- CONTRIBUTING.md
|
|
||||||
- README.md
|
|
||||||
- 'fastlane/**'
|
|
||||||
- .github/FUNDING.yml
|
|
||||||
pull_request:
|
|
||||||
paths-ignore:
|
|
||||||
- CODE_OF_CONDUCT.md
|
|
||||||
- CONTRIBUTING.md
|
|
||||||
- README.md
|
|
||||||
- 'fastlane/**'
|
|
||||||
- .github/FUNDING.yml
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: macos-latest
|
|
||||||
steps:
|
|
||||||
- name: checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
- name: Set up JDK 11
|
|
||||||
uses: actions/setup-java@v1
|
|
||||||
with:
|
|
||||||
java-version: '11.0.8'
|
|
||||||
- name: run tests
|
|
||||||
uses: reactivecircus/android-emulator-runner@v2
|
|
||||||
with:
|
|
||||||
api-level: 29
|
|
||||||
script: ./gradlew -Pcoverage :app:jacocoTestReportGoogleplayDebug :app:createGoogleplayDebugAndroidTestCoverageReport
|
|
||||||
- name: upload coverage
|
|
||||||
uses: codecov/codecov-action@v1
|
|
||||||
with:
|
|
||||||
directory: ./app/build
|
|
@ -1 +1 @@
|
|||||||
3.0.3
|
3.3.4
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,767 @@
|
|||||||
|
### 12.7 (2022-06-18)
|
||||||
|
|
||||||
|
* Android 13 themed icon - Thanks @hanthor!
|
||||||
|
* Fix self-signed SSL certificates on Android 12+
|
||||||
|
* Don't hide empty tags and places in pickers
|
||||||
|
* Update translations
|
||||||
|
* Basque - @Txopi, Sergio Varela, @osoitz
|
||||||
|
* Belarusian - @Prominence, Андрей
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Czech - Shimon
|
||||||
|
* Danish - Tntdruid
|
||||||
|
* Dutch - @mm4c
|
||||||
|
* German - @3ole
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - Cyua Pyua
|
||||||
|
* Italian - @ppasserini
|
||||||
|
* Polish - @wiktor-k
|
||||||
|
* Portuguese (Brazilian) - @LevyMarCiS, @sunflowerskater
|
||||||
|
* Portuguese - @laralem, @alvar0liveira
|
||||||
|
* Swedish - @reportxx
|
||||||
|
* Turkish - @emintufan
|
||||||
|
* Vietnamese - @unbiaseduser
|
||||||
|
|
||||||
|
### 12.6.1 (2022-03-27)
|
||||||
|
|
||||||
|
* Move task list and edit screen options to top level settings
|
||||||
|
* Prompt users to customize edit screen
|
||||||
|
* Fix cancel button for recurring reminder dialog
|
||||||
|
* Update translations
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Chinese (Simplified) - Eric, @Geeyun-JY3
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Dutch - @mm4c, @fvbommel
|
||||||
|
* Finnish - J. Lavoie
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Galician - @mglbranco, J. Lavoie
|
||||||
|
* German - @qwerty287
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Italian - @Fs00
|
||||||
|
* Norwegian Bokmål - @comradekingu
|
||||||
|
* Polish - @wiktor-k
|
||||||
|
* Portuguese (Brazilian) - @tsunamistonefly
|
||||||
|
* Romanian - @simonaiacob
|
||||||
|
* Russian - Nikita Epifanov
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Swedish - @reportxx
|
||||||
|
* Turkish - @ersen0, @emintufan
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Vietnamese - @unbiaseduser, J. Lavoie
|
||||||
|
|
||||||
|
### 12.6 (2022-03-12)
|
||||||
|
|
||||||
|
* Configure notifications to repeat at custom intervals
|
||||||
|
([#3](https://github.com/tasks/tasks/issues/3))
|
||||||
|
* Notifications can repeat by minute, hour, day, or weekly intervals
|
||||||
|
* Add 'Snoozed' filter ([#1633](https://github.com/tasks/tasks/issues/1633))
|
||||||
|
* Add 'Notifications' filter
|
||||||
|
* CalDAV/DAVx5 server selection setting
|
||||||
|
* This replaces 'Let server schedule recurring tasks'
|
||||||
|
* Synology Calendar users must set this to fix sync
|
||||||
|
([#1802](https://github.com/tasks/tasks/issues/1802))
|
||||||
|
* Mailbox.org and Open-Xchange users must set this to prevent duplicate
|
||||||
|
repeating tasks
|
||||||
|
* Set geofence radius in place settings
|
||||||
|
* Remove DAVx5/EteSync app accounts when native CalDAV/EteSync enabled
|
||||||
|
* Clear reminders when they are dismissed in Thunderbird
|
||||||
|
* Fix reminder synchronization
|
||||||
|
* Fix crash in task edit screen
|
||||||
|
* Fix prompt to discard changes
|
||||||
|
* Fix crash during 12.4 upgrade
|
||||||
|
* Update translations
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Chinese (Simplified) - @Crystal-RainSlide, @Geeyun-JY3, Eric
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Dutch - @mm4c, @fvbommel
|
||||||
|
* French - J. Lavoie, @FlorianLeChat
|
||||||
|
* German - @eldiep, J. Lavoie, @qwerty287
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Italian - @ppasserini, J. Lavoie
|
||||||
|
* Portuguese (Brazilian) - @hugomg
|
||||||
|
* Romanian - @simonaiacob
|
||||||
|
* Russian - @Allineer
|
||||||
|
* Spanish - @toni-em, @FlorianLeChat, @Romerolweb
|
||||||
|
* Swedish - @reportxx
|
||||||
|
* Turkish - @ersen0
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Urdue - @Crystal-RainSlide
|
||||||
|
* Vietnamese - @unbaseduser
|
||||||
|
|
||||||
|
### 12.5 (2022-02-27)
|
||||||
|
|
||||||
|
* Choose custom random reminder period
|
||||||
|
* Add multiple random reminders
|
||||||
|
* Fix sync crash for Tasks.org, CalDAV, and native EteSync
|
||||||
|
* Add Kurdish (Central) translations - @roj1512
|
||||||
|
* Update translations
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Chinese (Simplified) - Eric
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Dutch - @mm4c
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Portuguese - @laralem
|
||||||
|
* Spanish - @Romerolweb, Jeffree Romero
|
||||||
|
* Turkish - @ersen0
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 12.4 (2022-02-19)
|
||||||
|
|
||||||
|
* Relative reminder support
|
||||||
|
* Quickly add reminders minutes, hours, days, or weeks before due
|
||||||
|
* Sync reminders with Tasks.org, DAVx5, CalDAV, EteSync, and DecSync CC
|
||||||
|
* Synchronize relative and absolute reminders
|
||||||
|
* Tasks.org, CalDAV, and native EteSync sync improvements
|
||||||
|
* Merge remote changes before pushing local changes
|
||||||
|
* Not applicable to DAVx5, EteSync app, or DecSync CC
|
||||||
|
* View and cancel snoozed reminders in task edit screen
|
||||||
|
* Add 'Has reminder' custom filter criteria
|
||||||
|
* Fix updating calendar entries after editing task
|
||||||
|
* Fix search when using top app bar
|
||||||
|
* Fix task deletion when adding from two devices simultaneously
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Brazilian Portuguese - @Luiz-bro
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Chinese (Simplified) - Eric
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Dutch - @mm4c
|
||||||
|
* French - @FlorianLeChat, J. Lavoie
|
||||||
|
* German - J. Lavoie, @qwerty287
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Italian - @ppasserini, J. Lavoie, @andrearosso
|
||||||
|
* Portuguese - @laralem
|
||||||
|
* Romanian - @simonaiacob
|
||||||
|
* Russian - @NikGreens
|
||||||
|
* Spanish - @FlorianLeChat, Sergio Varela
|
||||||
|
* Turkish - @ersen0, @emintufan
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Vietnamese - bruh, @unbaseduser
|
||||||
|
|
||||||
|
### 12.3 (2022-02-04)
|
||||||
|
|
||||||
|
* Add option to disable moving completed tasks to bottom
|
||||||
|
* Add option to disable sorting completed by completion date
|
||||||
|
* Add undo snackbar for task completion
|
||||||
|
* Fix crash when location lookup fails
|
||||||
|
* Fix voice reminders on Android 12
|
||||||
|
* Fix widget due dates in overdue sort group
|
||||||
|
* Add Karelian translations - Olexii Ondrei
|
||||||
|
* Update translations
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Catalan - @ivangjxyz
|
||||||
|
* Chinese (Simplified) - Eric
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Dutch - @mm4c
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - @qwerty287
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Romanian - @simonaiacob
|
||||||
|
* Russian - @NikGreens
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Swedish - @reportxx
|
||||||
|
* Turkish - @emintufan, @ersen0
|
||||||
|
* Vietnamese - @unbaseduser
|
||||||
|
|
||||||
|
### 12.2 (2022-01-16)
|
||||||
|
|
||||||
|
* Move completed tasks to bottom
|
||||||
|
* Add option to disable collapsing app bars
|
||||||
|
* Uncheck parent tasks when subtask is unchecked
|
||||||
|
* Fix crash on completion sound
|
||||||
|
* Update translations
|
||||||
|
* Chinese (Simplified) - Eric
|
||||||
|
* Danish - @Tntdruid
|
||||||
|
* Dutch - @fvbommel, @mm4c
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - @qwerty287
|
||||||
|
* Russian - @NikGreens
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Turkish - @ersen0
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Vietnamese - @unbaseduser
|
||||||
|
|
||||||
|
### 12.1 (2022-01-09)
|
||||||
|
|
||||||
|
* Group overdue tasks when sorting by due date
|
||||||
|
* Update translations
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Chinese (Simplified) - Eric
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Norwegian Bokmål - @comradekingu
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Vietnamese - @unbaseduser
|
||||||
|
|
||||||
|
### 12.0 (2022-01-08)
|
||||||
|
|
||||||
|
* New bottom app bar
|
||||||
|
* Choose top or bottom app bar in settings
|
||||||
|
* Miscellaneous design updates
|
||||||
|
* Improve privacy and security by removing RECORD_AUDIO and
|
||||||
|
WRITE_EXTERNAL_STORAGE permissions
|
||||||
|
* Attaching an audio note will launch your device's audio recorder
|
||||||
|
* Translation updates
|
||||||
|
* Catalan - @Solatec
|
||||||
|
* Dutch - @mm4c
|
||||||
|
* German - @qwerty287
|
||||||
|
* Italian - @ppasserini, @Fs00
|
||||||
|
* Portuguese - @SantosSi
|
||||||
|
* Romanian - @simonaiacob
|
||||||
|
* Russian - Nikita Epifanov
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.13 (2021-12-31)
|
||||||
|
|
||||||
|
* Add option to play a sound when a task is completed
|
||||||
|
* Accept audio attachments shared from other apps
|
||||||
|
* Removed native EteSync v1 support
|
||||||
|
* EteSync v1 accounts can still be synchronized with the EteSync app
|
||||||
|
* Bug fixes
|
||||||
|
* Translation updates
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Chinese (Simplified) - @sr093906
|
||||||
|
* Chinese (Traditional) - @dixon777
|
||||||
|
* Finnish - @CSharpest, Rami Lehtinen
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Italian - J. Lavoie, @Fs00
|
||||||
|
* Norwegian Bokmål - @comradekingu
|
||||||
|
* Persian - @Ahmadhosseinbor
|
||||||
|
* Spanish - @aplopez, @FlorianLeChat
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.12.3 (2021-11-22)
|
||||||
|
|
||||||
|
* Fix reminders
|
||||||
|
* Update translations
|
||||||
|
* Indonesian - when we were sober
|
||||||
|
* Kurdish (Northern) - Pêşeroja paşerojê
|
||||||
|
* Romanian - @Steinhagen
|
||||||
|
|
||||||
|
### 11.12.2 (2021-11-13)
|
||||||
|
|
||||||
|
* Fix reminders
|
||||||
|
* Fix reminder preference backup
|
||||||
|
* Update translations
|
||||||
|
* Interlingua - @softinterlingua
|
||||||
|
* Tamil - @balogic
|
||||||
|
|
||||||
|
### 11.12.1 (2021-11-05)
|
||||||
|
|
||||||
|
* Fix reminders
|
||||||
|
* Update translations
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Norwegian Bokmål - @HumanNr4584093104
|
||||||
|
* Romanian - Simona Iacob
|
||||||
|
* Russian - @NikGreens
|
||||||
|
* Tamil - @balogic
|
||||||
|
* Turkish - @ersen0
|
||||||
|
|
||||||
|
### 11.12 (2021-10-26)
|
||||||
|
|
||||||
|
* Add option to notify at start date
|
||||||
|
* Widget tweaks for Android 12
|
||||||
|
* Fix crash when deleting tasks (Thanks @fschrempf!)
|
||||||
|
* Fix truncated calendar picker
|
||||||
|
* Update translations
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Brazilian Portuguese - @laralem
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Catalan - @Solatec
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - @qwerty287
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Lithuanian - @70h
|
||||||
|
* Polish - @dominik-korsa
|
||||||
|
* Simplified Chinese - @sr093906, @Geeyun-JY3
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Vietnamese - bruh
|
||||||
|
|
||||||
|
### 11.11 (2021-09-21)
|
||||||
|
|
||||||
|
* Add 'Due now' filter criteria - Thanks @tkterris!
|
||||||
|
* Fix crash on Android 12 - Thanks @tkterris!
|
||||||
|
* Fix preference display issue - Thanks @Groctel!
|
||||||
|
* Target Android 12
|
||||||
|
* Ignore link clicks during multi-select
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas, @machiav3lli
|
||||||
|
* Basque - @Thadah
|
||||||
|
* Brazilian Portuguese - @laralem
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Czech - @vitSkalicky
|
||||||
|
* Danish - @Tntdruid
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - @machiav3lli, J. Lavoie
|
||||||
|
* Greek - @giorgio93p
|
||||||
|
* Indonesian - @erigmac
|
||||||
|
* Italian - J. Lavoie, @Fs00
|
||||||
|
* Japanese - さとうまこと
|
||||||
|
* Lithuanian - @70h
|
||||||
|
* Norwegian Bokmål - @comradekingu
|
||||||
|
* Portuguese - @laralem
|
||||||
|
* Romanian - Simona Iacob
|
||||||
|
* Russian - @tolstovka, @zhelemysh, @ToxesFoxes
|
||||||
|
* Simplified Chinese - @sr093906, @Geeyun-JY3
|
||||||
|
* Sinhala - @Dilshan-H
|
||||||
|
* Spanish - @FlorianLeChat, @Groctel, @berman00
|
||||||
|
* Swedish - @bittin
|
||||||
|
* Turkish - @ersen0
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Vietnamese - bruh
|
||||||
|
|
||||||
|
### 11.10.2 (2021-07-15)
|
||||||
|
|
||||||
|
* Fix location-based reminders
|
||||||
|
* Fix preference backup
|
||||||
|
* Update translations
|
||||||
|
* Arabic - git ty, @mhmdanas
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Czech - @vitSkalicky, @p-bo
|
||||||
|
* Dutch - Beardhatcode, @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - K. Herbert, @franconian, @ecxod, @bluedeepimpact
|
||||||
|
* Indonesian - when we were sober
|
||||||
|
* Interlingua - @softinterlingua
|
||||||
|
* Italian - J. Lavoie
|
||||||
|
* Lithuanian - @70h
|
||||||
|
* Norwegian Bokmål - @Jerome2103
|
||||||
|
* Portuguese - @laralem
|
||||||
|
* Russian - @KovalevArtem, @Blueberryy
|
||||||
|
* Simplified Chinese - @sr093906, @Geeyun-JY3
|
||||||
|
* Sinhala - HelaBasa
|
||||||
|
* Spanish - @FlorianLeChat, @fitojb
|
||||||
|
* Turkish - Oğuz Ersen, @emintufan
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Urdu - Maaz
|
||||||
|
* Vietnamese - bruh
|
||||||
|
|
||||||
|
### 11.10.1 (2021-05-26)
|
||||||
|
|
||||||
|
* Improve Android 12 compatibility
|
||||||
|
* Update status bar styles
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Catalan - @toram
|
||||||
|
* Chinese (Traditional) - @kisaragi-hiu
|
||||||
|
* Croatian - @ggdorman
|
||||||
|
* Czech - @vitSkalicky
|
||||||
|
* Esperanto - @J053Fabi0, @jakubfabijan
|
||||||
|
* French - K. Herbert, J. Lavoie
|
||||||
|
* German - K. Herbert
|
||||||
|
* Greek - Eugenia Russell
|
||||||
|
* Hungarian - @gthrepwood
|
||||||
|
* Indonesian - @andhikapangestu29
|
||||||
|
* Korean - Sunjae Choi
|
||||||
|
* Portuguese (Brazil) - @laralem
|
||||||
|
* Portuguese - @SantosSi, @laralem
|
||||||
|
* Russian - Nikita Epifanov
|
||||||
|
* Sinhala - @Dilshan-H
|
||||||
|
* Spanish - @fitojb
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Urdu - Maaz
|
||||||
|
* Vietnamese - bruh
|
||||||
|
|
||||||
|
### 11.10 (2021-04-19)
|
||||||
|
|
||||||
|
* Markdown support ([Documentation](https://tasks.org/docs/markdown))
|
||||||
|
* Samsung DeX support - Thanks @mhmdanas!
|
||||||
|
* Update to Google Play Billing v3
|
||||||
|
* Remove background sync for legacy EteSync v1 accounts
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* Brazilian Portuguese - @daylightdev
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat, J. Lavoie
|
||||||
|
* German - J. Lavoie
|
||||||
|
* Greek - Michalis, Eugenia Russell
|
||||||
|
* Indonesian - @liimee
|
||||||
|
* Italian - J. Lavoie, @Fs00
|
||||||
|
* Japanese - @kisaragi-hiu
|
||||||
|
* Kannada - @shashank-p
|
||||||
|
* Russian - @zhelemysh, Nikita Epifanov
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Turkish - Oğuz Ersen
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Urdu - Maaz
|
||||||
|
|
||||||
|
### 11.9.2 (2021-03-29)
|
||||||
|
|
||||||
|
* Fix date translation issue - Thanks @mhmdanas!
|
||||||
|
* Fix misc translation strings - Thanks J. Lavoie!
|
||||||
|
* Update translations
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - @franconian, Achim Schumacher, J. Lavoie
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - when we were sober
|
||||||
|
* Italian - @Fs00
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Turkish - @emintufan
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.9.1 (2021-03-25)
|
||||||
|
|
||||||
|
* Open documentation links in custom tabs
|
||||||
|
* Fix crash in Mapbox reverse geocoder
|
||||||
|
* Increase 'Add subtask' touch target
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* German - Achim Schumacher
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Italian - @Fs00
|
||||||
|
* Turkish - @emintufan
|
||||||
|
|
||||||
|
### 11.9 (2021-03-20)
|
||||||
|
|
||||||
|
* New calendar and clock pickers
|
||||||
|
* New preference to default to text input for date and time
|
||||||
|
* Fix issue causing Tasks to use wrong search provider
|
||||||
|
* Fix crash when Nextcloud/ownCloud don't send list owner
|
||||||
|
* Update translations
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Croatian - @milotype
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - Achim Schumacher
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - when we were sober
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.8 (2021-03-15)
|
||||||
|
|
||||||
|
* CalDAV: Send shared list invites
|
||||||
|
* Compatible with Tasks.org, Nextcloud, ownCloud, and sabre/dav
|
||||||
|
* Show shared list invite status in list settings
|
||||||
|
* Fix drawer count when list is shared with 2+ users
|
||||||
|
* Removed legacy EteSync v1 list management features
|
||||||
|
* Dropped support for Android 6.0
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* Esperanto - @jakubfabijan
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - @Jerome2103
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - when we were sober, @andhikapangestu29
|
||||||
|
* Norwegian Bokmål - @comradekingu
|
||||||
|
* Polish - @doegedomita
|
||||||
|
* Portuguese - @Jerome2103
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Turkish - Oğuz Ersen
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.7 (2021-03-08)
|
||||||
|
|
||||||
|
* CalDAV: Display shared list members in list settings
|
||||||
|
* Compatible with Tasks.org, Nextcloud, ownCloud, OpenXchange, and sabre/dav
|
||||||
|
* CalDAV: List owners can remove shared list members from list
|
||||||
|
* Compatible with Tasks.org, Nextcloud, ownCloud, and sabre/dav
|
||||||
|
* Fix time zone issue in recurrence picker
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - @putulopi
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Turkish - @emintufan, Oğuz Ersen
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.6.1 (2021-03-11)
|
||||||
|
|
||||||
|
* F-Droid: Fix OpenStreetMap crash
|
||||||
|
|
||||||
|
### 11.6 (2021-03-04)
|
||||||
|
|
||||||
|
* CalDAV: Display indicator in drawer when a list is shared with other users
|
||||||
|
* Compatible with Tasks.org, Nextcloud, ownCloud, OpenXchange, and sabre/dav
|
||||||
|
* CalDAV: Don't upload changes to read-only lists
|
||||||
|
([#931](https://github.com/tasks/tasks/issues/931))
|
||||||
|
* Remove unnecessary icon-mirroring for RTL users
|
||||||
|
([#1385](https://github.com/tasks/tasks/issues/1385) and
|
||||||
|
[#1391](https://github.com/tasks/tasks/pull/1391)) - Thanks to @mhmdanas
|
||||||
|
* Update translations
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Bulgarian - @StoyanDimitrov
|
||||||
|
* Czech - @vitSkalicky
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - @putulopi
|
||||||
|
* Russian - Nikita Epifanov
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Sinhala - HelaBasa
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.5.2 (2021-02-25)
|
||||||
|
|
||||||
|
* Fix CalDAV sync error
|
||||||
|
* Report errors when generating recurrence dates
|
||||||
|
|
||||||
|
### 11.5.1 (2021-02-24)
|
||||||
|
|
||||||
|
* Fix 'repeat until' date
|
||||||
|
* Fix repeat dates for UTC+13
|
||||||
|
([#1374](https://github.com/tasks/tasks/issues/1374))
|
||||||
|
* F-Droid: Handle null name in Nominatim reverse geocoder
|
||||||
|
([#1380](https://github.com/tasks/tasks/issues/1380))
|
||||||
|
* Update translations
|
||||||
|
* Basque - Sergio Varela
|
||||||
|
* Croatian - @ggdorman
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Norwegian Bokmål - @comradekingu
|
||||||
|
* Polish - @alex-ter
|
||||||
|
* Russian - Nikita Epifanov
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Turkish - Oğuz Ersen
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
* Urdu - Maaz
|
||||||
|
|
||||||
|
### 11.5 (2021-02-17)
|
||||||
|
|
||||||
|
* Sync snooze time with Tasks.org, DAVx⁵, CalDAV, EteSync, and DecSync
|
||||||
|
* Compatible with Thunderbird
|
||||||
|
* New map theme preference
|
||||||
|
* 10 new icons
|
||||||
|
* F-Droid: Use Nominatim for reverse geocoding
|
||||||
|
* Google Play: Use OpenStreetMap tiles when Play Services not available
|
||||||
|
* Google Play: Use Android location services when Play Services not available
|
||||||
|
* Tasks.org accounts: Use Google Places for map search
|
||||||
|
* Update translations
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - when we were sober
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Ukrainian - @IhorHordiichuk
|
||||||
|
|
||||||
|
### 11.4 (2021-02-09)
|
||||||
|
|
||||||
|
* Sync collapsed subtask state with Tasks.org, DAVx⁵, CalDAV, EteSync, and
|
||||||
|
DecSync ([#1339](https://github.com/tasks/tasks/issues/1339))
|
||||||
|
* Compatible with Nextcloud and ownCloud
|
||||||
|
* F-Droid: Add location based reminders ([#770](https://github.com/tasks/tasks/issues/770))
|
||||||
|
* F-Droid: Replace Mapbox tiles with OpenStreetMap tiles ([#922](https://github.com/tasks/tasks/issues/922))
|
||||||
|
* Fix default start date ([#1350](https://github.com/tasks/tasks/issues/1350))
|
||||||
|
|
||||||
|
### 11.3.4 (2021-02-03)
|
||||||
|
|
||||||
|
* Adjust start times by one second during sync
|
||||||
|
([#1326](https://github.com/tasks/tasks/issues/1326))
|
||||||
|
* Can now sync start time = due time with DAVx⁵, EteSync app, and DecSync CC
|
||||||
|
* All day start date must come before all day due date with DAVx⁵, EteSync
|
||||||
|
app, and DecSync CC
|
||||||
|
* 'Show unstarted' toggled on by default
|
||||||
|
|
||||||
|
### 11.3.3 (2021-01-30)
|
||||||
|
|
||||||
|
* Fix all-day due date synchronization
|
||||||
|
([#1325](https://github.com/tasks/tasks/issues/1325))
|
||||||
|
|
||||||
|
### 11.3.2 (2021-01-28)
|
||||||
|
|
||||||
|
* Fix recurrence sync issue
|
||||||
|
([#1323](https://github.com/tasks/tasks/issues/1323))
|
||||||
|
|
||||||
|
### 11.3.1 (2021-01-27)
|
||||||
|
|
||||||
|
* Improve support for recurring tasks with subtasks
|
||||||
|
* Subtasks will be unchecked after completing a recurring task
|
||||||
|
* Clear completed will not delete subtasks of recurring tasks
|
||||||
|
* Improve widget sort header when space is limited
|
||||||
|
* Add option to hide widget title
|
||||||
|
* Fix timezone conversions during synchronization
|
||||||
|
* Add Esperanto translations - @jakubfabijan
|
||||||
|
|
||||||
|
### 11.3 (2021-01-20)
|
||||||
|
|
||||||
|
* 'Hide until' is now 'Start date'
|
||||||
|
* Synchronize start dates with Tasks.org, DAVx⁵, CalDAV, EteSync, and DecSync
|
||||||
|
* New start date picker
|
||||||
|
* New start date custom filter criteria
|
||||||
|
* Add sort 'By start date'
|
||||||
|
* Display start dates as chips
|
||||||
|
* Don't perform background sync when data saver enabled
|
||||||
|
* Preference changes
|
||||||
|
* Add app and widget preferences to disable start date chips
|
||||||
|
* Synchronization accounts displayed on main preference screen
|
||||||
|
* Removed background sync and metered connection options (now respecting data
|
||||||
|
saver mode)
|
||||||
|
* Removed Google Tasks 'Custom order synchronization fix' (automatically
|
||||||
|
performing full sync if 'My order' enabled)
|
||||||
|
* Remove support for legacy XML backup format ([more info](https://github.com/tasks/tasks/issues/1565))
|
||||||
|
* Bug fixes
|
||||||
|
|
||||||
|
### 11.2.2 (2021-01-07)
|
||||||
|
|
||||||
|
* Rename 'Lists' to 'Local lists' to clarify that they are not synchronized
|
||||||
|
* Tasks.org sign in improvements
|
||||||
|
* Miscellaneous improvements - Thanks @mhmdanas!
|
||||||
|
|
||||||
|
### 11.2.1 (2021-01-05)
|
||||||
|
|
||||||
|
* Fix Portuguese translation issue
|
||||||
|
* Report OpenTask sync errors
|
||||||
|
* Report Tasks.org sign in errors
|
||||||
|
* Don't crash on widget configuration error
|
||||||
|
* Purchase dialog changes
|
||||||
|
|
||||||
|
### 11.2 (2020-12-30)
|
||||||
|
|
||||||
|
* [Synchronize your Tasks.org account with third-party task and calendar apps, like Outlook,
|
||||||
|
Thunderbird, or Apple Reminders](https://tasks.org/passwords)
|
||||||
|
* Miscellaneous improvements - Thanks @mhmdanas!
|
||||||
|
|
||||||
|
### 11.1.1 (2020-12-24)
|
||||||
|
|
||||||
|
* Fix compatibility issues with third-party clients
|
||||||
|
* Completed tasks without completion dates
|
||||||
|
([222a34f](https://github.com/tasks/tasks/commit/222a34fc263816bb23f633bc9c79de78aeb3968d))
|
||||||
|
* Tasks with start date but no due date
|
||||||
|
([7a1d566](https://github.com/tasks/tasks/commit/7a1d566bfb613b95d3fe1df46d8fa67200c91021))
|
||||||
|
* Miscellaneous improvements - Thanks @mhmdanas!
|
||||||
|
|
||||||
|
### 11.1 (2020-12-21)
|
||||||
|
|
||||||
|
* Add [DecSync CC synchronization](https://tasks.org/decsync)
|
||||||
|
* Fix rescheduling remotely completed recurring task
|
||||||
|
([5eb9370](https://github.com/tasks/tasks/commit/5eb9370294ef707b3e667c4a42851030419920d8))
|
||||||
|
* Miscellaneous code improvements - Thanks @mhmdanas!
|
||||||
|
|
||||||
|
### 11.0.1 (2020-12-17)
|
||||||
|
|
||||||
|
* Fix EteSync client issue with v2 accounts
|
||||||
|
([b761309](https://github.com/tasks/tasks/commit/b76130902ae0be6e1d580d588798a9ed0d7ff385))
|
||||||
|
* Fix multi-select 'Pick time' crash
|
||||||
|
* Fix default hide until due time
|
||||||
|
([#842](https://github.com/tasks/tasks/issues/842#issuecomment-746358382))
|
||||||
|
* Add Croatian translations - Garden Hose
|
||||||
|
* Add Urdu translations - Maaz
|
||||||
|
|
||||||
|
### 11.0 (2020-12-10)
|
||||||
|
|
||||||
|
* New Tasks.org synchronization service
|
||||||
|
* Multi-select rescheduling
|
||||||
|
* New task default settings
|
||||||
|
* Default tags
|
||||||
|
* Default recurrence
|
||||||
|
* Default location
|
||||||
|
* Hide until due time
|
||||||
|
* New custom filter criteria
|
||||||
|
* Hidden tasks
|
||||||
|
* Completed tasks
|
||||||
|
* Subtasks
|
||||||
|
* Parent tasks
|
||||||
|
* Recurring tasks
|
||||||
|
* Added EteSync v2 support
|
||||||
|
* Deprecated EteSync v1 support
|
||||||
|
* v1 accounts cannot be added to Tasks.org
|
||||||
|
* v1 accounts can be added to the EteSync Android client
|
||||||
|
* Add ability to delete comments (Thanks to @romedius!)
|
||||||
|
* Add option to always display date (Thanks to @T0M0F!)
|
||||||
|
* Copy subtasks when copying tasks (Thanks to @supermzn!)
|
||||||
|
* Fix ring five times cutoff (Thanks to @przemhb!)
|
||||||
|
* Bug fixes
|
||||||
|
* Translation updates
|
||||||
|
* Arabic - @mhmdanas
|
||||||
|
* Basque - @osoitz, @ppasserini
|
||||||
|
* Dutch - @fvbommel
|
||||||
|
* French - @FlorianLeChat
|
||||||
|
* German - @franconian, J. Lavoie, @myabc
|
||||||
|
* Hebrew - @yarons
|
||||||
|
* Hungarian - kaciokos
|
||||||
|
* Indonesian - @andikatuluspangestu
|
||||||
|
* Italian - @ppasserini, @Fs00, @pjammo
|
||||||
|
* Korean - Sunjae Choi, @Hwaro-K
|
||||||
|
* Norwegian Bokmål - @comradekingu
|
||||||
|
* Polish - @alex-ter
|
||||||
|
* Russian - Nikita Epifanov
|
||||||
|
* Simplified Chinese - @sr093906
|
||||||
|
* Spanish - @FlorianLeChat
|
||||||
|
* Traditional Chinese - @realpineapplemilk
|
||||||
|
* Turkish - @emintufan, Oğuz Ersen
|
||||||
|
|
||||||
|
### 10.4.1 (2020-11-09)
|
||||||
|
|
||||||
|
* Fix Mapbox Maps crash on Android 11 (F-Droid only)
|
||||||
|
|
||||||
|
### 10.4 (2020-10-09)
|
||||||
|
|
||||||
|
* New widget configuration options
|
||||||
|
* Sort
|
||||||
|
* Show hidden
|
||||||
|
* Show completed
|
||||||
|
* Header spacing
|
||||||
|
* Bug fixes
|
||||||
|
|
||||||
|
### 10.3 (2020-10-02)
|
||||||
|
|
||||||
|
* Collapsible sort groups in widget
|
||||||
|
* Add 'System default' widget theme
|
||||||
|
* Bug fixes
|
||||||
|
|
||||||
|
### 10.2 (2020-09-25)
|
||||||
|
|
||||||
|
* Display list, tag, and place chips on widgets
|
||||||
|
* Add option to disable list, tag, and place chips on widgets
|
||||||
|
|
||||||
|
### 10.1 (2020-09-23)
|
||||||
|
|
||||||
|
* Android 11 support
|
||||||
|
* Backup improvements
|
||||||
|
* Swipe-to-refresh initiates DAVx5/EteSync sync
|
||||||
|
* Show indicator when DAVx5/EteSync are synchronizing
|
||||||
|
* Bug fixes
|
||||||
|
|
||||||
|
### 10.0.3 (2020-09-16)
|
||||||
|
|
||||||
|
* Fix crash from calendar event snackbar
|
||||||
|
* Fix crash when setting Google Maps markers
|
||||||
|
* Fix invalid calendar entry creation
|
||||||
|
|
||||||
|
### 10.0.2 (2020-09-14)
|
||||||
|
|
||||||
|
* Fix crash from corrupted custom filter
|
||||||
|
* Fix crash in 'Astrid manual sorting' mode
|
||||||
|
* Fix missing 'Calendar event created' snackbar
|
||||||
|
|
||||||
|
### 10.0.1 (2020-09-05)
|
||||||
|
|
||||||
|
* Bug fixes
|
||||||
|
* Translation updates
|
||||||
|
* Czech - @vitSkalicky
|
||||||
|
* Danish - @ChMunk
|
||||||
|
|
||||||
|
### 10.0 (2020-08-31)
|
||||||
|
|
||||||
|
* PRO: DAVx⁵ support (requires [DAVx⁵ beta](https://tasks.org/davx5))
|
||||||
|
* PRO: EteSync client support
|
||||||
|
* [ToDo Agenda](https://play.google.com/store/apps/details?id=org.andstatus.todoagenda) integration
|
||||||
|
* Changed backstack behavior to follow Android conventions
|
||||||
|
* Major internal changes! Please report any bugs!
|
||||||
|
* Remove Mapbox tiles (Google Play only)
|
||||||
|
* Added 'Astrid manual sort' information to backup file
|
||||||
|
* Bug fixes
|
||||||
|
* Performance improvements
|
||||||
|
* Security improvements
|
||||||
|
|
||||||
|
[Older releases](https://github.com/tasks/tasks/blob/main/V06_09_CHANGELOG.md)
|
@ -1,263 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE module PUBLIC
|
|
||||||
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
|
|
||||||
"https://checkstyle.org/dtds/configuration_1_3.dtd">
|
|
||||||
|
|
||||||
<!-- https://raw.githubusercontent.com/checkstyle/checkstyle/checkstyle-8.16/src/main/resources/google_checks.xml -->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Checkstyle configuration that checks the Google coding conventions from Google Java Style
|
|
||||||
that can be found at https://google.github.io/styleguide/javaguide.html.
|
|
||||||
|
|
||||||
Checkstyle is very configurable. Be sure to read the documentation at
|
|
||||||
http://checkstyle.sf.net (or in your downloaded distribution).
|
|
||||||
|
|
||||||
To completely disable a check, just comment it out or delete it from the file.
|
|
||||||
|
|
||||||
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<module name = "Checker">
|
|
||||||
<property name="charset" value="UTF-8"/>
|
|
||||||
|
|
||||||
<property name="severity" value="warning"/>
|
|
||||||
|
|
||||||
<property name="fileExtensions" value="java, properties, xml"/>
|
|
||||||
<!-- Checks for whitespace -->
|
|
||||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
|
||||||
<module name="FileTabCharacter">
|
|
||||||
<property name="eachLine" value="true"/>
|
|
||||||
</module>
|
|
||||||
|
|
||||||
<module name="TreeWalker">
|
|
||||||
<module name="OuterTypeFilename"/>
|
|
||||||
<module name="IllegalTokenText">
|
|
||||||
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
|
|
||||||
<property name="format"
|
|
||||||
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
|
|
||||||
<property name="message"
|
|
||||||
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
|
|
||||||
</module>
|
|
||||||
<module name="AvoidEscapedUnicodeCharacters">
|
|
||||||
<property name="allowEscapesForControlCharacters" value="true"/>
|
|
||||||
<property name="allowByTailComment" value="true"/>
|
|
||||||
<property name="allowNonPrintableEscapes" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="LineLength">
|
|
||||||
<property name="max" value="100"/>
|
|
||||||
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
|
|
||||||
</module>
|
|
||||||
<module name="AvoidStarImport"/>
|
|
||||||
<module name="OneTopLevelClass"/>
|
|
||||||
<module name="NoLineWrap"/>
|
|
||||||
<module name="EmptyBlock">
|
|
||||||
<property name="option" value="TEXT"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
|
|
||||||
</module>
|
|
||||||
<module name="NeedBraces"/>
|
|
||||||
<module name="LeftCurly"/>
|
|
||||||
<module name="RightCurly">
|
|
||||||
<property name="id" value="RightCurlySame"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
|
|
||||||
LITERAL_DO"/>
|
|
||||||
</module>
|
|
||||||
<module name="RightCurly">
|
|
||||||
<property name="id" value="RightCurlyAlone"/>
|
|
||||||
<property name="option" value="alone"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
|
|
||||||
INSTANCE_INIT"/>
|
|
||||||
</module>
|
|
||||||
<module name="WhitespaceAround">
|
|
||||||
<property name="allowEmptyConstructors" value="true"/>
|
|
||||||
<property name="allowEmptyMethods" value="true"/>
|
|
||||||
<property name="allowEmptyTypes" value="true"/>
|
|
||||||
<property name="allowEmptyLoops" value="true"/>
|
|
||||||
<message key="ws.notFollowed"
|
|
||||||
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
|
|
||||||
<message key="ws.notPreceded"
|
|
||||||
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
|
|
||||||
</module>
|
|
||||||
<module name="OneStatementPerLine"/>
|
|
||||||
<module name="MultipleVariableDeclarations"/>
|
|
||||||
<module name="ArrayTypeStyle"/>
|
|
||||||
<module name="MissingSwitchDefault"/>
|
|
||||||
<module name="FallThrough"/>
|
|
||||||
<module name="UpperEll"/>
|
|
||||||
<module name="ModifierOrder"/>
|
|
||||||
<module name="EmptyLineSeparator">
|
|
||||||
<property name="allowNoEmptyLineBetweenFields" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<property name="id" value="SeparatorWrapDot"/>
|
|
||||||
<property name="tokens" value="DOT"/>
|
|
||||||
<property name="option" value="nl"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<property name="id" value="SeparatorWrapComma"/>
|
|
||||||
<property name="tokens" value="COMMA"/>
|
|
||||||
<property name="option" value="EOL"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 -->
|
|
||||||
<property name="id" value="SeparatorWrapEllipsis"/>
|
|
||||||
<property name="tokens" value="ELLIPSIS"/>
|
|
||||||
<property name="option" value="EOL"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 -->
|
|
||||||
<property name="id" value="SeparatorWrapArrayDeclarator"/>
|
|
||||||
<property name="tokens" value="ARRAY_DECLARATOR"/>
|
|
||||||
<property name="option" value="EOL"/>
|
|
||||||
</module>
|
|
||||||
<module name="SeparatorWrap">
|
|
||||||
<property name="id" value="SeparatorWrapMethodRef"/>
|
|
||||||
<property name="tokens" value="METHOD_REF"/>
|
|
||||||
<property name="option" value="nl"/>
|
|
||||||
</module>
|
|
||||||
<module name="PackageName">
|
|
||||||
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Package name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="TypeName">
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="MemberName">
|
|
||||||
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Member name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="ParameterName">
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="LambdaParameterName">
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="CatchParameterName">
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="LocalVariableName">
|
|
||||||
<property name="tokens" value="VARIABLE_DEF"/>
|
|
||||||
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="ClassTypeParameterName">
|
|
||||||
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Class type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="MethodTypeParameterName">
|
|
||||||
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Method type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="InterfaceTypeParameterName">
|
|
||||||
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="NoFinalizer"/>
|
|
||||||
<module name="GenericWhitespace">
|
|
||||||
<message key="ws.followed"
|
|
||||||
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
|
|
||||||
<message key="ws.preceded"
|
|
||||||
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
|
|
||||||
<message key="ws.illegalFollow"
|
|
||||||
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
|
|
||||||
<message key="ws.notPreceded"
|
|
||||||
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
|
|
||||||
</module>
|
|
||||||
<module name="Indentation">
|
|
||||||
<property name="basicOffset" value="2"/>
|
|
||||||
<property name="braceAdjustment" value="0"/>
|
|
||||||
<property name="caseIndent" value="2"/>
|
|
||||||
<property name="throwsIndent" value="4"/>
|
|
||||||
<property name="lineWrappingIndentation" value="4"/>
|
|
||||||
<property name="arrayInitIndent" value="2"/>
|
|
||||||
</module>
|
|
||||||
<module name="AbbreviationAsWordInName">
|
|
||||||
<property name="ignoreFinal" value="false"/>
|
|
||||||
<property name="allowedAbbreviationLength" value="1"/>
|
|
||||||
</module>
|
|
||||||
<module name="OverloadMethodsDeclarationOrder"/>
|
|
||||||
<module name="VariableDeclarationUsageDistance"/>
|
|
||||||
<module name="CustomImportOrder">
|
|
||||||
<property name="sortImportsInGroupAlphabetically" value="true"/>
|
|
||||||
<property name="separateLineBetweenGroups" value="true"/>
|
|
||||||
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
|
|
||||||
</module>
|
|
||||||
<module name="MethodParamPad"/>
|
|
||||||
<module name="NoWhitespaceBefore">
|
|
||||||
<property name="tokens"
|
|
||||||
value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
|
|
||||||
<property name="allowLineBreaks" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="ParenPad"/>
|
|
||||||
<module name="OperatorWrap">
|
|
||||||
<property name="option" value="NL"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
|
|
||||||
LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
|
|
||||||
</module>
|
|
||||||
<module name="AnnotationLocation">
|
|
||||||
<property name="id" value="AnnotationLocationMostCases"/>
|
|
||||||
<property name="tokens"
|
|
||||||
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
|
|
||||||
</module>
|
|
||||||
<module name="AnnotationLocation">
|
|
||||||
<property name="id" value="AnnotationLocationVariables"/>
|
|
||||||
<property name="tokens" value="VARIABLE_DEF"/>
|
|
||||||
<property name="allowSamelineMultipleAnnotations" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="NonEmptyAtclauseDescription"/>
|
|
||||||
<module name="JavadocTagContinuationIndentation">
|
|
||||||
<property name="severity" value="ignore" />
|
|
||||||
</module>
|
|
||||||
<module name="SummaryJavadoc">
|
|
||||||
<property name="severity" value="ignore" />
|
|
||||||
<property name="forbiddenSummaryFragments"
|
|
||||||
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
|
|
||||||
</module>
|
|
||||||
<module name="JavadocParagraph">
|
|
||||||
<property name="severity" value="ignore" />
|
|
||||||
</module>
|
|
||||||
<module name="AtclauseOrder">
|
|
||||||
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
|
|
||||||
<property name="target"
|
|
||||||
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
|
|
||||||
</module>
|
|
||||||
<module name="JavadocMethod">
|
|
||||||
<property name="severity" value="ignore" />
|
|
||||||
<property name="scope" value="public"/>
|
|
||||||
<property name="allowMissingParamTags" value="true"/>
|
|
||||||
<property name="allowMissingThrowsTags" value="true"/>
|
|
||||||
<property name="allowMissingReturnTag" value="true"/>
|
|
||||||
<property name="minLineCount" value="2"/>
|
|
||||||
<property name="allowedAnnotations" value="Override, Test"/>
|
|
||||||
<property name="allowThrowsTagsForSubclasses" value="true"/>
|
|
||||||
</module>
|
|
||||||
<module name="MethodName">
|
|
||||||
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
|
|
||||||
<message key="name.invalidPattern"
|
|
||||||
value="Method name ''{0}'' must match pattern ''{1}''."/>
|
|
||||||
</module>
|
|
||||||
<module name="SingleLineJavadoc">
|
|
||||||
<property name="severity" value="ignore"/>
|
|
||||||
</module>
|
|
||||||
<module name="EmptyCatchBlock">
|
|
||||||
<property name="exceptionVariableName" value="expected"/>
|
|
||||||
</module>
|
|
||||||
<module name="CommentsIndentation"/>
|
|
||||||
</module>
|
|
||||||
</module>
|
|
@ -1,963 +0,0 @@
|
|||||||
- artifact: com.gitlab.abaker:dav4jvm:+
|
|
||||||
name: dav4jvm
|
|
||||||
copyrightHolder: bitfire web engineering (Ricki Hirner, Bernhard Stockmann)
|
|
||||||
license: Mozilla Public License, Version 2.0
|
|
||||||
licenseUrl: https://www.mozilla.org/en-US/MPL/2.0/
|
|
||||||
- artifact: com.gitlab.abaker:ical4android:+
|
|
||||||
name: ical4android
|
|
||||||
copyrightHolder: bitfire web engineering (Ricki Hirner, Bernhard Stockmann)
|
|
||||||
license: GNU General Public License, Version 3.0
|
|
||||||
licenseUrl: https://www.gnu.org/licenses/gpl.txt
|
|
||||||
- artifact: com.gitlab.bitfireAT:cert4android:+
|
|
||||||
name: cert4android
|
|
||||||
copyrightHolder: bitfire web engineering (Ricki Hirner, Bernhard Stockmann)
|
|
||||||
licenseUrl: https://www.gnu.org/licenses/gpl.txt
|
|
||||||
license: GNU General Public License, Version 3.0
|
|
||||||
- artifact: androidx.coordinatorlayout:coordinatorlayout:+
|
|
||||||
name: Android Support Library Coordinator Layout
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.constraintlayout:constraintlayout:+
|
|
||||||
name: Android ConstraintLayout
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://tools.android.com
|
|
||||||
- artifact: androidx.sqlite:sqlite:+
|
|
||||||
name: Android DB
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: com.google.apis:google-api-services-drive:+
|
|
||||||
name: Drive API v3-rev136-1.25.0
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: androidx.fragment:fragment:+
|
|
||||||
name: Android Support Library fragment
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.vectordrawable:vectordrawable-animated:+
|
|
||||||
name: Android Support AnimatedVectorDrawable
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.core:core:+
|
|
||||||
name: Android Support Library compat
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.arch.core:core-common:+
|
|
||||||
name: Android Arch-Common
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.room:room-common:+
|
|
||||||
name: Android Room-Common
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.room:room-runtime:+
|
|
||||||
name: Android Room-Runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: com.google.code.gson:gson:+
|
|
||||||
name: Gson
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: me.leolin:ShortcutBadger:+
|
|
||||||
name: ShortcutBadger
|
|
||||||
copyrightHolder: Leo Lin
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/leolin310148/ShortcutBadger
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-runtime:+
|
|
||||||
name: Android Lifecycle Runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.versionedparcelable:versionedparcelable:+
|
|
||||||
name: VersionedParcelable and friends
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.viewpager:viewpager:+
|
|
||||||
name: Android Support Library View Pager
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-livedata:+
|
|
||||||
name: Android Lifecycle LiveData
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: commons-codec:commons-codec:+
|
|
||||||
name: Apache Commons Codec
|
|
||||||
copyrightHolder: The Apache Software Foundation
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://commons.apache.org/proper/commons-codec/
|
|
||||||
- artifact: androidx.annotation:annotation:+
|
|
||||||
name: Android Support Library Annotations
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.interpolator:interpolator:+
|
|
||||||
name: Android Support Library Interpolators
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: javax.inject:javax.inject:+
|
|
||||||
name: javax.inject
|
|
||||||
copyrightHolder: The JSR-330 Expert Group
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://code.google.com/p/atinject/
|
|
||||||
- artifact: com.github.twofortyfouram:android-plugin-api-for-locale:+
|
|
||||||
name: android-plugin-api-for-locale
|
|
||||||
copyrightHolder: two forty four a.m. LLC.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
forceGenerate: true
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-viewmodel:+
|
|
||||||
name: Android Lifecycle ViewModel
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: com.google.dagger:dagger:+
|
|
||||||
name: Dagger
|
|
||||||
copyrightHolder: The Dagger Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/google/dagger
|
|
||||||
- artifact: com.google.guava:guava:+
|
|
||||||
name: Guava Google Core Libraries for Java
|
|
||||||
copyrightHolder: The Guava Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: org.jetbrains:annotations:+
|
|
||||||
name: JetBrains Java Annotations
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/JetBrains/java-annotations
|
|
||||||
- artifact: org.apache.commons:commons-lang3:+
|
|
||||||
name: Apache Commons Lang
|
|
||||||
copyrightHolder: The Apache Software Foundation
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://commons.apache.org/proper/commons-lang/
|
|
||||||
- artifact: androidx.loader:loader:+
|
|
||||||
name: Android Support Library loader
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.cursoradapter:cursoradapter:+
|
|
||||||
name: Android Support Library Cursor Adapter
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-livedata-core:+
|
|
||||||
name: Android Lifecycle LiveData Core
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.customview:customview:+
|
|
||||||
name: Android Support Library Custom View
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.swiperefreshlayout:swiperefreshlayout:+
|
|
||||||
name: Android Support Library Custom View
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-extensions:+
|
|
||||||
name: Android Lifecycle Extensions
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.arch.core:core-runtime:+
|
|
||||||
name: Android Arch-Runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: org.apache.commons:commons-collections4:+
|
|
||||||
name: Apache Commons Collections
|
|
||||||
copyrightHolder: The Apache Software Foundation
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://commons.apache.org/proper/commons-collections/
|
|
||||||
- artifact: org.mnode.ical4j:ical4j:+
|
|
||||||
name: ical4j
|
|
||||||
copyrightHolder: Ben Fortuna
|
|
||||||
license: BSD 3-Clause
|
|
||||||
licenseUrl: https://opensource.org/licenses/BSD-3-Clause
|
|
||||||
url: http://ical4j.github.io
|
|
||||||
forceGenerate: true
|
|
||||||
- artifact: androidx.recyclerview:recyclerview:+
|
|
||||||
name: Android Support RecyclerView v7
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.collection:collection:+
|
|
||||||
name: Android Support Library collections
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.cardview:cardview:+
|
|
||||||
name: Android Support CardView v7
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: com.rubiconproject.oss:jchronic:+
|
|
||||||
name: jchronic
|
|
||||||
copyrightHolder: The jchronic authors
|
|
||||||
license: MIT License
|
|
||||||
licenseUrl: http://www.opensource.org/licenses/mit-license.php
|
|
||||||
url: http://github.com/samtingleff/jchronic
|
|
||||||
- artifact: androidx.sqlite:sqlite-framework:+
|
|
||||||
name: Android Support SQLite - Framework Implementation
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: com.google.android.material:material:+
|
|
||||||
name: Material Components for Android
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: com.google.android.apps.dashclock:dashclock-api:+
|
|
||||||
name: DashClock API
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://dashclock.com/api
|
|
||||||
- artifact: androidx.vectordrawable:vectordrawable:+
|
|
||||||
name: Android Support VectorDrawable
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.work:work-runtime:+
|
|
||||||
name: Android WorkManager Runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.appcompat:appcompat:+
|
|
||||||
name: Android AppCompat Library v7
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-common:+
|
|
||||||
name: Android Lifecycle-Common
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-process:+
|
|
||||||
name: Android Lifecycle Process
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-service:+
|
|
||||||
name: Android Lifecycle Service
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.transition:transition:+
|
|
||||||
name: Android Transition Support Library
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: com.jakewharton.timber:timber:+
|
|
||||||
name: Timber
|
|
||||||
copyrightHolder: Jake Wharton
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/JakeWharton/timber
|
|
||||||
- artifact: com.google.oauth-client:google-oauth-client:+
|
|
||||||
name: Google OAuth Client Library for Java
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: androidx.drawerlayout:drawerlayout:+
|
|
||||||
name: Android Support Library Drawer Layout
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: com.google.apis:google-api-services-tasks:+
|
|
||||||
name: Tasks API v1-rev55-1.25.0
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: com.google.api-client:google-api-client:+
|
|
||||||
name: Google APIs Client Library for Java
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: org.jetbrains.kotlin:kotlin-stdlib:+
|
|
||||||
name: org.jetbrains.kotlin:kotlin-stdlib
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://kotlinlang.org/
|
|
||||||
- artifact: com.google.http-client:google-http-client:+
|
|
||||||
name: Google HTTP Client Library for Java
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: org.slf4j:slf4j-jdk14:+
|
|
||||||
name: SLF4J JDK14 Binding
|
|
||||||
copyrightHolder: QOS.ch
|
|
||||||
license: MIT License
|
|
||||||
licenseUrl: http://www.opensource.org/licenses/mit-license.php
|
|
||||||
url: http://www.slf4j.org
|
|
||||||
- artifact: com.squareup.okhttp3:okhttp:+
|
|
||||||
name: OkHttp
|
|
||||||
copyrightHolder: Square, Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: org.slf4j:slf4j-api:+
|
|
||||||
name: SLF4J API Module
|
|
||||||
copyrightHolder: QOS.ch
|
|
||||||
license: MIT License
|
|
||||||
licenseUrl: http://www.opensource.org/licenses/mit-license.php
|
|
||||||
url: http://www.slf4j.org
|
|
||||||
- artifact: org.jetbrains.kotlin:kotlin-stdlib-common:+
|
|
||||||
name: org.jetbrains.kotlin:kotlin-stdlib-common
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://kotlinlang.org/
|
|
||||||
- artifact: com.squareup.okhttp3:logging-interceptor:+
|
|
||||||
name: OkHttp Logging Interceptor
|
|
||||||
copyrightHolder: Square, Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: org.jetbrains.kotlin:kotlin-stdlib-jdk7:+
|
|
||||||
name: org.jetbrains.kotlin:kotlin-stdlib-jdk7
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://kotlinlang.org/
|
|
||||||
- artifact: io.grpc:grpc-context:+
|
|
||||||
name: io.grpc:grpc-context
|
|
||||||
copyrightHolder: The gRPC Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/grpc/grpc-java
|
|
||||||
- artifact: com.google.guava:listenablefuture:+
|
|
||||||
name: Guava ListenableFuture only
|
|
||||||
copyrightHolder: The Guava Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: io.opencensus:opencensus-api:+
|
|
||||||
name: OpenCensus API
|
|
||||||
copyrightHolder: OpenCensus Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/census-instrumentation/opencensus-java
|
|
||||||
- artifact: com.google.guava:failureaccess:+
|
|
||||||
name: Guava InternalFutureFailureAccess and InternalFutures
|
|
||||||
copyrightHolder: The Guava Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: io.opencensus:opencensus-contrib-http-util:+
|
|
||||||
name: OpenCensus contrib-http-util
|
|
||||||
copyrightHolder: OpenCensus Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/census-instrumentation/opencensus-java
|
|
||||||
- artifact: androidx.core:core-ktx:+
|
|
||||||
name: Core Kotlin Extensions
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.appcompat:appcompat-resources:+
|
|
||||||
name: Android Resources Library
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.viewpager2:viewpager2:+
|
|
||||||
name: AndroidX Widget ViewPager2
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.savedstate:savedstate:+
|
|
||||||
name: Activity
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.activity:activity:+
|
|
||||||
name: Activity
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.paging:paging-runtime:+
|
|
||||||
name: Android Paging-Runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.paging:paging-common:+
|
|
||||||
name: Android Paging-Common
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: org.conscrypt:conscrypt-android:+
|
|
||||||
name: org.conscrypt:conscrypt-android
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
url: https://conscrypt.org/
|
|
||||||
- artifact: org.jetbrains.kotlinx:kotlinx-coroutines-android:+
|
|
||||||
name: kotlinx-coroutines-android
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/Kotlin/kotlinx.coroutines
|
|
||||||
- artifact: androidx.databinding:databinding-adapters:+
|
|
||||||
name: databinding-adapters
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-viewmodel-ktx:+
|
|
||||||
name: Android Lifecycle ViewModel Kotlin Extensions
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.annotation:annotation-experimental:+
|
|
||||||
name: Experimental annotation
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:+
|
|
||||||
name: kotlinx-coroutines-core-jvm
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/Kotlin/kotlinx.coroutines
|
|
||||||
- artifact: androidx.databinding:databinding-common:+
|
|
||||||
name: Data Binding Base Library
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/studio
|
|
||||||
- artifact: androidx.databinding:databinding-runtime:+
|
|
||||||
name: databinding-runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: androidx.databinding:viewbinding:+
|
|
||||||
name: viewbinding
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: androidx.preference:preference:+
|
|
||||||
name: AndroidX Preference
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-viewmodel-savedstate:+
|
|
||||||
name: Android Lifecycle ViewModel with SavedState
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: com.github.QuadFlask:colorpicker:+
|
|
||||||
name: QuadFlask/colorpicker
|
|
||||||
copyrightHolder: QuadFlask
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
url: https://github.com/QuadFlask/colorpicker
|
|
||||||
- artifact: com.google.auth:google-auth-library-credentials:+
|
|
||||||
name: Google Auth Library for Java - Credentials
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: BSD 3-Clause
|
|
||||||
- artifact: com.google.auth:google-auth-library-oauth2-http:+
|
|
||||||
name: Google Auth Library for Java - OAuth2 HTTP
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: BSD 3-Clause
|
|
||||||
- artifact: com.google.auto.value:auto-value-annotations:+
|
|
||||||
name: AutoValue Annotations
|
|
||||||
copyrightHolder: Google LLC
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
url: https://github.com/google/auto/tree/master/value
|
|
||||||
- artifact: com.sun.mail:android-mail:+
|
|
||||||
name: android-mail
|
|
||||||
copyrightHolder: Oracle and/or its affiliates
|
|
||||||
license: Eclipse Public License, Version 2.0
|
|
||||||
- artifact: commons-io:commons-io:+
|
|
||||||
name: commons-io
|
|
||||||
copyrightHolder: The Apache Software Foundation
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
url: http://commons.apache.org/proper/commons-io/
|
|
||||||
- artifact: com.sun.mail:android-activation:+
|
|
||||||
name: android-activation
|
|
||||||
copyrightHolder: Oracle and/or its affiliates
|
|
||||||
license: Eclipse Public License, Version 2.0
|
|
||||||
- artifact: androidx.hilt:hilt-work:+
|
|
||||||
name: hilt-work
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.hilt:hilt-common:+
|
|
||||||
name: hilt-common
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: com.google.dagger:hilt-android:+
|
|
||||||
name: hilt-android
|
|
||||||
copyrightHolder: The Dagger Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: https://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/google/dagger
|
|
||||||
- artifact: com.google.dagger:dagger-lint-aar:+
|
|
||||||
name: dagger-lint-aar
|
|
||||||
copyrightHolder: The Dagger Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: https://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/google/dagger
|
|
||||||
- artifact: androidx.room:room-ktx:+
|
|
||||||
name: room-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-runtime-ktx:+
|
|
||||||
name: lifecycle-runtime-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: androidx.fragment:fragment-ktx:+
|
|
||||||
name: fragment-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: androidx.activity:activity-ktx:+
|
|
||||||
name: activity-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: androidx.collection:collection-ktx:+
|
|
||||||
name: collection-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-livedata-core-ktx:+
|
|
||||||
name: lifecycle-livedata-core-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: androidx.work:work-runtime-ktx:+
|
|
||||||
name: work-runtime-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: com.github.tasks.opentasks:opentasks-provider:+
|
|
||||||
name: opentasks-provider
|
|
||||||
copyrightHolder: dmfs GmbH
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: https://api.github.com/licenses/apache-2.0
|
|
||||||
url: https://github.com/dmfs/opentasks
|
|
||||||
- artifact: com.github.dmfs.opentasks:opentasks-contract:+
|
|
||||||
name: opentasks-contract
|
|
||||||
copyrightHolder: dmfs GmbH
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: https://api.github.com/licenses/apache-2.0
|
|
||||||
url: https://github.com/dmfs/opentasks
|
|
||||||
forceGenerate: true
|
|
||||||
- artifact: org.dmfs:lib-recur:+
|
|
||||||
name: lib-recur
|
|
||||||
copyrightHolder: Marten Gajda
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/license/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/dmfs/lib-recur
|
|
||||||
- artifact: org.dmfs:rfc5545-datetime:+
|
|
||||||
name: rfc5545-datetime
|
|
||||||
copyrightHolder: Marten Gajda
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/dmfs/rfc5545-datetime
|
|
||||||
- artifact: org.dmfs:jems:+
|
|
||||||
name: jems
|
|
||||||
copyrightHolder: dmfs GmbH
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/license/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/dmfs/jems
|
|
||||||
- artifact: org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:+
|
|
||||||
name: kotlinx-collections-immutable-jvm
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
- artifact: com.squareup.okio:okio:+
|
|
||||||
name: okio
|
|
||||||
copyrightHolder: Square, Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/square/okio/
|
|
||||||
- artifact: com.google.dagger:hilt-core:+
|
|
||||||
name: hilt-core
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: https://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/google/dagger
|
|
||||||
- artifact: io.noties.markwon:core:+
|
|
||||||
name: core
|
|
||||||
copyrightHolder: Dimitry Ivanov
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/noties/Markwon
|
|
||||||
- artifact: com.atlassian.commonmark:commonmark:+
|
|
||||||
name: commonmark
|
|
||||||
copyrightHolder: Atlassian and others
|
|
||||||
license: BSD 2-Clause
|
|
||||||
- artifact: androidx.browser:browser:+
|
|
||||||
name: browser
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: com.etebase:client:+
|
|
||||||
name: client
|
|
||||||
copyrightHolder: Tom Hacohen
|
|
||||||
license: LGPL-3.0-only
|
|
||||||
licenseUrl: https://spdx.org/licenses/LGPL-3.0-only.html
|
|
||||||
url: https://www.etebase.com
|
|
||||||
- artifact: net.openid:appauth:+
|
|
||||||
name: appauth
|
|
||||||
copyrightHolder: The AppAuth for Android Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/openid/AppAuth-Android
|
|
||||||
- artifact: androidx.concurrent:concurrent-futures:+
|
|
||||||
name: concurrent-futures
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/topic/libraries/architecture/index.html
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-livedata-ktx:+
|
|
||||||
name: lifecycle-livedata-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: androidx.dynamicanimation:dynamicanimation:+
|
|
||||||
name: dynamicanimation
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.legacy:legacy-support-core-utils:+
|
|
||||||
name: legacy-support-core-utils
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.documentfile:documentfile:+
|
|
||||||
name: documentfile
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.localbroadcastmanager:localbroadcastmanager:+
|
|
||||||
name: localbroadcastmanager
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: androidx.print:print:+
|
|
||||||
name: print
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://developer.android.com/tools/extras/support-library.html
|
|
||||||
- artifact: com.google.http-client:google-http-client-gson:+
|
|
||||||
name: google-http-client-gson
|
|
||||||
copyrightHolder: Google Inc.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
- artifact: org.osmdroid:osmdroid-android:+
|
|
||||||
name: osmdroid-android
|
|
||||||
copyrightHolder: The OsmDroid Authors
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
url: https://github.com/osmdroid/osmdroid
|
|
||||||
- artifact: androidx.savedstate:savedstate-ktx:+
|
|
||||||
name: savedstate-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/savedstate#1.1.0
|
|
||||||
- artifact: androidx.tracing:tracing:+
|
|
||||||
name: tracing
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/tracing#1.0.0
|
|
||||||
- artifact: androidx.databinding:databinding-ktx:+
|
|
||||||
name: databinding-ktx
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
- artifact: org.jetbrains.kotlin:kotlin-stdlib-jdk8:+
|
|
||||||
name: kotlin-stdlib-jdk8
|
|
||||||
copyrightHolder: JetBrains s.r.o.
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://kotlinlang.org/
|
|
||||||
- artifact: androidx.compose.ui:ui:+
|
|
||||||
name: ui
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.animation:animation-core:+
|
|
||||||
name: animation-core
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.ui:ui-text:+
|
|
||||||
name: ui-text
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.runtime:runtime-saveable:+
|
|
||||||
name: runtime-saveable
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.ui:ui-graphics:+
|
|
||||||
name: ui-graphics
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.ui:ui-unit:+
|
|
||||||
name: ui-unit
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.ui:ui-geometry:+
|
|
||||||
name: ui-geometry
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.ui:ui-util:+
|
|
||||||
name: ui-util
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.runtime:runtime:+
|
|
||||||
name: runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0-beta01
|
|
||||||
- artifact: androidx.autofill:autofill:+
|
|
||||||
name: autofill
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx
|
|
||||||
- artifact: androidx.compose.foundation:foundation:+
|
|
||||||
name: foundation
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.animation:animation:+
|
|
||||||
name: animation
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.foundation:foundation-layout:+
|
|
||||||
name: foundation-layout
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-foundation#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.material:material:+
|
|
||||||
name: material
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.material:material-ripple:+
|
|
||||||
name: material-ripple
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.material:material-icons-core:+
|
|
||||||
name: material-icons-core
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0-beta01
|
|
||||||
- artifact: androidx.compose.ui:ui-tooling:+
|
|
||||||
skip: true
|
|
||||||
- artifact: androidx.compose.ui:ui-tooling-data:+
|
|
||||||
skip: true
|
|
||||||
- artifact: androidx.compose.runtime:runtime-livedata:+
|
|
||||||
name: runtime-livedata
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-runtime#1.0.0-beta01
|
|
||||||
- artifact: com.google.android.material:compose-theme-adapter:+
|
|
||||||
name: compose-theme-adapter
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/material-components/material-components-android-compose-theme-adapter/
|
|
||||||
- artifact: androidx.constraintlayout:constraintlayout-core:+
|
|
||||||
name: constraintlayout-core
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: http://tools.android.com
|
|
||||||
- artifact: androidx.activity:activity-compose:+
|
|
||||||
name: activity-compose
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/activity#1.3.0-alpha04
|
|
||||||
- artifact: io.noties.markwon:editor:+
|
|
||||||
name: editor
|
|
||||||
copyrightHolder: Dimitry Ivanov
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/noties/Markwon
|
|
||||||
- artifact: io.noties.markwon:ext-tasklist:+
|
|
||||||
name: ext-tasklist
|
|
||||||
copyrightHolder: Dimitry Ivanov
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/noties/Markwon
|
|
||||||
- artifact: io.noties.markwon:ext-strikethrough:+
|
|
||||||
name: ext-strikethrough
|
|
||||||
copyrightHolder: Dimitry Ivanov
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/noties/Markwon
|
|
||||||
- artifact: com.atlassian.commonmark:commonmark-ext-gfm-strikethrough:+
|
|
||||||
name: commonmark-ext-gfm-strikethrough
|
|
||||||
copyrightHolder: Atlassian and others
|
|
||||||
license: BSD 2-Clause
|
|
||||||
- artifact: io.noties.markwon:linkify:+
|
|
||||||
name: linkify
|
|
||||||
copyrightHolder: Dimitry Ivanov
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/noties/Markwon
|
|
||||||
- artifact: io.noties.markwon:ext-tables:+
|
|
||||||
name: ext-tables
|
|
||||||
copyrightHolder: Dimitry Ivanov
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://github.com/noties/Markwon
|
|
||||||
- artifact: com.atlassian.commonmark:commonmark-ext-gfm-tables:+
|
|
||||||
name: commonmark-ext-gfm-tables
|
|
||||||
copyrightHolder: Atlassian and others
|
|
||||||
license: BSD 2-Clause
|
|
||||||
- artifact: androidx.lifecycle:lifecycle-common-java8:+
|
|
||||||
name: lifecycle-common-java8
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/lifecycle#2.3.0
|
|
||||||
- artifact: androidx.profileinstaller:profileinstaller:+
|
|
||||||
name: profileinstaller
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/profileinstaller#1.0.0-beta01
|
|
||||||
- artifact: androidx.startup:startup-runtime:+
|
|
||||||
name: startup-runtime
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/startup#1.0.0
|
|
||||||
- artifact: androidx.compose.ui:ui-tooling-preview:+
|
|
||||||
name: ui-tooling-preview
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/compose-ui#1.0.0-rc01
|
|
||||||
- artifact: androidx.emoji2:emoji2-views-helper:+
|
|
||||||
name: emoji2-views-helper
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0
|
|
||||||
- artifact: androidx.emoji2:emoji2:+
|
|
||||||
name: emoji2
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/emoji2#1.0.0
|
|
||||||
- artifact: androidx.resourceinspection:resourceinspection-annotation:+
|
|
||||||
name: resourceinspection-annotation
|
|
||||||
copyrightHolder: Android Open Source Project
|
|
||||||
license: The Apache Software License, Version 2.0
|
|
||||||
licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt
|
|
||||||
url: https://developer.android.com/jetpack/androidx/releases/resourceinspection#1.0.0
|
|
@ -1,78 +0,0 @@
|
|||||||
package com.todoroo.astrid.adapter
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import androidx.test.core.app.ApplicationProvider
|
|
||||||
import com.natpryce.makeiteasy.MakeItEasy.with
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import com.todoroo.astrid.core.BuiltInFilterExposer
|
|
||||||
import com.todoroo.astrid.dao.TaskDao
|
|
||||||
import com.todoroo.astrid.data.Task
|
|
||||||
import dagger.hilt.android.testing.HiltAndroidTest
|
|
||||||
import dagger.hilt.android.testing.UninstallModules
|
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import org.junit.Assert.assertEquals
|
|
||||||
import org.junit.Before
|
|
||||||
import org.junit.Test
|
|
||||||
import org.tasks.LocalBroadcastManager
|
|
||||||
import org.tasks.R
|
|
||||||
import org.tasks.data.CaldavDao
|
|
||||||
import org.tasks.data.GoogleTaskDao
|
|
||||||
import org.tasks.data.TaskContainer
|
|
||||||
import org.tasks.data.TaskListQuery.getQuery
|
|
||||||
import org.tasks.injection.InjectingTestCase
|
|
||||||
import org.tasks.injection.ProductionModule
|
|
||||||
import org.tasks.makers.TaskMaker.PARENT
|
|
||||||
import org.tasks.makers.TaskMaker.newTask
|
|
||||||
import org.tasks.preferences.Preferences
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@UninstallModules(ProductionModule::class)
|
|
||||||
@HiltAndroidTest
|
|
||||||
class NonRecursiveQueryTest : InjectingTestCase() {
|
|
||||||
@Inject lateinit var googleTaskDao: GoogleTaskDao
|
|
||||||
@Inject lateinit var caldavDao: CaldavDao
|
|
||||||
@Inject lateinit var taskDao: TaskDao
|
|
||||||
@Inject lateinit var preferences: Preferences
|
|
||||||
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
|
|
||||||
|
|
||||||
private lateinit var adapter: TaskAdapter
|
|
||||||
private val tasks = ArrayList<TaskContainer>()
|
|
||||||
private val filter = BuiltInFilterExposer.getMyTasksFilter(ApplicationProvider.getApplicationContext<Context>().resources)
|
|
||||||
private val dataSource = object : TaskAdapterDataSource {
|
|
||||||
override fun getItem(position: Int) = tasks[position]
|
|
||||||
|
|
||||||
override fun getTaskCount() = tasks.size
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
|
||||||
override fun setUp() {
|
|
||||||
super.setUp()
|
|
||||||
preferences.clear()
|
|
||||||
preferences.setBoolean(R.string.p_use_paged_queries, true)
|
|
||||||
tasks.clear()
|
|
||||||
adapter = TaskAdapter(false, googleTaskDao, caldavDao, taskDao, localBroadcastManager)
|
|
||||||
adapter.setDataSource(dataSource)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun ignoreSubtasks() {
|
|
||||||
val parent = addTask()
|
|
||||||
val child = addTask(with(PARENT, parent))
|
|
||||||
|
|
||||||
query()
|
|
||||||
|
|
||||||
assertEquals(child, tasks[1].id)
|
|
||||||
assertEquals(parent, tasks[1].parent)
|
|
||||||
assertEquals(0, tasks[1].indent)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun addTask(vararg properties: PropertyValue<in Task?, *>): Long = runBlocking {
|
|
||||||
val task = newTask(*properties)
|
|
||||||
taskDao.createNew(task)
|
|
||||||
task.id
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun query() = runBlocking {
|
|
||||||
tasks.addAll(taskDao.fetchTasks { getQuery(preferences, filter, it) })
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,106 +1,290 @@
|
|||||||
package com.todoroo.astrid.alarms
|
package com.todoroo.astrid.alarms
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.MakeItEasy.with
|
|
||||||
import com.todoroo.andlib.utility.DateUtilities
|
|
||||||
import dagger.hilt.android.testing.HiltAndroidTest
|
import dagger.hilt.android.testing.HiltAndroidTest
|
||||||
import dagger.hilt.android.testing.UninstallModules
|
import dagger.hilt.android.testing.UninstallModules
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.tasks.data.Alarm
|
import org.tasks.SuspendFreeze.Companion.freezeAt
|
||||||
import org.tasks.data.Alarm.Companion.TYPE_DATE_TIME
|
import org.tasks.data.createDueDate
|
||||||
import org.tasks.data.Alarm.Companion.TYPE_RANDOM
|
import org.tasks.data.dao.TaskDao
|
||||||
import org.tasks.data.Alarm.Companion.TYPE_SNOOZE
|
import org.tasks.data.entity.Alarm
|
||||||
import org.tasks.data.Alarm.Companion.whenDue
|
import org.tasks.data.entity.Notification
|
||||||
import org.tasks.data.Alarm.Companion.whenOverdue
|
import org.tasks.data.entity.Task
|
||||||
import org.tasks.data.AlarmDao
|
|
||||||
import org.tasks.data.TaskDao
|
|
||||||
import org.tasks.date.DateTimeUtils.newDateTime
|
|
||||||
import org.tasks.injection.InjectingTestCase
|
import org.tasks.injection.InjectingTestCase
|
||||||
import org.tasks.injection.ProductionModule
|
import org.tasks.injection.ProductionModule
|
||||||
import org.tasks.jobs.AlarmEntry
|
|
||||||
import org.tasks.jobs.NotificationQueue
|
|
||||||
import org.tasks.makers.TaskMaker.COMPLETION_TIME
|
|
||||||
import org.tasks.makers.TaskMaker.DELETION_TIME
|
|
||||||
import org.tasks.makers.TaskMaker.DUE_DATE
|
|
||||||
import org.tasks.makers.TaskMaker.DUE_TIME
|
|
||||||
import org.tasks.makers.TaskMaker.REMINDER_LAST
|
|
||||||
import org.tasks.makers.TaskMaker.newTask
|
|
||||||
import org.tasks.time.DateTime
|
import org.tasks.time.DateTime
|
||||||
|
import org.tasks.time.DateTimeUtils2
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@UninstallModules(ProductionModule::class)
|
@UninstallModules(ProductionModule::class)
|
||||||
@HiltAndroidTest
|
@HiltAndroidTest
|
||||||
class AlarmJobServiceTest : InjectingTestCase() {
|
class AlarmJobServiceTest : InjectingTestCase() {
|
||||||
@Inject lateinit var alarmDao: AlarmDao
|
|
||||||
@Inject lateinit var taskDao: TaskDao
|
@Inject lateinit var taskDao: TaskDao
|
||||||
@Inject lateinit var jobs: NotificationQueue
|
|
||||||
@Inject lateinit var alarmService: AlarmService
|
@Inject lateinit var alarmService: AlarmService
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun scheduleAlarm() = runBlocking {
|
fun testNoAlarms() = runBlocking {
|
||||||
val task = taskDao.createNew(newTask())
|
testResults(emptyList(), 0)
|
||||||
val alarm = insertAlarm(Alarm(task, DateTime(2017, 9, 24, 19, 57).millis, TYPE_DATE_TIME))
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun futureAlarmWithNoPastAlarm() = runBlocking {
|
||||||
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
|
taskDao.insert(
|
||||||
|
Task(
|
||||||
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 18).millis
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(1, mutableSetOf(Alarm(type = Alarm.TYPE_REL_END)))
|
||||||
|
|
||||||
verify(AlarmEntry(alarm, task, DateTime(2017, 9, 24, 19, 57).millis, TYPE_DATE_TIME))
|
testResults(emptyList(), DateTime(2024, 5, 18, 18, 0).millis)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun ignoreStaleAlarm() = runBlocking {
|
fun pastAlarmWithNoFutureAlarm() = runBlocking {
|
||||||
val alarmTime = DateTime(2017, 9, 24, 19, 57)
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
val task = taskDao.createNew(newTask(with(REMINDER_LAST, alarmTime.endOfMinute())))
|
taskDao.insert(
|
||||||
alarmDao.insert(Alarm(task, alarmTime.millis, TYPE_DATE_TIME))
|
Task(
|
||||||
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 17).millis
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(1, mutableSetOf(Alarm(type = Alarm.TYPE_REL_END)))
|
||||||
|
|
||||||
verify()
|
testResults(
|
||||||
|
listOf(
|
||||||
|
Notification(
|
||||||
|
taskId = 1L,
|
||||||
|
timestamp = DateTimeUtils2.currentTimeMillis(),
|
||||||
|
type = Alarm.TYPE_REL_END
|
||||||
|
)
|
||||||
|
),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun dontScheduleReminderForCompletedTask() = runBlocking {
|
fun pastRecurringAlarmWithFutureRecurrence() = runBlocking {
|
||||||
val task = taskDao.insert(
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
newTask(
|
taskDao.insert(
|
||||||
with(DUE_DATE, newDateTime()),
|
Task(
|
||||||
with(COMPLETION_TIME, newDateTime())
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 17).millis
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(
|
||||||
|
1,
|
||||||
|
mutableSetOf(
|
||||||
|
Alarm(
|
||||||
|
type = Alarm.TYPE_REL_END,
|
||||||
|
repeat = 1,
|
||||||
|
interval = TimeUnit.HOURS.toMillis(6)
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
alarmDao.insert(whenDue(task))
|
|
||||||
|
|
||||||
verify()
|
testResults(
|
||||||
|
listOf(
|
||||||
|
Notification(
|
||||||
|
taskId = 1L,
|
||||||
|
timestamp = DateTimeUtils2.currentTimeMillis(),
|
||||||
|
type = Alarm.TYPE_REL_END
|
||||||
|
)
|
||||||
|
),
|
||||||
|
DateTime(2024, 5, 18, 0, 0).millis
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun dontScheduleReminderForDeletedTask() = runBlocking {
|
fun pastAlarmsRemoveSnoozed() = runBlocking {
|
||||||
val task = taskDao.insert(
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
newTask(
|
taskDao.insert(
|
||||||
with(DUE_DATE, newDateTime()),
|
Task(
|
||||||
with(DELETION_TIME, newDateTime())
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 17).millis
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(
|
||||||
|
1,
|
||||||
|
mutableSetOf(
|
||||||
|
Alarm(type = Alarm.TYPE_REL_END),
|
||||||
|
Alarm(time = DateTimeUtils2.currentTimeMillis(), type = Alarm.TYPE_SNOOZE)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
|
||||||
alarmDao.insert(whenDue(task))
|
|
||||||
|
|
||||||
verify()
|
testResults(
|
||||||
|
listOf(
|
||||||
|
Notification(
|
||||||
|
taskId = 1L,
|
||||||
|
timestamp = DateTimeUtils2.currentTimeMillis(),
|
||||||
|
type = Alarm.TYPE_REL_END
|
||||||
|
)
|
||||||
|
),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
|
||||||
|
assertEquals(
|
||||||
|
listOf(Alarm(id = 1, task = 1, time = 0, type = Alarm.TYPE_REL_END)),
|
||||||
|
alarmService.getAlarms(1)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun snoozeOverridesAll() = runBlocking {
|
fun alarmsOneMinuteApart() = runBlocking {
|
||||||
val now = newDateTime()
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
val task = taskDao.insert(newTask(with(DUE_TIME, now)))
|
taskDao.insert(
|
||||||
|
Task(
|
||||||
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY_TIME,
|
||||||
|
DateTime(2024, 5, 17, 23, 20).millis
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(1, mutableSetOf(Alarm(type = Alarm.TYPE_REL_END)))
|
||||||
|
taskDao.insert(Task())
|
||||||
|
alarmService.synchronizeAlarms(
|
||||||
|
taskId = 2,
|
||||||
|
alarms = mutableSetOf(
|
||||||
|
Alarm(
|
||||||
|
type = Alarm.TYPE_SNOOZE,
|
||||||
|
time = DateTime(2024, 5, 17, 23, 21).millis)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
testResults(
|
||||||
|
listOf(
|
||||||
|
Notification(
|
||||||
|
taskId = 1L,
|
||||||
|
timestamp = DateTimeUtils2.currentTimeMillis(),
|
||||||
|
type = Alarm.TYPE_REL_END
|
||||||
|
)
|
||||||
|
),
|
||||||
|
DateTime(2024, 5, 17, 23, 21).millis
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
alarmDao.insert(whenDue(task))
|
@Test
|
||||||
alarmDao.insert(whenOverdue(task))
|
fun futureSnoozeOverrideOverdue() = runBlocking {
|
||||||
alarmDao.insert(Alarm(task, DateUtilities.ONE_HOUR, TYPE_RANDOM))
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
val alarm = alarmDao.insert(Alarm(task, now.plusMonths(12).millis, TYPE_SNOOZE))
|
taskDao.insert(
|
||||||
|
Task(
|
||||||
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 17).millis
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(
|
||||||
|
1,
|
||||||
|
mutableSetOf(
|
||||||
|
Alarm(type = Alarm.TYPE_REL_END),
|
||||||
|
Alarm(
|
||||||
|
time = DateTimeUtils2.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5),
|
||||||
|
type = Alarm.TYPE_SNOOZE
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
verify(AlarmEntry(alarm, task, now.plusMonths(12).millis, TYPE_SNOOZE))
|
testResults(
|
||||||
|
emptyList(),
|
||||||
|
DateTimeUtils2.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun ignoreStaleAlarm() = runBlocking {
|
||||||
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
|
taskDao.insert(
|
||||||
|
Task(
|
||||||
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 17).millis
|
||||||
|
),
|
||||||
|
reminderLast = DateTime(2024, 5, 17, 18, 0).millis,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(
|
||||||
|
1,
|
||||||
|
mutableSetOf(Alarm(type = Alarm.TYPE_REL_END))
|
||||||
|
)
|
||||||
|
|
||||||
|
testResults(
|
||||||
|
emptyList(),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun insertAlarm(alarm: Alarm): Long {
|
@Test
|
||||||
alarm.id = alarmDao.insert(alarm)
|
fun dontScheduleForCompletedTask() = runBlocking {
|
||||||
return alarm.id
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
|
taskDao.insert(
|
||||||
|
Task(
|
||||||
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 17).millis
|
||||||
|
),
|
||||||
|
completionDate = DateTime(2024, 5, 17, 14, 0).millis,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(
|
||||||
|
1,
|
||||||
|
mutableSetOf(Alarm(type = Alarm.TYPE_REL_END))
|
||||||
|
)
|
||||||
|
|
||||||
|
testResults(
|
||||||
|
emptyList(),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun verify(vararg alarms: AlarmEntry) {
|
@Test
|
||||||
alarmService.scheduleAllAlarms()
|
fun dontScheduleForDeletedTask() = runBlocking {
|
||||||
|
freezeAt(DateTime(2024, 5, 17, 23, 20)) {
|
||||||
|
taskDao.insert(
|
||||||
|
Task(
|
||||||
|
dueDate = createDueDate(
|
||||||
|
Task.URGENCY_SPECIFIC_DAY,
|
||||||
|
DateTime(2024, 5, 17).millis
|
||||||
|
),
|
||||||
|
deletionDate = DateTime(2024, 5, 17, 14, 0).millis,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
alarmService.synchronizeAlarms(
|
||||||
|
1,
|
||||||
|
mutableSetOf(Alarm(type = Alarm.TYPE_REL_END))
|
||||||
|
)
|
||||||
|
|
||||||
|
testResults(
|
||||||
|
emptyList(),
|
||||||
|
0
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
assertEquals(alarms.toList(), jobs.getJobs())
|
private suspend fun testResults(notifications: List<Notification>, nextAlarm: Long) {
|
||||||
|
val actualNextAlarm = alarmService.triggerAlarms {
|
||||||
|
assertEquals(notifications, it)
|
||||||
|
it.forEach { taskDao.setLastNotified(it.taskId, DateTimeUtils2.currentTimeMillis()) }
|
||||||
|
}
|
||||||
|
assertEquals(nextAlarm, actualNextAlarm)
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,81 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2012 Todoroo Inc
|
|
||||||
*
|
|
||||||
* See the file "LICENSE" for the full license governing this code.
|
|
||||||
*/
|
|
||||||
package com.todoroo.astrid.gtasks
|
|
||||||
|
|
||||||
import com.todoroo.astrid.dao.TaskDao
|
|
||||||
import com.todoroo.astrid.data.Task
|
|
||||||
import dagger.hilt.android.testing.HiltAndroidTest
|
|
||||||
import dagger.hilt.android.testing.UninstallModules
|
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import org.junit.Assert.assertNotNull
|
|
||||||
import org.junit.Assert.assertNull
|
|
||||||
import org.junit.Test
|
|
||||||
import org.tasks.data.GoogleTask
|
|
||||||
import org.tasks.data.GoogleTaskDao
|
|
||||||
import org.tasks.injection.InjectingTestCase
|
|
||||||
import org.tasks.injection.ProductionModule
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@UninstallModules(ProductionModule::class)
|
|
||||||
@HiltAndroidTest
|
|
||||||
class GtasksMetadataServiceTest : InjectingTestCase() {
|
|
||||||
@Inject lateinit var taskDao: TaskDao
|
|
||||||
@Inject lateinit var googleTaskDao: GoogleTaskDao
|
|
||||||
|
|
||||||
private var task: Task? = null
|
|
||||||
private var metadata: GoogleTask? = null
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testMetadataFound() = runBlocking {
|
|
||||||
givenTask(taskWithMetadata(null))
|
|
||||||
whenSearchForMetadata()
|
|
||||||
thenExpectMetadataFound()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun testMetadataDoesntExist() = runBlocking {
|
|
||||||
givenTask(taskWithoutMetadata())
|
|
||||||
whenSearchForMetadata()
|
|
||||||
thenExpectNoMetadataFound()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun thenExpectNoMetadataFound() {
|
|
||||||
assertNull(metadata)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun thenExpectMetadataFound() {
|
|
||||||
assertNotNull(metadata)
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- helpers
|
|
||||||
private suspend fun whenSearchForMetadata() {
|
|
||||||
metadata = googleTaskDao.getByTaskId(task!!.id)
|
|
||||||
}
|
|
||||||
|
|
||||||
private suspend fun taskWithMetadata(id: String?): Task {
|
|
||||||
val task = Task()
|
|
||||||
task.title = "cats"
|
|
||||||
taskDao.createNew(task)
|
|
||||||
val metadata = GoogleTask(task.id, "")
|
|
||||||
if (id != null) {
|
|
||||||
metadata.remoteId = id
|
|
||||||
}
|
|
||||||
metadata.task = task.id
|
|
||||||
googleTaskDao.insert(metadata)
|
|
||||||
return task
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun givenTask(taskToTest: Task) {
|
|
||||||
task = taskToTest
|
|
||||||
}
|
|
||||||
|
|
||||||
private suspend fun taskWithoutMetadata(): Task {
|
|
||||||
val task = Task()
|
|
||||||
task.title = "dogs"
|
|
||||||
taskDao.createNew(task)
|
|
||||||
return task
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,50 +1,68 @@
|
|||||||
package com.todoroo.astrid.repeats
|
package com.todoroo.astrid.repeats
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.MakeItEasy.with
|
import org.tasks.data.entity.Task
|
||||||
|
import com.todoroo.astrid.service.TaskCompleter
|
||||||
import dagger.hilt.android.testing.HiltAndroidTest
|
import dagger.hilt.android.testing.HiltAndroidTest
|
||||||
import dagger.hilt.android.testing.UninstallModules
|
import dagger.hilt.android.testing.UninstallModules
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import org.junit.Assert.assertFalse
|
import org.junit.Assert.assertFalse
|
||||||
|
import org.junit.Assert.assertTrue
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.tasks.data.TaskDao
|
import org.tasks.data.dao.TaskDao
|
||||||
import org.tasks.injection.InjectingTestCase
|
import org.tasks.injection.InjectingTestCase
|
||||||
import org.tasks.injection.ProductionModule
|
import org.tasks.injection.ProductionModule
|
||||||
import org.tasks.makers.TaskMaker.COMPLETION_TIME
|
import org.tasks.time.DateTimeUtils2.currentTimeMillis
|
||||||
import org.tasks.makers.TaskMaker.PARENT
|
|
||||||
import org.tasks.makers.TaskMaker.RECUR
|
|
||||||
import org.tasks.makers.TaskMaker.newTask
|
|
||||||
import org.tasks.time.DateTime
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@UninstallModules(ProductionModule::class)
|
@UninstallModules(ProductionModule::class)
|
||||||
@HiltAndroidTest
|
@HiltAndroidTest
|
||||||
class RepeatWithSubtasksTests : InjectingTestCase() {
|
class RepeatWithSubtasksTests : InjectingTestCase() {
|
||||||
@Inject lateinit var taskDao: TaskDao
|
@Inject lateinit var taskDao: TaskDao
|
||||||
@Inject lateinit var repeat: RepeatTaskHelper
|
@Inject lateinit var taskCompleter: TaskCompleter
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun uncompleteGrandchildren() = runBlocking {
|
fun uncompleteGrandchildren() = runBlocking {
|
||||||
val grandparent = taskDao.createNew(newTask(with(RECUR, "RRULE:FREQ=DAILY")))
|
val grandparent = taskDao.createNew(
|
||||||
val parent = taskDao.createNew(newTask(with(PARENT, grandparent)))
|
Task(
|
||||||
val child = taskDao.createNew(newTask(
|
recurrence = "RRULE:FREQ=DAILY"
|
||||||
with(PARENT, parent),
|
)
|
||||||
with(COMPLETION_TIME, DateTime())
|
)
|
||||||
))
|
val parent = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = grandparent
|
||||||
|
)
|
||||||
|
)
|
||||||
|
val child = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = parent,
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
repeat.handleRepeat(taskDao.fetch(grandparent)!!)
|
assertTrue(taskDao.fetch(child)!!.isCompleted)
|
||||||
|
|
||||||
|
taskCompleter.setComplete(grandparent)
|
||||||
|
|
||||||
assertFalse(taskDao.fetch(child)!!.isCompleted)
|
assertFalse(taskDao.fetch(child)!!.isCompleted)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun uncompleteGoogleTaskChildren() = runBlocking {
|
fun uncompleteGoogleTaskChildren() = runBlocking {
|
||||||
val parent = taskDao.createNew(newTask(with(RECUR, "RRULE:FREQ=DAILY")))
|
val parent = taskDao.createNew(
|
||||||
val child = taskDao.createNew(newTask(
|
Task(
|
||||||
with(PARENT, parent),
|
recurrence = "RRULE:FREQ=DAILY"
|
||||||
with(COMPLETION_TIME, DateTime())
|
)
|
||||||
))
|
)
|
||||||
|
val child = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = parent,
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
assertTrue(taskDao.fetch(child)!!.isCompleted)
|
||||||
|
|
||||||
repeat.handleRepeat(taskDao.fetch(parent)!!)
|
taskCompleter.setComplete(parent)
|
||||||
|
|
||||||
assertFalse(taskDao.fetch(child)!!.isCompleted)
|
assertFalse(taskDao.fetch(child)!!.isCompleted)
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
../../../../test/java/org/tasks/Freeze.kt
|
@ -0,0 +1 @@
|
|||||||
|
../../../../test/java/org/tasks/SuspendFreeze.kt
|
@ -0,0 +1 @@
|
|||||||
|
../../../../test/java/org/tasks/TestUtilities.kt
|
@ -1,53 +1,31 @@
|
|||||||
package org.tasks.data
|
package org.tasks.data
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.MakeItEasy.with
|
|
||||||
import dagger.hilt.android.testing.HiltAndroidTest
|
import dagger.hilt.android.testing.HiltAndroidTest
|
||||||
import dagger.hilt.android.testing.UninstallModules
|
import dagger.hilt.android.testing.UninstallModules
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import org.junit.Assert.*
|
import org.junit.Assert.assertTrue
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
import org.tasks.data.dao.CaldavDao
|
||||||
|
import org.tasks.data.dao.GoogleTaskListDao
|
||||||
|
import org.tasks.data.entity.CaldavAccount
|
||||||
import org.tasks.injection.InjectingTestCase
|
import org.tasks.injection.InjectingTestCase
|
||||||
import org.tasks.injection.ProductionModule
|
import org.tasks.injection.ProductionModule
|
||||||
import org.tasks.makers.GoogleTaskListMaker.ACCOUNT
|
|
||||||
import org.tasks.makers.GoogleTaskListMaker.REMOTE_ID
|
|
||||||
import org.tasks.makers.GoogleTaskListMaker.newGoogleTaskList
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@UninstallModules(ProductionModule::class)
|
@UninstallModules(ProductionModule::class)
|
||||||
@HiltAndroidTest
|
@HiltAndroidTest
|
||||||
class GoogleTaskListDaoTest : InjectingTestCase() {
|
class GoogleTaskListDaoTest : InjectingTestCase() {
|
||||||
@Inject lateinit var googleTaskListDao: GoogleTaskListDao
|
@Inject lateinit var googleTaskListDao: GoogleTaskListDao
|
||||||
|
@Inject lateinit var caldavDao: CaldavDao
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun noResultsForEmptyAccount() = runBlocking {
|
fun noResultsForEmptyAccount() = runBlocking {
|
||||||
val account = GoogleTaskAccount()
|
val account = CaldavAccount(
|
||||||
account.account = "user@gmail.com"
|
uuid = "user@gmail.com",
|
||||||
googleTaskListDao.insert(account)
|
username = "user@gmail.com",
|
||||||
|
)
|
||||||
|
caldavDao.insert(account)
|
||||||
|
|
||||||
assertTrue(googleTaskListDao.getGoogleTaskFilters(account.account!!).isEmpty())
|
assertTrue(googleTaskListDao.getGoogleTaskFilters(account.username!!).isEmpty())
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun findListWithNullAccount() = runBlocking {
|
|
||||||
val list = newGoogleTaskList(with(REMOTE_ID, "1234"), with(ACCOUNT, null as String?))
|
|
||||||
list.id = googleTaskListDao.insert(list)
|
|
||||||
|
|
||||||
assertEquals(list, googleTaskListDao.findExistingList("1234"))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun findListWithEmptyAccount() = runBlocking {
|
|
||||||
val list = newGoogleTaskList(with(REMOTE_ID, "1234"), with(ACCOUNT, ""))
|
|
||||||
list.id = googleTaskListDao.insert(list)
|
|
||||||
|
|
||||||
assertEquals(list, googleTaskListDao.findExistingList("1234"))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun ignoreListWithAccount() = runBlocking {
|
|
||||||
val list = newGoogleTaskList(with(REMOTE_ID, "1234"), with(ACCOUNT, "user@gmail.com"))
|
|
||||||
googleTaskListDao.insert(list)
|
|
||||||
|
|
||||||
assertNull(googleTaskListDao.findExistingList("1234"))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1 @@
|
|||||||
|
../../../../test/java/org/tasks/makers
|
@ -1,44 +0,0 @@
|
|||||||
package org.tasks.ui.editviewmodel
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.MakeItEasy.with
|
|
||||||
import dagger.hilt.android.testing.HiltAndroidTest
|
|
||||||
import dagger.hilt.android.testing.UninstallModules
|
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import org.junit.Assert.assertEquals
|
|
||||||
import org.junit.Test
|
|
||||||
import org.tasks.injection.ProductionModule
|
|
||||||
import org.tasks.makers.TaskMaker
|
|
||||||
import org.tasks.makers.TaskMaker.newTask
|
|
||||||
|
|
||||||
@UninstallModules(ProductionModule::class)
|
|
||||||
@HiltAndroidTest
|
|
||||||
class RepeatTests : BaseTaskEditViewModelTest() {
|
|
||||||
@Test
|
|
||||||
fun changeRepeatAfterCompletion() = runBlocking {
|
|
||||||
val task = newTask(with(TaskMaker.RECUR, "FREQ=DAILY;INTERVAL=1"))
|
|
||||||
setup(task)
|
|
||||||
|
|
||||||
viewModel.repeatAfterCompletion = true
|
|
||||||
|
|
||||||
save()
|
|
||||||
|
|
||||||
assertEquals(
|
|
||||||
"FREQ=DAILY;INTERVAL=1;FROM=COMPLETION",
|
|
||||||
taskDao.fetch(task.id)!!.recurrence)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
fun removeRepeatAfterCompletion() = runBlocking {
|
|
||||||
val task = newTask()
|
|
||||||
task.recurrence = "RRULE:FREQ=DAILY;INTERVAL=1;FROM=COMPLETION"
|
|
||||||
setup(task)
|
|
||||||
|
|
||||||
viewModel.repeatAfterCompletion = false
|
|
||||||
|
|
||||||
save()
|
|
||||||
|
|
||||||
assertEquals(
|
|
||||||
"RRULE:FREQ=DAILY;INTERVAL=1",
|
|
||||||
taskDao.fetch(task.id)!!.recurrence)
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,161 @@
|
|||||||
|
package org.tasks.ui.editviewmodel
|
||||||
|
|
||||||
|
import com.todoroo.astrid.service.TaskDeleter
|
||||||
|
import dagger.hilt.android.testing.HiltAndroidTest
|
||||||
|
import dagger.hilt.android.testing.UninstallModules
|
||||||
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import org.junit.Assert.assertFalse
|
||||||
|
import org.junit.Assert.assertTrue
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Test
|
||||||
|
import org.tasks.LocalBroadcastManager
|
||||||
|
import org.tasks.analytics.Firebase
|
||||||
|
import org.tasks.billing.Inventory
|
||||||
|
import org.tasks.data.dao.DeletionDao
|
||||||
|
import org.tasks.data.dao.TaskDao
|
||||||
|
import org.tasks.data.entity.Task
|
||||||
|
import org.tasks.filters.MyTasksFilter
|
||||||
|
import org.tasks.injection.InjectingTestCase
|
||||||
|
import org.tasks.injection.ProductionModule
|
||||||
|
import org.tasks.preferences.Preferences
|
||||||
|
import org.tasks.time.DateTimeUtils2.currentTimeMillis
|
||||||
|
import org.tasks.ui.TaskListViewModel
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@UninstallModules(ProductionModule::class)
|
||||||
|
@HiltAndroidTest
|
||||||
|
class TaskListViewModelTest : InjectingTestCase() {
|
||||||
|
private lateinit var viewModel: TaskListViewModel
|
||||||
|
@Inject lateinit var preferences: Preferences
|
||||||
|
@Inject lateinit var taskDao: TaskDao
|
||||||
|
@Inject lateinit var taskDeleter: TaskDeleter
|
||||||
|
@Inject lateinit var deletionDao: DeletionDao
|
||||||
|
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
|
||||||
|
@Inject lateinit var inventory: Inventory
|
||||||
|
@Inject lateinit var firebase: Firebase
|
||||||
|
|
||||||
|
@Before
|
||||||
|
override fun setUp() {
|
||||||
|
super.setUp()
|
||||||
|
viewModel = TaskListViewModel(
|
||||||
|
context = context,
|
||||||
|
preferences = preferences,
|
||||||
|
taskDao = taskDao,
|
||||||
|
deletionDao = deletionDao,
|
||||||
|
taskDeleter = taskDeleter,
|
||||||
|
localBroadcastManager = localBroadcastManager,
|
||||||
|
inventory = inventory,
|
||||||
|
firebase = firebase,
|
||||||
|
)
|
||||||
|
viewModel.setFilter(runBlocking { MyTasksFilter.create() })
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun clearCompletedTask() = runBlocking {
|
||||||
|
val task = taskDao.createNew(
|
||||||
|
Task(completionDate = currentTimeMillis())
|
||||||
|
)
|
||||||
|
|
||||||
|
clearCompleted()
|
||||||
|
|
||||||
|
assertTrue(taskDao.fetch(task)!!.isDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun dontDeleteTaskWithRecurringParent() = runBlocking {
|
||||||
|
val parent = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
recurrence = "RRULE:FREQ=DAILY;INTERVAL=1"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
val child = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = parent,
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
clearCompleted()
|
||||||
|
|
||||||
|
assertFalse(taskDao.fetch(child)!!.isDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun dontDeleteTaskWithRecurringGrandparent() = runBlocking {
|
||||||
|
val grandparent = taskDao.createNew(
|
||||||
|
Task(recurrence = "RRULE:FREQ=DAILY;INTERVAL=1")
|
||||||
|
)
|
||||||
|
val parent = taskDao.createNew(
|
||||||
|
Task(parent = grandparent)
|
||||||
|
)
|
||||||
|
val child = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = parent,
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
clearCompleted()
|
||||||
|
|
||||||
|
assertFalse(taskDao.fetch(child)!!.isDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun clearGrandchildWithNoRecurringAncestors() = runBlocking {
|
||||||
|
val grandparent = taskDao.createNew(Task())
|
||||||
|
val parent = taskDao.createNew(
|
||||||
|
Task(parent = grandparent)
|
||||||
|
)
|
||||||
|
val child = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = parent,
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
clearCompleted()
|
||||||
|
|
||||||
|
assertTrue(taskDao.fetch(child)!!.isDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun clearGrandchildWithCompletedRecurringAncestor() = runBlocking {
|
||||||
|
val grandparent = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
recurrence = "RRULE:FREQ=DAILY;INTERVAL=1",
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
val parent = taskDao.createNew(
|
||||||
|
Task(parent = grandparent)
|
||||||
|
)
|
||||||
|
val child = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = parent,
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
clearCompleted()
|
||||||
|
|
||||||
|
assertTrue(taskDao.fetch(child)!!.isDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun clearHiddenSubtask() = runBlocking {
|
||||||
|
preferences.showCompleted = false
|
||||||
|
val parent = taskDao.createNew(Task())
|
||||||
|
val child = taskDao.createNew(
|
||||||
|
Task(
|
||||||
|
parent = parent,
|
||||||
|
completionDate = currentTimeMillis(),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
clearCompleted()
|
||||||
|
|
||||||
|
assertTrue(taskDao.fetch(child)!!.isDeleted)
|
||||||
|
}
|
||||||
|
|
||||||
|
private suspend fun clearCompleted() = viewModel.markDeleted(viewModel.getTasksToClear())
|
||||||
|
}
|
@ -1,75 +0,0 @@
|
|||||||
package org.tasks
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import at.bitfire.ical4android.Task.Companion.tasksFromReader
|
|
||||||
import com.todoroo.astrid.data.Task
|
|
||||||
import kotlinx.coroutines.runBlocking
|
|
||||||
import org.tasks.caldav.applyRemote
|
|
||||||
import org.tasks.caldav.iCalendar.Companion.reminders
|
|
||||||
import org.tasks.data.Alarm
|
|
||||||
import org.tasks.data.CaldavTask
|
|
||||||
import org.tasks.preferences.Preferences
|
|
||||||
import org.tasks.time.DateTime
|
|
||||||
import java.io.StringReader
|
|
||||||
import java.nio.file.Files
|
|
||||||
import java.nio.file.Paths
|
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
object TestUtilities {
|
|
||||||
fun withTZ(id: String, runnable: suspend () -> Unit) = withTZ(TimeZone.getTimeZone(id), runnable)
|
|
||||||
|
|
||||||
fun withTZ(tz: TimeZone, runnable: suspend () -> Unit) {
|
|
||||||
val def = TimeZone.getDefault()
|
|
||||||
try {
|
|
||||||
TimeZone.setDefault(tz)
|
|
||||||
runBlocking {
|
|
||||||
runnable()
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
TimeZone.setDefault(def)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun assertEquals(expected: Long, actual: DateTime) =
|
|
||||||
org.junit.Assert.assertEquals(expected, actual.millis)
|
|
||||||
|
|
||||||
fun assertEquals(expected: DateTime, actual: Long?) =
|
|
||||||
org.junit.Assert.assertEquals(expected.millis, actual)
|
|
||||||
|
|
||||||
fun newPreferences(context: Context): Preferences {
|
|
||||||
return Preferences(context, "test_preferences")
|
|
||||||
}
|
|
||||||
|
|
||||||
fun vtodo(path: String): Task {
|
|
||||||
val task = Task()
|
|
||||||
task.applyRemote(fromResource(path), null)
|
|
||||||
return task
|
|
||||||
}
|
|
||||||
|
|
||||||
val String.alarms: List<Alarm>
|
|
||||||
get() = fromResource(this).reminders
|
|
||||||
|
|
||||||
fun setup(path: String): Triple<Task, CaldavTask, at.bitfire.ical4android.Task> {
|
|
||||||
val task = Task()
|
|
||||||
val vtodo = readFile(path)
|
|
||||||
val remote = fromString(vtodo)
|
|
||||||
task.applyRemote(remote, null)
|
|
||||||
return Triple(task, CaldavTask().apply { this.vtodo = vtodo }, remote)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun fromResource(path: String): at.bitfire.ical4android.Task =
|
|
||||||
fromString(readFile(path))
|
|
||||||
|
|
||||||
fun readFile(path: String): String {
|
|
||||||
val uri = javaClass.classLoader?.getResource(path)?.toURI()
|
|
||||||
?: throw IllegalArgumentException()
|
|
||||||
val paths = Paths.get(uri)
|
|
||||||
return String(Files.readAllBytes(paths), Charsets.UTF_8)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun fromString(task: String): at.bitfire.ical4android.Task =
|
|
||||||
tasksFromReader(StringReader(task))
|
|
||||||
.takeIf { it.size == 1 }
|
|
||||||
?.first()
|
|
||||||
?: throw IllegalStateException()
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.Property.newProperty
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import org.tasks.data.Alarm.Companion.TYPE_DATE_TIME
|
|
||||||
import org.tasks.date.DateTimeUtils.newDateTime
|
|
||||||
import org.tasks.jobs.AlarmEntry
|
|
||||||
import org.tasks.makers.Maker.make
|
|
||||||
import org.tasks.time.DateTime
|
|
||||||
|
|
||||||
object AlarmEntryMaker {
|
|
||||||
val ID: Property<AlarmEntry, Long> = newProperty()
|
|
||||||
val TASK: Property<AlarmEntry, Long> = newProperty()
|
|
||||||
val TIME: Property<AlarmEntry, DateTime> = newProperty()
|
|
||||||
val TYPE: Property<AlarmEntry, Int> = newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<AlarmEntry> ->
|
|
||||||
AlarmEntry(
|
|
||||||
lookup.valueOf(ID, 0L),
|
|
||||||
lookup.valueOf(TASK, 0L),
|
|
||||||
lookup.valueOf(TIME, newDateTime()).millis,
|
|
||||||
lookup.valueOf(TYPE, TYPE_DATE_TIME)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newAlarmEntry(vararg properties: PropertyValue<in AlarmEntry?, *>): AlarmEntry {
|
|
||||||
return make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import org.tasks.data.Geofence
|
|
||||||
|
|
||||||
object GeofenceMaker {
|
|
||||||
val PLACE: Property<Geofence, String> = Property.newProperty()
|
|
||||||
val TASK: Property<Geofence, Long> = Property.newProperty()
|
|
||||||
val ARRIVAL: Property<Geofence, Boolean> = Property.newProperty()
|
|
||||||
val DEPARTURE: Property<Geofence, Boolean> = Property.newProperty()
|
|
||||||
val RADIUS: Property<Geofence, Int> = Property.newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<Geofence> ->
|
|
||||||
val geofence = Geofence()
|
|
||||||
geofence.place = lookup.valueOf(PLACE, "")
|
|
||||||
geofence.task = lookup.valueOf(TASK, 1)
|
|
||||||
geofence.isArrival = lookup.valueOf(ARRIVAL, false)
|
|
||||||
geofence.isDeparture = lookup.valueOf(DEPARTURE, false)
|
|
||||||
geofence.radius = lookup.valueOf(RADIUS, 250)
|
|
||||||
geofence
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newGeofence(vararg properties: PropertyValue<in Geofence?, *>): Geofence {
|
|
||||||
return Maker.make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import org.tasks.data.GoogleTaskList
|
|
||||||
|
|
||||||
object GoogleTaskListMaker {
|
|
||||||
val REMOTE_ID: Property<GoogleTaskList, String> = Property.newProperty()
|
|
||||||
val ACCOUNT: Property<GoogleTaskList, String?> = Property.newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<GoogleTaskList> ->
|
|
||||||
val list = GoogleTaskList()
|
|
||||||
list.remoteId = lookup.valueOf(REMOTE_ID, "1234")
|
|
||||||
list.account = lookup.valueOf(ACCOUNT, null as String?)
|
|
||||||
list.setColor(0)
|
|
||||||
list
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newGoogleTaskList(vararg properties: PropertyValue<in GoogleTaskList?, *>): GoogleTaskList {
|
|
||||||
return Maker.make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.Property.newProperty
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import com.todoroo.astrid.helper.UUIDHelper
|
|
||||||
import org.tasks.data.GoogleTask
|
|
||||||
import org.tasks.makers.Maker.make
|
|
||||||
|
|
||||||
object GoogleTaskMaker {
|
|
||||||
val LIST: Property<GoogleTask, String> = newProperty()
|
|
||||||
val ORDER: Property<GoogleTask, Long> = newProperty()
|
|
||||||
val REMOTE_ID: Property<GoogleTask, String> = newProperty()
|
|
||||||
val TASK: Property<GoogleTask, Long> = newProperty()
|
|
||||||
val PARENT: Property<GoogleTask, Long> = newProperty()
|
|
||||||
val REMOTE_PARENT: Property<GoogleTask, String?> = newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator<GoogleTask> {
|
|
||||||
val task = GoogleTask()
|
|
||||||
task.listId = it.valueOf(LIST, "1")
|
|
||||||
task.order = it.valueOf(ORDER, 0)
|
|
||||||
task.remoteId = it.valueOf(REMOTE_ID, UUIDHelper.newUUID())
|
|
||||||
task.task = it.valueOf(TASK, 1)
|
|
||||||
task.parent = it.valueOf(PARENT, 0L)
|
|
||||||
task.remoteParent = it.valueOf(REMOTE_PARENT, null as String?)
|
|
||||||
task
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newGoogleTask(vararg properties: PropertyValue<in GoogleTask?, *>): GoogleTask {
|
|
||||||
return make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.Property.newProperty
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import com.todoroo.astrid.api.FilterListItem.NO_ORDER
|
|
||||||
import org.tasks.data.GoogleTaskList
|
|
||||||
import org.tasks.makers.Maker.make
|
|
||||||
|
|
||||||
object GtaskListMaker {
|
|
||||||
val ID: Property<GoogleTaskList, Long> = newProperty()
|
|
||||||
val ACCOUNT: Property<GoogleTaskList, String> = newProperty()
|
|
||||||
val REMOTE_ID: Property<GoogleTaskList, String> = newProperty()
|
|
||||||
val LAST_SYNC: Property<GoogleTaskList, Long> = newProperty()
|
|
||||||
val NAME: Property<GoogleTaskList, String> = newProperty()
|
|
||||||
private val ORDER: Property<GoogleTaskList, Int> = newProperty()
|
|
||||||
private val COLOR: Property<GoogleTaskList, Int> = newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<GoogleTaskList> ->
|
|
||||||
val list = GoogleTaskList()
|
|
||||||
list.id = lookup.valueOf(ID, 0L)
|
|
||||||
list.account = lookup.valueOf(ACCOUNT, "account")
|
|
||||||
list.remoteId = lookup.valueOf(REMOTE_ID, "1")
|
|
||||||
list.title = lookup.valueOf(NAME, "Default")
|
|
||||||
list.order = lookup.valueOf(ORDER, NO_ORDER)
|
|
||||||
list.lastSync = lookup.valueOf(LAST_SYNC, 0L)
|
|
||||||
list.setColor(lookup.valueOf(COLOR, 0))
|
|
||||||
list
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newGtaskList(vararg properties: PropertyValue<in GoogleTaskList?, *>): GoogleTaskList {
|
|
||||||
return make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import com.todoroo.astrid.helper.UUIDHelper
|
|
||||||
import org.tasks.data.Place
|
|
||||||
|
|
||||||
object PlaceMaker {
|
|
||||||
val LATITUDE: Property<Place, Double> = Property.newProperty()
|
|
||||||
val LONGITUDE: Property<Place, Double> = Property.newProperty()
|
|
||||||
val UUID: Property<Place, String> = Property.newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<Place> ->
|
|
||||||
val place = Place()
|
|
||||||
place.uid = lookup.valueOf(UUID, UUIDHelper.newUUID())
|
|
||||||
place.latitude = lookup.valueOf(LATITUDE, 0.0)
|
|
||||||
place.longitude = lookup.valueOf(LONGITUDE, 0.0)
|
|
||||||
place
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newPlace(vararg properties: PropertyValue<in Place?, *>): Place {
|
|
||||||
return Maker.make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,25 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.Property.newProperty
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import org.tasks.data.TagData
|
|
||||||
import org.tasks.makers.Maker.make
|
|
||||||
|
|
||||||
object TagDataMaker {
|
|
||||||
val NAME: Property<TagData, String> = newProperty()
|
|
||||||
val UID: Property<TagData, String?> = newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<TagData> ->
|
|
||||||
val tagData = TagData()
|
|
||||||
tagData.name = lookup.valueOf(NAME, "tag")
|
|
||||||
tagData.remoteId = lookup.valueOf(UID, null as String?)
|
|
||||||
tagData
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newTagData(vararg properties: PropertyValue<in TagData?, *>): TagData {
|
|
||||||
return make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.Property.newProperty
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import com.todoroo.astrid.data.Task
|
|
||||||
import org.tasks.data.Tag
|
|
||||||
import org.tasks.data.TagData
|
|
||||||
import org.tasks.makers.Maker.make
|
|
||||||
|
|
||||||
object TagMaker {
|
|
||||||
val TAGDATA: Property<Tag, TagData?> = newProperty()
|
|
||||||
val TASK: Property<Tag, Task?> = newProperty()
|
|
||||||
val TAGUID: Property<Tag, String?> = newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<Tag> ->
|
|
||||||
val tag = Tag()
|
|
||||||
val task = lookup.valueOf(TASK, null as Task?)!!
|
|
||||||
tag.task = task.id
|
|
||||||
tag.setTaskUid(task.uuid)
|
|
||||||
tag.tagUid = lookup.valueOf(TAGUID, null as String?)
|
|
||||||
val tagData = lookup.valueOf(TAGDATA, null as TagData?)
|
|
||||||
if (tagData != null) {
|
|
||||||
tag.tagUid = tagData.remoteId
|
|
||||||
}
|
|
||||||
assert(tag.tagUid != null)
|
|
||||||
tag
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newTag(vararg properties: PropertyValue<in Tag?, *>): Tag {
|
|
||||||
return make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,98 +0,0 @@
|
|||||||
package org.tasks.makers
|
|
||||||
|
|
||||||
import com.natpryce.makeiteasy.Instantiator
|
|
||||||
import com.natpryce.makeiteasy.Property
|
|
||||||
import com.natpryce.makeiteasy.Property.newProperty
|
|
||||||
import com.natpryce.makeiteasy.PropertyLookup
|
|
||||||
import com.natpryce.makeiteasy.PropertyValue
|
|
||||||
import com.todoroo.astrid.data.Task
|
|
||||||
import com.todoroo.astrid.data.Task.Companion.HIDE_UNTIL_SPECIFIC_DAY
|
|
||||||
import com.todoroo.astrid.data.Task.Companion.NO_UUID
|
|
||||||
import org.tasks.Strings
|
|
||||||
import org.tasks.date.DateTimeUtils
|
|
||||||
import org.tasks.makers.Maker.make
|
|
||||||
import org.tasks.time.DateTime
|
|
||||||
|
|
||||||
object TaskMaker {
|
|
||||||
val ID: Property<Task, Long> = newProperty()
|
|
||||||
val DUE_DATE: Property<Task, DateTime?> = newProperty()
|
|
||||||
val DUE_TIME: Property<Task, DateTime?> = newProperty()
|
|
||||||
val START_DATE: Property<Task, DateTime?> = newProperty()
|
|
||||||
val REMINDER_LAST: Property<Task, DateTime?> = newProperty()
|
|
||||||
val HIDE_TYPE: Property<Task, Int> = newProperty()
|
|
||||||
val REMINDERS: Property<Task, Int> = newProperty()
|
|
||||||
val MODIFICATION_TIME: Property<Task, DateTime> = newProperty()
|
|
||||||
val CREATION_TIME: Property<Task, DateTime> = newProperty()
|
|
||||||
val COMPLETION_TIME: Property<Task, DateTime> = newProperty()
|
|
||||||
val DELETION_TIME: Property<Task, DateTime?> = newProperty()
|
|
||||||
val RECUR: Property<Task, String?> = newProperty()
|
|
||||||
val AFTER_COMPLETE: Property<Task, Boolean> = newProperty()
|
|
||||||
val TITLE: Property<Task, String?> = newProperty()
|
|
||||||
val PRIORITY: Property<Task, Int> = newProperty()
|
|
||||||
val PARENT: Property<Task, Long> = newProperty()
|
|
||||||
val UUID: Property<Task, String> = newProperty()
|
|
||||||
val COLLAPSED: Property<Task, Boolean> = newProperty()
|
|
||||||
val DESCRIPTION: Property<Task, String?> = newProperty()
|
|
||||||
|
|
||||||
private val instantiator = Instantiator { lookup: PropertyLookup<Task> ->
|
|
||||||
val task = Task()
|
|
||||||
val title = lookup.valueOf(TITLE, null as String?)
|
|
||||||
if (!Strings.isNullOrEmpty(title)) {
|
|
||||||
task.title = title!!
|
|
||||||
}
|
|
||||||
val id = lookup.valueOf(ID, Task.NO_ID)
|
|
||||||
if (id != Task.NO_ID) {
|
|
||||||
task.id = id
|
|
||||||
}
|
|
||||||
val priority = lookup.valueOf(PRIORITY, -1)
|
|
||||||
if (priority >= 0) {
|
|
||||||
task.priority = priority
|
|
||||||
}
|
|
||||||
val dueDate = lookup.valueOf(DUE_DATE, null as DateTime?)
|
|
||||||
if (dueDate != null) {
|
|
||||||
task.dueDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY, dueDate.millis)
|
|
||||||
}
|
|
||||||
val dueTime = lookup.valueOf(DUE_TIME, null as DateTime?)
|
|
||||||
if (dueTime != null) {
|
|
||||||
task.dueDate = Task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, dueTime.millis)
|
|
||||||
}
|
|
||||||
val completionTime = lookup.valueOf(COMPLETION_TIME, null as DateTime?)
|
|
||||||
if (completionTime != null) {
|
|
||||||
task.completionDate = completionTime.millis
|
|
||||||
}
|
|
||||||
val deletedTime = lookup.valueOf(DELETION_TIME, null as DateTime?)
|
|
||||||
if (deletedTime != null) {
|
|
||||||
task.deletionDate = deletedTime.millis
|
|
||||||
}
|
|
||||||
lookup.valueOf(START_DATE, null as DateTime?)?.let {
|
|
||||||
task.hideUntil = task.createHideUntil(HIDE_UNTIL_SPECIFIC_DAY, it.millis)
|
|
||||||
}
|
|
||||||
val hideType = lookup.valueOf(HIDE_TYPE, -1)
|
|
||||||
if (hideType >= 0) {
|
|
||||||
task.hideUntil = task.createHideUntil(hideType, 0)
|
|
||||||
}
|
|
||||||
val reminderFlags = lookup.valueOf(REMINDERS, -1)
|
|
||||||
if (reminderFlags >= 0) {
|
|
||||||
task.ringFlags = reminderFlags
|
|
||||||
}
|
|
||||||
val reminderLast = lookup.valueOf(REMINDER_LAST, null as DateTime?)
|
|
||||||
if (reminderLast != null) {
|
|
||||||
task.reminderLast = reminderLast.millis
|
|
||||||
}
|
|
||||||
lookup.valueOf(RECUR, null as String?)?.let {
|
|
||||||
task.setRecurrence(it, lookup.valueOf(AFTER_COMPLETE, false))
|
|
||||||
}
|
|
||||||
task.notes = lookup.valueOf(DESCRIPTION, null as String?)
|
|
||||||
task.isCollapsed = lookup.valueOf(COLLAPSED, false)
|
|
||||||
task.uuid = lookup.valueOf(UUID, NO_UUID)
|
|
||||||
val creationTime = lookup.valueOf(CREATION_TIME, DateTimeUtils.newDateTime())
|
|
||||||
task.creationDate = creationTime.millis
|
|
||||||
task.modificationDate = lookup.valueOf(MODIFICATION_TIME, creationTime).millis
|
|
||||||
task.parent = lookup.valueOf(PARENT, 0L)
|
|
||||||
task
|
|
||||||
}
|
|
||||||
|
|
||||||
fun newTask(vararg properties: PropertyValue<in Task?, *>): Task {
|
|
||||||
return make(instantiator, *properties)
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<network-security-config xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
<base-config
|
||||||
|
cleartextTrafficPermitted="true"
|
||||||
|
tools:ignore="InsecureBaseConfiguration" />
|
||||||
|
</network-security-config>
|
@ -0,0 +1,8 @@
|
|||||||
|
package org.tasks.play
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
class PlayServices @Inject constructor() {
|
||||||
|
fun requestReview(@Suppress("UNUSED_PARAMETER") activity: Activity) {}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue