mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 00:02:48 +02:00
Compare commits
3769 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
f543600b17 | ||
|
504507a6cc | ||
|
ae1f1a27de | ||
|
03496c36dc | ||
|
9ab5e3dfee | ||
|
1cc2e8b000 | ||
|
cc8182445e | ||
|
089566b5d9 | ||
|
f2c7b6508a | ||
|
3301df44fb | ||
|
9546889236 | ||
|
d99ac94bf9 | ||
|
552d763f83 | ||
|
bd3aa4024a | ||
|
a21867e380 | ||
|
3e1631c0e5 | ||
|
0fbfd27149 | ||
|
8110e9b2ab | ||
|
b44c1a1c77 | ||
|
b311173385 | ||
|
8e45b69c7d | ||
|
edc2e7e61e | ||
|
a14c00e669 | ||
|
b034870242 | ||
|
5ec1ab5b2d | ||
|
fd8295eb6c | ||
|
67ec1b4434 | ||
|
509b0f5a41 | ||
|
3a5724d900 | ||
|
7e7d245d59 | ||
|
b6cbd76849 | ||
|
d50a8a9d06 | ||
|
7eb27e3633 | ||
|
d750c40ceb | ||
|
a9c61dc309 | ||
|
6706a88a21 | ||
|
7b15403260 | ||
|
40bb58c9cb | ||
|
ebd28e98bd | ||
|
697b9ff535 | ||
|
dcf76bf6ad | ||
|
f7f80238f7 | ||
|
42d249ceeb | ||
|
c06d8dccb7 | ||
|
0df7166954 | ||
|
2b396707f9 | ||
|
3af3641b92 | ||
|
fb5dda30bd | ||
|
762eb0db12 | ||
|
ba96626bd0 | ||
|
048c13af50 | ||
|
2f3f0c294c | ||
|
cbf0357467 | ||
|
ae5a5ec92b | ||
|
abf7e275a7 | ||
|
877a64fbce | ||
|
8d3167cb66 | ||
|
cb6f414c60 | ||
|
0424d03bcc | ||
|
bcf755407b | ||
|
1b16d287e8 | ||
|
09a287013c | ||
|
0d0b6a8810 | ||
|
03f81258c4 | ||
|
2ca0397867 | ||
|
894af10934 | ||
|
201f4c342a | ||
|
e4b65053d4 | ||
|
2462c871b2 | ||
|
4c24fe815c | ||
|
86a861b779 | ||
|
6240910b90 | ||
|
9df11d6873 | ||
|
e7c5353240 | ||
|
8d94b5548d | ||
|
8360c01e18 | ||
|
df13b32a5c | ||
|
a7c1dc5cd9 | ||
|
5d7acad75c | ||
|
4ba40b1d34 | ||
|
b11e6a2b26 | ||
|
4cf38951ef | ||
|
6961e54f15 | ||
|
0a6adad680 | ||
|
93d0fc0035 | ||
|
ad0cd98183 | ||
|
ade2f0c065 | ||
|
c423c270f7 | ||
|
8da8d44823 | ||
|
3d6fbf452f | ||
|
e80ca634ca | ||
|
07b84bbff1 | ||
|
ca2f671286 | ||
|
82c50b7c1d | ||
|
9e795894be | ||
|
c437ed394d | ||
|
974c7ef8d9 | ||
|
fa6aaca67a | ||
|
b5f7abda48 | ||
|
619e8cca37 | ||
|
7db5c66f2c | ||
|
33b2100842 | ||
|
112a160725 | ||
|
d926890c79 | ||
|
1fac4dfe3e | ||
|
62ca8d87dc | ||
|
c39a8caaed | ||
|
bebd84d1f5 | ||
|
f0adf29d12 | ||
|
209a9b09c7 | ||
|
55912ef49d | ||
|
467d3e764e | ||
|
ff1d8c310e | ||
|
57fd580124 | ||
|
25f7f29d94 | ||
|
566369cccd | ||
|
3d174b0a25 | ||
|
8114d52d7d | ||
|
9a9edd979d | ||
|
a0d04c40e9 | ||
|
5629d30932 | ||
|
5bd3aed51c | ||
|
4e55475429 | ||
|
8f4735827e | ||
|
9d7f092016 | ||
|
1aa3d04f33 | ||
|
e5cc6ceba7 | ||
|
ffba75a49e | ||
|
8c09c22239 | ||
|
448eda8624 | ||
|
722bccb0bb | ||
|
0041743bf9 | ||
|
1a70fa0fcc | ||
|
36f397be48 | ||
|
2e2667fd69 | ||
|
00b4ab8db9 | ||
|
552424befb | ||
|
37cc0dc8b6 | ||
|
0c92949e78 | ||
|
7f3d899521 | ||
|
28122aba2c | ||
|
0bfa2578a7 | ||
|
ec56e689ae | ||
|
39b89ff103 | ||
|
14629f2041 | ||
|
640b86ca9e | ||
|
535d266cc2 | ||
|
1f7482922d | ||
|
8211cc266f | ||
|
0437814479 | ||
|
1e708b113b | ||
|
25b4c32fd0 | ||
|
0711ecc7f4 | ||
|
4112d28127 | ||
|
555eada37a | ||
|
bf14251c3d | ||
|
257b2ef593 | ||
|
baa4b95e18 | ||
|
aeda8bcc81 | ||
|
08aefa270e | ||
|
df68cd4b56 | ||
|
4a94426d38 | ||
|
babbcedd87 | ||
|
c70445a9a1 | ||
|
7a28be941c | ||
|
58a2fd8c77 | ||
|
0354151fa7 | ||
|
95714e55b0 | ||
|
c27b7aec26 | ||
|
d6e3bb59f4 | ||
|
946208a84d | ||
|
dca4a31fc6 | ||
|
e09230b3cf | ||
|
0375034873 | ||
|
e61c38818e | ||
|
5a4b6b7351 | ||
|
7289f28bab | ||
|
915d82f835 | ||
|
39ee7bbff7 | ||
|
82bb0f19dd | ||
|
393ef3845e | ||
|
413145ad29 | ||
|
90f6f9f7c1 | ||
|
cd9b8c55f4 | ||
|
1b84039407 | ||
|
ebbfa901d1 | ||
|
3c0ac0a576 | ||
|
796bb80868 | ||
|
c68fc5fd10 | ||
|
cbd9ec33fe | ||
|
756e690cc1 | ||
|
dcc37ec292 | ||
|
58dfe0f924 | ||
|
4b87413b5f | ||
|
b8d936e9f1 | ||
|
2709c1e99b | ||
|
dfc8860ade | ||
|
87953e7150 | ||
|
31df08477e | ||
|
278b0d7f75 | ||
|
a42a9b5e32 | ||
|
a9c966b8de | ||
|
355ee3133c | ||
|
2f37c703a4 | ||
|
b06bd403ca | ||
|
72e343ad5a | ||
|
6af9fda7df | ||
|
5d052cda79 | ||
|
0d5b66f92b | ||
|
391e952fbd | ||
|
df3d3b63c8 | ||
|
aefcb4841b | ||
|
eb18b23528 | ||
|
03f2b516a0 | ||
|
56d0699bc7 | ||
|
1799dcbd0c | ||
|
8e28b31170 | ||
|
3ddf181224 | ||
|
0de56e2993 | ||
|
eb9fadaebf | ||
|
bdc3f189ee | ||
|
91d8ee2a81 | ||
|
824a8a5c66 | ||
|
91be2b6f3f | ||
|
cef4cf09ec | ||
|
f31c44963b | ||
|
f9820cde58 | ||
|
14144dc99d | ||
|
24a32f2b7e | ||
|
d9ffff70a6 | ||
|
631d8510ed | ||
|
4e28de2107 | ||
|
1ec08bec07 | ||
|
d81d971ce0 | ||
|
9bc02d09c7 | ||
|
3a746cf23a | ||
|
2b632a2d52 | ||
|
e34574f658 | ||
|
1b0b5e4ff0 | ||
|
cf00cc2fda | ||
|
0cd1d57fc0 | ||
|
3e66988b6a | ||
|
5631a4714e | ||
|
723f7cc326 | ||
|
80366ee938 | ||
|
31b6d9844b | ||
|
f9e608a790 | ||
|
5be3faf914 | ||
|
e6d4f9a1dc | ||
|
0e0cfababf | ||
|
7ec44a5542 | ||
|
bea67bd7fd | ||
|
525cd3edd7 | ||
|
711ee24c4f | ||
|
f1919be197 | ||
|
581847e5c1 | ||
|
0f8a641510 | ||
|
dd0e5e2bb9 | ||
|
e74f4d570d | ||
|
a272f4d4c6 | ||
|
87d35958c6 | ||
|
01ec263ff3 | ||
|
d760d6c25b | ||
|
981626a0f7 | ||
|
20f86a30e8 | ||
|
5e2c3239ea | ||
|
d42a4bb5ee | ||
|
e951b2097d | ||
|
53b20a89ca | ||
|
87b12b7e11 | ||
|
3d613c003d | ||
|
bbabfdabd0 | ||
|
e969d663a5 | ||
|
64f1834913 | ||
|
fb0205e903 | ||
|
e2682b6082 | ||
|
610c25b67c | ||
|
728356fdeb | ||
|
19223826fe | ||
|
f704539c89 | ||
|
096e95f9da | ||
|
89d71ceedc | ||
|
c88fb3a940 | ||
|
711dfe41b7 | ||
|
4864137fa1 | ||
|
efe5176286 | ||
|
3cbdf4ad5c | ||
|
506870302e | ||
|
6220e35221 | ||
|
ea93261b83 | ||
|
908e7be2ba | ||
|
cdb3d7c308 | ||
|
ea3abee63a | ||
|
961f3bcd19 | ||
|
2acfb29416 | ||
|
99d4471799 | ||
|
4abfc1fd2b | ||
|
b09e509db7 | ||
|
17e57fe86c | ||
|
64a37c251d | ||
|
080bdf1495 | ||
|
168633b466 | ||
|
ecceb0fb03 | ||
|
b9b3832ee3 | ||
|
e28556dd1b | ||
|
590d8fc849 | ||
|
62207f02f0 | ||
|
8d52829918 | ||
|
b05f53453a | ||
|
ad1832efbc | ||
|
51ea772579 | ||
|
abd8e987b8 | ||
|
0d041cbf11 | ||
|
89a08ca2a0 | ||
|
e4e9707ab7 | ||
|
42b8f74f5e | ||
|
314ace9208 | ||
|
9e4f1147f4 | ||
|
2a411ccf6c | ||
|
efc08b376b | ||
|
dd325c4e91 | ||
|
fb42b869dd | ||
|
d8bdf8e625 | ||
|
61380bf48a | ||
|
edbfc2e2e9 | ||
|
c502e971a1 | ||
|
bcf6dcbf70 | ||
|
6347564365 | ||
|
ee7518bf51 | ||
|
4189db0f89 | ||
|
9d225b7826 | ||
|
12c4f3c6f7 | ||
|
f7949100a7 | ||
|
d9ffce7e0d | ||
|
30a54cfdbc | ||
|
570cffd3ed | ||
|
d7cbae7c47 | ||
|
e510de1ccc | ||
|
765380ab95 | ||
|
d6b6768f41 | ||
|
5213309587 | ||
|
e1e4b03532 | ||
|
e108534a2a | ||
|
4a23d31271 | ||
|
8ff65b3816 | ||
|
5e1c503d2e | ||
|
a377a595b9 | ||
|
75a4455d15 | ||
|
72dcf5c65e | ||
|
d3316a1ce8 | ||
|
accea83fb0 | ||
|
d744d1c6e8 | ||
|
318fbcd4f6 | ||
|
ee8ef585ce | ||
|
a77bcb5492 | ||
|
ebfb4b4b9a | ||
|
9d81252e7b | ||
|
ba1c50e2ee | ||
|
278738a9d4 | ||
|
81213b07bb | ||
|
6bc7ee0d96 | ||
|
01d0201852 | ||
|
9e1a24eaf9 | ||
|
01d857bbce | ||
|
c9abdb5def | ||
|
0a9fdea26d | ||
|
e3204c32a1 | ||
|
8edbd323de | ||
|
47aa787ecb | ||
|
c4a4a5d41c | ||
|
aa9f4c2e6e | ||
|
589be8b15f | ||
|
6180076512 | ||
|
257d5cd55a | ||
|
5a53838194 | ||
|
33337bd772 | ||
|
38e83e1f35 | ||
|
5d9d984c73 | ||
|
90f4a9490d | ||
|
d28c6039c0 | ||
|
bea9abd9a6 | ||
|
b3ac1a1e8b | ||
|
c09f7e0d7d | ||
|
258a378f39 | ||
|
63a59dbc0c | ||
|
ef55ddd683 | ||
|
d235d1be15 | ||
|
6e9c16a889 | ||
|
5d65a290d2 | ||
|
af3893cdc9 | ||
|
4486181669 | ||
|
7117427686 | ||
|
f0433fd27d | ||
|
d812ed72d0 | ||
|
2d7bface27 | ||
|
faef2fba9a | ||
|
adae66aa43 | ||
|
51a39909dc | ||
|
c141b26212 | ||
|
408a0fc010 | ||
|
344a7e5b3d | ||
|
9972ab5d2e | ||
|
01b0c7a036 | ||
|
ab68903d7f | ||
|
79f125cccd | ||
|
98177da6b1 | ||
|
659d012e13 | ||
|
55f1f56fec | ||
|
30d7c73b2d | ||
|
f89a7496aa | ||
|
31ffa65fd0 | ||
|
7465ac2ef6 | ||
|
264eb3b0a2 | ||
|
e073563a67 | ||
|
80b155e042 | ||
|
bd0fcce572 | ||
|
a5c0c23bae | ||
|
e5d0a8f3d8 | ||
|
dc69d5c68a | ||
|
ecd2d0fb76 | ||
|
c33da38ddb | ||
|
0e563596dd | ||
|
8afa697591 | ||
|
82ee2567b7 | ||
|
95639927a7 | ||
|
4acc308864 | ||
|
751efb57fc | ||
|
7593c3f03d | ||
|
cacc83bf17 | ||
|
c043e6e958 | ||
|
4d3a02f71f | ||
|
ea645d147d | ||
|
7beb483972 | ||
|
b86fd37c15 | ||
|
b2e6b3f0db | ||
|
c40476aa94 | ||
|
195bc8e914 | ||
|
9cb19c0581 | ||
|
ba641a6e76 | ||
|
8c1afbaa66 | ||
|
506bdd8eb0 | ||
|
32605be6e8 | ||
|
70476b912f | ||
|
7d3d080603 | ||
|
872c45d5a3 | ||
|
3378e23cc2 | ||
|
46834d2178 | ||
|
45200572a2 | ||
|
dba6784487 | ||
|
d186b73c90 | ||
|
1ce7085ca9 | ||
|
733d4185c4 | ||
|
d42761f98a | ||
|
b45585f7c0 | ||
|
aa74646ddf | ||
|
19bb4c6162 | ||
|
d30ba9c749 | ||
|
5e75a3a80b | ||
|
7921a81b8e | ||
|
4d7aeff54a | ||
|
8146d8ab1e | ||
|
5a84456f1f | ||
|
14103b1e7c | ||
|
1deb44f91f | ||
|
7910e84d8e | ||
|
57e9e4474e | ||
|
e735aee724 | ||
|
6aaf6bdf9b | ||
|
49381db2e3 | ||
|
643e7ad3cb | ||
|
79bde6ee91 | ||
|
bfbd37074e | ||
|
02c2fea99e | ||
|
886cc7fb5b | ||
|
a3b9d187ce | ||
|
b635663ae3 | ||
|
0d3c2b4bef | ||
|
8a35a786b4 | ||
|
715bd29c75 | ||
|
0dbd856ac5 | ||
|
386e06d675 | ||
|
dfae42c912 | ||
|
4fb248cd9f | ||
|
a211cc1780 | ||
|
fa489c459a | ||
|
3c64f78159 | ||
|
7c348959cf | ||
|
7aa4066a25 | ||
|
eac8938186 | ||
|
66ac298e95 | ||
|
2cccbb3fce | ||
|
46290f1ed4 | ||
|
b380fa0653 | ||
|
815cae4d84 | ||
|
6b8b03e162 | ||
|
dda45f1c2a | ||
|
201b914304 | ||
|
4c4f68f654 | ||
|
a5af1a6ebd | ||
|
8754f7772b | ||
|
55745655db | ||
|
55083a5602 | ||
|
ea5e48b940 | ||
|
872b383c4d | ||
|
681b5b3ddc | ||
|
06a84d985a | ||
|
802853d205 | ||
|
0da9be327a | ||
|
01c56824b7 | ||
|
e364a36ee6 | ||
|
48fef45ce3 | ||
|
0c5ca9f51b | ||
|
80f1c6cb2d | ||
|
bb0b1ed098 | ||
|
ef42591534 | ||
|
03ef480bea | ||
|
a433f2f965 | ||
|
2952dca3a3 | ||
|
a901e1d179 | ||
|
7d2d7b411e | ||
|
6c69a6055d | ||
|
4b27ad8ba6 | ||
|
d8a3229819 | ||
|
883f70306f | ||
|
5aa698768a | ||
|
2cc5c76fb3 | ||
|
c8916ee83c | ||
|
a8d7c25244 | ||
|
186024b271 | ||
|
57f17620b5 | ||
|
b7a89f4055 | ||
|
7521a0d3ae | ||
|
e2578a29ed | ||
|
ab4f2429c4 | ||
|
df341d8ea3 | ||
|
c5fa0a413f | ||
|
8b5d86f68d | ||
|
49d1b3e583 | ||
|
c62aa82e2a | ||
|
ed9db95aa0 | ||
|
e3a667cbc6 | ||
|
43b17be7a7 | ||
|
a4843f27ca | ||
|
0a72cc4c93 | ||
|
08cdac3e0d | ||
|
bcbc6c0f7c | ||
|
ae4ae4111d | ||
|
4608888b83 | ||
|
63f1efd320 | ||
|
149e9f6674 | ||
|
52d8088d75 | ||
|
6d4b7eba5b | ||
|
a35b63dbeb | ||
|
ba7015c8f2 | ||
|
7575959c4a | ||
|
bb48fea116 | ||
|
fe9bd38115 | ||
|
47134c39af | ||
|
3c33f273c6 | ||
|
5e3d8a5424 | ||
|
215166ab32 | ||
|
7309fa547b | ||
|
cf69d5c882 | ||
|
19e07f6cac | ||
|
ff3a916cab | ||
|
f4c1de3c30 | ||
|
b553d390e1 | ||
|
5848ec21f7 | ||
|
2a3694d8b7 | ||
|
820531120a | ||
|
f086f0e083 | ||
|
5862c8cb60 | ||
|
187d6136fd | ||
|
ef1ed28ac5 | ||
|
f8be814079 | ||
|
e3e0139d2b | ||
|
0903cb8bf1 | ||
|
c6a493848e | ||
|
e5bf87c09f | ||
|
19427fbfec | ||
|
72515ee635 | ||
|
9fc00fe6ff | ||
|
c08868bc3c | ||
|
ea8b3ccdf6 | ||
|
c4401d2927 | ||
|
3b256dd8a0 | ||
|
c2c8f92902 | ||
|
ffb05ccc77 | ||
|
14e80855b4 | ||
|
103e693c7e | ||
|
80e67281c6 | ||
|
b683c45bd8 | ||
|
d6e495f79f | ||
|
18cef243a1 | ||
|
9565e8975e | ||
|
ccf7dd9583 | ||
|
e4375522ff | ||
|
59637c4a6b | ||
|
3034d1d831 | ||
|
057295c155 | ||
|
e612a7e51d | ||
|
877e0ca5c6 | ||
|
89c2662e09 | ||
|
699b1429b7 | ||
|
e467e2ca08 | ||
|
30b415e77e | ||
|
39f304a57b | ||
|
afe617357d | ||
|
2116ff91cc | ||
|
ce7e00a499 | ||
|
f23eb425a1 | ||
|
05b35f53d4 | ||
|
bb9258cc47 | ||
|
288aed3252 | ||
|
ef648ce7ec | ||
|
5ca71a10ec | ||
|
d2c74f6fcd | ||
|
984342a6dd | ||
|
6c30e90dd9 | ||
|
2563bc9879 | ||
|
05993c36c4 | ||
|
c7a241fbf5 | ||
|
fbb77b7332 | ||
|
4fcbf718ca | ||
|
35667db29c | ||
|
759528f19a | ||
|
9ce12a1b28 | ||
|
7ee87a0d4b | ||
|
66db67e857 | ||
|
f0e75d0634 | ||
|
67cbe6ebb0 | ||
|
6443dd6c4d | ||
|
fad3a60bc4 | ||
|
a7be6a61ef | ||
|
f68eae5891 | ||
|
007134da12 | ||
|
ceca81f0ab | ||
|
bdb4e2dab8 | ||
|
4561dc8c64 | ||
|
55d4304620 | ||
|
e4c664edaf | ||
|
931bd1042b | ||
|
f4959ba553 | ||
|
e0a79af93a | ||
|
166817411c | ||
|
91e85f56d8 | ||
|
a9ef58912f | ||
|
e404589544 | ||
|
a1209c83bb | ||
|
38b49916e2 | ||
|
37226a1641 | ||
|
6d46bfc260 | ||
|
d40f2ef463 | ||
|
8d1b56d526 | ||
|
388e4eb112 | ||
|
bec6cfc46d | ||
|
0a326015ef | ||
|
08477cf581 | ||
|
5ee8cf7ebf | ||
|
93bc5abcb5 | ||
|
5311bacfff | ||
|
da7c2e38f6 | ||
|
0d9990b2e3 | ||
|
b5b651244b | ||
|
2d6fca9214 | ||
|
327e75e8e5 | ||
|
a4a3777722 | ||
|
f1e280827d | ||
|
7e605eb4d4 | ||
|
1233fde261 | ||
|
ee3eb8e1d6 | ||
|
2a1e52745f | ||
|
9d96f90e49 | ||
|
4451b682b1 | ||
|
9ce9d1e549 | ||
|
2e9f8ae6ae | ||
|
65b4b2915f | ||
|
153d393bf1 | ||
|
1715143b85 | ||
|
7b1d313e8e | ||
|
c6bd378104 | ||
|
760e14531f | ||
|
8dead986a5 | ||
|
9b5bc60fa9 | ||
|
68efa63de4 | ||
|
3ca00969c5 | ||
|
505b01ad97 | ||
|
3b6234a9a2 | ||
|
b423d5da4c | ||
|
e7608469ca | ||
|
eef6d92b89 | ||
|
e61a9e75e8 | ||
|
47aeadef7c | ||
|
fc202437e8 | ||
|
ebabb33e79 | ||
|
eff560f8f0 | ||
|
5971edee14 | ||
|
57d94c5494 | ||
|
5a988d6f4a | ||
|
3efd35e27a | ||
|
e9838f6db1 | ||
|
cc1d52171c | ||
|
3250f3bc0e | ||
|
39c0c5401f | ||
|
7309c1066c | ||
|
dead57b9fe | ||
|
b89a258fdf | ||
|
9a124f7630 | ||
|
c46f7fed5f | ||
|
3a1b8bc33d | ||
|
f0f66cbd0e | ||
|
4a0a6e9f01 | ||
|
7f7f90f89e | ||
|
96153fe92a | ||
|
af023669ba | ||
|
0693ce13e4 | ||
|
e811c53c44 | ||
|
923715aeb3 | ||
|
15c51cad17 | ||
|
835eb95aa1 | ||
|
1ac17b3aee | ||
|
b8d01c4577 | ||
|
884358b374 | ||
|
511a0c22e2 | ||
|
2495fa49f3 | ||
|
c459c4f90c | ||
|
3a81521eab | ||
|
0a0e3c3319 | ||
|
f7f7994685 | ||
|
28897f7679 | ||
|
62038e8a89 | ||
|
e3cd916105 | ||
|
0ede779ee5 | ||
|
8b15008eba | ||
|
7d88d038f5 | ||
|
df73649637 | ||
|
c30bcfeba0 | ||
|
33c1da5aa1 | ||
|
3109d111a4 | ||
|
f42d143679 | ||
|
5dc28c0564 | ||
|
15a463d748 | ||
|
7e74e6a6f4 | ||
|
2d4866cdc5 | ||
|
49c79ceb74 | ||
|
0addb3aeee | ||
|
ee77ed134b | ||
|
ef1265fe38 | ||
|
1612d57aab | ||
|
472e7b8246 | ||
|
77fb8de71f | ||
|
d492569539 | ||
|
99eb5bd533 | ||
|
d5d397d5ff | ||
|
1ebcafd920 | ||
|
a4348b8194 | ||
|
bd14c77ff0 | ||
|
55e8f519df | ||
|
d49ed63f1d | ||
|
4829298255 | ||
|
100b187be3 | ||
|
fcc635ac8f | ||
|
b9f73c6cc3 | ||
|
b47ced68b5 | ||
|
f60e649d76 | ||
|
bf6058dc32 | ||
|
ec3266f7e8 | ||
|
0bc864fc37 | ||
|
1f2d6bea21 | ||
|
ba27a601dd | ||
|
2df8eb199b | ||
|
52ba67c9c0 | ||
|
fe80b7bd6a | ||
|
f998c2f945 | ||
|
cd6fab0e2d | ||
|
b390980ca2 | ||
|
c23437d45a | ||
|
b6f0f12515 | ||
|
cf581ecfcf | ||
|
41176c3e26 | ||
|
52f98dc405 | ||
|
38af0caa3f | ||
|
cf868f885f | ||
|
6a91c2b355 | ||
|
c0913711d6 | ||
|
9bde51a539 | ||
|
d697343f23 | ||
|
295be5286b | ||
|
42f6adf2e2 | ||
|
1868f39223 | ||
|
741100e1aa | ||
|
b56efbde33 | ||
|
cb96a9059e | ||
|
f4c84d599f | ||
|
af9fa44e8c | ||
|
bf65531268 | ||
|
0a0c8cde34 | ||
|
f49df59e10 | ||
|
79bee63515 | ||
|
e4e13aaa97 | ||
|
f2f735ace1 | ||
|
57df510ecb | ||
|
145c9d2e44 | ||
|
6226938c6f | ||
|
c7c76d1e67 | ||
|
5d19cfff13 | ||
|
2c7c8b5859 | ||
|
8c4a993906 | ||
|
44db075015 | ||
|
9543a110a4 | ||
|
3686d8efad | ||
|
13cb81b92f | ||
|
67c2b58f85 | ||
|
a1cd36fd13 | ||
|
2b93367165 | ||
|
7817b3b0b8 | ||
|
7986f17c8c | ||
|
8c328fe5ef | ||
|
a53fecc9ba | ||
|
842a430d51 | ||
|
501b870c35 | ||
|
bc68075ae3 | ||
|
bc5e090b09 | ||
|
1e58767374 | ||
|
42166c1c0f | ||
|
e23cba1d20 | ||
|
c548a3d2fa | ||
|
d6d4293ea8 | ||
|
980d057b4a | ||
|
d6446fa95f | ||
|
3e8370cdc7 | ||
|
1d23f1d9e3 | ||
|
0e71dfa8e1 | ||
|
c15e2e96b6 | ||
|
9a512cbc32 | ||
|
8f4dbd2aef | ||
|
b6f4be2894 | ||
|
7aba3cff66 | ||
|
b70585016c | ||
|
7fbe485603 | ||
|
b9b755e6e1 | ||
|
f8718e397c | ||
|
8f67511b22 | ||
|
2045a164c1 | ||
|
86e23a5300 | ||
|
40929b9640 | ||
|
a40adb903a | ||
|
5c89179c47 | ||
|
ebc2017fe0 | ||
|
7453509df4 | ||
|
94220a24d1 | ||
|
d75b7434cf | ||
|
297fff1394 | ||
|
2e23fec82b | ||
|
ee265f71e6 | ||
|
5364d7fd03 | ||
|
a7539d0f95 | ||
|
8379489385 | ||
|
fa3ccda3f4 | ||
|
a1757c5408 | ||
|
f3996e8634 | ||
|
98839e79ad | ||
|
f502b323e7 | ||
|
00c051d4ff | ||
|
da16160d28 | ||
|
edee97142f | ||
|
0f22dc610d | ||
|
081a904f8a | ||
|
11a56dacb6 | ||
|
68600c0538 | ||
|
0d10d388e1 | ||
|
627e9a9543 | ||
|
ee1059f1db | ||
|
30515492ca | ||
|
276677295f | ||
|
024dcf1f6c | ||
|
2b70a8450c | ||
|
967b8f4afb | ||
|
1b2f529f7c | ||
|
274aef8f24 | ||
|
5136979352 | ||
|
5cd86c685d | ||
|
f106176752 | ||
|
d85d44bf4b | ||
|
f6e43a5305 | ||
|
21cff9a749 | ||
|
7db1d81eb6 | ||
|
9e7d4c901e | ||
|
a8fedfff53 | ||
|
b117c30e44 | ||
|
beb552db31 | ||
|
2bdb67cd4d | ||
|
0fc102461c | ||
|
7b8ede03bc | ||
|
fa37070884 | ||
|
43fd9910e3 | ||
|
684c0332d5 | ||
|
2ffcc63de8 | ||
|
0a854918c2 | ||
|
1214abdd44 | ||
|
91769b71db | ||
|
9c5256b4e2 | ||
|
c0a4b17a34 | ||
|
c43479420a | ||
|
7e2a5e55f7 | ||
|
294df236c5 | ||
|
485c44454b | ||
|
fa1de6e6b0 | ||
|
0eea257a25 | ||
|
adca3de3b5 | ||
|
3b16351308 | ||
|
80db39a934 | ||
|
2d75c67aa3 | ||
|
6b284f2a16 | ||
|
cfefde0c06 | ||
|
92f1390407 | ||
|
ec50f891a2 | ||
|
a3c331019d | ||
|
89eea7cbdd | ||
|
9f47598950 | ||
|
35635c859d | ||
|
973e111dad | ||
|
c1254ed5b1 | ||
|
d51f632404 | ||
|
2f2bc758d7 | ||
|
dbff5015df | ||
|
96b37a8206 | ||
|
f6032da788 | ||
|
da9f0c6667 | ||
|
103ba463c3 | ||
|
9946ba8aa4 | ||
|
3078adf0da | ||
|
a6c43f4638 | ||
|
1596df64a6 | ||
|
ab120d32e2 | ||
|
1eda7fa5bb | ||
|
ef6e57066b | ||
|
64bdd894d6 | ||
|
743a9cf358 | ||
|
3ceee8302a | ||
|
ab12c641a8 | ||
|
33306bf218 | ||
|
a5b2083f1b | ||
|
d31a4e1406 | ||
|
b2441b3e55 | ||
|
ece3941e1f | ||
|
fcb30f6195 | ||
|
327088d79f | ||
|
193db6a46c | ||
|
214ef23c73 | ||
|
7731c4a3bb | ||
|
8e85d5515d | ||
|
bab01ea309 | ||
|
6aeca212f4 | ||
|
67ff43cecc | ||
|
1f82b1442d | ||
|
192fc6fd94 | ||
|
a4f6fe0cd2 | ||
|
616d3c1988 | ||
|
174e938b5b | ||
|
e89e0724a0 | ||
|
1d1f78a020 | ||
|
118ea4b0b2 | ||
|
f230830763 | ||
|
5edf7ca520 | ||
|
810ee6d4c4 | ||
|
f12720aeb3 | ||
|
ab260e79eb | ||
|
2d64fe96c1 | ||
|
616a46294c | ||
|
c9691b04ad | ||
|
1bc431198e | ||
|
5ce984ce3f | ||
|
51650fd899 | ||
|
3b5dacd7e2 | ||
|
f90bc17eb3 | ||
|
a52d20eeff | ||
|
b3ccd788f6 | ||
|
12b927f951 | ||
|
e541a3b962 | ||
|
9492887345 | ||
|
641ce206c2 | ||
|
4273a6a1be | ||
|
c80564e1b1 | ||
|
431d450fec | ||
|
a30660ed43 | ||
|
b93200f371 | ||
|
4ad0eb3db2 | ||
|
cb17fa60dc | ||
|
5b94540f76 | ||
|
e8bb3d81ed | ||
|
dd2a7397a4 | ||
|
e7c9fb987c | ||
|
4f3734f932 | ||
|
4302d50af9 | ||
|
75ad6a640b | ||
|
13cbfaf5e7 | ||
|
71f2c50799 | ||
|
c4aadfed33 | ||
|
ed662d3add | ||
|
863e199995 | ||
|
e8015bfbd4 | ||
|
c998f5fd8f | ||
|
2708b85a20 | ||
|
cb0445c785 | ||
|
9bfc1d09cd | ||
|
256ddc1831 | ||
|
04a27aa418 | ||
|
a5c113137a | ||
|
2d5a3b71e2 | ||
|
8f0319a138 | ||
|
7edb45d9b7 | ||
|
3ad6c7a18b | ||
|
7651df1228 | ||
|
6148b2647f | ||
|
e7d7886397 | ||
|
6e757f88b6 | ||
|
2c0a0a8e5a | ||
|
f8391f07b4 | ||
|
1346d232e6 | ||
|
35ff4cc7cd | ||
|
77f2ceaef9 | ||
|
840ee66903 | ||
|
deabaf2e34 | ||
|
db9933f2a1 | ||
|
a00a6d3fb5 | ||
|
116ed9b4a8 | ||
|
70ad270f26 | ||
|
0c774c098f | ||
|
e3d2186c25 | ||
|
857bfcb971 | ||
|
0b0634b531 | ||
|
fe39c92e25 | ||
|
3777b00ad7 | ||
|
e8d4fab305 | ||
|
b5fa61c8aa | ||
|
5cb577be58 | ||
|
992cc0addd | ||
|
a407ed1903 | ||
|
4b8c59a23b | ||
|
cbfb5d3fcc | ||
|
507eba3ddb | ||
|
4e3ad91c67 | ||
|
bc81931773 | ||
|
3f241cc996 | ||
|
ac02d1d48a | ||
|
77772f01c1 | ||
|
8c24dd0fba | ||
|
c6828a8612 | ||
|
c5a4c805b5 | ||
|
8a1a90d1b9 | ||
|
ea21892d03 | ||
|
2536452220 | ||
|
730869a37a | ||
|
6c8e2f1fd6 | ||
|
bbb5dd06a2 | ||
|
fad4140924 | ||
|
944ee1d8c1 | ||
|
edb31ddec0 | ||
|
cf251c38fd | ||
|
38f2c4c43d | ||
|
5c07a5780c | ||
|
5aa8b0255a | ||
|
8356d18a67 | ||
|
f7abda5d1f | ||
|
b373957b6b | ||
|
8b867086aa | ||
|
660129e690 | ||
|
0ae9abd6ad | ||
|
0ad1e46b0b | ||
|
e51b3bd399 | ||
|
fa40667633 | ||
|
6977ee45da | ||
|
c9c4a203d1 | ||
|
47f7c91a3b | ||
|
b7c0951cbe | ||
|
3ca25f9006 | ||
|
f64086a25f | ||
|
ab304b0b9f | ||
|
f5f16fd330 | ||
|
a3d45bbba8 | ||
|
9eedac3e6d | ||
|
0b98dfc976 | ||
|
c741916d9f | ||
|
c178535cc8 | ||
|
1fe8dfa810 | ||
|
7936c2c6f8 | ||
|
60ce25394c | ||
|
3c7a108940 | ||
|
c360404ed9 | ||
|
eaf27a01e3 | ||
|
46bc252a51 | ||
|
25ea1ba641 | ||
|
0cd728222e | ||
|
66aa9cd888 | ||
|
33eed443d9 | ||
|
63329499ac | ||
|
c57236da30 | ||
|
8ab2cd9ff8 | ||
|
ed963d86f9 | ||
|
98a89564e1 | ||
|
85b1edc6d2 | ||
|
043ddcae2c | ||
|
07d2d29212 | ||
|
a1e6e234cc | ||
|
cd9718b7ef | ||
|
fda8ac1f51 | ||
|
427a3d1be3 | ||
|
3457e0a757 | ||
|
a08177ef3d | ||
|
961af9e876 | ||
|
a0df20fcd2 | ||
|
9174632cfc | ||
|
42ef81cf40 | ||
|
aaeb9a0fd7 | ||
|
490780b906 | ||
|
ccf8e94c5e | ||
|
f28714c5b2 | ||
|
b25f13cceb | ||
|
9719c0b2f9 | ||
|
9d7c31d531 | ||
|
79c9c7105e | ||
|
63b19da708 | ||
|
e5656e264a | ||
|
505d0995de | ||
|
ea08ce24a9 | ||
|
8cd02afd83 | ||
|
f636b28823 | ||
|
7c5ea63a4f | ||
|
d4d7c6cb4a | ||
|
acbb796649 | ||
|
d5f5143c52 | ||
|
ea293999df | ||
|
7c4ec1f81c | ||
|
e401252c03 | ||
|
b9926c0f7c | ||
|
8bd62dddc8 | ||
|
f24159504d | ||
|
0508fe60d9 | ||
|
6286c426e2 | ||
|
8d91140107 | ||
|
766a5d7c84 | ||
|
aea3364e67 | ||
|
0b5135b841 | ||
|
663fc28cd5 | ||
|
915295efc0 | ||
|
b842e62563 | ||
|
68364e0a82 | ||
|
c00a95d639 | ||
|
f3e0060195 | ||
|
7eec98ea23 | ||
|
035c10364d | ||
|
caea19bf38 | ||
|
b980ca5d31 | ||
|
263ad899d8 | ||
|
5f01494ed0 | ||
|
b8498aecd9 | ||
|
8447bf4a2d | ||
|
57df61dadf | ||
|
3c7750c471 | ||
|
9c76ee97eb | ||
|
dc63d6ae73 | ||
|
a3b1c348ef | ||
|
c13ff6a392 | ||
|
8682c95c19 | ||
|
e2e7516a99 | ||
|
c42b42cb61 | ||
|
898c2d514c | ||
|
e96bdba752 | ||
|
19288f2950 | ||
|
3f10be2ad3 | ||
|
4da93825b7 | ||
|
3b9adbf5c8 | ||
|
7864707699 | ||
|
36dae97161 | ||
|
755fad7808 | ||
|
b899753d07 | ||
|
c79e813479 | ||
|
5e0ba452aa | ||
|
f5baa8ac91 | ||
|
d1e59abcf0 | ||
|
3cbee586bd | ||
|
94dc9fca9d | ||
|
259ead106f | ||
|
5c9750fb07 | ||
|
91872fe673 | ||
|
533a7bb180 | ||
|
4450f51d78 | ||
|
fae484cb95 | ||
|
11dffacc48 | ||
|
8b39eabc0f | ||
|
a623395585 | ||
|
a2de80091d | ||
|
e92edc7cb1 | ||
|
ae648c3e11 | ||
|
e6265c277e | ||
|
2bef459107 | ||
|
d504a1f266 | ||
|
0a10817755 | ||
|
56af0b5191 | ||
|
a9f923591d | ||
|
7d7e4a0e6d | ||
|
093c450d80 | ||
|
2d664c423d | ||
|
4e2e73637a | ||
|
3357c78375 | ||
|
33b3f0650c | ||
|
b027e43615 | ||
|
161804be0d | ||
|
32e7845c2b | ||
|
896796ebd7 | ||
|
a8ba125bd2 | ||
|
5d69a1ab91 | ||
|
95395945f2 | ||
|
c33af6de6a | ||
|
f5fad8a082 | ||
|
237545622f | ||
|
7c0acc8ccf | ||
|
d2b39e5cb8 | ||
|
fc468564dc | ||
|
8c87716013 | ||
|
5f29668c27 | ||
|
bda776e201 | ||
|
097668b762 | ||
|
1bfd78753a | ||
|
bdec23f740 | ||
|
c7e7bf4d2c | ||
|
9a635dd906 | ||
|
d3b2306b3d | ||
|
8b34caa0b1 | ||
|
c152964323 | ||
|
de00bab1d4 | ||
|
f7bcc521d2 | ||
|
3a20792668 | ||
|
890817151d | ||
|
dda1e854f6 | ||
|
6f6f76b36b | ||
|
5cf904fb4a | ||
|
ba74faa562 | ||
|
f65c9cf812 | ||
|
3d5a15fb1b | ||
|
257fc08404 | ||
|
152397baad | ||
|
c642656577 | ||
|
71a8d46e29 | ||
|
03cf89f8cd | ||
|
4091a8612d | ||
|
a10b14dcc3 | ||
|
7de9993204 | ||
|
2f55bb7e52 | ||
|
bcf5481ad5 | ||
|
f6123d8dfd | ||
|
e8a461dbb0 | ||
|
c54a9a3b88 | ||
|
8c23b0561b | ||
|
6ec8be0d35 | ||
|
20c692fddf | ||
|
6b0e66ce1f | ||
|
368e1fe9c1 | ||
|
f49777ef56 | ||
|
ec99b95231 | ||
|
ba1c9aa5cd | ||
|
60cc441092 | ||
|
dee3676640 | ||
|
5e4219cf8e | ||
|
d5f0a6d66a | ||
|
0607f835aa | ||
|
d2a1041a51 | ||
|
9c1475d2f1 | ||
|
486815b9ab | ||
|
9db644afa2 | ||
|
c181f7e421 | ||
|
29359ad119 | ||
|
c3192d9f7c | ||
|
24e9e6bbd7 | ||
|
649edffa30 | ||
|
b870a8b791 | ||
|
1c83ee086a | ||
|
5e7b36d319 | ||
|
4e1fcf87ae | ||
|
a2225b3f76 | ||
|
e069e196af | ||
|
440d01c552 | ||
|
218be86c68 | ||
|
3633199e68 | ||
|
8e2161bd9e | ||
|
39e66555f4 | ||
|
c938795576 | ||
|
9d2407ccb0 | ||
|
cccaf669a5 | ||
|
ab52395d1a | ||
|
ae4062828d | ||
|
8f02c52a26 | ||
|
dc4d2fc15d | ||
|
d476dbcdda | ||
|
5317f26791 | ||
|
28d1510306 | ||
|
316bcd728e | ||
|
d062a23d85 | ||
|
6b55960c92 | ||
|
24c5e727ce | ||
|
bebb956005 | ||
|
b38ff46af4 | ||
|
cf1c23c2c9 | ||
|
e162ebdf91 | ||
|
a348571e32 | ||
|
ef3d8f365a | ||
|
88964d8cf7 | ||
|
d444e91ba8 | ||
|
f617a8d77f | ||
|
76923ad88a | ||
|
dd3a395d11 | ||
|
4465d87eb8 | ||
|
bf48978065 | ||
|
fd3c41a250 | ||
|
370651ab56 | ||
|
e99b86cde8 | ||
|
206f19401f | ||
|
b37505112b | ||
|
60dad59025 | ||
|
8250a64e34 | ||
|
58ab82a477 | ||
|
2f8169c26d | ||
|
eb14341f9f | ||
|
823ba386d9 | ||
|
471620c4c6 | ||
|
75b74eaca8 | ||
|
9e33e6bc4e | ||
|
c985639691 | ||
|
580c48d4f9 | ||
|
e612e66ac9 | ||
|
ec2493c03c | ||
|
4a510d583d | ||
|
ff4643be8c | ||
|
5a54899835 | ||
|
56a787b327 | ||
|
183c104ff3 | ||
|
d4532089a9 | ||
|
78cd45eaca | ||
|
4defabeecc | ||
|
7eda5e1ef5 | ||
|
273211290b | ||
|
5320d16406 | ||
|
94faa2dc11 | ||
|
04e78ec2e9 | ||
|
40785e9a40 | ||
|
a7adcbcd78 | ||
|
a5a857f036 | ||
|
1a4617af17 | ||
|
c069582007 | ||
|
17ddab585a | ||
|
e6eee47059 | ||
|
120ed41507 | ||
|
dcb96593ec | ||
|
a489ddda87 | ||
|
5aa50a6c60 | ||
|
57f5471075 | ||
|
f2bbfa1b0d | ||
|
5710dd6d01 | ||
|
6f01e3b99b | ||
|
e10dc2e5a1 | ||
|
3ba71390b2 | ||
|
108a81d338 | ||
|
0226a0cba3 | ||
|
dfc57d1985 | ||
|
ebd1dab02f | ||
|
2cbd154516 | ||
|
d1c49e2a04 | ||
|
1a965bbbf9 | ||
|
8aab8ff882 | ||
|
4b7c445b74 | ||
|
5a4915e817 | ||
|
bfa84e092c | ||
|
bb99477c13 | ||
|
612dd21264 | ||
|
7d287d7c63 | ||
|
6df58a796a | ||
|
2c065b8c43 | ||
|
e50d2f7809 | ||
|
f8e0fdba48 | ||
|
160db6ada5 | ||
|
88104cecf6 | ||
|
ea1f533501 | ||
|
61043ee58a | ||
|
3635908f8f | ||
|
2c605d9ffb | ||
|
7a81eec6d8 | ||
|
5a70e3c638 | ||
|
aeb96bb1c0 | ||
|
062c415fc2 | ||
|
0c0119d85c | ||
|
ff5d613e23 | ||
|
a123c6694c | ||
|
ba5192026e | ||
|
b27aa523ba | ||
|
8793d263d4 | ||
|
e511e7e02e | ||
|
8580f46ec1 | ||
|
490a8551ac | ||
|
0f328fda44 | ||
|
f9f54cabdd | ||
|
80524fb8c1 | ||
|
e1f778e21a | ||
|
b8ba463735 | ||
|
531beb0a86 | ||
|
a8be5ed6b0 | ||
|
14fc31be07 | ||
|
747a5ded1a | ||
|
bb33a92d27 | ||
|
19b8519d3f | ||
|
809c0e720e | ||
|
371251c994 | ||
|
616b02cea8 | ||
|
e12cbf92c3 | ||
|
1294d211d6 | ||
|
e8026c6d3f | ||
|
9614d55612 | ||
|
8c1b99586b | ||
|
544c1e4a6a | ||
|
2271ddacf8 | ||
|
9443b80811 | ||
|
5afdc81ce0 | ||
|
2df9b43abc | ||
|
73e93e7d3d | ||
|
c76ced68e0 | ||
|
b9f5863b53 | ||
|
dea76fd81b | ||
|
21ea461c1c | ||
|
4267e33d19 | ||
|
85a053838e | ||
|
be1febef41 | ||
|
04c1cbd38e | ||
|
a66f609a07 | ||
|
263b8b1e77 | ||
|
ca2c4a64e9 | ||
|
5547f11192 | ||
|
7d8c184dda | ||
|
1ae0f93e14 | ||
|
ed51c865ef | ||
|
eaf5c2637d | ||
|
fd94536118 | ||
|
61ea78a9d9 | ||
|
a4b5f79e8f | ||
|
fc1c2bc2c0 | ||
|
51fd45d317 | ||
|
fcee1f1150 | ||
|
0e322630f1 | ||
|
d19cedef88 | ||
|
6aa5dc992d | ||
|
c787de75f5 | ||
|
a34c072c48 | ||
|
373586c23e | ||
|
7115676393 | ||
|
754dec949b | ||
|
6115a469eb | ||
|
776ebce497 | ||
|
79acf1cc42 | ||
|
9501fd74f0 | ||
|
03735d9213 | ||
|
3ac3f09df0 | ||
|
b534d4660c | ||
|
bec4af7c87 | ||
|
b0ea7cecb5 | ||
|
d351c2cabb | ||
|
aab70e14fc | ||
|
b3a408a34c | ||
|
3170d4428c | ||
|
46615d698e | ||
|
cf0b4d2581 | ||
|
5e3e5d2648 | ||
|
59634753b3 | ||
|
96b02d3154 | ||
|
a604e29744 | ||
|
e01899ce8f | ||
|
adea3ab775 | ||
|
68ef369adc | ||
|
11e5df1007 | ||
|
a86405fb01 | ||
|
1d0eb1e926 | ||
|
f3cbc18b50 | ||
|
30e5e15245 | ||
|
6fdbb91ccb | ||
|
96b46af9f5 | ||
|
b3a9e20885 | ||
|
1f92e61d3c | ||
|
a41b4a3621 | ||
|
60041d433e | ||
|
8b862e917a | ||
|
efeb41151c | ||
|
acc03abd03 | ||
|
848ff5b806 | ||
|
3740997b2e | ||
|
099600f665 | ||
|
e43b31ef2b | ||
|
e79657232a | ||
|
9bb216618a | ||
|
eff0a701d8 | ||
|
6c50342535 | ||
|
109a9e816b | ||
|
f4b10d5ed6 | ||
|
e75e48f377 | ||
|
7d4123c955 | ||
|
7c865e1a26 | ||
|
a97614b972 | ||
|
af63c98715 | ||
|
86f0af0ff2 | ||
|
c7241f5755 | ||
|
a708541803 | ||
|
9101c339c5 | ||
|
3bf1e48236 | ||
|
e7a29857c5 | ||
|
61373b8b51 | ||
|
daa007b67d | ||
|
2a53f425ec | ||
|
624541af1c | ||
|
f378d46c9a | ||
|
6c7e188439 | ||
|
cc6bd1d2c6 | ||
|
fc0c49e16e | ||
|
1f3ff3e0f2 | ||
|
5618af07bd | ||
|
79dafaf13d | ||
|
7e93d6e5a7 | ||
|
22b8101230 | ||
|
9c5fe034fa | ||
|
17f2ca0f7b | ||
|
e8aca9ee88 | ||
|
ca44a96dc3 | ||
|
15f479b424 | ||
|
9e86b35f8c | ||
|
ebd55ea282 | ||
|
3c0c445ea7 | ||
|
918d820a5c | ||
|
2ac1287924 | ||
|
3b93b28a37 | ||
|
6203c393d7 | ||
|
c7a0ec7157 | ||
|
e22ce6fad5 | ||
|
16ede7b560 | ||
|
290c0358ea | ||
|
e098ed6627 | ||
|
ca09feb2e5 | ||
|
1b04f5f540 | ||
|
302b05515a | ||
|
597d4bf6b1 | ||
|
bfa384ad5b | ||
|
c93fd2a05d | ||
|
cbabbf5c1e | ||
|
ebe9d42780 | ||
|
17ad38f835 | ||
|
9df9bbc6db | ||
|
5fb273a5c8 | ||
|
0571662fe7 | ||
|
7e2f892904 | ||
|
18408377e4 | ||
|
f76b4c06c5 | ||
|
ba24c30d38 | ||
|
80a6823af4 | ||
|
0957ff69c4 | ||
|
476348d961 | ||
|
6a8ef889eb | ||
|
e321e20dc2 | ||
|
1978a180ff | ||
|
463f2a7ad7 | ||
|
1ec4424c0a | ||
|
1b210d42ed | ||
|
e5da026f1f | ||
|
5386271398 | ||
|
2a581bc90a | ||
|
148bbc2017 | ||
|
0902faa24b | ||
|
595ff4bebc | ||
|
aaeca96336 | ||
|
4e32120a41 | ||
|
08b65b57e4 | ||
|
fa710ff601 | ||
|
9297c1d191 | ||
|
a8086ceb43 | ||
|
370b9dabff | ||
|
2cbce016bc | ||
|
70513b279b | ||
|
b77c10d3fb | ||
|
f78c72db59 | ||
|
39332e153e | ||
|
5c4cf3f7c9 | ||
|
fade21de57 | ||
|
4d3262ce41 | ||
|
0ed327646a | ||
|
eecb789603 | ||
|
28fad01be7 | ||
|
d2c912e5c4 | ||
|
55f410636f | ||
|
f2619df13d | ||
|
1212bb8d70 | ||
|
30be440774 | ||
|
93890343b6 | ||
|
8363eba32e | ||
|
c46ab4ff29 | ||
|
e9e3c0d011 | ||
|
05458479fa | ||
|
152c76954b | ||
|
d074c55793 | ||
|
7a41f2d79d | ||
|
22ed1dc358 | ||
|
499dc4e9e2 | ||
|
edee2cd640 | ||
|
8294f64687 | ||
|
bec3e63771 | ||
|
624545c631 | ||
|
4ae39611b5 | ||
|
b0e5d5d3e5 | ||
|
af30ff50f0 | ||
|
07220d7a59 | ||
|
ed99b503f5 | ||
|
f6ad67f1c8 | ||
|
6ee6b0cad9 | ||
|
d47ba6bd11 | ||
|
9cf0e1bde7 | ||
|
32b42b46e4 | ||
|
8b4fd7fdc0 | ||
|
a17c662465 | ||
|
e1fdbaee40 | ||
|
35d4eb381e | ||
|
8e71f265fc | ||
|
2b0b2ded5d | ||
|
3bd688c631 | ||
|
815796f2e7 | ||
|
000ccf5d03 | ||
|
c9608d7076 | ||
|
7984d021f6 | ||
|
57cb45d31e | ||
|
d903dfb40b | ||
|
99f5949ee1 | ||
|
4a2557dbcd | ||
|
426729b34c | ||
|
41e4e823fb | ||
|
5e2e6dcfc3 | ||
|
407134a89f | ||
|
60f221dc37 | ||
|
627d3b5b79 | ||
|
ad187f99bf | ||
|
2fdd3a78eb | ||
|
d949e0cced | ||
|
e27c5c4507 | ||
|
bfd974f698 | ||
|
dbe14ce0bb | ||
|
6ecd63bf5d | ||
|
94ea7d322d | ||
|
cf9d99ee8b | ||
|
afd2ecd384 | ||
|
6d53d0e12f | ||
|
557a5c715a | ||
|
b068dc39eb | ||
|
47f1ec78d4 | ||
|
5b3065730e | ||
|
0f55291089 | ||
|
dd0be54b05 | ||
|
8d6136cde1 | ||
|
0c613e36f1 | ||
|
6d5f89b65b | ||
|
34fd5e7191 | ||
|
c4a89a5da1 | ||
|
6cd462f852 | ||
|
04c4485e3e | ||
|
64694a4eda | ||
|
d11ed8c4ef | ||
|
391ddf1925 | ||
|
205feeaf10 | ||
|
e51f2b8bc1 | ||
|
2d5f57591f | ||
|
3c06517d9e | ||
|
63fb5809bf | ||
|
a65f846929 | ||
|
ce6d4c4a64 | ||
|
4ee6273f2e | ||
|
061f3c6919 | ||
|
9b13381938 | ||
|
bc22647b48 | ||
|
73fccdd6de | ||
|
ad9873c565 | ||
|
e976100f1a | ||
|
289a3ab21f | ||
|
286f00396d | ||
|
cbda0ad37b | ||
|
db6fdcd098 | ||
|
7e3362da61 | ||
|
d9720a5199 | ||
|
3a65037151 | ||
|
424035f56f | ||
|
2a12cf22f5 | ||
|
97daf57b0a | ||
|
697b551b9b | ||
|
0211197c47 | ||
|
3b65761110 | ||
|
cfdfd3a8af | ||
|
6ac2717d8b | ||
|
49aed39711 | ||
|
a820443c56 | ||
|
67aa239398 | ||
|
2a3962265b | ||
|
883a22ba83 | ||
|
2e68c48752 | ||
|
3e87534ddc | ||
|
c6da7b19a7 | ||
|
85293ca2ed | ||
|
ed264382e9 | ||
|
e6fc605b08 | ||
|
882eea75ef | ||
|
8129cd0cd3 | ||
|
0bc203e0d5 | ||
|
6c9b16088f | ||
|
9c9c1fa79c | ||
|
76b425ee8a | ||
|
5b8215a356 | ||
|
9c7df25862 | ||
|
da16ec0af3 | ||
|
1244d00b31 | ||
|
98054815a4 | ||
|
06be3e691d | ||
|
323a0a5aeb | ||
|
d4516080a2 | ||
|
575ab92d4b | ||
|
9878f5475c | ||
|
2d52e9ac23 | ||
|
ee5d26dc63 | ||
|
60d492370f | ||
|
f4fd8af3b4 | ||
|
940563f663 | ||
|
191cef6fff | ||
|
73f9ef4232 | ||
|
c9a124ba59 | ||
|
788406a549 | ||
|
29a5fb3e16 | ||
|
0a4af67be4 | ||
|
d30c3f5073 | ||
|
28ca7dcf8b | ||
|
88e18a8640 | ||
|
1ef9ed5202 | ||
|
c794843bb2 | ||
|
afa3149504 | ||
|
f2f4d325eb | ||
|
05361c13f1 | ||
|
fef0404ac7 | ||
|
d6a5b9fb48 | ||
|
57dba2f29a | ||
|
f64db7f5f3 | ||
|
128d3845b9 | ||
|
602ea3327b | ||
|
e55178612c | ||
|
5a0d62db6f | ||
|
ed62e6a390 | ||
|
25a6b0ddfb | ||
|
15aeccac24 | ||
|
fea86d5885 | ||
|
2df26ee931 | ||
|
8f7c4283ad | ||
|
221bdc112d | ||
|
d2544fdd20 | ||
|
35c59e699a | ||
|
633b80c622 | ||
|
b37c203885 | ||
|
dabac0966c | ||
|
7f97c80485 | ||
|
7aa0899a4c | ||
|
539f1150df | ||
|
82023d5d78 | ||
|
4ef7a215ac | ||
|
41a473ab06 | ||
|
89cf1f3237 | ||
|
b65fc4f46b | ||
|
401b5e2b7a | ||
|
a44d00a31c | ||
|
267ae457ee | ||
|
887da0a3d6 | ||
|
07ffd3ded3 | ||
|
25dbb3e9ea | ||
|
68177a02e1 | ||
|
0a96841336 | ||
|
4dcd7846b0 | ||
|
dc48cd4d16 | ||
|
883a7cecf0 | ||
|
daf019b288 | ||
|
e76aafcfeb | ||
|
5eeb545ae2 | ||
|
d29ab94617 | ||
|
618d1f5de6 | ||
|
277fc4bf61 | ||
|
c75eb050df | ||
|
304b489470 | ||
|
4709002429 | ||
|
226a547f09 | ||
|
89b0b23891 | ||
|
17e2aa91b5 | ||
|
81da03d168 | ||
|
f1390bdd29 | ||
|
e457196795 | ||
|
adbb9ad0f3 | ||
|
faddc4ead7 | ||
|
10cd1b5238 | ||
|
f36bab0a7a | ||
|
0f77c5be90 | ||
|
cbe5d2e884 | ||
|
a3bbcaf48f | ||
|
acb1346aaa | ||
|
594cc26887 | ||
|
f4d707bd87 | ||
|
838d0cff1c | ||
|
55e3fcfccf | ||
|
47da718250 | ||
|
27d60986c1 | ||
|
05afa9a4da | ||
|
892213eacb | ||
|
6aa44a9f63 | ||
|
dd7aadd01c | ||
|
72b9ba4a27 | ||
|
e7e6893920 | ||
|
4d578af2bd | ||
|
5c4f713463 | ||
|
f1961b710c | ||
|
16a7b0bbdb | ||
|
db95e7b0cd | ||
|
b3d102d56e | ||
|
ac7e13a701 | ||
|
77e834238f | ||
|
82c3bd1b8a | ||
|
34491a589f | ||
|
543ec5f185 | ||
|
9f98faea07 | ||
|
84ccfafc1d | ||
|
570dec749b | ||
|
957acd0cd2 | ||
|
0593f2f928 | ||
|
d7e4fd555c | ||
|
68f422e498 | ||
|
2c0b7ce0f4 | ||
|
72ee1ace48 | ||
|
7c013de7b9 | ||
|
979ffcf227 | ||
|
f0f0aafa1b | ||
|
c2d5ded335 | ||
|
55fd983fd3 | ||
|
1a5291537d | ||
|
d6ef3ea08e | ||
|
3e4a41bd73 | ||
|
b31bb9eb4f | ||
|
fac9a65f54 | ||
|
93fc64ff33 | ||
|
e097c92458 | ||
|
e91dbfbf2c | ||
|
801f2860e2 | ||
|
1ffc3a4f53 | ||
|
844fe2c4cd | ||
|
69efb45fb7 | ||
|
1103d7c112 | ||
|
c88072e55f | ||
|
e041d404f3 | ||
|
5b07af2c12 | ||
|
1f96367286 | ||
|
de73539d2b | ||
|
f7ed94c6e9 | ||
|
36b1a1471a | ||
|
1f1eeccc32 | ||
|
1d449c84fe | ||
|
0750c7763c | ||
|
dbaaa07dad | ||
|
14502573bf | ||
|
7446b12827 | ||
|
d4c8f56c6e | ||
|
2ea45185d4 | ||
|
50ba131350 | ||
|
b2df107f17 | ||
|
2b60affd9a | ||
|
e771b21ea3 | ||
|
b20bbc1295 | ||
|
609ceb7fa4 | ||
|
aac3f379a7 | ||
|
d46ae83dc4 | ||
|
561b89830a | ||
|
b69d8ad71a | ||
|
ec0a04e893 | ||
|
8307245120 | ||
|
5431584b3c | ||
|
426782a001 | ||
|
7eb9941f8c | ||
|
268d740059 | ||
|
f585deb1d7 | ||
|
26c4c7e467 | ||
|
b2b1bebc32 | ||
|
793c0ababb | ||
|
cf1628228a | ||
|
7f433ac4a0 | ||
|
48f03c0953 | ||
|
e75d25f00c | ||
|
e22e70c5ba | ||
|
a8e4be9146 | ||
|
a9ee94e3f0 | ||
|
cdaddb15af | ||
|
a724f844f7 | ||
|
2546061933 | ||
|
f4db593009 | ||
|
ce92533525 | ||
|
6d5e1b2285 | ||
|
6388d6b91b | ||
|
54e501127c | ||
|
6bcd96d629 | ||
|
996fe71de9 | ||
|
08b38cd6ad | ||
|
d649cb4aa5 | ||
|
61be2dd3df | ||
|
b6dda73cb1 | ||
|
0c77f49ffd | ||
|
76f4a1b4f1 | ||
|
466f9bd532 | ||
|
992edb2ee2 | ||
|
dd67e8c5b5 | ||
|
8de4b0bb20 | ||
|
e21c8792e6 | ||
|
54f6440bcf | ||
|
819f0c021e | ||
|
bc2f49fa31 | ||
|
d3a3ba8079 | ||
|
1540f13444 | ||
|
245d580825 | ||
|
2578423c91 | ||
|
1762451bc0 | ||
|
38e4984a4a | ||
|
9d7c49306a | ||
|
6b605b2e98 | ||
|
cf0242f23a | ||
|
56e8325efe | ||
|
d91ed2985d | ||
|
5f9f69b4dc | ||
|
da33cbedda | ||
|
19fc4419c3 | ||
|
2d91865277 | ||
|
003f5fab1f | ||
|
2a365d6776 | ||
|
55f5f90c45 | ||
|
bd3bdd6996 | ||
|
0cf485d873 | ||
|
75e06d43c5 | ||
|
922ae5b041 | ||
|
201a346d41 | ||
|
afa1cf7d6c | ||
|
d09a6714af | ||
|
f5bf774126 | ||
|
fae1382429 | ||
|
a6f909b942 | ||
|
ae55ee82a7 | ||
|
037e53f385 | ||
|
a28dfdc48e | ||
|
81bdf506bc | ||
|
f253aa6b37 | ||
|
0702eee179 | ||
|
c4a019f0d3 | ||
|
e948e9d85a | ||
|
22c10f5ada | ||
|
869eb262f3 | ||
|
7249c7d25a | ||
|
6e8d93bc6f | ||
|
963c30a275 | ||
|
474ade01cf | ||
|
18d4b66c97 | ||
|
fa311f4ce2 | ||
|
3a9b80127f | ||
|
78c1a0acf4 | ||
|
4ee34126bd | ||
|
97b9064d29 | ||
|
4f59ec37ca | ||
|
c34fea2932 | ||
|
c11a50f7ff | ||
|
23623b8895 | ||
|
b475f36b5a | ||
|
11367488e6 | ||
|
a7d8e74468 | ||
|
a25b93197d | ||
|
83f2ff5d82 | ||
|
868c056ddd | ||
|
0106adf36c | ||
|
b6a93be611 | ||
|
61291f7337 | ||
|
05013d2559 | ||
|
3240cadb94 | ||
|
594ee61a99 | ||
|
c85b0124e3 | ||
|
61bc19fc96 | ||
|
3ea3d0fc91 | ||
|
f1f1613f00 | ||
|
68dd206140 | ||
|
17e8581ef0 | ||
|
7ff45738e0 | ||
|
c9eacec449 | ||
|
3e78098c43 | ||
|
cbdacc199a | ||
|
cc01f25d8f | ||
|
9f3176c49c | ||
|
7ae2b34a9e | ||
|
d1bec21759 | ||
|
073e6227d6 | ||
|
761d8d89b0 | ||
|
f203fa5c58 | ||
|
9ccb22015a | ||
|
6d1c53c7ed | ||
|
855e7e02ce | ||
|
df3bb5b212 | ||
|
5768e45809 | ||
|
83584fab44 | ||
|
c234e12302 | ||
|
4645a8c633 | ||
|
cfb54f7608 | ||
|
7195ee9a69 | ||
|
ba6dffc0bf | ||
|
d3acf7e862 | ||
|
5c6d710f2d | ||
|
fa22a4a747 | ||
|
e0cd210852 | ||
|
d87beff434 | ||
|
439ea42b54 | ||
|
22c981d8bf | ||
|
8797d7562d | ||
|
9c5fe81792 | ||
|
69cc4f83bb | ||
|
33047b5f64 | ||
|
8734101d87 | ||
|
c53111a85a | ||
|
a16086db6f | ||
|
81f7932cb7 | ||
|
a5736efc75 | ||
|
b1f492de58 | ||
|
629488bbe6 | ||
|
14288b545b | ||
|
94aa0a02fe | ||
|
ab23d9b715 | ||
|
c5ce208d07 | ||
|
e7f7c0ba78 | ||
|
b082a009a7 | ||
|
cdeb2663fe | ||
|
a5e979b763 | ||
|
be0cadb3c7 | ||
|
6c4836e27e | ||
|
36a553a886 | ||
|
13938f2ab3 | ||
|
a755536a2f | ||
|
4a5dbde8d3 | ||
|
5744939c05 | ||
|
8c68126ed9 | ||
|
3c37d4c1b0 | ||
|
a9316b2f7e | ||
|
3e420033c5 | ||
|
571f05bcfb | ||
|
4e73705378 | ||
|
611e1185c8 | ||
|
b90d8e6238 | ||
|
ad3573226c | ||
|
1cc0825b54 | ||
|
87ac4ec5d4 | ||
|
8344506b05 | ||
|
9da3eec64f | ||
|
621c6c8773 | ||
|
d5e76c515e | ||
|
9fcf7263b5 | ||
|
0059fdf174 | ||
|
3d291c04c9 | ||
|
ca4b91a98f | ||
|
b0ba62aa31 | ||
|
abf763f454 | ||
|
15597eb041 | ||
|
00b16db7cc | ||
|
ff8a208012 | ||
|
7732bd47ce | ||
|
42a5680374 | ||
|
5d8f365520 | ||
|
938cd32ddd | ||
|
80396fcd39 | ||
|
7b97981bb5 | ||
|
b263273c87 | ||
|
427dc784fe | ||
|
7e4725c091 | ||
|
9b332f7a32 | ||
|
2b780a8b76 | ||
|
0518e5f18d | ||
|
0412b87ad1 | ||
|
2fe7caa580 | ||
|
d53650c8ae | ||
|
930b8da3b3 | ||
|
c48f153b0d | ||
|
68cd06f1fb | ||
|
c7afcf4ff2 | ||
|
3491774e7b | ||
|
ea6fde3ed0 | ||
|
267a7a36ff | ||
|
9a69bb9656 | ||
|
28aef1067b | ||
|
690a9eaa21 | ||
|
24d76b1d32 | ||
|
173458ed6c | ||
|
cebef970d3 | ||
|
4aa349ddd6 | ||
|
a918d28ded | ||
|
b1660c077e | ||
|
38075b4e8d | ||
|
174ecb10d9 | ||
|
5ef1fd62a7 | ||
|
d095784bfc | ||
|
1ac1d32b3a | ||
|
518b207f63 | ||
|
16ba5d2416 | ||
|
ac6e7652bd | ||
|
cc3e090855 | ||
|
30e4fdebd7 | ||
|
27e5626fcf | ||
|
8878cb41ee | ||
|
10575698de | ||
|
451750f08a | ||
|
6f04f4109d | ||
|
929d711149 | ||
|
b52f8b1dbf | ||
|
aa0a851b35 | ||
|
4ddc8e706d | ||
|
da2a0abf45 | ||
|
53a0e0ce10 | ||
|
7f02c0596e | ||
|
e081c3b249 | ||
|
8db4da5473 | ||
|
d389581d96 | ||
|
018574a21e | ||
|
9e3eb993ee | ||
|
6c64fb2169 | ||
|
2e70808bbd | ||
|
18bf9856fe | ||
|
f09ee5016a | ||
|
4d3c4b5afc | ||
|
7de2494af2 | ||
|
409d7e50bb | ||
|
c1222737d6 | ||
|
d02da1b97e | ||
|
a8c6b1cdf7 | ||
|
dba65dcd22 | ||
|
706736273c | ||
|
838340bbc8 | ||
|
75ec9ba3d9 | ||
|
876359539f | ||
|
6cdb192955 | ||
|
1946058c8e | ||
|
2927f1ff1c | ||
|
e230cd8ee3 | ||
|
45225e883e | ||
|
bb9a08d429 | ||
|
6ddcd046d4 | ||
|
88a4dfd094 | ||
|
7828e3f501 | ||
|
b4b302c1f2 | ||
|
487ef870f9 | ||
|
6957768567 | ||
|
7da8b13cde | ||
|
a027ef29e5 | ||
|
211c158e23 | ||
|
338650cea7 | ||
|
2d4eeb64c5 | ||
|
4f98031c6d | ||
|
3813f6d659 | ||
|
6687a74f5c | ||
|
545e13c843 | ||
|
995ec25990 | ||
|
09040b7095 | ||
|
5a69b33600 | ||
|
c8c4e10822 | ||
|
2f616cb6c5 | ||
|
776d7699bc | ||
|
f3578e2538 | ||
|
8022430f0d | ||
|
eb72d0c6d3 | ||
|
ae29cbdc34 | ||
|
cf59c7db95 | ||
|
924fac84b2 | ||
|
db0a958708 | ||
|
b31dfcfe4f | ||
|
bba2daf0fc | ||
|
23e05200b5 | ||
|
0fd8641cf6 | ||
|
26c01d46a7 | ||
|
42d1bf57f6 | ||
|
351793d456 | ||
|
03428ea9f5 | ||
|
b321838502 | ||
|
b915c91c86 | ||
|
f83b478008 | ||
|
2bdb425085 | ||
|
45a0586329 | ||
|
74283e7d50 | ||
|
6f4c307854 | ||
|
69cd0e3ea2 | ||
|
a5094f97d5 | ||
|
163c05d5cf | ||
|
903936368d | ||
|
3eba43f3fa | ||
|
d8a1939c69 | ||
|
5b74eb3bca | ||
|
071611b81c | ||
|
5461fd4060 | ||
|
5203d15409 | ||
|
989f1c6268 | ||
|
544345bbf3 | ||
|
bd9da8eaa6 | ||
|
68a5ba9a01 | ||
|
ed9ae07e52 | ||
|
9b0c2e420d | ||
|
60aaa2a39c | ||
|
8d30658fa5 | ||
|
32fd3be732 | ||
|
705b6176f1 | ||
|
d996c77c03 | ||
|
49cad8feec | ||
|
ca75eae0aa | ||
|
21271b6510 | ||
|
439029467a | ||
|
eb30b9fae9 | ||
|
38843f74ab | ||
|
afc3c1462e | ||
|
44cc62622d | ||
|
91c86c1a45 | ||
|
5541c2e190 | ||
|
f2ba236130 | ||
|
4cb7754b77 | ||
|
3473a7ef5e | ||
|
c9535509e8 | ||
|
3d578c147c | ||
|
e4cabe9aa8 | ||
|
43ac66feb3 | ||
|
e36059a427 | ||
|
5e2f091ec1 | ||
|
752bde413d | ||
|
e6949c85fb | ||
|
c1cb23d728 | ||
|
4007982db6 | ||
|
a9f5ed3869 | ||
|
08964d8548 | ||
|
8bb98d9ecc | ||
|
fe3c080991 | ||
|
5186ee6e43 | ||
|
c2fc9fe0ee | ||
|
280d3f22a7 | ||
|
a19ca8a820 | ||
|
7ba1116349 | ||
|
e8862b3aaa | ||
|
a96cc19eb6 | ||
|
3d975b7fba | ||
|
d54571d0a6 | ||
|
92fe70c15c | ||
|
75071cf1d9 | ||
|
4bd538e448 | ||
|
0956baecf9 | ||
|
e4968c4119 | ||
|
283e10dfef | ||
|
1c43f92e49 | ||
|
edf4841371 | ||
|
40446c7a31 | ||
|
76ed775f6f | ||
|
ca7796114c | ||
|
ed822becc6 | ||
|
7057b2970b | ||
|
62791e4b36 | ||
|
237cb63fc2 | ||
|
42ab7f1b4f | ||
|
8e11ba21ed | ||
|
24a9ddaa5e | ||
|
6190fb3511 | ||
|
2d9043fbed | ||
|
682dff9c1c | ||
|
9339b7e31d | ||
|
7667ef686d | ||
|
4d4fe687ac | ||
|
7152dead1d | ||
|
40b9f03132 | ||
|
19d421df84 | ||
|
c889deaab1 | ||
|
416f57b1d7 | ||
|
dda2685bd8 | ||
|
b43f3b3b6a | ||
|
a0c8a8e97c | ||
|
28bfea6af0 | ||
|
f3bc39a0c5 | ||
|
be1e7ee9a9 | ||
|
e817844c5d | ||
|
c7efd1feb9 | ||
|
bf6f60c7e5 | ||
|
b998718142 | ||
|
c31d368d0d | ||
|
5237eb0638 | ||
|
7869d731d4 | ||
|
c603ec0b38 | ||
|
555bf1f0ae | ||
|
8bdf384563 | ||
|
19524eaa82 | ||
|
9bbae825e2 | ||
|
3e9cb987a1 | ||
|
dacb9cd86c | ||
|
b9d7333998 | ||
|
e14b507b27 | ||
|
139c3fdd19 | ||
|
431ac5aa2d | ||
|
78fe7e5c16 | ||
|
c2c9e37a36 | ||
|
5d3682cd44 | ||
|
2a19726e49 | ||
|
c08c652080 | ||
|
9089c54990 | ||
|
679d9bae1c | ||
|
19315fc65e | ||
|
770041eceb | ||
|
1161dcb299 | ||
|
fa7b0a24a7 | ||
|
48354c7793 | ||
|
24de6c0101 | ||
|
fcd9fe7d5a | ||
|
a36d5684b8 | ||
|
be20f9b455 | ||
|
dd150c6d7e | ||
|
bd5ac514ef | ||
|
bd926fa74b | ||
|
167144b504 | ||
|
5faaabf2f4 | ||
|
1933fc948c | ||
|
83df430d17 | ||
|
ec60d7d0b6 | ||
|
f9ccb0e8de | ||
|
1109d9f88a | ||
|
32b7cc64fb | ||
|
a6724b5f75 | ||
|
8a35bfcc31 | ||
|
0c037184f8 | ||
|
3e563a37a2 | ||
|
efec711ced | ||
|
e5cbf9e3a3 | ||
|
cafe86e675 | ||
|
a911492a9e | ||
|
d889598b20 | ||
|
c4577f28b2 | ||
|
f5af15454e | ||
|
ee96d5c68f | ||
|
6c56b5f45b | ||
|
1058bfecf4 | ||
|
f0afd5ceea | ||
|
9881c9f61c | ||
|
89a7ec6d4b | ||
|
c426364618 | ||
|
cc5264a587 | ||
|
131afcebf1 | ||
|
42bc4d2445 | ||
|
2cc5d46cd3 | ||
|
97c3e50e7d | ||
|
3feb67ad32 | ||
|
7af82af935 | ||
|
4a3f0c8898 | ||
|
aa6c7afbbd | ||
|
c6ba296028 | ||
|
51b86e21f6 | ||
|
04914be442 | ||
|
3133935063 | ||
|
088608011b | ||
|
6d0f9baba4 | ||
|
3b21400bb8 | ||
|
1c3a279b8a | ||
|
6236b01189 | ||
|
e42906f08a | ||
|
b53ba2b98e | ||
|
7bd8d54d5c | ||
|
8f5a11493b | ||
|
c785ea63e7 | ||
|
b78f1dbb93 | ||
|
056b9df65e | ||
|
589c301606 | ||
|
476f721f5e | ||
|
a813610c04 | ||
|
41dd67f1c1 | ||
|
63b068f426 | ||
|
637c54073a | ||
|
4171311095 | ||
|
bb5d5ffc92 | ||
|
d07a95204b | ||
|
2736247d09 | ||
|
93ffb116b7 | ||
|
396dd5e36e | ||
|
096abd7ebf | ||
|
694397efc1 | ||
|
ffe9a03d3e | ||
|
b2556cb293 | ||
|
c029564590 | ||
|
0cfea40b24 | ||
|
9c53f0f881 | ||
|
50ddd3cf31 | ||
|
6c7eb6ea8c | ||
|
412fc78c9a | ||
|
0da0857970 | ||
|
90e0006cae | ||
|
a570528f6c | ||
|
2d4cbde72c | ||
|
f5ae95d7f1 | ||
|
c5e6e004dd | ||
|
d9c209aa87 | ||
|
8f80f375f0 | ||
|
2cf2233643 | ||
|
36564f0c75 | ||
|
8dbb984ead | ||
|
74ffbd4679 | ||
|
82b23d9a13 | ||
|
0a9b234272 | ||
|
3a06ef3959 | ||
|
ed4676bb6c | ||
|
893ebd9690 | ||
|
3c069f8b79 | ||
|
93580c902f | ||
|
e1abd5a051 | ||
|
27fc5f265f | ||
|
5b618ba1f3 | ||
|
a6f56ace24 | ||
|
0d93105bcd | ||
|
7c2fea8623 | ||
|
e2a89c22da | ||
|
03715e0939 | ||
|
4d9b9cb959 | ||
|
d759636d95 | ||
|
c8a8e0f2da | ||
|
b004dfbdf2 | ||
|
40ea91cce4 | ||
|
abcb02d4aa | ||
|
cd983de058 | ||
|
f6cc05634f | ||
|
f14b390849 | ||
|
431f5d76ce | ||
|
dd50399a21 | ||
|
eb17463b68 | ||
|
88e05ffd05 | ||
|
a5079f5243 | ||
|
422c681e55 | ||
|
9531a38486 | ||
|
493cd2a0e3 | ||
|
f7f7e808f2 | ||
|
217c88f342 | ||
|
cf70916764 | ||
|
b84d7f0834 | ||
|
dffdcfe1e4 | ||
|
11deaa049e | ||
|
7b969ebd74 | ||
|
245aa6e9e7 | ||
|
163f4cfaf2 | ||
|
33a5cc1488 | ||
|
9a8f45fc6f | ||
|
e3ca89a81b | ||
|
8696650f20 | ||
|
942f050579 | ||
|
89e7e28bfa | ||
|
221eddd995 | ||
|
32d42794dd | ||
|
14c71d6c07 | ||
|
cce4d7d4d9 | ||
|
708cdad38b | ||
|
bc889cbcf4 | ||
|
7c9b943733 | ||
|
e3b88d1162 | ||
|
d80927a8f9 | ||
|
27050b911b | ||
|
a3a2c0a9a8 | ||
|
92ceb0e8fb | ||
|
835a36986d | ||
|
4c599d3d40 | ||
|
67057bfac4 | ||
|
fbc3f47eeb | ||
|
79caa4e510 | ||
|
fa191136cc | ||
|
15d93c8aeb | ||
|
1a9b0265dc | ||
|
4f5632b916 | ||
|
8e6e6736a3 | ||
|
804afc9a1d | ||
|
bcd86977d2 | ||
|
a8b5a5227f | ||
|
d2398a7abb | ||
|
0e908ad882 | ||
|
7620aa4264 | ||
|
c0a83d1916 | ||
|
920856512e | ||
|
62b703ca88 | ||
|
d7f7aa09fc | ||
|
b125b47366 | ||
|
bc6debea89 | ||
|
d5523b18b9 | ||
|
1f69c7e992 | ||
|
d9757cc660 | ||
|
1cb3522e73 | ||
|
7583b0a358 | ||
|
77863e2e88 | ||
|
564404d4ae | ||
|
e2320cd3b2 | ||
|
fd92d6559c | ||
|
6146925757 | ||
|
baef9f5aa7 | ||
|
ae6de8fdf1 | ||
|
b888d13e62 | ||
|
1070c23608 | ||
|
e8d084b855 | ||
|
5b278f704c | ||
|
a87e44bae4 | ||
|
85bc5f54aa | ||
|
41f46d0810 | ||
|
be3bfe7e5e | ||
|
9ce1222fd0 | ||
|
8fb3c68573 | ||
|
eb7ee49096 | ||
|
f960cf2ce9 | ||
|
084b2e8e04 | ||
|
675e4579ac | ||
|
d2880432da | ||
|
6daae83c3a | ||
|
f9e4b689b7 | ||
|
2c30050f3d | ||
|
13530abdeb | ||
|
5eb50750e2 | ||
|
9ef873526a | ||
|
0046fe25c5 | ||
|
fdb13f0b77 | ||
|
029d8574f1 | ||
|
a552c57d67 | ||
|
d5f83acaf5 | ||
|
c50c028c9e | ||
|
465b33b006 | ||
|
4df68479ac | ||
|
3ec25f3634 | ||
|
c29e4648ea | ||
|
9ed8f26d7c | ||
|
b82b378cfe | ||
|
1eac90e5b1 | ||
|
206e68b1d2 | ||
|
1de5cd2e61 | ||
|
264bc52bcc | ||
|
2626a761ea | ||
|
1359c6be1d | ||
|
ca0da2c509 | ||
|
57d55e05e7 | ||
|
702d21fbc3 | ||
|
796ba72bde | ||
|
92a6e9ea5a | ||
|
822ce41b54 | ||
|
0c7f4c2af5 | ||
|
4e1783f856 | ||
|
f6aee3d64e | ||
|
514263ae12 | ||
|
507d5d3758 | ||
|
16b6678aa2 | ||
|
af8b400bf4 | ||
|
a32d7f78bb | ||
|
94b135ae95 | ||
|
e42cad68b4 | ||
|
8a44ee9d50 | ||
|
5bf4fffd2f | ||
|
7d63135cc2 | ||
|
48354721a2 | ||
|
82b21e6a09 | ||
|
9216eed1b8 | ||
|
c81c5c4801 | ||
|
14bf0038a9 | ||
|
a8f2fd3f4b | ||
|
7223959fda | ||
|
cf5d112e31 | ||
|
b24608891e | ||
|
579efb016a | ||
|
10a5b35217 | ||
|
68d0aa7071 | ||
|
69bc13dd77 | ||
|
2b1b9d35a2 | ||
|
3d970737d1 | ||
|
75c105a400 | ||
|
0a318f618b | ||
|
574d5055bd | ||
|
0022777a4f | ||
|
4c6996bc09 | ||
|
6ff12b3a88 | ||
|
babbb82a49 | ||
|
ae5331cf40 | ||
|
d67029c42c | ||
|
4dff9316c2 | ||
|
a056cbd19f | ||
|
032d46d8e6 | ||
|
b739aa35f2 | ||
|
fa3035f9cf | ||
|
daf1362d28 | ||
|
8e7d5ddfd4 | ||
|
71a70ffafa | ||
|
d9ceb32e2f | ||
|
13f716a395 | ||
|
b9375a1b4e | ||
|
38a98a51cb | ||
|
64c612dea0 | ||
|
f2e8a9e0c7 | ||
|
8ae0501c22 | ||
|
03e89743b4 | ||
|
8dff0b2c5d | ||
|
a713b97e36 | ||
|
b6acc8da70 | ||
|
ba11ca0e9d | ||
|
b8c89325bc | ||
|
b99cdf7367 | ||
|
60ce351a27 | ||
|
413a55623e | ||
|
5b2f95d270 | ||
|
44604c2509 | ||
|
bf2a7c2efd | ||
|
ba5c42cc51 | ||
|
cf2ea0f51c | ||
|
9df002fe4e | ||
|
1a191c7d51 | ||
|
7ca57d918e | ||
|
fe40e74809 | ||
|
daac2e2a1c | ||
|
b88ec407a3 | ||
|
8e9e4215ce | ||
|
4dd83c29fe | ||
|
6020f423f4 | ||
|
99bea8f7c3 | ||
|
d1e2d06538 | ||
|
ccf5d759a4 | ||
|
3ce8deec07 | ||
|
812b1f7baa | ||
|
f2cb6ed82c | ||
|
d1848fd5f7 | ||
|
f57fc827fe | ||
|
45e534bbf5 | ||
|
bfcd4b8250 | ||
|
510f8ae0f5 | ||
|
a1941bf609 | ||
|
c9defec75d | ||
|
a2a2015af6 | ||
|
ca70ddb810 | ||
|
bf9d80c14c | ||
|
83467b8597 | ||
|
816301bf8d | ||
|
345e8a0679 | ||
|
bcd384c31c | ||
|
bbbaa60ddd | ||
|
dc17e5c3fa | ||
|
0150d3961b | ||
|
ae3e1f3a9f | ||
|
13ddc28d05 | ||
|
cedeea13e6 | ||
|
8f78c4a0fb | ||
|
a37af307f4 | ||
|
be3bc175bf | ||
|
6207aab19d | ||
|
01a5ec4c41 | ||
|
b09d45718a | ||
|
07c805a019 | ||
|
ea4e9b8e5e | ||
|
fd4b56572d | ||
|
16448c0bc5 | ||
|
c34750bdab | ||
|
dee6f35888 | ||
|
62ca9a2a84 | ||
|
ad64651532 | ||
|
edc47b56a4 | ||
|
f39b3365db | ||
|
0da4ff7b02 | ||
|
983e02888c | ||
|
35768ff7e8 | ||
|
6dfdc77ebd | ||
|
0753ba3495 | ||
|
ffd3b9a7a7 | ||
|
428062e1e4 | ||
|
cb49c7d060 | ||
|
2a22d71e7c | ||
|
eaa7fb7100 | ||
|
9755dd73eb | ||
|
4c2e62031a | ||
|
51a95554d7 | ||
|
12d8bd1743 | ||
|
458b4259fe | ||
|
e7714da8e8 | ||
|
b4f9d40767 | ||
|
a0e074043b | ||
|
9068168378 | ||
|
de39a17247 | ||
|
5c7a5fab94 | ||
|
c9e0aff839 | ||
|
61ed436c44 | ||
|
b7a1f96294 | ||
|
15ad351579 | ||
|
6cb4645514 | ||
|
eb1fa0919f | ||
|
45edf6025e | ||
|
17fed39b27 | ||
|
bba167d4ea | ||
|
9ebda42d34 | ||
|
619ec4faa4 | ||
|
49beae431f | ||
|
f3b8bb066c | ||
|
b879be2b02 | ||
|
52e699e125 | ||
|
8a86b2c940 | ||
|
b15fa7c0d7 | ||
|
6cd50cfaf1 | ||
|
9ed529b944 | ||
|
bbc3dc0504 | ||
|
d1d2c5f117 | ||
|
9f3f5d8053 | ||
|
f24b593349 | ||
|
0db1095373 | ||
|
997cd68344 | ||
|
b40334f7db | ||
|
a216f82b35 | ||
|
5eb2f14375 | ||
|
d4963dfb31 | ||
|
3c7f61e45c | ||
|
10eef60f45 | ||
|
cb70757790 | ||
|
ac0418c796 | ||
|
86b0094cdb | ||
|
c0f07bc0a5 | ||
|
c3b8ed223d | ||
|
3947a78b56 | ||
|
51ae2ce1e0 | ||
|
9ff78051a9 | ||
|
a50bd7421c | ||
|
0f21d80154 | ||
|
734602f4f7 | ||
|
3364dd3380 | ||
|
bd36c67bf2 | ||
|
856ae33fd5 | ||
|
fd4bfaea1f | ||
|
3dfdb9cba0 | ||
|
812181c435 | ||
|
9f3d59711f | ||
|
438060dfa2 | ||
|
f527dcf1fc | ||
|
ae05305e52 | ||
|
386546dd21 | ||
|
88021dbf5e | ||
|
a99de88709 | ||
|
3fe677986e | ||
|
8990089c65 | ||
|
f70efa2852 | ||
|
caa29bf7da | ||
|
d05a394134 | ||
|
18cc689209 | ||
|
7a11ab5bca | ||
|
aa2a24e68a | ||
|
e3eccf48a3 | ||
|
1db120a963 | ||
|
fca0aa2cc4 | ||
|
0bcf42dbb8 | ||
|
14e7e5e9fd | ||
|
1fcbf7ed42 | ||
|
a639ac42c4 | ||
|
c38a8599f1 | ||
|
0d8a845a21 | ||
|
588c2cad15 | ||
|
4b2fbd4344 | ||
|
d654771fcf | ||
|
1de1ddd496 | ||
|
33a962b721 | ||
|
4791eb85af | ||
|
47a9074695 | ||
|
819722f47a | ||
|
8b7c2b3607 | ||
|
78170b7052 | ||
|
46e5d23f7e | ||
|
316f26ec82 | ||
|
6e801d5f4d | ||
|
225a5d4e59 | ||
|
4f41d8b21b | ||
|
5f99eb8c97 | ||
|
403e18c1b7 | ||
|
239ead7ccb | ||
|
077bcb3f2a | ||
|
41e3ff381f | ||
|
e8dcdc7182 | ||
|
909ee2cc85 | ||
|
04126fb0c6 | ||
|
479f10a28e | ||
|
d46452c580 | ||
|
18f87924ad | ||
|
f6ec7bc323 | ||
|
f48d4c021a | ||
|
f190356934 | ||
|
ef140f28c8 | ||
|
1bc726abff | ||
|
794a0bb14b | ||
|
a1ed9bb377 | ||
|
c2027be0ee | ||
|
5a111af2fe | ||
|
bb000f77f8 | ||
|
6d2b3a6940 | ||
|
dbb14e6313 | ||
|
2144879e73 | ||
|
e149be9e0f | ||
|
9e921d8b50 | ||
|
9bf5059631 | ||
|
b9fdc14e18 | ||
|
f39938d17d | ||
|
aa238775c6 | ||
|
7e7a953345 | ||
|
9ec68fa5be | ||
|
a393c4dfae | ||
|
d9723387eb | ||
|
4433436416 | ||
|
f127a75e38 | ||
|
802f4ea5d8 | ||
|
6ed77e276b | ||
|
fffc8addcf | ||
|
489bddec5b | ||
|
f5e46df309 | ||
|
4887f678c5 | ||
|
be2c4597de | ||
|
cd56059a77 | ||
|
03d925b5ab | ||
|
487e82df3f | ||
|
72bf2f9c1a | ||
|
1555c06b21 | ||
|
7bebd6151e | ||
|
2f7c7badc1 | ||
|
1e60d6f6e8 | ||
|
b9795786c3 | ||
|
8091e224f7 | ||
|
e84eba23a1 | ||
|
16af59153e | ||
|
042c8abac1 | ||
|
5c62f29c6f | ||
|
7a37db84d8 | ||
|
b78dac20c0 | ||
|
de33f7b3f5 | ||
|
89fa345140 | ||
|
5be1c447a2 | ||
|
555b9854ef | ||
|
616a9cee1f | ||
|
ec3c386028 | ||
|
3c4b88db0a | ||
|
3ca9c769c6 | ||
|
4c03a2e98a | ||
|
013cc53cc0 | ||
|
50fcf0731b | ||
|
7e06fb474e | ||
|
0399677a01 | ||
|
fc1b6a4d38 | ||
|
c0c8c67228 | ||
|
00a64bce45 | ||
|
08f1dc7f9e | ||
|
0a627e9d0f | ||
|
ba9908e777 | ||
|
10060b35c8 | ||
|
d86190404d | ||
|
d764540526 | ||
|
2963828a07 | ||
|
1ff3969cfb | ||
|
8d73e8c905 | ||
|
5a6683574c | ||
|
e246c58424 | ||
|
c9748cb46f | ||
|
385f2db038 | ||
|
636f419be1 | ||
|
8b6a8b45ed | ||
|
89b6de0323 | ||
|
445dfceb2a | ||
|
788d1ed7b0 | ||
|
0df4cf70de | ||
|
83925322cb | ||
|
36cef26ab5 | ||
|
60556d0fa0 | ||
|
6a1238d2c5 | ||
|
6b04e25954 | ||
|
723a833845 | ||
|
f567f92d8f | ||
|
613573931e | ||
|
dc8668b222 | ||
|
d20fae2593 | ||
|
def6758aaa | ||
|
c2a81c528f | ||
|
4b8c31d806 | ||
|
1f9712d8a2 | ||
|
3276da3912 | ||
|
a969aef582 | ||
|
77c5b320d1 | ||
|
02d3893b6b | ||
|
aaa772c749 | ||
|
99e8f9c6cd | ||
|
0667c0ce49 | ||
|
fa32770e96 | ||
|
0a2b0842b0 | ||
|
f26f169973 | ||
|
b826e318a5 | ||
|
e5320688ba | ||
|
8b4721cc3e | ||
|
ea4325c498 | ||
|
dc4d2d6ccb | ||
|
06bcd1654c | ||
|
f71f717e51 | ||
|
191fbf1c9e | ||
|
434b4b5b13 | ||
|
5a2df8e038 | ||
|
2ac2711210 | ||
|
a213ecdc43 | ||
|
b49d9ff9c6 | ||
|
0e0588665d | ||
|
95786dc9d6 | ||
|
7bb2899414 | ||
|
94f5b7b987 | ||
|
f8762da246 | ||
|
f3685701ac | ||
|
f1e545ad49 | ||
|
c88c2a17ca | ||
|
dc8a6cc745 | ||
|
d319a353d4 | ||
|
89458a49b5 | ||
|
464ce16d63 | ||
|
6cca87da49 | ||
|
ace412f9e3 | ||
|
41e168a519 | ||
|
47746d6997 | ||
|
42fc47685c | ||
|
9a5e71f391 | ||
|
c05147a019 | ||
|
a59c92f55a | ||
|
151f361954 | ||
|
6d3a659362 | ||
|
2026d93934 | ||
|
1a9f06681f | ||
|
85747d2ed4 | ||
|
e1b8405c8b | ||
|
51c9208952 | ||
|
c0cea9448f | ||
|
1b7158a61d | ||
|
9298ca9c15 | ||
|
3c8f999468 | ||
|
ff84319e59 | ||
|
dc7e0a5f88 | ||
|
0ffe20d863 | ||
|
f3340f9789 | ||
|
ca0af0f342 | ||
|
aa91c41082 | ||
|
16579348f4 | ||
|
b07e7a4a36 | ||
|
dea994c1fb | ||
|
3bf11d1a0b | ||
|
dce60d0061 | ||
|
31e73b2f8c | ||
|
d314c8ae58 | ||
|
e19af47b77 | ||
|
94f7cfeb86 | ||
|
6531ba6a13 | ||
|
9bf615e90c | ||
|
003bffe463 | ||
|
021c23cd19 | ||
|
821b9dc187 | ||
|
72a7bf9e23 | ||
|
5cb46dba6c | ||
|
ba3500baf6 | ||
|
f82ee5efdd | ||
|
ab8c9bd269 | ||
|
1692a52e0a | ||
|
28df01b184 | ||
|
843d1d57cf | ||
|
a086b2001b | ||
|
98086f1b6b | ||
|
c1f08e8f22 | ||
|
e7a8679383 | ||
|
284babfeaa | ||
|
c1ea4bc1a7 | ||
|
7f48604820 | ||
|
572b0942ba | ||
|
63dff842f6 | ||
|
f83a0d027a | ||
|
93683d026b | ||
|
6fcfd259b7 | ||
|
6c335c7df1 | ||
|
9c451ffdd1 | ||
|
6a3eed49fc | ||
|
95142274fa | ||
|
f68eb449bd | ||
|
990b885aa9 | ||
|
f64a6d4ca4 | ||
|
d31a047467 | ||
|
7158f49fcb | ||
|
bfee82312c | ||
|
95df786227 | ||
|
ea57697215 | ||
|
2b026b6bc6 | ||
|
7f5c7c3bed | ||
|
79d7032e3a | ||
|
17d1a4b6fb | ||
|
afe55ae57e | ||
|
7bee558e01 | ||
|
d8f2deb5d9 | ||
|
cf98252bdb | ||
|
35b94d70e2 | ||
|
55a94d9888 | ||
|
ede5bb0e90 | ||
|
ff56414695 | ||
|
ca99a52545 | ||
|
0345ca47dd | ||
|
86b4e34031 | ||
|
db1f129034 | ||
|
9dc1034891 | ||
|
68947588d7 | ||
|
0fc92889c1 | ||
|
778c5aee32 | ||
|
63eb119df6 | ||
|
e6d5d0f9c6 | ||
|
67f1fe69fa | ||
|
b1625838ed | ||
|
4ac62bcf51 | ||
|
5ef97362cb | ||
|
d0cb5f4212 | ||
|
a58ad3a871 | ||
|
17e7aedcba | ||
|
648462f7f4 | ||
|
cb40485aad | ||
|
52924d38bf | ||
|
10d905472c | ||
|
dff7f24187 | ||
|
a6817e8281 | ||
|
19b6898568 | ||
|
9c6ea95df8 | ||
|
ecdec83c37 | ||
|
8d49121266 | ||
|
2b2a263ba6 | ||
|
087711f1f7 | ||
|
1b0049aaf7 | ||
|
5d59b445fd | ||
|
5ad46d251d | ||
|
c0a5402684 | ||
|
741f3f4066 | ||
|
d6b94802d8 | ||
|
d8e9d363fa | ||
|
840c8e0b91 | ||
|
69e624df41 | ||
|
a9f7fb46b3 | ||
|
40aa012588 | ||
|
6f709a1e7c | ||
|
ff78f378b5 | ||
|
ea5bcc7c77 | ||
|
17f0c29264 | ||
|
f8f091fa28 | ||
|
f82aee6089 | ||
|
7e5ee8f951 | ||
|
0ae7242e17 | ||
|
b00fa69585 | ||
|
e6a8fd5b73 | ||
|
cb1addd5e3 | ||
|
c9223ff74c | ||
|
b12c4f854c | ||
|
beeb840436 | ||
|
c3a423fdbe | ||
|
4f92db7651 | ||
|
3714e4e787 | ||
|
ab9bbe9a48 | ||
|
dbb77d9dc1 | ||
|
5e45f5c3ea | ||
|
be62d65c98 | ||
|
f860cfd8a3 | ||
|
5397700ab4 | ||
|
48ca1384f8 | ||
|
d1fb1614a3 | ||
|
e926326fca | ||
|
02f1dab9b2 | ||
|
7d53dfeca4 | ||
|
3133cbcc3e | ||
|
cb33b9f158 | ||
|
cee5f8a0fb | ||
|
50cf5b5322 | ||
|
7b89f1bea7 | ||
|
bc339191ea | ||
|
44114e66c2 | ||
|
bd69fd5815 | ||
|
1dfc739f19 | ||
|
e33bc7146b | ||
|
6325ee9310 | ||
|
7952e205b9 | ||
|
1fd24e746c | ||
|
6872a488de | ||
|
2e5e072631 | ||
|
acbd4c3aba | ||
|
e846e30905 | ||
|
efa7c66d98 | ||
|
573ec29829 | ||
|
f7e040efd2 | ||
|
e67fe1476c | ||
|
e224ae62b4 | ||
|
a80f1538c7 | ||
|
29d25c377b | ||
|
c53f79ca8b | ||
|
ff0f42900d | ||
|
05950ec1c8 | ||
|
a7f034f500 | ||
|
3182850e19 | ||
|
182158c3af | ||
|
7722e6d8e7 | ||
|
dd1c9976e3 | ||
|
32434703d8 | ||
|
3877b2f58e | ||
|
7e3acaa987 | ||
|
250ac42fa3 | ||
|
9e0ebc94c5 | ||
|
e708b0f01b | ||
|
1a0dba7422 | ||
|
282a3f8ee3 | ||
|
ebfee5868e | ||
|
7a146327ca | ||
|
5056615eb0 | ||
|
72a412904d | ||
|
74cae47902 | ||
|
2125047ca5 | ||
|
cac3475281 | ||
|
038e6613c0 | ||
|
bcc64fb276 | ||
|
3b8a0f8671 | ||
|
211a8dc272 | ||
|
dfbe1188f0 | ||
|
91b81af5a8 | ||
|
1f4a360a0c | ||
|
f9c35e6bcb | ||
|
aa0520d47d | ||
|
8d05ef703a | ||
|
26b8ef8af9 | ||
|
0a31cf2c44 | ||
|
19def67a9a | ||
|
88dd6ae5da | ||
|
cae7510a77 | ||
|
015678ca20 | ||
|
85c8092e65 | ||
|
724c1132b6 | ||
|
ae3c453f35 | ||
|
6f2736566e | ||
|
5fa281dd3a | ||
|
b203093073 | ||
|
1b3a5097c1 | ||
|
44d850e78f | ||
|
8170f523e0 | ||
|
c0842d4da7 | ||
|
6147a87e46 | ||
|
50f6a4732c | ||
|
f5580212ea | ||
|
9df3de2afb | ||
|
78ed184f60 | ||
|
85417eb24c | ||
|
f030e098a8 | ||
|
c996bcb23c | ||
|
61a41493ac | ||
|
a2334c3fb0 | ||
|
92e021a3d7 | ||
|
3705fa14bd | ||
|
4649b2ac1d | ||
|
ae346646e4 | ||
|
6e81467808 | ||
|
08cc439306 | ||
|
0838cbaf03 | ||
|
d4a0659483 | ||
|
4dbeaeb465 | ||
|
5d190a8137 | ||
|
0d16fe019e | ||
|
88ca909689 | ||
|
da344fae51 | ||
|
4683dc3f21 | ||
|
e21f306635 | ||
|
430a0d2492 | ||
|
70be853acd | ||
|
0df3a8ad98 | ||
|
62449ee543 | ||
|
5e56e7cf82 | ||
|
6c6d0dbc3d | ||
|
d6fcf63230 | ||
|
8759bcca84 | ||
|
86b46d1442 | ||
|
f54504e871 | ||
|
fc18a7b877 | ||
|
f1a979caa1 | ||
|
7c954d220c | ||
|
8bff468c7c | ||
|
c46f0a7430 | ||
|
2eb60213b4 | ||
|
05f48255a3 | ||
|
d599cab017 | ||
|
b521f36569 | ||
|
051b431f1d | ||
|
04b41fce30 | ||
|
5fcabca87c | ||
|
28b039fde3 | ||
|
762bfc4fcc | ||
|
39532fc2aa | ||
|
b6b73f2361 | ||
|
37d6a9b722 | ||
|
2a2187196f | ||
|
881ebff015 | ||
|
f0272fd283 | ||
|
0a0330a48c | ||
|
c09d308df8 | ||
|
482bb51640 | ||
|
ee56307ccc | ||
|
18950a6b46 | ||
|
a4e163885d | ||
|
108a31eca3 | ||
|
7f26dbe260 | ||
|
b6bbe19316 | ||
|
d744dea46e | ||
|
29f8c18b09 | ||
|
6f29d38047 | ||
|
5e2f65ab7a | ||
|
c5459cdde4 | ||
|
f58829130a | ||
|
42a3a64b0d | ||
|
1986de36a6 | ||
|
84202adc5b | ||
|
07446d2d41 | ||
|
14162ecaa0 | ||
|
2f054cd438 | ||
|
b5311aa3df | ||
|
3642ca5b4a | ||
|
2908a5d345 | ||
|
d225fb7df0 | ||
|
5d18a7cc82 | ||
|
07976988d9 | ||
|
2a96b2c68e | ||
|
3a9e6fa97f | ||
|
24fcb3f58f | ||
|
5beaa93437 | ||
|
415fb3a432 | ||
|
1e3bdd6a2e | ||
|
68907ff6c0 | ||
|
9f26d015ba | ||
|
c20517599e | ||
|
0bb75eed1f | ||
|
2b90f1395f | ||
|
51f225056c | ||
|
7a494db40b | ||
|
487bbe42a9 | ||
|
ab74f6c1a8 | ||
|
2def7f3910 | ||
|
11a4704161 | ||
|
8bc0afa75e | ||
|
3f5b1083f3 | ||
|
435724ffa9 | ||
|
b14d22550b | ||
|
f79784bc8c | ||
|
6ac401db9b | ||
|
bc2c345e21 | ||
|
577f0e0d9a | ||
|
a3570a69dd | ||
|
6a67c0fd0d | ||
|
7bf510880f | ||
|
77f06b962d | ||
|
d0ec5a13f3 | ||
|
d6d9ece045 | ||
|
c14bf80b40 | ||
|
667ea844f2 | ||
|
ae84a0bbe9 | ||
|
67eff0583c | ||
|
1ed0ef0948 | ||
|
21f1848499 | ||
|
6958d114a9 | ||
|
34760a00be | ||
|
1bc42959d0 | ||
|
22cfb64348 | ||
|
056405939b | ||
|
2dcaabe4c4 | ||
|
bbd86661a4 | ||
|
d684c11c65 | ||
|
a2fb6d5664 | ||
|
31029e90cc | ||
|
2e95c78f4e | ||
|
62f620f79b | ||
|
f271968238 | ||
|
c2a938a17c | ||
|
e02b0aad6f | ||
|
32e8caab03 | ||
|
be2c629590 | ||
|
63718ab4f2 | ||
|
5b7bfe5302 | ||
|
8aae5b2599 | ||
|
ebc1725f5b | ||
|
27d3a36c1b | ||
|
dfa0308db6 | ||
|
299bcc2bc7 | ||
|
03c66315cb | ||
|
9f154748ae | ||
|
5eb66c4617 | ||
|
44b2673848 | ||
|
a6cf2b0685 | ||
|
b8c350488b | ||
|
fb74628aa8 | ||
|
fdedfc954c | ||
|
b8cbafa75d | ||
|
9ab053d702 | ||
|
6e2c733319 | ||
|
ad2191a76e | ||
|
ecc189aeac | ||
|
34d2c3d391 | ||
|
1699a57850 | ||
|
ea9b99b38b | ||
|
8edecf5937 | ||
|
cede7b1dc1 | ||
|
1464f5aa02 | ||
|
5ab7ec0bc8 | ||
|
7f85331448 | ||
|
7c063972ac | ||
|
bd72c0ca8d | ||
|
91fe308113 | ||
|
78a76a8038 | ||
|
759974d9a8 | ||
|
00a3e802fc | ||
|
160c1b49a1 | ||
|
5b1737ae46 | ||
|
fee7701d26 | ||
|
1e5122f741 | ||
|
d6ba653c21 | ||
|
51b1d1fa87 | ||
|
4249d9d906 | ||
|
a7e33e9c0a | ||
|
7a2e70ee2d | ||
|
416c153d2e | ||
|
23d911cc2c | ||
|
d868ef0168 | ||
|
48b10e6d08 | ||
|
4d9bd57336 | ||
|
30ab6d5ee7 | ||
|
622faf5471 | ||
|
4d558c5f95 | ||
|
a29ca2ae09 | ||
|
84df86df37 | ||
|
22e03b14d1 | ||
|
d1fed08764 | ||
|
bca24c0198 | ||
|
822c47d15f | ||
|
03b3b82e0a | ||
|
8279191339 | ||
|
6486b9e5cd | ||
|
4d7b0e3e68 | ||
|
66b0e6c68f | ||
|
69a4312613 | ||
|
293f867988 | ||
|
8d2c0dcb48 | ||
|
bdaecc5b2e | ||
|
fa9ff86ab2 | ||
|
f8e3e33e49 | ||
|
73778f8669 | ||
|
cd5a146f1a | ||
|
3c45b84474 | ||
|
d4682e504c | ||
|
2717cca267 | ||
|
28d37f0106 | ||
|
30b51449ce | ||
|
4b66ffcd5b | ||
|
0e85a3d59f | ||
|
72f8c8ef72 | ||
|
b227dc3e5c | ||
|
144d0e56cc | ||
|
d29d1ead9b | ||
|
216138394f | ||
|
d0d4a19033 | ||
|
719189bd90 | ||
|
01af5115a2 | ||
|
7761376306 | ||
|
43f34f6330 | ||
|
a77069297d | ||
|
36899af36b | ||
|
bfa4e00fe7 | ||
|
4c6bb93eaf | ||
|
7e62e8e2cd | ||
|
762fd02eb7 | ||
|
825592e443 | ||
|
4c6234796d | ||
|
d6dd2a02b5 | ||
|
b97aed0723 | ||
|
1614707943 | ||
|
88b806326e | ||
|
82bf0dcae9 | ||
|
0ada12e646 | ||
|
a7ae66e0de | ||
|
a1f98eb6bf | ||
|
f882986f7d | ||
|
9b8bcc4464 | ||
|
487a90fba5 | ||
|
abb9a0839a | ||
|
7a01be9c0d | ||
|
23aaa58834 | ||
|
0077091175 | ||
|
624a8ff04c | ||
|
94a7db26f5 | ||
|
58edc83e11 | ||
|
653d6c6050 | ||
|
5e39d3c6fb | ||
|
ebde029cce | ||
|
dd4391941e | ||
|
6e1fc4d84e | ||
|
86603ed1a6 | ||
|
a246993df3 | ||
|
2e88275766 | ||
|
eb2166dd4c | ||
|
b088c23ea2 | ||
|
95eb6926d4 | ||
|
b6454b70a6 | ||
|
a61b9ce1e1 | ||
|
a265ff3fbe | ||
|
fc993cb724 | ||
|
808eb9a12a | ||
|
d429800162 | ||
|
709e9daf40 | ||
|
82a1b8b4c0 | ||
|
fbe6a2ac80 | ||
|
89af162c5a | ||
|
1e0bc51fa2 | ||
|
21a42e310f | ||
|
ba163dbf5c | ||
|
236f7f8e28 | ||
|
ab2a55d417 | ||
|
2c96a79a08 | ||
|
61b91f4015 | ||
|
c274f9b23c | ||
|
2148411307 | ||
|
0c34521791 | ||
|
ad969b999d | ||
|
3bb2034254 | ||
|
ef16485eac | ||
|
8abff412d0 | ||
|
b26d379d20 | ||
|
2ed7be243b | ||
|
7efc58cb42 | ||
|
da09df0e42 | ||
|
e997610ef2 | ||
|
c2be97741e | ||
|
db977b8109 | ||
|
6f1875c13a | ||
|
4dc28a9d62 | ||
|
23f13b092f | ||
|
f4c4e84ffe | ||
|
8ac3af327b | ||
|
3ff475af7a | ||
|
43c24e55ab | ||
|
971b425e17 | ||
|
b9e8d7187c | ||
|
926ff80525 | ||
|
0cba8f3aa1 | ||
|
11fb2bcdfa | ||
|
94e43475e2 | ||
|
01a4905dc8 | ||
|
8cb7260375 | ||
|
dc04d2848d | ||
|
c2880a5832 | ||
|
979c0832cf | ||
|
fa381cc06d | ||
|
f1d902b9ad | ||
|
b97d922808 | ||
|
18dcd6b9b1 | ||
|
c6178e504f | ||
|
0ff28c4f50 | ||
|
73ab32fd92 | ||
|
925d4d077f | ||
|
4581efa4c3 | ||
|
09ccf7cdde | ||
|
d1fedcac7c | ||
|
a7ee451705 | ||
|
11fc0fed75 | ||
|
f932100388 | ||
|
f0b582fef0 | ||
|
bf0b6d738a | ||
|
0da106ba36 | ||
|
83a06b9657 | ||
|
9b5bd3e226 | ||
|
135fcab558 | ||
|
f990600aea | ||
|
22cd6ae239 | ||
|
00b53ee577 | ||
|
f65e96e7b4 | ||
|
f98844db02 | ||
|
c59665e017 | ||
|
7fe4148384 | ||
|
a544ae264b | ||
|
c895f87e26 | ||
|
e65558958d | ||
|
eb5088c699 | ||
|
3755d866b1 | ||
|
8291dfc188 | ||
|
c41c91b0e7 | ||
|
3367ed6765 | ||
|
4654e39417 | ||
|
6dd4d4d906 | ||
|
cf3fecd425 | ||
|
be9a91e3fe | ||
|
fc51097ed8 | ||
|
751c870a4a | ||
|
de8e325193 | ||
|
e2feac3dde | ||
|
d7b0b2f785 | ||
|
326c863148 | ||
|
c42920d9aa | ||
|
fb5c1bb163 | ||
|
4f695a6d8f | ||
|
bc389d371d | ||
|
3756c3a191 | ||
|
9e3caf603d | ||
|
74e2ffc4c4 | ||
|
6e019dbd44 | ||
|
4d7cd7319b | ||
|
edf7761d49 | ||
|
a590bc96cd | ||
|
6c6bba68ff | ||
|
5fbcf348f5 | ||
|
58f5baa5f6 | ||
|
398dcb1036 | ||
|
30e7b761ae | ||
|
4d105c278b | ||
|
f019e4a246 | ||
|
4499e34f44 | ||
|
fd1bb84770 | ||
|
ac4c111ad3 | ||
|
254eb26211 | ||
|
f689871fc0 | ||
|
8ead371603 | ||
|
8045d61e1f | ||
|
e790c35270 | ||
|
914ec895ee | ||
|
bd05484b2d | ||
|
7872838056 | ||
|
b89b3db077 | ||
|
8e3d83579b | ||
|
96845d31db | ||
|
89fa2ece43 | ||
|
82e3adebbc | ||
|
2490d4d638 | ||
|
55f04906ac | ||
|
3442ebc1c3 | ||
|
f186a00515 | ||
|
0bd7e40a22 | ||
|
ad984b26fb | ||
|
3a659a9f3b | ||
|
0217e79324 | ||
|
544bff9f4f | ||
|
a4fdf1802b | ||
|
2c4f7d38a2 | ||
|
48a9e1ff9f | ||
|
c4b6d52657 | ||
|
43b291d2d0 | ||
|
b31178683c | ||
|
38631eb70e | ||
|
6246fd98c3 | ||
|
71aa315f2a | ||
|
af6a94d08e | ||
|
f6c7f3eed1 | ||
|
e0c5377968 | ||
|
8aada10f0d | ||
|
0c39495e3f | ||
|
7c638798c7 | ||
|
05ec5bde93 | ||
|
d2d372d140 | ||
|
e9b3ab91a0 | ||
|
633b12f66d | ||
|
2efe5a420c | ||
|
96c7f57ea0 | ||
|
6af879fe2a | ||
|
b935a6557f | ||
|
8340d5e71f | ||
|
8103081e0e | ||
|
be3157b6f5 | ||
|
ae9afcc393 | ||
|
e73480c0ef | ||
|
e02b9b7736 | ||
|
8c801ae078 | ||
|
a151f42495 | ||
|
40f7dc4824 | ||
|
3b8c61a87e | ||
|
4ef1f9c4d9 | ||
|
93cb6bd26e | ||
|
7c33bf2742 | ||
|
e5e67fbcbb | ||
|
95219c7934 | ||
|
53744982f0 | ||
|
6d24aa75d0 | ||
|
76c79f9f75 | ||
|
28081aa7d2 | ||
|
d0532bb9a9 | ||
|
9389cfe7a3 | ||
|
484fd61706 | ||
|
6c943571fc | ||
|
29123ac726 | ||
|
44cb8cdeca | ||
|
9e20f7db1a | ||
|
971320a56c | ||
|
4290d22465 | ||
|
96a3b25adb | ||
|
3dc69b60c4 | ||
|
bdde638967 | ||
|
8157644ff8 | ||
|
4008339963 | ||
|
c6bd6c17fc | ||
|
1a452a6cd7 | ||
|
35f854de5d | ||
|
99343294c6 | ||
|
56261bd741 | ||
|
1d53b48c8a | ||
|
5594489b69 | ||
|
ddb858380e | ||
|
bf5c1e9d8f | ||
|
931eeac548 | ||
|
f34c5d6674 | ||
|
9c05efa15d | ||
|
bd12c89a3c | ||
|
bf4f869524 | ||
|
dd09c4a72d | ||
|
55dcba6f36 | ||
|
4e7790966f | ||
|
bfcbb9ff4f | ||
|
cc57a73f23 | ||
|
d6f96e3d64 | ||
|
5f76f182f6 | ||
|
31eccf5f1c | ||
|
9d2ea19d7d | ||
|
a888e1e80e | ||
|
8b8855d2d5 | ||
|
de53166193 | ||
|
caf0ac1c9f | ||
|
299cd9ced3 | ||
|
11c8da3717 | ||
|
e309b30203 | ||
|
5a21249022 | ||
|
3c3c51e6fd | ||
|
ee3e10a4b0 | ||
|
e92cf38cde | ||
|
dbd080ca6c | ||
|
aedcf3006a | ||
|
6a475ae85c | ||
|
0ad637fa16 | ||
|
ee98a2da03 | ||
|
183d928e21 | ||
|
807c6f0cb5 | ||
|
72bb140b70 | ||
|
a5678a752b | ||
|
58938a239e | ||
|
da4695ff2a | ||
|
9fecc1b992 | ||
|
e8e1330cd5 | ||
|
1af45ede62 | ||
|
f6f9373aeb | ||
|
36a9b80040 | ||
|
175a5ab824 | ||
|
46d3608ccb | ||
|
b11eced4f1 | ||
|
66dfcbc2f8 | ||
|
71de2d9adc | ||
|
3f30636808 | ||
|
ee9c73fde1 | ||
|
7d76264b25 | ||
|
22771a84f1 | ||
|
a107bdd849 | ||
|
9fbf97f4cb | ||
|
812563f68b | ||
|
d3f50ee6c3 | ||
|
9dbe9c7286 | ||
|
fbcc7aa211 | ||
|
a0af769d7c | ||
|
ef4f930ba2 | ||
|
8369003bdf | ||
|
02145eaa06 | ||
|
a857d8e306 | ||
|
cb64f472fe | ||
|
cd28ad4c07 | ||
|
b69616117f | ||
|
59fa2e28c2 | ||
|
0f1e348ac4 | ||
|
67bde947f9 | ||
|
d9009540dd | ||
|
28a1cf6982 | ||
|
9c1c9f96e1 | ||
|
7657c0f905 | ||
|
d8a0142aee | ||
|
eddc681d64 | ||
|
87a97bc8ec | ||
|
ae81ea2bbc | ||
|
90e580245a | ||
|
8372c9e3ed | ||
|
1fcb8d712b | ||
|
9761566b28 | ||
|
f26c58fa22 | ||
|
6d73f7b767 | ||
|
3c0177c2dd | ||
|
dc4135b506 | ||
|
cefdbe1d08 | ||
|
95e80f0263 | ||
|
013f51f0c4 | ||
|
75911ba4c0 | ||
|
b3edc439cf | ||
|
7ef08579ef | ||
|
b39a86edbd | ||
|
9c151417a8 | ||
|
5d8d9cb19c | ||
|
b986bfd509 | ||
|
28ae10a4aa | ||
|
39fa7d850a | ||
|
25ea221d47 | ||
|
a4e495edd3 | ||
|
8b009304ad | ||
|
249f268fb5 | ||
|
9f3f981ab0 | ||
|
ef912e066b | ||
|
d014872e3b | ||
|
776d892d27 | ||
|
9970398cf2 | ||
|
a5f537f251 | ||
|
6376ba2516 | ||
|
5e0fc3e17f | ||
|
1a068ee191 | ||
|
8226f60fad | ||
|
2e618999d9 | ||
|
bf7a096a18 | ||
|
0d9885a1e0 | ||
|
aca8fd7f3d | ||
|
f5ea4fb6ac | ||
|
7b5c74f81c | ||
|
558e11a364 | ||
|
3d5b3c65de | ||
|
ed9e590498 | ||
|
70fda1009b | ||
|
ceae1f1ad8 | ||
|
8f1eff8782 | ||
|
c1c8c04567 | ||
|
31b4785a4d | ||
|
8e5656729b | ||
|
51893fff09 | ||
|
25d8ba2699 | ||
|
fd5e4b78da | ||
|
f45d0122b0 | ||
|
01cfa4496c | ||
|
82c8b532c0 | ||
|
ee7f79b40c | ||
|
cb7a1bc9c3 | ||
|
52cf4d24d3 | ||
|
ed98613b2d | ||
|
252df0f7a9 | ||
|
116e6fb3c0 | ||
|
efa3aa5cf8 | ||
|
69e9a79ac1 | ||
|
96cf5d2105 | ||
|
f745e22a52 | ||
|
50495ef604 | ||
|
84854d9382 | ||
|
328dc9ea5b | ||
|
30b92efcc6 | ||
|
e87bd16b6b | ||
|
8b41b014ee | ||
|
601cf10fb4 | ||
|
f02ee2af27 | ||
|
c490d6bcd1 | ||
|
64b6b069a4 | ||
|
edd455a772 | ||
|
a54c1af7cc | ||
|
9e1fe22c19 | ||
|
bd033ed5f4 | ||
|
2fd9333fb0 | ||
|
6249d5a85e | ||
|
385de03f40 | ||
|
5bfb2c211a | ||
|
7ee4a8fc0a | ||
|
c73f544a01 | ||
|
370d57cfbc | ||
|
4380d34645 | ||
|
471497e721 | ||
|
16809a53ab | ||
|
6ad0098767 | ||
|
eea17f0905 | ||
|
bd238dcbfa | ||
|
20e2b3beb8 | ||
|
1f890324b4 | ||
|
04fa7d9628 | ||
|
7fd7970ec1 | ||
|
008bc0116d |
12
.github/ISSUE_TEMPLATE/bug_report.md
vendored
12
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -7,27 +7,27 @@ assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
#### Describe the bug
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
#### To Reproduce
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
#### Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
#### Screenshots
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
#### Smartphone (please complete the following information):
|
||||
- Device: [e.g. Samsung S6]
|
||||
- OS: [e.g. Android 6.0]
|
||||
|
||||
**Additional context**
|
||||
#### Additional context
|
||||
- App version and store [e.g. 1.0.0 - F-Droid]
|
||||
- Homeserver: [e.g. matrix.org]
|
||||
|
||||
|
8
.github/ISSUE_TEMPLATE/feature_request.md
vendored
8
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -7,14 +7,14 @@ assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
#### Is your feature request related to a problem? Please describe.
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
#### Describe the solution you'd like.
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
#### Describe alternatives you've considered.
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
#### Additional context
|
||||
Add any other context or screenshots about the feature request here.
|
||||
|
10
.github/ISSUE_TEMPLATE/matrix-sdk.md
vendored
Normal file
10
.github/ISSUE_TEMPLATE/matrix-sdk.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
name: Matrix SDK
|
||||
about: Report issue or ask for a feature regarding the Android Matrix SDK
|
||||
title: "[SDK] "
|
||||
labels: matrix-sdk
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- This issue template should be used by third party application maintainers, to report a bug or to request a feature on the SDK module of the application Element Android-->
|
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,10 +1,10 @@
|
||||
### Pull Request Checklist
|
||||
|
||||
<!-- Please read [CONTRIBUTING.md](https://github.com/vector-im/riotX-android/blob/develop/CONTRIBUTING.md) before submitting your pull request -->
|
||||
<!-- Please read [CONTRIBUTING.md](https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md) before submitting your pull request -->
|
||||
|
||||
- [ ] Changes has been tested on an Android device or Android emulator with API 21
|
||||
- [ ] UI change has been tested on both light and dark themes
|
||||
- [ ] Pull request is based on the develop branch
|
||||
- [ ] Pull request updates [CHANGES.md](https://github.com/vector-im/element-android/blob/develop/CHANGES.md)
|
||||
- [ ] Pull request includes a new file under ./newsfragment. See https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md#changelog
|
||||
- [ ] Pull request includes screenshots or videos if containing UI changes
|
||||
- [ ] Pull request includes a [sign off](https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.md#sign-off)
|
||||
|
23
.github/dependabot.yml
vendored
Normal file
23
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
# Updates for Github Actions used in the repo
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
# Updates for Gradle dependencies used in the app
|
||||
- package-ecosystem: gradle
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
open-pull-requests-limit: 200
|
||||
reviewers:
|
||||
- "bmarty"
|
||||
### ignore:
|
||||
### - dependency-name: com.squareup.okhttp3:logging-interceptor
|
||||
### versions: "> 3.12.10"
|
59
.github/workflows/build.yml
vendored
Normal file
59
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
name: APK Build
|
||||
|
||||
on:
|
||||
pull_request: { }
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
|
||||
jobs:
|
||||
debug:
|
||||
name: Build debug APKs (${{ matrix.target }})
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref != 'refs/heads/main'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target: [ Gplay, Fdroid ]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Assemble ${{ matrix.target }} debug apk
|
||||
run: ./gradlew assemble${{ matrix.target }}Debug --stacktrace
|
||||
- name: Upload ${{ matrix.target }} debug APKs
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: vector-${{ matrix.target }}-debug
|
||||
path: |
|
||||
vector/build/outputs/apk/*/debug/*.apk
|
||||
|
||||
release:
|
||||
name: Build unsigned GPlay APKs
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Assemble GPlay unsigned apk
|
||||
run: ./gradlew clean assembleGplayRelease --stacktrace
|
||||
- name: Upload Gplay unsigned APKs
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: vector-gplay-release-unsigned
|
||||
path: |
|
||||
vector/build/outputs/apk/*/release/*.apk
|
||||
|
||||
# TODO: add exodus checks
|
49
.github/workflows/integration.yml
vendored
Normal file
49
.github/workflows/integration.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
name: Integration Test
|
||||
|
||||
on:
|
||||
pull_request: { }
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
|
||||
jobs:
|
||||
integration-tests:
|
||||
name: Integration Tests (Synapse)
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
api-level: [21, 30]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-
|
||||
${{ runner.os }}-
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Start synapse server
|
||||
run: |
|
||||
python3 -m venv .synapse
|
||||
source .synapse/bin/activate
|
||||
pip install synapse matrix-synapse
|
||||
curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh --no-rate-limit \
|
||||
| sed s/127.0.0.1/0.0.0.0/g | bash
|
||||
- name: Run integration tests on API ${{ matrix.api-level }}
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
# script: ./gradlew -PallWarningsAsErrors=false vector:connectedAndroidTest matrix-sdk-android:connectedAndroidTest
|
||||
script: ./gradlew -PallWarningsAsErrors=false connectedCheck
|
74
.github/workflows/quality.yml
vendored
Normal file
74
.github/workflows/quality.yml
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
name: Code Quality Checks
|
||||
|
||||
on:
|
||||
pull_request: { }
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Project Check Suite
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run code quality check suite
|
||||
run: ./tools/check/check_code_quality.sh
|
||||
|
||||
klint:
|
||||
name: Kotlin Linter
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Run klint
|
||||
run: |
|
||||
curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.36.0/ktlint && chmod a+x ktlint
|
||||
./ktlint --android --experimental -v
|
||||
|
||||
android-lint:
|
||||
name: Android Linter
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Lint analysis of the SDK
|
||||
run: ./gradlew clean :matrix-sdk-android:lintRelease --stacktrace
|
||||
- name: Upload reports
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: linting-report-android-sdk
|
||||
path: matrix-sdk-android/build/reports/*.*
|
||||
|
||||
apk-lint:
|
||||
name: Lint APK (${{ matrix.target }})
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref != 'refs/heads/main'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target: [ Gplay, Fdroid ]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Lint ${{ matrix.target }} release
|
||||
run: ./gradlew clean lint${{ matrix.target }}Release --stacktrace
|
||||
- name: Upload ${{ matrix.target }} linting report
|
||||
uses: actions/upload-artifact@v2
|
||||
if: always()
|
||||
with:
|
||||
name: release-debug-linting-report-${{ matrix.target }}
|
||||
path: |
|
||||
vector/build/reports/*.*
|
23
.github/workflows/tests.yml
vendored
Normal file
23
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Test
|
||||
|
||||
on:
|
||||
pull_request: {}
|
||||
push:
|
||||
branches: [main, develop]
|
||||
|
||||
jobs:
|
||||
unit-tests:
|
||||
name: Run Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Run unit tests
|
||||
run: ./gradlew clean test --stacktrace -PallWarningsAsErrors=false
|
18
.github/workflows/update-gradle-wrapper.yml
vendored
Normal file
18
.github/workflows/update-gradle-wrapper.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
name: Update Gradle Wrapper
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
|
||||
jobs:
|
||||
update-gradle-wrapper:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Update Gradle Wrapper
|
||||
uses: gradle-update/update-gradle-wrapper-action@v1
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
target-branch: develop
|
9
.idea/codeStyles/Project.xml
generated
9
.idea/codeStyles/Project.xml
generated
@@ -7,15 +7,6 @@
|
||||
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="PACKAGES_IMPORT_LAYOUT">
|
||||
<value>
|
||||
<package name="" alias="false" withSubpackages="true" />
|
||||
<package name="java" alias="false" withSubpackages="true" />
|
||||
<package name="javax" alias="false" withSubpackages="true" />
|
||||
<package name="kotlin" alias="false" withSubpackages="true" />
|
||||
<package name="" alias="true" withSubpackages="true" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="ALIGN_IN_COLUMNS_CASE_BRANCH" value="true" />
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT" value="2147483647" />
|
||||
<option name="NAME_COUNT_TO_USE_STAR_IMPORT_FOR_MEMBERS" value="2147483647" />
|
||||
|
6
.idea/dictionaries/bmarty.xml
generated
6
.idea/dictionaries/bmarty.xml
generated
@@ -24,12 +24,18 @@
|
||||
<w>pbkdf</w>
|
||||
<w>pids</w>
|
||||
<w>pkcs</w>
|
||||
<w>previewable</w>
|
||||
<w>previewables</w>
|
||||
<w>pstn</w>
|
||||
<w>riotx</w>
|
||||
<w>signin</w>
|
||||
<w>signout</w>
|
||||
<w>signup</w>
|
||||
<w>snackbar</w>
|
||||
<w>ssss</w>
|
||||
<w>sygnal</w>
|
||||
<w>threepid</w>
|
||||
<w>unpublish</w>
|
||||
<w>unwedging</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
|
46
.travis.yml
46
.travis.yml
@@ -1,4 +1,4 @@
|
||||
# FTR: Configuration on https://travis-ci.org/vector-im/riotX-android/settings
|
||||
# FTR: Configuration on https://travis-ci.org/github/vector-im/element-android/settings
|
||||
#
|
||||
# - Build only if .travis.yml is present -> On
|
||||
# - Limit concurrent jobs -> Off
|
||||
@@ -8,53 +8,11 @@
|
||||
# - Auto cancel branch builds -> On
|
||||
# - Auto cancel pull request builds -> On
|
||||
|
||||
language: android
|
||||
jdk: oraclejdk8
|
||||
sudo: false
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
|
||||
android:
|
||||
components:
|
||||
# Uncomment the lines below if you want to
|
||||
# use the latest revision of Android SDK Tools
|
||||
- tools
|
||||
- platform-tools
|
||||
|
||||
# The BuildTools version used by your project
|
||||
- build-tools-29.0.3
|
||||
|
||||
# The SDK version used to compile your project
|
||||
- android-29
|
||||
|
||||
before_cache:
|
||||
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
||||
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.gradle/caches/
|
||||
- $HOME/.gradle/wrapper/
|
||||
- $HOME/.android/build-cache
|
||||
|
||||
# Build with the development SDK
|
||||
before_script:
|
||||
# Not necessary for the moment
|
||||
# - /bin/sh ./set_debug_env.sh
|
||||
|
||||
# Just build the project for now
|
||||
# Just run a simple script here
|
||||
script:
|
||||
# Build app (assembleGplayRelease assembleFdroidRelease)
|
||||
# Build Android test (assembleAndroidTest) (disabled for now)
|
||||
# Code quality (lintGplayRelease lintFdroidRelease)
|
||||
# Split into two steps because if a task contain Fdroid, PlayService will be disabled
|
||||
# Done by Buildkite now: - ./gradlew clean assembleGplayRelease lintGplayRelease --stacktrace
|
||||
# Done by Buildkite now: - ./gradlew clean assembleFdroidRelease lintFdroidRelease --stacktrace
|
||||
# Run unitary test (Disable for now, see https://travis-ci.org/vector-im/riot-android/builds/502504370)
|
||||
# - ./gradlew testGplayReleaseUnitTest --stacktrace
|
||||
# Other code quality check
|
||||
# Done by Buildkite now: - ./tools/check/check_code_quality.sh
|
||||
- ./tools/travis/check_pr.sh
|
||||
# Check that indonesians file are identical. Due to Android issue, the resource folder must be value-in/, and Weblate export data into value-id/.
|
||||
# Done by Buildkite now: - diff ./vector/src/main/res/values-id/strings.xml ./vector/src/main/res/values-in/strings.xml
|
||||
|
18
AUTHORS.md
18
AUTHORS.md
@@ -1,10 +1,10 @@
|
||||
A full developer contributors list can be found [here](https://github.com/vector-im/riotX-android/graphs/contributors).
|
||||
A full developer contributors list can be found [here](https://github.com/vector-im/element-android/graphs/contributors).
|
||||
|
||||
# Core team:
|
||||
|
||||
Even if we try to be able to work on all the functionalities, we have more knowledge about what we have developed ourselves.
|
||||
|
||||
## Benoit: Android team leader
|
||||
## [Benoit](https://github.com/bmarty): Android team leader
|
||||
|
||||
[@benoit.marty:matrix.org](https://matrix.to/#/@benoit.marty:matrix.org)
|
||||
- Android team leader and project leader, Android developer, GitHub community manager.
|
||||
@@ -12,7 +12,7 @@ Even if we try to be able to work on all the functionalities, we have more knowl
|
||||
- Reviewing and polishing developed features, code quality manager, PRs reviewer, GitHub community manager.
|
||||
- Release manager on the Play Store
|
||||
|
||||
## François: Software architect
|
||||
## [Ganfra](https://github.com/ganfra) (aka François): Software architect
|
||||
|
||||
[@ganfra:matrix.org](https://matrix.to/#/@ganfra:matrix.org)
|
||||
- Software architect, Android developer
|
||||
@@ -20,12 +20,17 @@ Even if we try to be able to work on all the functionalities, we have more knowl
|
||||
- Work mainly on the global architecture of the project.
|
||||
- Specialist of the timeline, and lots of other features.
|
||||
|
||||
## Valere: Product manager, Android developer
|
||||
## [Valere](https://github.com/BillCarsonFr): Product manager, Android developer
|
||||
|
||||
[@valere35:matrix.org](https://matrix.to/#/@valere35:matrix.org)
|
||||
- Product manager, Android developer
|
||||
- Specialist on the crypto implementation.
|
||||
|
||||
## [Onuray](https://github.com/onurays): Android developer
|
||||
|
||||
[@onurays:matrix.org](https://matrix.to/#/@onurays:matrix.org)
|
||||
- Android developer
|
||||
|
||||
# Other contributors
|
||||
|
||||
First of all, we thank all contributors who use Element and report problems on this GitHub project or via the integrated rageshake function.
|
||||
@@ -33,3 +38,8 @@ First of all, we thank all contributors who use Element and report problems on t
|
||||
We do not forget all translators, for their work of translating Element into many languages. They are also the authors of Element.
|
||||
|
||||
Feel free to add your name below, when you contribute to the project!
|
||||
|
||||
Name | Matrix ID | GitHub
|
||||
----------|-----------------------------|--------------------------------------
|
||||
gjpower | @gjpower:matrix.org | [gjpower](https://github.com/gjpower)
|
||||
TR_SLimey | @tr_slimey:an-atom-in.space | [TR-SLimey](https://github.com/TR-SLimey)
|
||||
|
610
CHANGES.md
610
CHANGES.md
@@ -1,3 +1,581 @@
|
||||
Changes in Element 1.1.8 (2021-05-25)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Support Jitsi authentication (#3379)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Space Invite by link not always displayed for public space (#3345)
|
||||
- Wrong copy in share space bottom sheet (#3346)
|
||||
- Fix a problem with database migration on nightly builds (#3335)
|
||||
- Implement a workaround to render <del> and <u> in the timeline (#1817)
|
||||
- Make sure the SDK can retrieve the secret storage if the system is upgraded (#3304)
|
||||
- Spaces | Explore room list: the RoomId is displayed instead of name (#3371)
|
||||
- Spaces | Personal spaces add DM - Web Parity (#3271)
|
||||
- Spaces | Improve 'Leave Space' UX/UI (#3359)
|
||||
- Don't create private spaces with encryption enabled (#3363)
|
||||
- #+ button on lower right when looking at an empty space goes to an empty 'Explore rooms' (#3327)
|
||||
|
||||
Build 🧱:
|
||||
- Compile with Kotlin 1.5.10.
|
||||
- Upgrade some dependencies: gradle wrapper, third party lib, etc.
|
||||
- Sign APK with build tools 30.0.3
|
||||
|
||||
Other changes:
|
||||
- Add documentation on LoginWizard and RegistrationWizard (#3303)
|
||||
- Setup towncrier tool (#3293)
|
||||
|
||||
Changes in Element 1.1.7 (2021-05-12)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- Spaces beta
|
||||
|
||||
Improvements 🙌:
|
||||
- Add ability to install APK from directly from Element (#2381)
|
||||
- Delete and react to stickers (#3250)
|
||||
- Compress video before sending (#442)
|
||||
- Improve file too big error detection (#3245)
|
||||
- User can now select video when selecting Gallery to send attachments to a room
|
||||
- Add option to record a video from the camera
|
||||
- Add the public icon on the rooms in the room list (#3292)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Message states cosmetic changes (#3007)
|
||||
- Fix exception in rxSingle (#3180)
|
||||
- Do not invite the current user when creating a room (#3123)
|
||||
- Fix color issues when the system theme is changed (#2738)
|
||||
- Fix issues on Android 11 (#3067)
|
||||
- Fix issue when opening encrypted files (#3186)
|
||||
- Fix wording issue (#3242)
|
||||
- Fix missing sender information after edits (#3184)
|
||||
- Fix read marker not updating automatically (#3267)
|
||||
- Sent video does not contains duration (#3272)
|
||||
- Properly clean the back stack if the user cancel registration when waiting for email validation
|
||||
- Fix read marker visibility/position when filtering some events
|
||||
- Fix user invitation in case of restricted profile api (#3306)
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- RegistrationWizard.createAccount() parameters are now all optional, following Matrix spec (#3205)
|
||||
|
||||
Build 🧱:
|
||||
- Upgrade to gradle 7
|
||||
- https://github.com/Piasy/BigImageViewer is now hosted on mavenCentral()
|
||||
- Upgrade Realm to version 10.4.0
|
||||
|
||||
Other changes:
|
||||
- New store descriptions
|
||||
- `master` branch has been renamed to `main`. To apply change to your dev environment, run:
|
||||
```sh
|
||||
git branch -m master main
|
||||
git fetch origin
|
||||
git branch -u origin/main main
|
||||
# And optionally
|
||||
git remote prune origin
|
||||
```
|
||||
- Allow cleartext (non-SSL) connections to Matrix servers on LAN hosts (#3166)
|
||||
|
||||
Changes in Element 1.1.6 (2021-04-16)
|
||||
===================================================
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix crash on the timeline
|
||||
- App crashes on "troubleshoot notifications" button (#3187)
|
||||
|
||||
Changes in Element 1.1.5 (2021-04-15)
|
||||
===================================================
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix crash during Realm migration
|
||||
- Fix crash when playing video (#3179)
|
||||
|
||||
Changes in Element 1.1.4 (2021-04-09)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Split network request `/keys/query` into smaller requests (250 users max) (#2925)
|
||||
- Crypto improvement | Bulk send NO_OLM withheld code
|
||||
- Display the room shield in all room setting screens
|
||||
- Improve message with Emoji only detection (#3017)
|
||||
- Picture preview when replying. Also add the image preview in the message detail bottomsheet (#2916)
|
||||
- Api interceptor to allow app developers peek responses (#2986)
|
||||
- Update reactions to Unicode 13.1 (#2998)
|
||||
- Be more robust when parsing some enums
|
||||
- Improve timeline filtering (dissociate membership and profile events, display hidden events when highlighted, fix hidden item/read receipts behavior)
|
||||
- Add better support for empty room name fallback (#3106)
|
||||
- Room list improvements (paging)
|
||||
- Fix quick click action (#3127)
|
||||
- Get Event after a Push for a faster notification display in some conditions
|
||||
- Always try to retry Http requests in case of 429 (#1300)
|
||||
- registration availability endpoint added to matrix-sdk
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix bad theme change for the MainActivity
|
||||
- Handle encrypted reactions (#2509)
|
||||
- Disable URL preview for some domains (#2995)
|
||||
- Fix avatar rendering for DMs, after initial sync (#2693)
|
||||
- Fix mandatory parameter in API (#3065)
|
||||
- If signout request fails, do not start LoginActivity, but restart the app (#3099)
|
||||
- Retain keyword order in emoji import script, and update the generated file (#3147)
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- Several Services have been migrated to coroutines (#2449)
|
||||
- Removes filtering options on Timeline.
|
||||
|
||||
Build 🧱:
|
||||
- Properly exclude gms dependencies in fdroid build flavour which were pulled in through the jitsi SDK (#3125)
|
||||
|
||||
Other changes:
|
||||
- Add version details on the login screen, in debug or developer mode
|
||||
- Migrate Retrofit interface to coroutine calls
|
||||
|
||||
Changes in Element 1.1.3 (2021-03-18)
|
||||
===================================================
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix regression in UpdateTrustWorker (introduced in 1.1.2)
|
||||
- Timeline : Fix ripple effect on text item and fix background color of separators.
|
||||
|
||||
Changes in Element 1.1.2 (2021-03-16) (was not published tp GPlay prod)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Lazy storage of ReadReceipts
|
||||
- Do not load room members in e2e after init sync
|
||||
|
||||
Bugfix 🐛:
|
||||
- Add option to cancel stuck messages at bottom of timeline see #516
|
||||
- Ensure message are decrypted in the room list after a clear cache
|
||||
- Regression: Video will not play upon tap, but only after swipe #2928
|
||||
- Cross signing now works with servers with an explicit port in the servername
|
||||
|
||||
Other changes:
|
||||
- Change formatting on issue templates to proper headings.
|
||||
|
||||
Changes in Element 1.1.1 (2021-03-10) (was not published tp GPlay prod)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Allow non-HTTPS connections to homeservers on Tor (#2941)
|
||||
- Fetch homeserver type and version and display in a new setting screen and add info in rageshakes (#2831)
|
||||
- Improve initial sync performance - split into 2 transactions (#983)
|
||||
- PIP support for Jitsi call (#2418)
|
||||
- Add tooltip for room quick actions
|
||||
- Pre-share session keys when opening a room or start typing (#2771)
|
||||
- Sending is now queuing by room and not uniquely to the session
|
||||
- Improve Snackbar duration (#2929)
|
||||
- Improve sending message state (#2937)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Try to fix crash about UrlPreview (#2640)
|
||||
- Be robust if Event.type is missing (#2946)
|
||||
- Snappier message send status
|
||||
- Fix MainActivity display (#2927)
|
||||
|
||||
Translations 🗣:
|
||||
- All string resources and translations have been moved to the application module. Weblate project for the SDK will be removed.
|
||||
|
||||
Build 🧱:
|
||||
- Update a lot of dependencies, with the help of dependabot.
|
||||
- Add a script to download and install APK from the CI
|
||||
|
||||
Other changes:
|
||||
- Rework edition of event management
|
||||
|
||||
Changes in Element 1.1.0 (2021-02-19)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- VoIP : support for VoIP V1 protocol, transfer call and dial-pad
|
||||
|
||||
Improvements 🙌:
|
||||
- VoIP : new tiles in timeline
|
||||
- Improve room profile UX
|
||||
- Upgrade Jitsi library from 2.9.3 to 3.1.0
|
||||
- a11y improvements
|
||||
|
||||
Bugfix 🐛:
|
||||
- VoIP : fix audio devices output
|
||||
- Fix crash after initial sync on Dendrite
|
||||
- Fix crash reported by PlayStore (#2707)
|
||||
- Ignore url override from credential if it is not valid (#2822)
|
||||
- Fix crash when deactivating an account
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- Migrate AuthenticationService API to coroutines (#2449)
|
||||
|
||||
Other changes:
|
||||
- New Dev Tools panel for developers
|
||||
- Fix typos in CHANGES.md (#2811)
|
||||
- Colors rework: first step: merge file `colors_riot.xml` to file `colors_riotx.xml` and rename the file to `colors.xml`
|
||||
|
||||
Changes in Element 1.0.17 (2021-02-09)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Create a WidgetItemFactory and use it for better rendering of Jitsi widget change (video conference)
|
||||
- Open image from URL Preview (#2705)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Bug in WidgetContent.computeURL() (#2767)
|
||||
- Duplicate thumbs | Mobile reactions for 👍 and 👎 are not the same as web (#2776)
|
||||
- Join room by alias other federation error (#2778)
|
||||
- HTML unescaping for URL preview (#2766)
|
||||
- URL preview on reply fallback (#2756)
|
||||
- RTL: some arrows should be rotated in RTL (#2757)
|
||||
- Properly delete objects from Realm DB (#2765)
|
||||
|
||||
Build 🧱:
|
||||
- Upgrade build tools
|
||||
|
||||
Other changes:
|
||||
- Change app name from "Element (Riot.im)" to "Element"
|
||||
|
||||
Changes in Element 1.0.16 (2021-02-04)
|
||||
===================================================
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix crash on API < 30 and light theme (#2774)
|
||||
|
||||
Changes in Element 1.0.15 (2021-02-03)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- Social Login support
|
||||
|
||||
Improvements 🙌:
|
||||
- SSO support for cross signing (#1062)
|
||||
- Deactivate account when logged in with SSO (#1264)
|
||||
- SSO UIA doesn't work (#2754)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix clear cache issue: sometimes, after a clear cache, there is still a token, so the init sync service is not started.
|
||||
- Sidebar too large in horizontal orientation or tablets (#475)
|
||||
- UrlPreview should be updated when the url is edited and changed (#2678)
|
||||
- When receiving a new pepper from identity server, use it on the next hash lookup (#2708)
|
||||
- Crashes reported by PlayStore (new in 1.0.14) (#2707)
|
||||
- Widgets: Support $matrix_widget_id parameter (#2748)
|
||||
- Data for Worker overload (#2721)
|
||||
- Fix multiple tasks
|
||||
- Object deletion in database is not complete (#2759)
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- Increase targetSdkVersion to 30 (#2600)
|
||||
|
||||
Build 🧱:
|
||||
- Compile with Android SDK 30 (Android 11)
|
||||
|
||||
Other changes:
|
||||
- Update Dagger to 2.31 version so we can use the embedded AssistedInject feature
|
||||
|
||||
Changes in Element 1.0.14 (2021-01-15)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- Enable url previews for notices (#2562)
|
||||
- Edit room permissions (#2471)
|
||||
|
||||
Improvements 🙌:
|
||||
- Add System theme option and set as default (#904, #2387)
|
||||
- Store megolm outbound session to improve send time of first message after app launch.
|
||||
- Warn user when they are leaving a not public room (#1460)
|
||||
- Option to disable emoji keyboard (#2563)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Unspecced msgType field in m.sticker (#2580)
|
||||
- Wait for all room members to be known before sending a message to a e2e room (#2518)
|
||||
- Url previews sometimes attached to wrong message (#2561)
|
||||
- Room Topic not displayed correctly after visiting a link (#2551)
|
||||
- Hiding membership events works the exact opposite (#2603)
|
||||
- Tapping drawer having more than 1 room in notifications gives "malformed link" error (#2605)
|
||||
- Sent image not displayed when opened immediately after sending (#409)
|
||||
- Initial sync is not retried correctly when there is some network error. (#2632)
|
||||
- Fix switch theme issue, and white field issue (#2599, #2528)
|
||||
- Fix request too large Uri error when joining a room
|
||||
|
||||
Translations 🗣:
|
||||
- New language supported: Hebrew
|
||||
|
||||
Build 🧱:
|
||||
- Remove dependency to org.greenrobot.eventbus library
|
||||
|
||||
Other changes:
|
||||
- Migrate to ViewBindings (#1072)
|
||||
|
||||
Changes in Element 1.0.13 (2020-12-18)
|
||||
===================================================
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix MSC2858 implementation details (#2540)
|
||||
|
||||
Changes in Element 1.0.12 (2020-12-15)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- Add room aliases management, and room directory visibility management in a dedicated screen (#1579, #2428)
|
||||
- Room setting: update join rules and guest access (#2442)
|
||||
- Url preview (#481)
|
||||
- Store encrypted file in cache and cleanup decrypted file at each app start (#2512)
|
||||
- Emoji Keyboard (#2520)
|
||||
- Social login (#2452)
|
||||
- Support for chat effects in timeline (confetti, snow) (#2535)
|
||||
|
||||
Improvements 🙌:
|
||||
- Add Setting Item to Change PIN (#2462)
|
||||
- Improve room history visibility setting UX (#1579)
|
||||
- Matrix.to deeplink custom scheme support
|
||||
- Homeserver history (#1933)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix cancellation of sending event (#2438)
|
||||
- Double bottomsheet effect after verify with passphrase
|
||||
- EditText cursor jumps to the start while typing fast (#2469)
|
||||
- UTD for events before invitation if member state events are hidden (#2486)
|
||||
- No known servers error is given when joining rooms on new Gitter bridge (#2516)
|
||||
- Show preview when sending attachment from the keyboard (#2440)
|
||||
- Do not compress GIFs (#1616, #1254)
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- StateService now exposes suspendable function instead of using MatrixCallback.
|
||||
- RawCacheStrategy has been moved and renamed to CacheStrategy
|
||||
- FileService: remove useless FileService.DownloadMode
|
||||
|
||||
Build 🧱:
|
||||
- Upgrade some dependencies and Kotlin version
|
||||
- Use fragment-ktx and preference-ktx dependencies (fix lint issue KtxExtensionAvailable)
|
||||
- Upgrade Realm dependency to 10.1.2
|
||||
|
||||
Other changes:
|
||||
- Remove "Status.im" theme #2424
|
||||
- Log HTTP requests and responses in production (level BASIC, i.e. without any private data)
|
||||
|
||||
Changes in Element 1.0.11 (2020-11-27)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- Create DMs with users by scanning their QR code (#2025)
|
||||
- Add Invite friends quick invite actions (#2348)
|
||||
- Add friend by scanning QR code, show your code to friends (#2025)
|
||||
|
||||
Improvements 🙌:
|
||||
- New room creation tile with quick action (#2346)
|
||||
- Open an existing DM instead of creating a new one (#2319)
|
||||
- Use RoomMember instead of User in the context of a Room.
|
||||
- Ask for explicit user consent to send their contact details to the identity server (#2375)
|
||||
- Handle events of type "m.room.server_acl" (#890)
|
||||
- Room creation form: add advanced section to disable federation (#1314)
|
||||
- Move "Enable Encryption" from room setting screen to room profile screen (#2394)
|
||||
- Home empty screens quick design update (#2347)
|
||||
- Improve Invite user screen (seamless search for matrix ID)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix crash on AttachmentViewer (#2365)
|
||||
- Exclude yourself when decorating rooms which are direct or don't have more than 2 users (#2370)
|
||||
- F-Droid version: ensure timeout of sync request can be more than 60 seconds (#2169)
|
||||
- Fix issue when restoring draft after sharing (#2287)
|
||||
- Fix issue when updating the avatar of a room (new avatar vanishing)
|
||||
- Discard change dialog displayed by mistake when avatar has been updated
|
||||
- Try to fix cropped image in timeline (#2126)
|
||||
- Registration: annoying error message scares every new user when they add an email (#2391)
|
||||
- Fix jitsi integration for those with non-vanilla dialler frameworks
|
||||
- Update profile has no effect if user is in zero rooms
|
||||
- Fix issues with matrix.to deep linking (#2349)
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- AccountService now exposes suspendable function instead of using MatrixCallback (#2354).
|
||||
Note: We will incrementally migrate all the SDK API in a near future (#2449)
|
||||
|
||||
Test:
|
||||
- Add `allScreensTest` to cover all screens of the app
|
||||
|
||||
Other changes:
|
||||
- Upgrade Realm dependency to 10.0.0
|
||||
|
||||
Changes in Element 1.0.10 (2020-11-04)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Rework sending Event management (#154)
|
||||
- New room creation screen: set topic and avatar in the room creation form (#2078)
|
||||
- Toggle Low priority tag (#1490)
|
||||
- Add option to send with enter (#1195)
|
||||
- Use Hardware keyboard enter to send message (use shift-enter for new line) (#1881, #1440)
|
||||
- Edit and remove icons are now visible on image attachment preview screen (#2294)
|
||||
- Room profile: BigImageViewerActivity now only display the image. Use the room setting to change or delete the room Avatar
|
||||
- Better visibility of text reactions in dark theme (#1118)
|
||||
- Room member profile: Add action to create (or open) a DM (#2310)
|
||||
- Prepare changelog for F-Droid (#2296)
|
||||
- Add graphic resources for F-Droid (#812, #2220)
|
||||
- Highlight text in the body of the displayed result (#2200)
|
||||
- Considerably faster QR-code bitmap generation (#2331)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fixed ringtone handling (#2100 & #2246)
|
||||
- Messages encrypted with no way to decrypt after SDK update from 0.18 to 1.0.0 (#2252)
|
||||
- Incoming call continues to ring if call is answered on another device (#1921)
|
||||
- Search Result | scroll jumps after pagination (#2238)
|
||||
- Badly formatted mentions in body (#1506)
|
||||
- KeysBackup: Avoid using `!!` (#2262)
|
||||
- Two elements in the task switcher (#2299)
|
||||
|
||||
Changes in Element 1.0.9 (2020-10-16)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- Search messages in a room - phase 1 (#2110)
|
||||
- Hide encrypted history (before user is invited). Can be shown if wanted in developer settings
|
||||
- Changed rainbow algorithm
|
||||
|
||||
Improvements 🙌:
|
||||
- Wording differentiation for direct rooms (#2176)
|
||||
- PIN code: request PIN code if phone has been locked
|
||||
- Small optimisation of scrolling experience in timeline (#2114)
|
||||
- Allow user to reset cross signing if he has no way to recover (#2052)
|
||||
- Ability to share text
|
||||
- Create home shortcut for any room (#1525)
|
||||
- Can't confirm email due to killing by Android (#2021)
|
||||
- Add a menu item to open the setting in room list and in room (#2171)
|
||||
- Add a menu item in the timeline as a shortcut to invite user (#2171)
|
||||
- Drawer: move settings access and add sign out action (#2171)
|
||||
- Filter room member (and banned users) by name (#2184)
|
||||
- Implement "Jump to read receipt" and "Mention" actions on the room member profile screen
|
||||
- Direct share (#2029)
|
||||
- Add FAB to room members list (#2226)
|
||||
- Add Sygnal API implementation to test is Push are correctly received
|
||||
- Add PushGateway API implementation to test if Push are correctly received
|
||||
- Cross signing: shouldn't offer to verify with other session when there is not. (#2227)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Improve support for image/audio/video/file selection with intent changes (#1376)
|
||||
- Fix Splash layout on small screens
|
||||
- Invalid popup when pressing back (#1635)
|
||||
- Simplifies draft management and should fix bunch of draft issues (#952, #683)
|
||||
- Very long topic cannot be fully visible (#1957)
|
||||
- Properly detect cross signing keys reset
|
||||
- Don't set presence when handling a push notification or polling (#2156)
|
||||
- Be robust against `StrandHogg` task injection
|
||||
- Clear alerts if user sign out
|
||||
- Fix rows are hidden in Textinput (#2234)
|
||||
- Uploading a file to a room caused it to have a info.size of -1 (#2141)
|
||||
|
||||
Translations 🗣:
|
||||
- Move store data to `/fastlane/metadata/android` (#812)
|
||||
- Weblate is now hosted at https://translate.element.io
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- Search messages in a room by using Session.searchService() or Room.search()
|
||||
|
||||
Build 🧱:
|
||||
- Use Update Gradle Wrapper Action
|
||||
- Updates Gradle Wrapper from 5.6.4 to 6.6.1. (#2193)
|
||||
- Upgrade kotlin version from `1.3.72` to `1.4.10` and kotlin coroutines version from `1.3.8` to `1.3.9`
|
||||
- Upgrade build tools from `3.5.3` to `4.0.1`, then to `4.1.0`
|
||||
- Upgrade com.google.gms:google-services from `4.3.2` to `4.3.4`
|
||||
- Upgrade Moshi to `1.11.0`, Dagger to `2.29.1`, Epoxy to `4.1.0`
|
||||
|
||||
Other changes:
|
||||
- Added registration/verification automated UI tests
|
||||
- Create a script to help getting public information form any homeserver
|
||||
|
||||
Changes in Element 1.0.8 (2020-09-25)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Add "show password" in import Megolm keys dialog
|
||||
- Visually disable call buttons in menu and prohibit calling when permissions are insufficient (#2112)
|
||||
- Better management of requested permissions (#2048)
|
||||
- Add a setting to show timestamp for all messages (#2123)
|
||||
- Use cache for user color
|
||||
- Allow using an outdated homeserver, at user's risk (#1972)
|
||||
- Restore small logo on login screens and fix scrolling issue on those screens
|
||||
- PIN Code Improvements: Add more settings: biometrics, grace period, notification content (#1985)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Long message cannot be sent/takes infinite time & blocks other messages (#1397)
|
||||
- Fix crash when wellknown are malformed, or redirect to some HTML content (reported by rageshakes)
|
||||
- User Verification in DM not working
|
||||
- Manual import of Megolm keys does back up the imported keys
|
||||
- Auto scrolling to the latest message when sending (#2094)
|
||||
- Fix incorrect permission check when creating widgets (#2137)
|
||||
- Pin code: user has to enter pin code twice (#2005)
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- Rename `tryThis` to `tryOrNull`
|
||||
|
||||
Other changes:
|
||||
- Add an advanced action to reset an account data entry
|
||||
|
||||
Changes in Element 1.0.7 (2020-09-17)
|
||||
===================================================
|
||||
|
||||
Improvements 🙌:
|
||||
- Handle date formatting properly (show time am/pm if needed, display year when needed)
|
||||
- Improve F-Droid Notification (#2055)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Clear the notification when the event is read elsewhere (#1822)
|
||||
- Speakerphone is not used for ringback tone (#1644, #1645)
|
||||
- Back camera preview is not mirrored anymore (#1776)
|
||||
- Various report of people that cannot play video (#2107)
|
||||
- Rooms incorrectly marked as unread (#588)
|
||||
- Allow users to show/hide room member state events (#1231)
|
||||
- Fix stuck on loader when launching home
|
||||
|
||||
SDK API changes ⚠️:
|
||||
- Create a new RawService to get plain data from the server.
|
||||
|
||||
Other changes:
|
||||
- Performance: share Realm instance used on UI thread and improve SharedPreferences reading time.
|
||||
|
||||
Changes in Element 1.0.6 (2020-09-08)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
- List phone numbers and emails added to the Matrix account, and add emails and phone numbers to account (#44, #45)
|
||||
|
||||
Improvements 🙌:
|
||||
- You can now join room through permalink and within room directory search
|
||||
- Add long click gesture to copy userId, user display name, room name, room topic and room alias (#1774)
|
||||
- Fix several issues when uploading big files (#1889)
|
||||
- Do not propose to verify session if there is only one session and 4S is not configured (#1901)
|
||||
- Call screen does not use proximity sensor (#1735)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Display name not shown under Settings/General (#1926)
|
||||
- Editing message forgets line breaks and markdown (#1939)
|
||||
- Words containing my name should not trigger notifications (#1781)
|
||||
- Fix changing language issue
|
||||
- Fix FontSize issue (#1483, #1787)
|
||||
- Fix bad color for settings icon on Android < 24 (#1786)
|
||||
- Change user or room avatar: when selecting Gallery, I'm not proposed to crop the selected image (#1590)
|
||||
- Loudspeaker is always used (#1685)
|
||||
- Fix uploads still don't work with room v6 (#1879)
|
||||
- Can't handle ongoing call events in background (#1992)
|
||||
- Handle room, user and group links by the Element app (#1795)
|
||||
- Update associated site domain (#1833)
|
||||
- Crash / Attachment viewer: Cannot draw a recycled Bitmap #2034
|
||||
- Login with Matrix-Id | Autodiscovery fails if identity server is invalid and Homeserver ok (#2027)
|
||||
- Support for image compression on Android 10
|
||||
- Verification popup won't show
|
||||
- Android 6: App crash when read Contact permission is granted (#2064)
|
||||
- JSON for verification events leaks in to the room list (#1246)
|
||||
- Replies to poll appears in timeline as unsupported events during sending (#1004)
|
||||
|
||||
Translations 🗣:
|
||||
- The SDK is now using SAS string translations from [Weblate Matrix-doc project](https://translate.element.io/projects/matrix-doc/) (#1909)
|
||||
- New translation to kabyle
|
||||
|
||||
Build 🧱:
|
||||
- Some dependencies have been upgraded (coroutine, recyclerView, appCompat, core-ktx, firebase-messaging)
|
||||
- Buildkite:
|
||||
New pipeline location: https://github.com/matrix-org/pipelines/blob/master/element-android/pipeline.yml
|
||||
New build location: https://buildkite.com/matrix-dot-org/element-android
|
||||
|
||||
Other changes:
|
||||
- Use File extension functions to make code more concise (#1996)
|
||||
- Create a script to import SAS strings (#1909)
|
||||
- Support `data-mx-[bg-]color` attributes on `<font>` tags.
|
||||
|
||||
Changes in Element 1.0.5 (2020-08-21)
|
||||
===================================================
|
||||
|
||||
@@ -75,7 +653,7 @@ Improvements 🙌:
|
||||
- Sending events is now retried only 3 times, so we avoid blocking the sending queue too long.
|
||||
- Display warning when fail to send events in room list
|
||||
- Improve UI of edit role action in member profile
|
||||
- Moderation | New screen to display list of banned users in room settings, with unban action
|
||||
- Moderation | New screen to display list of banned users in room settings, with unban action
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix theme issue on Room directory screen (#1613)
|
||||
@@ -795,33 +1373,3 @@ Changes in RiotX 0.1.0 (2019-07-11)
|
||||
First release!
|
||||
|
||||
Mode details here: https://medium.com/@RiotChat/introducing-the-riotx-beta-for-android-b17952e8f771
|
||||
|
||||
|
||||
=======================================================
|
||||
+ TEMPLATE WHEN PREPARING A NEW RELEASE +
|
||||
=======================================================
|
||||
|
||||
|
||||
Changes in Element 1.X.X (2020-XX-XX)
|
||||
===================================================
|
||||
|
||||
Features ✨:
|
||||
-
|
||||
|
||||
Improvements 🙌:
|
||||
-
|
||||
|
||||
Bugfix 🐛:
|
||||
-
|
||||
|
||||
Translations 🗣:
|
||||
-
|
||||
|
||||
SDK API changes ⚠️:
|
||||
-
|
||||
|
||||
Build 🧱:
|
||||
-
|
||||
|
||||
Other changes:
|
||||
-
|
||||
|
@@ -29,7 +29,7 @@ To create a new screen:
|
||||
- Then right click on the package, and select `New/New Vector/RiotX Feature`.
|
||||
- Follow the Wizard, especially replace `Main` by something more relevant to your feature.
|
||||
- Click on `Finish`.
|
||||
- Remaining steps are described as TODO in the generated files, or will be pointed out by the compilator, or at runtime :)
|
||||
- Remaining steps are described as TODO in the generated files, or will be pointed out by the compiler, or at runtime :)
|
||||
|
||||
Note that if the templates are modified, the only things to do is to restart Android Studio for the change to take effect.
|
||||
|
||||
@@ -40,7 +40,7 @@ For now, the Matrix SDK and the Element application are in the same project. So
|
||||
## I want to help translating Element
|
||||
|
||||
If you want to fix an issue with an English string, please submit a PR.
|
||||
If you want to fix an issue in other languages, or add a missing translation, or even add a new language, please use [Weblate](https://translate.riot.im/projects/element-android/).
|
||||
If you want to fix an issue in other languages, or add a missing translation, or even add a new language, please use [Weblate](https://translate.element.io/projects/element-android/).
|
||||
|
||||
## I want to submit a PR to fix an issue
|
||||
|
||||
@@ -51,9 +51,21 @@ If an issue does not exist yet, it may be relevant to open a new issue and let u
|
||||
|
||||
This project is full Kotlin. Please do not write Java classes.
|
||||
|
||||
### CHANGES.md
|
||||
### Changelog
|
||||
|
||||
Please add a line to the top of the file `CHANGES.md` describing your change.
|
||||
Please create at least one file under ./newsfragment containing details about your change. Towncrier will be used when preparing the release.
|
||||
|
||||
Towncrier says to use the PR number for the filename, but the issue number is also fine.
|
||||
|
||||
Supported filename extensions are:
|
||||
|
||||
- ``.feature``: Signifying a new feature in Element Android or in the Matrix SDK.
|
||||
- ``.bugfix``: Signifying a bug fix.
|
||||
- ``.doc``: Signifying a documentation improvement.
|
||||
- ``.removal``: Signifying a deprecation or removal of public API. Can be used to notifying about API change in the Matrix SDK
|
||||
- ``.misc``: A ticket has been closed, but it is not of interest to users. Note that in this case, the content of the file will not be output, but just the issue/PR number.
|
||||
|
||||
See https://github.com/twisted/towncrier#news-fragments if you need more details.
|
||||
|
||||
### Code quality
|
||||
|
||||
|
18
README.md
18
README.md
@@ -1,9 +1,9 @@
|
||||
[](https://buildkite.com/matrix-dot-org/riotx-android/builds?branch=develop)
|
||||
[](https://translate.riot.im/engage/element-android/?utm_source=widget)
|
||||
[](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop)
|
||||
[](https://translate.element.io/engage/element-android/?utm_source=widget)
|
||||
[](https://matrix.to/#/#element-android:matrix.org)
|
||||
[](https://sonarcloud.io/dashboard?id=vector.android.riotx)
|
||||
[](https://sonarcloud.io/dashboard?id=vector.android.riotx)
|
||||
[](https://sonarcloud.io/dashboard?id=vector.android.riotx)
|
||||
[](https://sonarcloud.io/dashboard?id=im.vector.app.android)
|
||||
[](https://sonarcloud.io/dashboard?id=im.vector.app.android)
|
||||
[](https://sonarcloud.io/dashboard?id=im.vector.app.android)
|
||||
|
||||
# Element Android
|
||||
|
||||
@@ -14,11 +14,13 @@ It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-androi
|
||||
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app)
|
||||
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app)
|
||||
|
||||
Nightly build: [](https://buildkite.com/matrix-dot-org/riotx-android/builds?branch=develop)
|
||||
Nightly build: [](https://buildkite.com/matrix-dot-org/element-android/builds?branch=develop)
|
||||
|
||||
# New Android SDK
|
||||
|
||||
Element is based on a new Android SDK fully written in Kotlin (like Element). In order to make the early development as fast as possible, Element and the new SDK currently share the same git repository. We will make separate repos once the SDK is stable enough.
|
||||
Element is based on a new Android SDK fully written in Kotlin (like Element). In order to make the early development as fast as possible, Element and the new SDK currently share the same git repository.
|
||||
|
||||
At each Element release, the SDK module is copied to a dedicated repository: https://github.com/matrix-org/matrix-android-sdk2. That way, third party apps can add a regular gradle dependency to use it. So more details on how to do that here: https://github.com/matrix-org/matrix-android-sdk2.
|
||||
|
||||
# Roadmap
|
||||
|
||||
@@ -27,6 +29,6 @@ The team will work to add them on a regular basis.
|
||||
|
||||
## Contributing
|
||||
|
||||
Please refer to [CONTRIBUTING.md](https://github.com/vector-im/riotX-android/blob/develop/CONTRIBUTING.md) if you want to contribute on Matrix Android projects!
|
||||
Please refer to [CONTRIBUTING.md](https://github.com/vector-im/element-android/blob/develop/CONTRIBUTING.md) if you want to contribute on Matrix Android projects!
|
||||
|
||||
Come chat with the community in the dedicated Matrix [room](https://matrix.to/#/#element-android:matrix.org).
|
||||
|
@@ -16,28 +16,13 @@
|
||||
|
||||
apply plugin: 'com.android.library'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-android-extensions'
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
maven {
|
||||
url 'https://jitpack.io'
|
||||
content {
|
||||
// PhotoView
|
||||
includeGroupByRegex 'com\\.github\\.chrisbanes'
|
||||
}
|
||||
}
|
||||
jcenter()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 29
|
||||
compileSdkVersion 30
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 29
|
||||
targetSdkVersion 30
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
@@ -55,24 +40,22 @@ android {
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
viewBinding true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.github.chrisbanes:PhotoView:2.0.0'
|
||||
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
|
||||
|
||||
implementation 'io.reactivex.rxjava2:rxkotlin:2.3.0'
|
||||
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0'
|
||||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
||||
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
implementation 'androidx.core:core-ktx:1.3.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.1.0'
|
||||
implementation 'com.google.android.material:material:1.1.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.1.0'
|
||||
implementation 'androidx.navigation:navigation-ui-ktx:2.1.0'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||
implementation 'androidx.core:core-ktx:1.3.2'
|
||||
implementation 'androidx.appcompat:appcompat:1.3.0'
|
||||
implementation "androidx.recyclerview:recyclerview:1.2.0"
|
||||
|
||||
implementation 'com.google.android.material:material:1.3.0'
|
||||
}
|
@@ -17,14 +17,17 @@
|
||||
package im.vector.lib.attachmentviewer
|
||||
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.ProgressBar
|
||||
import im.vector.lib.attachmentviewer.databinding.ItemAnimatedImageAttachmentBinding
|
||||
|
||||
class AnimatedImageViewHolder constructor(itemView: View) :
|
||||
BaseViewHolder(itemView) {
|
||||
|
||||
val touchImageView: ImageView = itemView.findViewById(R.id.imageView)
|
||||
val imageLoaderProgress: ProgressBar = itemView.findViewById(R.id.imageLoaderProgress)
|
||||
val views = ItemAnimatedImageAttachmentBinding.bind(itemView)
|
||||
|
||||
internal val target = DefaultImageLoaderTarget(this, this.touchImageView)
|
||||
internal val target = DefaultImageLoaderTarget(this, views.imageView)
|
||||
|
||||
override fun onRecycled() {
|
||||
super.onRecycled()
|
||||
views.imageView.setImageDrawable(null)
|
||||
}
|
||||
}
|
||||
|
@@ -18,58 +18,71 @@
|
||||
package im.vector.lib.attachmentviewer
|
||||
|
||||
import android.graphics.Color
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.GestureDetector
|
||||
import android.view.MotionEvent
|
||||
import android.view.ScaleGestureDetector
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.WindowInsets
|
||||
import android.view.WindowInsetsController
|
||||
import android.view.WindowManager
|
||||
import android.widget.ImageView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.GestureDetectorCompat
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updatePadding
|
||||
import androidx.transition.TransitionManager
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import kotlinx.android.synthetic.main.activity_attachment_viewer.*
|
||||
import im.vector.lib.attachmentviewer.databinding.ActivityAttachmentViewerBinding
|
||||
|
||||
import java.lang.ref.WeakReference
|
||||
import kotlin.math.abs
|
||||
|
||||
abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventListener {
|
||||
|
||||
lateinit var pager2: ViewPager2
|
||||
lateinit var imageTransitionView: ImageView
|
||||
lateinit var transitionImageContainer: ViewGroup
|
||||
protected val pager2: ViewPager2
|
||||
get() = views.attachmentPager
|
||||
protected val imageTransitionView: ImageView
|
||||
get() = views.transitionImageView
|
||||
protected val transitionImageContainer: ViewGroup
|
||||
get() = views.transitionImageContainer
|
||||
|
||||
var topInset = 0
|
||||
var bottomInset = 0
|
||||
var systemUiVisibility = true
|
||||
private var topInset = 0
|
||||
private var bottomInset = 0
|
||||
private var systemUiVisibility = true
|
||||
|
||||
private var overlayView: View? = null
|
||||
set(value) {
|
||||
if (value == overlayView) return
|
||||
overlayView?.let { rootContainer.removeView(it) }
|
||||
rootContainer.addView(value)
|
||||
overlayView?.let { views.rootContainer.removeView(it) }
|
||||
views.rootContainer.addView(value)
|
||||
value?.updatePadding(top = topInset, bottom = bottomInset)
|
||||
field = value
|
||||
}
|
||||
|
||||
private lateinit var views: ActivityAttachmentViewerBinding
|
||||
|
||||
private lateinit var swipeDismissHandler: SwipeToDismissHandler
|
||||
private lateinit var directionDetector: SwipeDirectionDetector
|
||||
private lateinit var scaleDetector: ScaleGestureDetector
|
||||
private lateinit var gestureDetector: GestureDetectorCompat
|
||||
|
||||
var currentPosition = 0
|
||||
private set
|
||||
|
||||
private var swipeDirection: SwipeDirection? = null
|
||||
|
||||
private fun isScaled() = attachmentsAdapter.isScaled(currentPosition)
|
||||
|
||||
private val attachmentsAdapter = AttachmentsAdapter()
|
||||
|
||||
private var wasScaled: Boolean = false
|
||||
private var isSwipeToDismissAllowed: Boolean = true
|
||||
private lateinit var attachmentsAdapter: AttachmentsAdapter
|
||||
private var isOverlayWasClicked = false
|
||||
|
||||
// private val shouldDismissToBottom: Boolean
|
||||
@@ -86,26 +99,16 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
// This is important for the dispatchTouchEvent, if not we must correct
|
||||
// the touch coordinates
|
||||
window.decorView.systemUiVisibility = (
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
or View.SYSTEM_UI_FLAG_IMMERSIVE)
|
||||
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
|
||||
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
|
||||
setDecorViewFullScreen()
|
||||
|
||||
setContentView(R.layout.activity_attachment_viewer)
|
||||
attachmentPager.orientation = ViewPager2.ORIENTATION_HORIZONTAL
|
||||
attachmentsAdapter = AttachmentsAdapter()
|
||||
attachmentPager.adapter = attachmentsAdapter
|
||||
imageTransitionView = transitionImageView
|
||||
transitionImageContainer = findViewById(R.id.transitionImageContainer)
|
||||
pager2 = attachmentPager
|
||||
views = ActivityAttachmentViewerBinding.inflate(layoutInflater)
|
||||
setContentView(views.root)
|
||||
views.attachmentPager.orientation = ViewPager2.ORIENTATION_HORIZONTAL
|
||||
views.attachmentPager.adapter = attachmentsAdapter
|
||||
directionDetector = createSwipeDirectionDetector()
|
||||
gestureDetector = createGestureDetector()
|
||||
|
||||
attachmentPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
||||
views.attachmentPager.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {
|
||||
override fun onPageScrollStateChanged(state: Int) {
|
||||
isImagePagerIdle = state == ViewPager2.SCROLL_STATE_IDLE
|
||||
}
|
||||
@@ -116,19 +119,44 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
})
|
||||
|
||||
swipeDismissHandler = createSwipeToDismissHandler()
|
||||
rootContainer.setOnTouchListener(swipeDismissHandler)
|
||||
rootContainer.viewTreeObserver.addOnGlobalLayoutListener { swipeDismissHandler.translationLimit = dismissContainer.height / 4 }
|
||||
views.rootContainer.setOnTouchListener(swipeDismissHandler)
|
||||
views.rootContainer.viewTreeObserver.addOnGlobalLayoutListener { swipeDismissHandler.translationLimit = views.dismissContainer.height / 4 }
|
||||
|
||||
scaleDetector = createScaleGestureDetector()
|
||||
|
||||
ViewCompat.setOnApplyWindowInsetsListener(rootContainer) { _, insets ->
|
||||
overlayView?.updatePadding(top = insets.systemWindowInsetTop, bottom = insets.systemWindowInsetBottom)
|
||||
topInset = insets.systemWindowInsetTop
|
||||
bottomInset = insets.systemWindowInsetBottom
|
||||
ViewCompat.setOnApplyWindowInsetsListener(views.rootContainer) { _, insets ->
|
||||
val systemBarsInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())
|
||||
|
||||
overlayView?.updatePadding(top = systemBarsInsets.top, bottom = systemBarsInsets.bottom)
|
||||
topInset = systemBarsInsets.top
|
||||
bottomInset = systemBarsInsets.bottom
|
||||
insets
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun setDecorViewFullScreen() {
|
||||
// This is important for the dispatchTouchEvent, if not we must correct
|
||||
// the touch coordinates
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
// New API instead of SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN and SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
window.setDecorFitsSystemWindows(false)
|
||||
// New API instead of SYSTEM_UI_FLAG_IMMERSIVE
|
||||
window.decorView.windowInsetsController?.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_BARS_BY_SWIPE
|
||||
// New API instead of FLAG_TRANSLUCENT_STATUS
|
||||
window.statusBarColor = ContextCompat.getColor(this, R.color.half_transparent_status_bar)
|
||||
// new API instead of FLAG_TRANSLUCENT_NAVIGATION
|
||||
window.navigationBarColor = ContextCompat.getColor(this, R.color.half_transparent_status_bar)
|
||||
} else {
|
||||
window.decorView.systemUiVisibility = (
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
or View.SYSTEM_UI_FLAG_IMMERSIVE)
|
||||
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
|
||||
window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
|
||||
}
|
||||
}
|
||||
|
||||
fun onSelectedPositionChanged(position: Int) {
|
||||
attachmentsAdapter.recyclerView?.findViewHolderForAdapterPosition(currentPosition)?.let {
|
||||
(it as? BaseViewHolder)?.onSelected(false)
|
||||
@@ -170,7 +198,7 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
if (swipeDirection == null && (scaleDetector.isInProgress || ev.pointerCount > 1 || wasScaled)) {
|
||||
wasScaled = true
|
||||
// Log.v("ATTACHEMENTS", "dispatch to pager")
|
||||
return attachmentPager.dispatchTouchEvent(ev)
|
||||
return views.attachmentPager.dispatchTouchEvent(ev)
|
||||
}
|
||||
|
||||
// Log.v("ATTACHEMENTS", "is current item scaled ${isScaled()}")
|
||||
@@ -196,16 +224,16 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
private fun handleEventActionDown(event: MotionEvent) {
|
||||
swipeDirection = null
|
||||
wasScaled = false
|
||||
attachmentPager.dispatchTouchEvent(event)
|
||||
views.attachmentPager.dispatchTouchEvent(event)
|
||||
|
||||
swipeDismissHandler.onTouch(rootContainer, event)
|
||||
swipeDismissHandler.onTouch(views.rootContainer, event)
|
||||
isOverlayWasClicked = dispatchOverlayTouch(event)
|
||||
}
|
||||
|
||||
private fun handleEventActionUp(event: MotionEvent) {
|
||||
// wasDoubleTapped = false
|
||||
swipeDismissHandler.onTouch(rootContainer, event)
|
||||
attachmentPager.dispatchTouchEvent(event)
|
||||
swipeDismissHandler.onTouch(views.rootContainer, event)
|
||||
views.attachmentPager.dispatchTouchEvent(event)
|
||||
isOverlayWasClicked = dispatchOverlayTouch(event)
|
||||
}
|
||||
|
||||
@@ -220,12 +248,12 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
private fun toggleOverlayViewVisibility() {
|
||||
if (systemUiVisibility) {
|
||||
// we hide
|
||||
TransitionManager.beginDelayedTransition(rootContainer)
|
||||
TransitionManager.beginDelayedTransition(views.rootContainer)
|
||||
hideSystemUI()
|
||||
overlayView?.isVisible = false
|
||||
} else {
|
||||
// we show
|
||||
TransitionManager.beginDelayedTransition(rootContainer)
|
||||
TransitionManager.beginDelayedTransition(views.rootContainer)
|
||||
showSystemUI()
|
||||
overlayView?.isVisible = true
|
||||
}
|
||||
@@ -238,11 +266,11 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
return when (swipeDirection) {
|
||||
SwipeDirection.Up, SwipeDirection.Down -> {
|
||||
if (isSwipeToDismissAllowed && !wasScaled && isImagePagerIdle) {
|
||||
swipeDismissHandler.onTouch(rootContainer, event)
|
||||
swipeDismissHandler.onTouch(views.rootContainer, event)
|
||||
} else true
|
||||
}
|
||||
SwipeDirection.Left, SwipeDirection.Right -> {
|
||||
attachmentPager.dispatchTouchEvent(event)
|
||||
views.attachmentPager.dispatchTouchEvent(event)
|
||||
}
|
||||
else -> true
|
||||
}
|
||||
@@ -250,8 +278,8 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
|
||||
private fun handleSwipeViewMove(translationY: Float, translationLimit: Int) {
|
||||
val alpha = calculateTranslationAlpha(translationY, translationLimit)
|
||||
backgroundView.alpha = alpha
|
||||
dismissContainer.alpha = alpha
|
||||
views.backgroundView.alpha = alpha
|
||||
views.dismissContainer.alpha = alpha
|
||||
overlayView?.alpha = alpha
|
||||
}
|
||||
|
||||
@@ -265,7 +293,7 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
|
||||
private fun createSwipeToDismissHandler()
|
||||
: SwipeToDismissHandler = SwipeToDismissHandler(
|
||||
swipeView = dismissContainer,
|
||||
swipeView = views.dismissContainer,
|
||||
shouldAnimateDismiss = { shouldAnimateDismiss() },
|
||||
onDismiss = { animateClose() },
|
||||
onSwipeViewMove = ::handleSwipeViewMove)
|
||||
@@ -308,28 +336,48 @@ abstract class AttachmentViewerActivity : AppCompatActivity(), AttachmentEventLi
|
||||
?.handleCommand(commands)
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun hideSystemUI() {
|
||||
systemUiVisibility = false
|
||||
// Enables regular immersive mode.
|
||||
// For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE.
|
||||
// Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||||
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
|
||||
// Set the content to appear under the system bars so that the
|
||||
// content doesn't resize when the system bars hide and show.
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
// Hide the nav bar and status bar
|
||||
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||
or View.SYSTEM_UI_FLAG_FULLSCREEN)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
// New API instead of SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN and SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
window.setDecorFitsSystemWindows(false)
|
||||
// new API instead of SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||
window.decorView.windowInsetsController?.hide(WindowInsets.Type.navigationBars())
|
||||
// New API instead of SYSTEM_UI_FLAG_IMMERSIVE
|
||||
window.decorView.windowInsetsController?.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_BARS_BY_SWIPE
|
||||
// New API instead of FLAG_TRANSLUCENT_STATUS
|
||||
window.statusBarColor = ContextCompat.getColor(this, R.color.half_transparent_status_bar)
|
||||
// New API instead of FLAG_TRANSLUCENT_NAVIGATION
|
||||
window.navigationBarColor = ContextCompat.getColor(this, R.color.half_transparent_status_bar)
|
||||
} else {
|
||||
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
|
||||
// Set the content to appear under the system bars so that the
|
||||
// content doesn't resize when the system bars hide and show.
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||
// Hide the nav bar and status bar
|
||||
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||
or View.SYSTEM_UI_FLAG_FULLSCREEN)
|
||||
}
|
||||
}
|
||||
|
||||
// Shows the system bars by removing all the flags
|
||||
// except for the ones that make the content appear under the system bars.
|
||||
@Suppress("DEPRECATION")
|
||||
private fun showSystemUI() {
|
||||
systemUiVisibility = true
|
||||
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
// New API instead of SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN and SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
window.setDecorFitsSystemWindows(false)
|
||||
} else {
|
||||
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -98,7 +98,7 @@ class AttachmentsAdapter : RecyclerView.Adapter<BaseViewHolder>() {
|
||||
fun isScaled(position: Int): Boolean {
|
||||
val holder = recyclerView?.findViewHolderForAdapterPosition(position)
|
||||
if (holder is ZoomableImageViewHolder) {
|
||||
return holder.touchImageView.attacher.scale > 1f
|
||||
return holder.views.touchImageView.attacher.scale > 1f
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
@@ -44,28 +44,29 @@ internal class DefaultImageLoaderTarget(val holder: AnimatedImageViewHolder, pri
|
||||
|
||||
override fun onResourceLoading(uid: String, placeholder: Drawable?) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.imageLoaderProgress.isVisible = true
|
||||
holder.views.imageLoaderProgress.isVisible = true
|
||||
}
|
||||
|
||||
override fun onLoadFailed(uid: String, errorDrawable: Drawable?) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.imageLoaderProgress.isVisible = false
|
||||
holder.views.imageLoaderProgress.isVisible = false
|
||||
holder.views.imageView.setImageDrawable(errorDrawable)
|
||||
}
|
||||
|
||||
override fun onResourceCleared(uid: String, placeholder: Drawable?) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.touchImageView.setImageDrawable(placeholder)
|
||||
holder.views.imageView.setImageDrawable(placeholder)
|
||||
}
|
||||
|
||||
override fun onResourceReady(uid: String, resource: Drawable) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.imageLoaderProgress.isVisible = false
|
||||
holder.views.imageLoaderProgress.isVisible = false
|
||||
// Glide mess up the view size :/
|
||||
holder.touchImageView.updateLayoutParams {
|
||||
holder.views.imageView.updateLayoutParams {
|
||||
width = LinearLayout.LayoutParams.MATCH_PARENT
|
||||
height = LinearLayout.LayoutParams.MATCH_PARENT
|
||||
}
|
||||
holder.touchImageView.setImageDrawable(resource)
|
||||
holder.views.imageView.setImageDrawable(resource)
|
||||
if (resource is Animatable) {
|
||||
resource.start()
|
||||
}
|
||||
@@ -76,28 +77,30 @@ internal class DefaultImageLoaderTarget(val holder: AnimatedImageViewHolder, pri
|
||||
|
||||
override fun onResourceLoading(uid: String, placeholder: Drawable?) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.imageLoaderProgress.isVisible = true
|
||||
holder.views.imageLoaderProgress.isVisible = true
|
||||
holder.views.touchImageView.setImageDrawable(placeholder)
|
||||
}
|
||||
|
||||
override fun onLoadFailed(uid: String, errorDrawable: Drawable?) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.imageLoaderProgress.isVisible = false
|
||||
holder.views.imageLoaderProgress.isVisible = false
|
||||
holder.views.touchImageView.setImageDrawable(errorDrawable)
|
||||
}
|
||||
|
||||
override fun onResourceCleared(uid: String, placeholder: Drawable?) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.touchImageView.setImageDrawable(placeholder)
|
||||
holder.views.touchImageView.setImageDrawable(placeholder)
|
||||
}
|
||||
|
||||
override fun onResourceReady(uid: String, resource: Drawable) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.imageLoaderProgress.isVisible = false
|
||||
holder.views.imageLoaderProgress.isVisible = false
|
||||
// Glide mess up the view size :/
|
||||
holder.touchImageView.updateLayoutParams {
|
||||
holder.views.touchImageView.updateLayoutParams {
|
||||
width = LinearLayout.LayoutParams.MATCH_PARENT
|
||||
height = LinearLayout.LayoutParams.MATCH_PARENT
|
||||
}
|
||||
holder.touchImageView.setImageDrawable(resource)
|
||||
holder.views.touchImageView.setImageDrawable(resource)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -35,6 +35,7 @@ interface VideoLoaderTarget {
|
||||
fun onVideoFileLoading(uid: String)
|
||||
fun onVideoFileLoadFailed(uid: String)
|
||||
fun onVideoFileReady(uid: String, file: File)
|
||||
fun onVideoURLReady(uid: String, path: String)
|
||||
}
|
||||
|
||||
internal class DefaultVideoLoaderTarget(val holder: VideoViewHolder, private val contextView: ImageView) : VideoLoaderTarget {
|
||||
@@ -47,18 +48,20 @@ internal class DefaultVideoLoaderTarget(val holder: VideoViewHolder, private val
|
||||
}
|
||||
|
||||
override fun onThumbnailResourceCleared(uid: String, placeholder: Drawable?) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.views.videoThumbnailImage.setImageDrawable(placeholder)
|
||||
}
|
||||
|
||||
override fun onThumbnailResourceReady(uid: String, resource: Drawable) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.thumbnailImage.setImageDrawable(resource)
|
||||
holder.views.videoThumbnailImage.setImageDrawable(resource)
|
||||
}
|
||||
|
||||
override fun onVideoFileLoading(uid: String) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.thumbnailImage.isVisible = true
|
||||
holder.loaderProgressBar.isVisible = true
|
||||
holder.videoView.isVisible = false
|
||||
holder.views.videoThumbnailImage.isVisible = true
|
||||
holder.views.videoLoaderProgress.isVisible = true
|
||||
holder.views.videoView.isVisible = false
|
||||
}
|
||||
|
||||
override fun onVideoFileLoadFailed(uid: String) {
|
||||
@@ -68,9 +71,19 @@ internal class DefaultVideoLoaderTarget(val holder: VideoViewHolder, private val
|
||||
|
||||
override fun onVideoFileReady(uid: String, file: File) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
holder.thumbnailImage.isVisible = false
|
||||
holder.loaderProgressBar.isVisible = false
|
||||
holder.videoView.isVisible = true
|
||||
arrangeForVideoReady()
|
||||
holder.videoReady(file)
|
||||
}
|
||||
|
||||
override fun onVideoURLReady(uid: String, path: String) {
|
||||
if (holder.boundResourceUid != uid) return
|
||||
arrangeForVideoReady()
|
||||
holder.videoReady(path)
|
||||
}
|
||||
|
||||
private fun arrangeForVideoReady() {
|
||||
holder.views.videoThumbnailImage.isVisible = false
|
||||
holder.views.videoLoaderProgress.isVisible = false
|
||||
holder.views.videoView.isVisible = true
|
||||
}
|
||||
}
|
||||
|
@@ -16,12 +16,10 @@
|
||||
|
||||
package im.vector.lib.attachmentviewer
|
||||
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.ProgressBar
|
||||
import android.widget.TextView
|
||||
import android.widget.VideoView
|
||||
import androidx.core.view.isVisible
|
||||
import im.vector.lib.attachmentviewer.databinding.ItemVideoAttachmentBinding
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.disposables.Disposable
|
||||
@@ -43,13 +41,9 @@ class VideoViewHolder constructor(itemView: View) :
|
||||
|
||||
var eventListener: WeakReference<AttachmentEventListener>? = null
|
||||
|
||||
val thumbnailImage: ImageView = itemView.findViewById(R.id.videoThumbnailImage)
|
||||
val videoView: VideoView = itemView.findViewById(R.id.videoView)
|
||||
val loaderProgressBar: ProgressBar = itemView.findViewById(R.id.videoLoaderProgress)
|
||||
val videoControlIcon: ImageView = itemView.findViewById(R.id.videoControlIcon)
|
||||
val errorTextView: TextView = itemView.findViewById(R.id.videoMediaViewerErrorView)
|
||||
val views = ItemVideoAttachmentBinding.bind(itemView)
|
||||
|
||||
internal val target = DefaultVideoLoaderTarget(this, thumbnailImage)
|
||||
internal val target = DefaultVideoLoaderTarget(this, views.videoThumbnailImage)
|
||||
|
||||
override fun onRecycled() {
|
||||
super.onRecycled()
|
||||
@@ -65,16 +59,23 @@ class VideoViewHolder constructor(itemView: View) :
|
||||
}
|
||||
}
|
||||
|
||||
fun videoReady(path: String) {
|
||||
mVideoPath = path
|
||||
if (isSelected) {
|
||||
startPlaying()
|
||||
}
|
||||
}
|
||||
|
||||
fun videoFileLoadError() {
|
||||
}
|
||||
|
||||
override fun entersBackground() {
|
||||
if (videoView.isPlaying) {
|
||||
progress = videoView.currentPosition
|
||||
if (views.videoView.isPlaying) {
|
||||
progress = views.videoView.currentPosition
|
||||
progressDisposable?.dispose()
|
||||
progressDisposable = null
|
||||
videoView.stopPlayback()
|
||||
videoView.pause()
|
||||
views.videoView.stopPlayback()
|
||||
views.videoView.pause()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,9 +85,9 @@ class VideoViewHolder constructor(itemView: View) :
|
||||
|
||||
override fun onSelected(selected: Boolean) {
|
||||
if (!selected) {
|
||||
if (videoView.isPlaying) {
|
||||
progress = videoView.currentPosition
|
||||
videoView.stopPlayback()
|
||||
if (views.videoView.isPlaying) {
|
||||
progress = views.videoView.currentPosition
|
||||
views.videoView.stopPlayback()
|
||||
} else {
|
||||
progress = 0
|
||||
}
|
||||
@@ -101,29 +102,34 @@ class VideoViewHolder constructor(itemView: View) :
|
||||
}
|
||||
|
||||
private fun startPlaying() {
|
||||
thumbnailImage.isVisible = false
|
||||
loaderProgressBar.isVisible = false
|
||||
videoView.isVisible = true
|
||||
views.videoThumbnailImage.isVisible = false
|
||||
views.videoLoaderProgress.isVisible = false
|
||||
views.videoView.isVisible = true
|
||||
|
||||
videoView.setOnPreparedListener {
|
||||
views.videoView.setOnPreparedListener {
|
||||
progressDisposable?.dispose()
|
||||
progressDisposable = Observable.interval(100, TimeUnit.MILLISECONDS)
|
||||
.timeInterval()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe {
|
||||
val duration = videoView.duration
|
||||
val progress = videoView.currentPosition
|
||||
val isPlaying = videoView.isPlaying
|
||||
val duration = views.videoView.duration
|
||||
val progress = views.videoView.currentPosition
|
||||
val isPlaying = views.videoView.isPlaying
|
||||
// Log.v("FOO", "isPlaying $isPlaying $progress/$duration")
|
||||
eventListener?.get()?.onEvent(AttachmentEvents.VideoEvent(isPlaying, progress, duration))
|
||||
}
|
||||
}
|
||||
try {
|
||||
views.videoView.setVideoPath(mVideoPath)
|
||||
} catch (failure: Throwable) {
|
||||
// Couldn't open
|
||||
Log.v(VideoViewHolder::class.java.name, "Failed to start video")
|
||||
}
|
||||
|
||||
videoView.setVideoPath(mVideoPath)
|
||||
if (!wasPaused) {
|
||||
videoView.start()
|
||||
views.videoView.start()
|
||||
if (progress > 0) {
|
||||
videoView.seekTo(progress)
|
||||
views.videoView.seekTo(progress)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -133,17 +139,17 @@ class VideoViewHolder constructor(itemView: View) :
|
||||
when (commands) {
|
||||
AttachmentCommands.StartVideo -> {
|
||||
wasPaused = false
|
||||
videoView.start()
|
||||
views.videoView.start()
|
||||
}
|
||||
AttachmentCommands.PauseVideo -> {
|
||||
wasPaused = true
|
||||
videoView.pause()
|
||||
views.videoView.pause()
|
||||
}
|
||||
is AttachmentCommands.SeekTo -> {
|
||||
val duration = videoView.duration
|
||||
val duration = views.videoView.duration
|
||||
if (duration > 0) {
|
||||
val seekDuration = duration * (commands.percentProgress / 100f)
|
||||
videoView.seekTo(seekDuration.toInt())
|
||||
views.videoView.seekTo(seekDuration.toInt())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -17,26 +17,29 @@
|
||||
package im.vector.lib.attachmentviewer
|
||||
|
||||
import android.view.View
|
||||
import android.widget.ProgressBar
|
||||
import com.github.chrisbanes.photoview.PhotoView
|
||||
import im.vector.lib.attachmentviewer.databinding.ItemImageAttachmentBinding
|
||||
|
||||
class ZoomableImageViewHolder constructor(itemView: View) :
|
||||
BaseViewHolder(itemView) {
|
||||
|
||||
val touchImageView: PhotoView = itemView.findViewById(R.id.touchImageView)
|
||||
val imageLoaderProgress: ProgressBar = itemView.findViewById(R.id.imageLoaderProgress)
|
||||
val views = ItemImageAttachmentBinding.bind(itemView)
|
||||
|
||||
init {
|
||||
touchImageView.setAllowParentInterceptOnEdge(false)
|
||||
touchImageView.setOnScaleChangeListener { scaleFactor, _, _ ->
|
||||
views.touchImageView.setAllowParentInterceptOnEdge(false)
|
||||
views.touchImageView.setOnScaleChangeListener { scaleFactor, _, _ ->
|
||||
// Log.v("ATTACHEMENTS", "scaleFactor $scaleFactor")
|
||||
// It's a bit annoying but when you pitch down the scaling
|
||||
// is not exactly one :/
|
||||
touchImageView.setAllowParentInterceptOnEdge(scaleFactor <= 1.0008f)
|
||||
views.touchImageView.setAllowParentInterceptOnEdge(scaleFactor <= 1.0008f)
|
||||
}
|
||||
touchImageView.setScale(1.0f, true)
|
||||
touchImageView.setAllowParentInterceptOnEdge(true)
|
||||
views.touchImageView.setScale(1.0f, true)
|
||||
views.touchImageView.setAllowParentInterceptOnEdge(true)
|
||||
}
|
||||
|
||||
internal val target = DefaultImageLoaderTarget.ZoomableImageTarget(this, touchImageView)
|
||||
internal val target = DefaultImageLoaderTarget.ZoomableImageTarget(this, views.touchImageView)
|
||||
|
||||
override fun onRecycled() {
|
||||
super.onRecycled()
|
||||
views.touchImageView.setImageDrawable(null)
|
||||
}
|
||||
}
|
||||
|
6
attachment-viewer/src/main/res/values/colors.xml
Normal file
6
attachment-viewer/src/main/res/values/colors.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<resources>
|
||||
|
||||
<color name="half_transparent_status_bar">#80000000</color>
|
||||
|
||||
</resources>
|
55
build.gradle
55
build.gradle
@@ -1,7 +1,9 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.3.72'
|
||||
// Ref: https://kotlinlang.org/releases.html
|
||||
ext.kotlin_version = '1.5.10'
|
||||
ext.kotlin_coroutines_version = "1.5.0"
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
@@ -10,13 +12,12 @@ buildscript {
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
// Warning: 3.6.3 leads to infinite gradle builds. Stick to 3.5.3 for the moment
|
||||
classpath 'com.android.tools.build:gradle:3.5.3'
|
||||
classpath 'com.google.gms:google-services:4.3.2'
|
||||
classpath "com.airbnb.okreplay:gradle-plugin:1.5.0"
|
||||
classpath 'com.android.tools.build:gradle:4.2.1'
|
||||
classpath 'com.google.gms:google-services:4.3.8'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.2'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.2.0'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
|
||||
classpath "com.likethesalad.android:string-reference:1.2.2"
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
@@ -43,30 +44,29 @@ allprojects {
|
||||
includeGroupByRegex 'com\\.github\\.chrisbanes'
|
||||
// PFLockScreen-Android
|
||||
includeGroupByRegex 'com\\.github\\.vector-im'
|
||||
}
|
||||
}
|
||||
maven {
|
||||
url "http://dl.bintray.com/piasy/maven"
|
||||
content {
|
||||
includeGroupByRegex "com\\.github\\.piasy"
|
||||
|
||||
// Chat effects
|
||||
includeGroupByRegex 'com\\.github\\.jetradarmobile'
|
||||
includeGroupByRegex 'nl\\.dionsegijn'
|
||||
}
|
||||
}
|
||||
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
|
||||
// Jitsi repo
|
||||
maven {
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-2.9.3"
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-3.1.0"
|
||||
// Note: to test Jitsi release you can use a local file like this:
|
||||
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-2.9.3"
|
||||
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-3.1.0"
|
||||
}
|
||||
google()
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
}
|
||||
|
||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
||||
// Warnings are potential errors, so stop ignoring them
|
||||
kotlinOptions.allWarningsAsErrors = true
|
||||
// You can override by passing `-PallWarningsAsErrors=false` in the command line
|
||||
kotlinOptions.allWarningsAsErrors = project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
@@ -81,15 +81,15 @@ apply plugin: 'org.sonarqube'
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property "sonar.projectName", "RiotX-Android"
|
||||
property "sonar.projectKey", "vector.android.riotx"
|
||||
property "sonar.projectName", "Element-Android"
|
||||
property "sonar.projectKey", "im.vector.app.android"
|
||||
property "sonar.host.url", "https://sonarcloud.io"
|
||||
property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
|
||||
property "sonar.sourceEncoding", "UTF-8"
|
||||
property "sonar.links.homepage", "https://github.com/vector-im/riotX-android/"
|
||||
property "sonar.links.ci", "https://buildkite.com/matrix-dot-org/riotx-android"
|
||||
property "sonar.links.scm", "https://github.com/vector-im/riotX-android/"
|
||||
property "sonar.links.issue", "https://github.com/vector-im/riotX-android/issues"
|
||||
property "sonar.links.homepage", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.ci", "https://buildkite.com/matrix-dot-org/element-android"
|
||||
property "sonar.links.scm", "https://github.com/vector-im/element-android/"
|
||||
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
||||
property "sonar.organization", "new_vector_ltd_organization"
|
||||
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
||||
}
|
||||
@@ -100,11 +100,18 @@ project(":vector") {
|
||||
properties {
|
||||
property "sonar.sources", project(":vector").android.sourceSets.main.java.srcDirs
|
||||
// exclude source code from analyses separated by a colon (:)
|
||||
// property "sonar.exclusions", "**/*.*"
|
||||
// Exclude Java source
|
||||
property "sonar.exclusions", "**/BugReporterMultipartBody.java"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
project(":diff-match-patch") {
|
||||
sonarqube {
|
||||
skipProject = true
|
||||
}
|
||||
}
|
||||
|
||||
//project(":matrix-sdk-android") {
|
||||
// sonarqube {
|
||||
// properties {
|
||||
|
285
docs/add_threePids.md
Normal file
285
docs/add_threePids.md
Normal file
@@ -0,0 +1,285 @@
|
||||
# Adding and removing ThreePids to an account
|
||||
|
||||
## Add email
|
||||
|
||||
### User enter the email
|
||||
|
||||
> POST https://homeserver.org/_matrix/client/r0/account/3pid/email/requestToken
|
||||
|
||||
```json
|
||||
{
|
||||
"email": "alice@email-provider.org",
|
||||
"client_secret": "TixzvOnw7nLEUdiQEmkHzkXKrY4HhiGh",
|
||||
"send_attempt": 1
|
||||
}
|
||||
```
|
||||
|
||||
#### The email is already added to an account
|
||||
|
||||
400
|
||||
|
||||
```json
|
||||
{
|
||||
"errcode": "M_THREEPID_IN_USE",
|
||||
"error": "Email is already in use"
|
||||
}
|
||||
```
|
||||
|
||||
#### The email is free
|
||||
|
||||
Wording: "We've sent you an email to verify your address. Please follow the instructions there and then click the button below."
|
||||
|
||||
200
|
||||
|
||||
```json
|
||||
{
|
||||
"sid": "bxyDHuJKsdkjMlTJ"
|
||||
}
|
||||
```
|
||||
|
||||
## User receive an e-mail
|
||||
|
||||
> [homeserver.org] Validate your email
|
||||
>
|
||||
> A request to add an email address to your Matrix account has been received. If this was you, please click the link below to confirm adding this email:
|
||||
https://homeserver.org/_matrix/client/unstable/add_threepid/email/submit_token?token=WUnEhQAmJrXupdEbXgdWvnVIKaGYZFsU&client_secret=TixzvOnw7nLEUdiQEmkHzkXKrY4HhiGh&sid=bxyDHuJKsdkjMlTJ
|
||||
>
|
||||
> If this was not you, you can safely ignore this email. Thank you.
|
||||
|
||||
### User clicks on the link
|
||||
|
||||
The browser displays the following message:
|
||||
|
||||
> Your email has now been validated, please return to your client. You may now close this window.
|
||||
|
||||
### User returns on Element
|
||||
|
||||
User clicks on CONTINUE
|
||||
|
||||
> POST https://homeserver.org/_matrix/client/r0/account/3pid/add
|
||||
|
||||
```json
|
||||
{
|
||||
"sid": "bxyDHuJKsdkjMlTJ",
|
||||
"client_secret": "TixzvOnw7nLEUdiQEmkHzkXKrY4HhiGh"
|
||||
}
|
||||
```
|
||||
|
||||
401 User Interactive Authentication
|
||||
|
||||
```json
|
||||
{
|
||||
"session": "ppvvnozXCQZFaggUBlHJYPjA",
|
||||
"flows": [
|
||||
{
|
||||
"stages": [
|
||||
"m.login.password"
|
||||
]
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### User enters his password
|
||||
|
||||
POST https://homeserver.org/_matrix/client/r0/account/3pid/add
|
||||
|
||||
```json
|
||||
{
|
||||
"sid": "bxyDHuJKsdkjMlTJ",
|
||||
"client_secret": "TixzvOnw7nLEUdiQEmkHzkXKrY4HhiGh",
|
||||
"auth": {
|
||||
"session": "ppvvnozXCQZFaggUBlHJYPjA",
|
||||
"type": "m.login.password",
|
||||
"user": "@benoitx:matrix.org",
|
||||
"password": "weak_password"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### The link has not been clicked
|
||||
|
||||
400
|
||||
|
||||
```json
|
||||
{
|
||||
"errcode": "M_THREEPID_AUTH_FAILED",
|
||||
"error": "No validated 3pid session found"
|
||||
}
|
||||
```
|
||||
|
||||
#### Wrong password
|
||||
|
||||
401
|
||||
|
||||
```json
|
||||
{
|
||||
"session": "fXHOvoQsPMhEebVqTnIrzZJN",
|
||||
"flows": [
|
||||
{
|
||||
"stages": [
|
||||
"m.login.password"
|
||||
]
|
||||
}
|
||||
],
|
||||
"params": {
|
||||
},
|
||||
"completed":[
|
||||
],
|
||||
"error": "Invalid password",
|
||||
"errcode": "M_FORBIDDEN"
|
||||
}
|
||||
```
|
||||
|
||||
#### The link has been clicked and the account password is correct
|
||||
|
||||
200
|
||||
|
||||
```json
|
||||
{}
|
||||
```
|
||||
|
||||
## Remove email
|
||||
|
||||
### User want to remove an email from his account
|
||||
|
||||
> POST https://homeserver.org/_matrix/client/r0/account/3pid/delete
|
||||
|
||||
```json
|
||||
{
|
||||
"medium": "email",
|
||||
"address": "alice@email-provider.org"
|
||||
}
|
||||
```
|
||||
|
||||
#### Email was not bound to an identity server
|
||||
|
||||
200
|
||||
|
||||
```json
|
||||
{
|
||||
"id_server_unbind_result": "no-support"
|
||||
}
|
||||
```
|
||||
|
||||
#### Email was bound to an identity server
|
||||
|
||||
200
|
||||
|
||||
```json
|
||||
{
|
||||
"id_server_unbind_result": "success"
|
||||
}
|
||||
```
|
||||
|
||||
## Add phone number
|
||||
|
||||
> POST https://homeserver.org/_matrix/client/r0/account/3pid/msisdn/requestToken
|
||||
|
||||
```json
|
||||
{
|
||||
"country": "FR",
|
||||
"phone_number": "611223344",
|
||||
"client_secret": "f1K29wFZBEr4RZYatu7xj8nEbXiVpr7J",
|
||||
"send_attempt": 1
|
||||
}
|
||||
```
|
||||
|
||||
Note that the phone number is sent without `+` and without the country code
|
||||
|
||||
#### The phone number is already added to an account
|
||||
|
||||
400
|
||||
|
||||
```json
|
||||
{
|
||||
"errcode": "M_THREEPID_IN_USE",
|
||||
"error": "MSISDN is already in use"
|
||||
}
|
||||
```
|
||||
|
||||
#### The phone number is free
|
||||
|
||||
Wording: "A text message has been sent to +33611223344. Please enter the verification code it contains."
|
||||
|
||||
200
|
||||
|
||||
```json
|
||||
{
|
||||
"msisdn": "33651547677",
|
||||
"intl_fmt": "+33 6 51 54 76 77",
|
||||
"success": true,
|
||||
"sid": "253299954",
|
||||
"submit_url": "https://homeserver.org/_matrix/client/unstable/add_threepid/msisdn/submit_token"
|
||||
}
|
||||
```
|
||||
|
||||
## User receive a text message
|
||||
|
||||
> Riot
|
||||
|
||||
> Your Riot validation code is 892541, please enter this into the app
|
||||
|
||||
### User enter the code to the app
|
||||
|
||||
#### Wrong code
|
||||
|
||||
> POST https://homeserver.org/_matrix/client/unstable/add_threepid/msisdn/submit_token
|
||||
|
||||
```json
|
||||
{
|
||||
"sid": "253299954",
|
||||
"client_secret": "f1K29wFZBEr4RZYatu7xj8nEbXiVpr7J",
|
||||
"token": "111111"
|
||||
}
|
||||
```
|
||||
|
||||
400
|
||||
|
||||
```json
|
||||
{
|
||||
"errcode": "M_UNKNOWN",
|
||||
"error": "Error contacting the identity server"
|
||||
}
|
||||
```
|
||||
|
||||
This is not an ideal, but the client will display a hint to check the entered code to the user.
|
||||
|
||||
#### Correct code
|
||||
|
||||
> POST https://homeserver.org/_matrix/client/unstable/add_threepid/msisdn/submit_token
|
||||
|
||||
```json
|
||||
{
|
||||
"sid": "253299954",
|
||||
"client_secret": "f1K29wFZBEr4RZYatu7xj8nEbXiVpr7J",
|
||||
"token": "892541"
|
||||
}
|
||||
```
|
||||
|
||||
200
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true
|
||||
}
|
||||
```
|
||||
|
||||
Then the app call `https://homeserver.org/_matrix/client/r0/account/3pid/add` as per adding an email and follow the same UIS flow
|
||||
|
||||
## Remove phone number
|
||||
|
||||
### User wants to remove a phone number from his account
|
||||
|
||||
This is the same request and response than to remove email, but with this body:
|
||||
|
||||
```json
|
||||
{
|
||||
"medium": "msisdn",
|
||||
"address": "33611223344"
|
||||
}
|
||||
```
|
||||
|
||||
Note that the phone number is provided without `+`, but with the country code.
|
@@ -18,7 +18,7 @@ The generated maven repository is then host in the project https://github.com/ve
|
||||
|
||||
Update the script `./tools/jitsi/build_jisti_libs.sh` with the tag of the project `https://github.com/jitsi/jitsi-meet`.
|
||||
|
||||
Currently we are building the version with the tag `android-sdk-2.9.3`.
|
||||
Currently we are building the version with the tag `android-sdk-3.1.0`.
|
||||
|
||||
### Run the build script
|
||||
|
||||
@@ -35,21 +35,21 @@ It will build the Jitsi Meet Android library and put every generated files in th
|
||||
- Update the file `./build.gradle` to use the previously created local Maven repository. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-2.9.3"
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-3.1.0"
|
||||
```
|
||||
|
||||
You can uncomment and update the line starting with `// url "file://...` and comment the line starting with `url`, to test the library using the locally generated Maven repository.
|
||||
|
||||
- Update the dependency of the WebRTC library in the file `./matrix-sdk-android/build.gradle`. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
implementation('com.facebook.react:react-native-webrtc:1.84.0-jitsi-5112273@aar')
|
||||
```
|
||||
|
||||
- Update the dependency of the Jitsi Meet library in the file `./vector/build.gradle`. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
implementation('org.jitsi.react:jitsi-meet-sdk:2.9.3') { transitive = true }
|
||||
implementation('org.jitsi.react:jitsi-meet-sdk:3.1.0')
|
||||
```
|
||||
|
||||
- Update the dependency of the WebRTC library in the file `./vector/build.gradle`. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
implementation('com.facebook.react:react-native-webrtc:1.87.3-jitsi-6624067@aar')
|
||||
```
|
||||
|
||||
- Perform a gradle sync and build the project
|
||||
@@ -74,9 +74,9 @@ If all the tests are passed, you can export the generated Jitsi library to our M
|
||||
- Update the file `./build.gradle` to use the previously created Maven repository. Currently we have this line:
|
||||
|
||||
```groovy
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-2.9.3"
|
||||
url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-3.1.0"
|
||||
```
|
||||
|
||||
- Build the project and perform the sanity tests again.
|
||||
|
||||
- Update the file `/CANGES.md` to notify about the library upgrade, and create a regular PR for project Element Android.
|
||||
- Update the file `/CHANGES.md` to notify about the library upgrade, and create a regular PR for project Element Android.
|
@@ -2,7 +2,7 @@ This document aims to describe how Element android displays notifications to the
|
||||
|
||||
# Table of Contents
|
||||
1. [Prerequisites Knowledge](#prerequisites-knowledge)
|
||||
* [How does a matrix client gets a message from a Home Server?](#how-does-a-matrix-client-gets-a-message-from-a-home-server)
|
||||
* [How does a matrix client get a message from a Home Server?](#how-does-a-matrix-client-get-a-message-from-a-home-server)
|
||||
* [How does a mobile app receives push notification?](#how-does-a-mobile-app-receives-push-notification)
|
||||
* [Push VS Notification](#push-vs-notification)
|
||||
* [Push in the matrix federated world](#push-in-the-matrix-federated-world)
|
||||
@@ -22,7 +22,7 @@ First let's start with some prerequisite knowledge
|
||||
|
||||
# Prerequisites Knowledge
|
||||
|
||||
## How does a matrix client gets a message from a Home Server?
|
||||
## How does a matrix client get a message from a Home Server?
|
||||
|
||||
In order to get messages from a home server, a matrix client need to perform a ``sync`` operation.
|
||||
|
||||
|
@@ -8,7 +8,9 @@ This document describes the flow of signin to a homeserver, and also the flow wh
|
||||
|
||||
Client request the sign-in flows, once the homeserver is chosen by the user and its url is known (in the example it's `https://matrix.org`)
|
||||
|
||||
> curl -X GET 'https://matrix.org/_matrix/client/r0/login'
|
||||
```shell script
|
||||
curl -X GET 'https://matrix.org/_matrix/client/r0/login'
|
||||
```
|
||||
|
||||
200
|
||||
|
||||
@@ -26,7 +28,9 @@ Client request the sign-in flows, once the homeserver is chosen by the user and
|
||||
|
||||
The user is able to connect using `m.login.password`
|
||||
|
||||
> curl -X POST --data $'{"identifier":{"type":"m.id.user","user":"alice"},"password":"weak_password","type":"m.login.password","initial_device_display_name":"Portable"}' 'https://matrix.org/_matrix/client/r0/login'
|
||||
```shell script
|
||||
curl -X POST --data $'{"identifier":{"type":"m.id.user","user":"alice"},"password":"weak_password","type":"m.login.password","initial_device_display_name":"Portable"}' 'https://matrix.org/_matrix/client/r0/login'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -73,14 +77,16 @@ We get credential (200)
|
||||
|
||||
If the user has associated an email with its account, he can signin using the email.
|
||||
|
||||
> curl -X POST --data $'{"identifier":{"type":"m.id.thirdparty","medium":"email","address":"alice@yopmail.com"},"password":"weak_password","type":"m.login.password","initial_device_display_name":"Portable"}' 'https://matrix.org/_matrix/client/r0/login'
|
||||
```shell script
|
||||
curl -X POST --data $'{"identifier":{"type":"m.id.thirdparty","medium":"email","address":"alice@email-provider.org"},"password":"weak_password","type":"m.login.password","initial_device_display_name":"Portable"}' 'https://matrix.org/_matrix/client/r0/login'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"identifier": {
|
||||
"type": "m.id.thirdparty",
|
||||
"medium": "email",
|
||||
"address": "alice@yopmail.com"
|
||||
"address": "alice@email-provider.org"
|
||||
},
|
||||
"password": "weak_password",
|
||||
"type": "m.login.password",
|
||||
@@ -136,7 +142,9 @@ Not supported yet in Element
|
||||
|
||||
### Login with SSO
|
||||
|
||||
> curl -X GET 'https://homeserver.with.sso/_matrix/client/r0/login'
|
||||
```shell script
|
||||
curl -X GET 'https://homeserver.with.sso/_matrix/client/r0/login'
|
||||
```
|
||||
|
||||
200
|
||||
|
||||
@@ -157,7 +165,7 @@ In this case, the user can click on "Sign in with SSO" and the native web browse
|
||||
|
||||
> https://homeserver.with.sso/_matrix/client/r0/login/sso/redirect?redirectUrl=element%3A%2F%element
|
||||
|
||||
The parameter `redirectUrl` is set to `element://element`.
|
||||
The parameter `redirectUrl` is set to `element://connect`.
|
||||
|
||||
ChromeCustomTabs are an intermediate way to display a WebPage, between a WebView and using the external browser. More info can be found [here](https://developer.chrome.com/multidevice/android/customtabs)
|
||||
|
||||
@@ -167,11 +175,13 @@ During the process, user may be asked to validate an email by clicking on a link
|
||||
|
||||
Once the process is finished, the web page will call the `redirectUrl` with an extra parameter `loginToken`
|
||||
|
||||
> element://element?loginToken=MDAxOWxvY2F0aW9uIG1vemlsbGEub3JnCjAwMTNpZGVudGlmaWVy
|
||||
> element://connect?loginToken=MDAxOWxvY2F0aW9uIG1vemlsbGEub3JnCjAwMTNpZGVudGlmaWVy
|
||||
|
||||
This navigation is intercepted by Element by the `LoginActivity`, which will then ask the homeserver to convert this `loginToken` to an access token
|
||||
|
||||
> curl -X POST --data $'{"type":"m.login.token","token":"MDAxOWxvY2F0aW9uIG1vemlsbGEub3JnCjAwMTNpZGVudGlmaWVy"}' 'https://homeserver.with.sso/_matrix/client/r0/login'
|
||||
```shell script
|
||||
curl -X POST --data $'{"type":"m.login.token","token":"MDAxOWxvY2F0aW9uIG1vemlsbGEub3JnCjAwMTNpZGVudGlmaWVy"}' 'https://homeserver.with.sso/_matrix/client/r0/login'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -214,7 +224,9 @@ We display a warning regarding e2e.
|
||||
|
||||
At the first step, we do not send the password, only the email and a client secret, generated by the application
|
||||
|
||||
> curl -X POST --data $'{"client_secret":"6c57f284-85e2-421b-8270-fb1795a120a7","send_attempt":0,"email":"user@domain.com"}' 'https://matrix.org/_matrix/client/r0/account/password/email/requestToken'
|
||||
```shell script
|
||||
curl -X POST --data $'{"client_secret":"6c57f284-85e2-421b-8270-fb1795a120a7","send_attempt":0,"email":"user@domain.com"}' 'https://matrix.org/_matrix/client/r0/account/password/email/requestToken'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -251,7 +263,9 @@ During this step, the new password is sent to the homeserver.
|
||||
|
||||
If the user confirms before the link is clicked, we get an error:
|
||||
|
||||
> curl -X POST --data $'{"auth":{"type":"m.login.email.identity","threepid_creds":{"client_secret":"6c57f284-85e2-421b-8270-fb1795a120a7","sid":"tQNbrREDACTEDldA"}},"new_password":"weak_password"}' 'https://matrix.org/_matrix/client/r0/account/password'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"type":"m.login.email.identity","threepid_creds":{"client_secret":"6c57f284-85e2-421b-8270-fb1795a120a7","sid":"tQNbrREDACTEDldA"}},"new_password":"weak_password"}' 'https://matrix.org/_matrix/client/r0/account/password'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -285,7 +299,9 @@ It contains the client secret, a token and the sid
|
||||
|
||||
When the user click the link, if validate his ownership and the new password can now be ent by the application (on user demand):
|
||||
|
||||
> curl -X POST --data $'{"auth":{"type":"m.login.email.identity","threepid_creds":{"client_secret":"6c57f284-85e2-421b-8270-fb1795a120a7","sid":"tQNbrREDACTEDldA"}},"new_password":"weak_password"}' 'https://matrix.org/_matrix/client/r0/account/password'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"type":"m.login.email.identity","threepid_creds":{"client_secret":"6c57f284-85e2-421b-8270-fb1795a120a7","sid":"tQNbrREDACTEDldA"}},"new_password":"weak_password"}' 'https://matrix.org/_matrix/client/r0/account/password'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
|
@@ -10,7 +10,9 @@ This document describes the flow of registration to a homeserver. Examples come
|
||||
|
||||
Client request the sign-up flows, once the homeserver is chosen by the user and its url is known (in the example it's `https://matrix.org`)
|
||||
|
||||
> curl -X POST --data $'{}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -70,7 +72,9 @@ If the registration is not possible, we get a 403
|
||||
|
||||
The app is displaying a form to enter username and password.
|
||||
|
||||
> curl -X POST --data $'{"initial_device_display_name":"Mobile device","username":"alice","password": "weak_password"}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{"initial_device_display_name":"Mobile device","username":"alice","password": "weak_password"}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -133,9 +137,11 @@ We get a 400:
|
||||
|
||||
### Step 2: entering email
|
||||
|
||||
User is proposed to enter an email. We skip this step.
|
||||
User is proposed to enter an email. User skips this step.
|
||||
|
||||
> curl -X POST --data $'{"auth":{"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.dummy"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.dummy"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -189,16 +195,18 @@ User is proposed to enter an email. We skip this step.
|
||||
}
|
||||
```
|
||||
|
||||
### Step 2 bis: we enter an email
|
||||
### Step 2 bis: user enters an email
|
||||
|
||||
We request a token to the homeserver. The `client_secret` is generated by the application
|
||||
|
||||
> curl -X POST --data $'{"client_secret":"53e679ea-oRED-ACTED-92b8-3012c49c6cfa","email":"alice@yopmail.com","send_attempt":0}' 'https://matrix.org/_matrix/client/r0/register/email/requestToken'
|
||||
```shell script
|
||||
curl -X POST --data $'{"client_secret":"53e679ea-oRED-ACTED-92b8-3012c49c6cfa","email":"alice@email-provider.org","send_attempt":0}' 'https://matrix.org/_matrix/client/r0/register/email/requestToken'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"client_secret": "53e679ea-oRED-ACTED-92b8-3012c49c6cfa",
|
||||
"email": "alice@yopmail.com",
|
||||
"email": "alice@email-provider.org",
|
||||
"send_attempt": 0
|
||||
}
|
||||
```
|
||||
@@ -213,7 +221,9 @@ We request a token to the homeserver. The `client_secret` is generated by the ap
|
||||
|
||||
And
|
||||
|
||||
> curl -X POST --data $'{"auth":{"threepid_creds":{"client_secret":"53e679ea-oRED-ACTED-92b8-3012c49c6cfa","sid":"qlBCREDACTEDEtgxD"},"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.email.identity"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"threepid_creds":{"client_secret":"53e679ea-oRED-ACTED-92b8-3012c49c6cfa","sid":"qlBCREDACTEDEtgxD"},"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.email.identity"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -239,7 +249,9 @@ We get 401 since the email is not validated yet:
|
||||
|
||||
The app is now polling on
|
||||
|
||||
> curl -X POST --data $'{"auth":{"threepid_creds":{"client_secret":"53e679ea-oRED-ACTED-92b8-3012c49c6cfa","sid":"qlBCREDACTEDEtgxD"},"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.email.identity"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"threepid_creds":{"client_secret":"53e679ea-oRED-ACTED-92b8-3012c49c6cfa","sid":"qlBCREDACTEDEtgxD"},"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.email.identity"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -254,7 +266,7 @@ The app is now polling on
|
||||
}
|
||||
```
|
||||
|
||||
We click on the link received by email `https://matrix.org/_matrix/client/unstable/registration/email/submit_token?token=vtQjQIZfwdoREDACTEDozrmKYSWlCXsJ&client_secret=53e679ea-oRED-ACTED-92b8-3012c49c6cfa&sid=qlBCREDACTEDEtgxD` which contains:
|
||||
User clicks on the link received by email `https://matrix.org/_matrix/client/unstable/registration/email/submit_token?token=vtQjQIZfwdoREDACTEDozrmKYSWlCXsJ&client_secret=53e679ea-oRED-ACTED-92b8-3012c49c6cfa&sid=qlBCREDACTEDEtgxD` which contains:
|
||||
- A `token` vtQjQIZfwdoREDACTEDozrmKYSWlCXsJ
|
||||
- The `client_secret`: 53e679ea-oRED-ACTED-92b8-3012c49c6cfa
|
||||
- A `sid`: qlBCREDACTEDEtgxD
|
||||
@@ -306,7 +318,9 @@ Once the link is clicked, the registration request (polling) returns a 401 with
|
||||
|
||||
User is proposed to accept T&C and he accepts them
|
||||
|
||||
> curl -X POST --data $'{"auth":{"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.terms"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.terms"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -365,7 +379,9 @@ User is proposed to accept T&C and he accepts them
|
||||
|
||||
User is proposed to prove he is not a robot and he does it:
|
||||
|
||||
> curl -X POST --data $'{"auth":{"response":"03AOLTBLSiGS9GhFDpAMblJ2nlXOmHXqAYJ5OvHCPUjiVLBef3k9snOYI_BDC32-t4D2jv-tpvkaiEI_uloobFd9RUTPpJ7con2hMddbKjSCYqXqcUQFhzhbcX6kw8uBnh2sbwBe80_ihrHGXEoACXQkL0ki1Q0uEtOeW20YBRjbNABsZPpLNZhGIWC0QVXnQ4FouAtZrl3gOAiyM-oG3cgP6M9pcANIAC_7T2P2amAHbtsTlSR9CsazNyS-rtDR9b5MywdtnWN9Aw8fTJb8cXQk_j7nvugMxzofPjSOrPKcr8h5OqPlpUCyxxnFtag6cuaPSUwh43D2L0E-ZX7djzaY2Yh_U2n6HegFNPOQ22CJmfrKwDlodmAfMPvAXyq77n3HpoREDACTEDo3830RHF4BfkGXUaZjctgg-A1mvC17hmQmQpkG7IhDqyw0onU-0vF_-ehCjq_CcQEDpS_O3uiHJaG5xGf-0rhLm57v_wA3deugbsZuO4uTuxZZycN_mKxZ97jlDVBetl9hc_5REPbhcT1w3uzTCSx7Q","session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.recaptcha"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"response":"03AOLTBLSiGS9GhFDpAMblJ2nlXOmHXqAYJ5OvHCPUjiVLBef3k9snOYI_BDC32-t4D2jv-tpvkaiEI_uloobFd9RUTPpJ7con2hMddbKjSCYqXqcUQFhzhbcX6kw8uBnh2sbwBe80_ihrHGXEoACXQkL0ki1Q0uEtOeW20YBRjbNABsZPpLNZhGIWC0QVXnQ4FouAtZrl3gOAiyM-oG3cgP6M9pcANIAC_7T2P2amAHbtsTlSR9CsazNyS-rtDR9b5MywdtnWN9Aw8fTJb8cXQk_j7nvugMxzofPjSOrPKcr8h5OqPlpUCyxxnFtag6cuaPSUwh43D2L0E-ZX7djzaY2Yh_U2n6HegFNPOQ22CJmfrKwDlodmAfMPvAXyq77n3HpoREDACTEDo3830RHF4BfkGXUaZjctgg-A1mvC17hmQmQpkG7IhDqyw0onU-0vF_-ehCjq_CcQEDpS_O3uiHJaG5xGf-0rhLm57v_wA3deugbsZuO4uTuxZZycN_mKxZ97jlDVBetl9hc_5REPbhcT1w3uzTCSx7Q","session":"xptUYoREDACTEDogOWAGVnbJQ","type":"m.login.recaptcha"}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -396,9 +412,11 @@ Some homeservers may require the user to enter MSISDN.
|
||||
|
||||
On matrix.org, it's not required, and not even optional, but it's still possible for the app to add a MSISDN during the registration.
|
||||
|
||||
The user enter a phone number and select a country, the `client_secret` is generated by the application
|
||||
The user enters a phone number and selects a country, the `client_secret` is generated by the application
|
||||
|
||||
> curl -X POST --data $'{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","send_attempt":1,"country":"FR","phone_number":"+33611223344"}' 'https://matrix.org/_matrix/client/r0/register/msisdn/requestToken'
|
||||
```shell script
|
||||
curl -X POST --data $'{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","send_attempt":1,"country":"FR","phone_number":"+33611223344"}' 'https://matrix.org/_matrix/client/r0/register/msisdn/requestToken'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -430,10 +448,11 @@ If it is not the case, the homeserver send the SMS and returns some data, especi
|
||||
}
|
||||
```
|
||||
|
||||
When you execute the register request, with the received `sid`, you get an error since the MSISDN is not validated yet:
|
||||
|
||||
> curl -X POST --data $'{"auth":{"type":"m.login.msisdn","session":"xptUYoREDACTEDogOWAGVnbJQ","threepid_creds":{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","sid":"1678881798"}}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
When we execute the register request, with the received `sid`, we get an error since the MSISDN is not validated yet:
|
||||
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"type":"m.login.msisdn","session":"xptUYoREDACTEDogOWAGVnbJQ","threepid_creds":{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","sid":"1678881798"}}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
"auth": {
|
||||
@@ -492,7 +511,9 @@ There is an issue on Synapse, which return a 401, it sends too much data along w
|
||||
|
||||
The user receive the SMS, he can enter the SMS code in the app, which is sent using the "submit_url" received ie the response of the `requestToken` request:
|
||||
|
||||
> curl -X POST --data $'{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","sid":"1678881798","token":"123456"}' 'https://matrix.org/_matrix/client/unstable/add_threepid/msisdn/submit_token'
|
||||
```shell script
|
||||
curl -X POST --data $'{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","sid":"1678881798","token":"123456"}' 'https://matrix.org/_matrix/client/unstable/add_threepid/msisdn/submit_token'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -520,7 +541,9 @@ And if the code is correct we get a 200 with:
|
||||
|
||||
We can now execute the registration request, to the homeserver
|
||||
|
||||
> curl -X POST --data $'{"auth":{"type":"m.login.msisdn","session":"xptUYoREDACTEDogOWAGVnbJQ","threepid_creds":{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","sid":"1678881798"}}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```shell script
|
||||
curl -X POST --data $'{"auth":{"type":"m.login.msisdn","session":"xptUYoREDACTEDogOWAGVnbJQ","threepid_creds":{"client_secret":"d3e285f6-972a-496c-9a22-7915a2db57c7","sid":"1678881798"}}}' 'https://matrix.org/_matrix/client/r0/register'
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -535,7 +558,7 @@ We can now execute the registration request, to the homeserver
|
||||
}
|
||||
```
|
||||
|
||||
Now the homeserver consider that the `m.login.msisdn` step is completed (401):
|
||||
Now the homeserver considers that the `m.login.msisdn` step is completed (401):
|
||||
|
||||
```json
|
||||
{
|
||||
|
106
docs/ui-tests.md
Normal file
106
docs/ui-tests.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Automate user interface tests
|
||||
|
||||
Element Android ensures that some fundamental flows are properly working by running automated user interface tests.
|
||||
Ui tests are using the android [Espresso](https://developer.android.com/training/testing/espresso) library.
|
||||
|
||||
Tests can be run on a real device, or on a virtual device (such as the emulator in Android Studio).
|
||||
|
||||
Currently the test are covering a small set of application flows:
|
||||
- Registration
|
||||
- Self verification via emoji
|
||||
- Self verification via passphrase
|
||||
|
||||
## Prerequisites:
|
||||
|
||||
Out of the box, the tests use one of the homeservers (located at http://localhost:8080) of the "Demo Federation of Homeservers" (https://github.com/matrix-org/synapse#running-a-demo-federation-of-synapses).
|
||||
|
||||
You first need to follow instructions to set up Synapse in development mode at https://github.com/matrix-org/synapse#synapse-development. If you have already installed all dependencies, the steps are:
|
||||
|
||||
```shell script
|
||||
$ git clone https://github.com/matrix-org/synapse.git
|
||||
$ cd synapse
|
||||
$ virtualenv -p python3 env
|
||||
$ source env/bin/activate
|
||||
(env) $ python -m pip install --no-use-pep517 -e .
|
||||
```
|
||||
|
||||
Every time you want to launch these test homeservers, type:
|
||||
|
||||
```shell script
|
||||
$ source env/bin/activate
|
||||
(env) $ demo/start.sh --no-rate-limit
|
||||
```
|
||||
|
||||
**Emulator/Device set up**
|
||||
|
||||
When running the test via android studio on a device, you have to disable system animations in order for the test to work properly.
|
||||
|
||||
First, ensure developer mode is enabled:
|
||||
|
||||
- To enable developer options, tap the **Build Number** option 7 times. You can find this option in one of the following locations, depending on your Android version:
|
||||
|
||||
- Android 9 (API level 28) and higher: **Settings > About Phone > Build Number**
|
||||
- Android 8.0.0 (API level 26) and Android 8.1.0 (API level 26): **Settings > System > About Phone > Build Number**
|
||||
- Android 7.1 (API level 25) and lower: **Settings > About Phone > Build Number**
|
||||
|
||||
On your device, under **Settings > Developer options**, disable the following 3 settings:
|
||||
|
||||
- Window animation scale
|
||||
- Transition animation scale
|
||||
- Animator duration scale
|
||||
|
||||
## Run the tests
|
||||
|
||||
Once Synapse is running, and an emulator is running, you can run the UI tests.
|
||||
|
||||
### From the source code
|
||||
|
||||
Click on the green arrow in front of each test. Clicking on the arrow in front of the test class, or from the package directory does not always work (Tests not found issue).
|
||||
|
||||
### From command line
|
||||
|
||||
````shell script
|
||||
./gradlew vector:connectedGplayDebugAndroidTest
|
||||
````
|
||||
|
||||
To run all the tests from the `vector` module.
|
||||
|
||||
In case of trouble, you can try to uninstall the previous installed test APK first with this command:
|
||||
|
||||
```shell script
|
||||
adb uninstall im.vector.app.debug.test
|
||||
```
|
||||
## Recipes
|
||||
|
||||
We added some specific Espresso IdlingResources, and other utilities for matrix related tests
|
||||
|
||||
### Wait for initial sync
|
||||
|
||||
```kotlin
|
||||
// Wait for initial sync and check room list is there
|
||||
withIdlingResource(initialSyncIdlingResource(uiSession)) {
|
||||
onView(withId(R.id.roomListContainer))
|
||||
.check(matches(isDisplayed()))
|
||||
}
|
||||
```
|
||||
|
||||
### Accessing current activity
|
||||
|
||||
```kotlin
|
||||
val activity = EspressoHelper.getCurrentActivity()!!
|
||||
val uiSession = (activity as HomeActivity).activeSessionHolder.getActiveSession()
|
||||
```
|
||||
|
||||
### Interact with other session
|
||||
|
||||
It's possible to create a session via the SDK, and then use this session to interact with the one that the emulator is using (to check verifications for example)
|
||||
|
||||
```kotlin
|
||||
@Before
|
||||
fun initAccount() {
|
||||
val context = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
val matrix = Matrix.getInstance(context)
|
||||
val userName = "foobar_${System.currentTimeMillis()}"
|
||||
existingSession = createAccountAndSync(matrix, userName, password, true)
|
||||
}
|
||||
```
|
2
fastlane/metadata/android/ar/changelogs/40100100.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
يحتوي هذا الإصدار الجديد بشكل أساسي على إصلاحات للأخطاء وتحسينات. إرسال الرسالة أصبح الآن أسرع بكثير.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
2
fastlane/metadata/android/ar/changelogs/40100110.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100110.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
يحتوي هذا الإصدار الجديد بشكل أساسي على تحسينات في واجهة المستخدم وتجربة المستخدم. يُمكنك الآن دعوة الأصدقاء وإنشاء رسالة مُباشرة بسرعة كبيرة عن طريق مسح رموز الاستجابة السريعة.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
2
fastlane/metadata/android/ar/changelogs/40100120.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100120.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: مُعاينة URL، لوحة مفاتيح Emoji جديدة، إمكانيات جديدة لإعدادات الغرفة والثلج لميلاد المسيح!
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
2
fastlane/metadata/android/ar/changelogs/40100130.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100130.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: مُعاينة URL، لوحة مفاتيح Emoji جديدة، إمكانيات جديدة لإعدادات الغرفة والثلج لميلاد المسيح!
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
2
fastlane/metadata/android/ar/changelogs/40100140.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100140.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: تحرير أذونات الغُرفة، السِّمة التلقائية الفاتحة/الداكنة، ومجموعة من إصلاحات الأخطاء.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
2
fastlane/metadata/android/ar/changelogs/40100150.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100150.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: دعم تسجيل الدخول الاجتماعي.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
2
fastlane/metadata/android/ar/changelogs/40100160.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100160.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: دعم تسجيل الدخول الاجتماعي.
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.15 and https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
2
fastlane/metadata/android/ar/changelogs/40100170.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40100170.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
التغييرات الرئيسة في هذا الإصدار: إصلاحات الأخطاء!
|
||||
سجل التعديل الكامل: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
2
fastlane/metadata/android/ar/changelogs/40101010.txt
Normal file
2
fastlane/metadata/android/ar/changelogs/40101010.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
التغييرات الرئيسة في هذه النسخة: تحسينات على الأداء وإصلاح للعلل!
|
||||
اطّلع على سجل التغييرات الكامل هنا: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
31
fastlane/metadata/android/ar/full_description.txt
Normal file
31
fastlane/metadata/android/ar/full_description.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
Element هو نوع جديد من تطبيقات المُراسلة والتعاون الذي:
|
||||
|
||||
1. يمنحك التحكم في المُحافضة على خصوصيتك
|
||||
2. يُتيح لك التواصل مع أي شخص على شبكة Matrix ، وحتى خارجها من خلال التكامل مع التطبيقات مثل Slack
|
||||
3. يحميك من الإعلانات والتنقيب عن البيانات وعمليات الحدائق المُسورة
|
||||
4. يؤمنك من خلال تعمية النهاية-إلى-النهاية، مع التوقيع المُتبادل للتحقق من الآخرين
|
||||
|
||||
يختلف Element تمامًا عن تطبيقات المُراسلة والتعاون الأُخرى لأنه لا مركزي ومفتوح المصدر.
|
||||
|
||||
يُتيح لك Element إمكانية الاستضافة الذاتية -أو اختيار مُضيف- بحيث تتمتع بالخصوصية والمُلكية والتحكم في بياناتك ومُحادثاتك. يُتيح لك الوصول إلى شبكة مفتوحة؛ لذلك لا يقتصر الأمر على التحدث إلى مستخدمي Element الآخرين فقط. كما انه آمن للغاية.
|
||||
|
||||
Element قادر على القيام بكل ذلك لأنه يعمل على Matrix -مِعيار التواصل المفتوح اللامركزي.
|
||||
|
||||
Element يمنحك زمام التحكم من خلال السماح لك باختيار من يستضيف المُحادثات الخاصة بك. من تطبيق Element، يُمكنك اختيار الاستضافة بطرق مختلفة:
|
||||
|
||||
1. الحُصول على حساب مجاني على الخادِم العام matrix.org الذي يستضيفه مطورو Matrix، أو اختر من بين آلاف الخوادِم العامة التي يستضيفها متطوعون
|
||||
2. استضافة حسابك بنفسك عن طريق تشغيل خادِم على أجهزتك الخاصة
|
||||
3. التسجيل للحصول على حساب على خادِم مُخصص بمُجرد الاشتراك في منصة استضافة Element Matrix Services
|
||||
|
||||
<b> لماذا تختار Element؟</b>
|
||||
|
||||
<b>تملَّك بياناتك</b>: أنت من تُقرر أين تحتفظ ببياناتك ورسائلك. أنت تمتلكها وتتحكم فيها، وليس بعض الشركات الكُبرى الإحتكارية التي تُنقِّب عن بياناتك أو تُتيح الوصول إلى أطراف ثالثة.
|
||||
|
||||
|
||||
<b>تراسُل وتعاون مفتوح</b>: يُمكنك مُحادثة أي شخص آخر على شبكة Matrix، سواء كانوا يستخدمون Element أو تطبيق Matrix آخر، وحتى إذا كانوا يستخدمون نظام مُراسلة مُختلف مثل Slack أو IRC أو XMPP.
|
||||
|
||||
<b>الأمان-الخارق</b>: تشفير حقيقي من النهاية إلى النهاية (فقط أطراف المُحادثة مَن يُمكنهم فك تشفير الرسائل)، والتوقيع المُتبادل للتحقق من أجهزة المُشاركين في المُحادثة.
|
||||
|
||||
<b>التواصل الكامل</b>: المُراسلة، المُكالمات الصوتية والمرئية، مُشاركة الملفات، مُشاركة الشاشة، مجموعة كاملة وكبيرة من عمليات التكامُل، الروبوتات والأدوات. بناء الغُرف، المُجتمعات، ابق على اتصال وأنجز المهام.
|
||||
|
||||
<b>أين ما كُنت</b>: ابق على اتصال أينما كنت مع سجل الرسائل المتزامن بالكامل عبر جميع أجهزتك وفي الويب على https://app.element.io.
|
1
fastlane/metadata/android/ar/short_description.txt
Normal file
1
fastlane/metadata/android/ar/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
مُحادثة آمنة لا مركزية و VoIP. حافظ على بياناتك آمنة من الأطراف الثالثة.
|
1
fastlane/metadata/android/ar/title.txt
Normal file
1
fastlane/metadata/android/ar/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Element (Riot.im سابقًا)
|
30
fastlane/metadata/android/bg/full_description.txt
Normal file
30
fastlane/metadata/android/bg/full_description.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
Element е приложение от нов тип за съобщения и сътрудничество:
|
||||
|
||||
1. Дава Ви контрол, за да запазите поверителността си
|
||||
2. Позволява ви да комуникирате с всеки в мрежата на Matrix и дори извън него, като се интегрира с приложения като Slack
|
||||
3. Предпазва ви от реклами, изтичане на данни и търговско следене
|
||||
4. Защитава ви чрез шифроване от край до край, с кръстосано подписване, за да проверите другите
|
||||
|
||||
Element е напълно различен от другите приложения за съобщения и сътрудничество, понеже е децентрализиран и с отворен код.
|
||||
|
||||
Element ви позволява да го хоствате самостоятелно - или да изберете хост - така че да имате поверителност, собственост и контрол върху Вашите данни и разговори. Дава ви достъп до отворена мрежа, така че комуникацията Ви не е ограничена до потребителите на Element. И е много сигурно.
|
||||
|
||||
Element е в състояние да направи всичко това, защото работи върху Matrix - стандартът за отворена, децентрализирана комуникация.
|
||||
|
||||
Element ви дава контрол, като ви позволява да изберете кой да хоства Вашите разговори. От приложението Element можете да изберете хостване по различни начини:
|
||||
|
||||
1. Вземете безплатен профил на публичния сървър на matrix.org, хостван от разработчиците на Matrix, или изберете от хиляди публични сървъри, хоствани от доброволци
|
||||
2. Самостоятелно хоствайте профила си, като пуснете сървър на собствен хардуер
|
||||
3. Регистрирайте се за профил на персонализиран сървър, като се абонирате за хостинг платформата Element Matrix Services
|
||||
|
||||
<b>Защо да изберете Element?</b>
|
||||
|
||||
<b>ПРИТЕЖАВАЙТЕ ДАННИТЕ СИ</b>: Вие решавате къде да съхранявате вашите данни и съобщения. Вие ги притежавате и контролирате, а не някаква МЕГАКОРПОРАЦИЯ, която складира вашите данни или дава достъп на трети страни.
|
||||
|
||||
<b>ОТВОРЕНИ СЪОБЩЕНИЯ И СЪТРУДНИЧЕСТВО</b>: Можете да разговаряте с всеки друг в мрежата на Matrix, независимо дали използва Element или друго приложение на Matrix и дори ако използва различна система за съобщения като Slack, IRC or XMPP.
|
||||
|
||||
<b>СВРЪХ СИГУРНО</b>: Реално шифроване от край до край (само тези в разговора могат да дешифрират съобщения) и кръстосано подписване за проверка на устройствата на участниците в разговора.
|
||||
|
||||
<b>ПЪЛНА КОМУНИКАЦИЯ</b>: Съобщения, гласови и видео разговори, споделяне на файлове, споделяне на екран и цял куп интеграции, ботове и джаджи. Изграждайте стаи, общности, поддържайте връзка и направете нещата завършени.
|
||||
|
||||
<b>НАВСЯКЪДЕ КЪДЕТО СТЕ</b>: Поддържайте връзка, където и да сте, с напълно синхронизирана история на съобщенията на всичките ви устройства и чрез web на https://app.element.io.
|
1
fastlane/metadata/android/bg/short_description.txt
Normal file
1
fastlane/metadata/android/bg/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Сигурен децентрализиран чат и VoIP. Пазете данните си от външни лица.
|
1
fastlane/metadata/android/bg/title.txt
Normal file
1
fastlane/metadata/android/bg/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Element (предишен Riot.im)
|
2
fastlane/metadata/android/ca/changelogs/40100100.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Aquesta nova versió principalment conté correccions d'errors i millores. Ara, enviar un missatge és molt més ràpid.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
2
fastlane/metadata/android/ca/changelogs/40100110.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100110.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Aquesta principalment conté millores d'interfície experiència d'usuari. Ara pots convidar amics i crear xats personals ràpidament escanejant codis QR.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
2
fastlane/metadata/android/ca/changelogs/40100120.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100120.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: previsualització d'URL, nou teclat d'emoticones, noves funcions de configuració de les sales i neu pel Nadal!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
2
fastlane/metadata/android/ca/changelogs/40100130.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100130.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: previsualització d'URL, nou teclat d'emoticones, noves funcions de configuració de les sales i neu pel Nadal!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
2
fastlane/metadata/android/ca/changelogs/40100140.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100140.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: modificació dels permisos de sala, tema clar/fosc automàtic, correcció d'errors.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
2
fastlane/metadata/android/ca/changelogs/40100150.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100150.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: inici de sessió amb xarxes socials.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
2
fastlane/metadata/android/ca/changelogs/40100160.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100160.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: inici de sessió amb xarxes socials.
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.15 i https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
2
fastlane/metadata/android/ca/changelogs/40100170.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40100170.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
2
fastlane/metadata/android/ca/changelogs/40101000.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40101000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de VoIP (trucades i videotrucades en xats personals) i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
2
fastlane/metadata/android/ca/changelogs/40101010.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40101010.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de rendiment i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
2
fastlane/metadata/android/ca/changelogs/40101020.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40101020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de rendiment i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
2
fastlane/metadata/android/ca/changelogs/40101030.txt
Normal file
2
fastlane/metadata/android/ca/changelogs/40101030.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Canvis principals d'aquesta versió: millora de rendiment i correcció d'errors!
|
||||
Registre de canvis complet: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
30
fastlane/metadata/android/ca/full_description.txt
Normal file
30
fastlane/metadata/android/ca/full_description.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
Element és un nou tipus d'aplicació de missatgeria i col·laboració que:
|
||||
|
||||
1. Et dóna a tu el control per preservar la teva privadesa
|
||||
2. Et permet comunicar-te amb qualsevol persona de la xarxa Matrix i, fins i tot més enllà gràcies a integracions amb altres aplicacions com Slack
|
||||
3. Et protegeix de la publicitat, l'obtenció no desitjada de dades i dels navegadors amb accés controlat
|
||||
4. T'assegura a tu mitjançant l'encriptació d'extrem a extrem i amb signatures creuades per verificar els altres
|
||||
|
||||
Element és completament diferent a les altres aplicacions de missatgeria i col·laboració ja que és descentralitzat i de codi obert.
|
||||
|
||||
Element et deixa triar l'allotjament perquè disposis de privadesa, propietat i control de les teves dades i converses. Et dóna accés a una xarxa oberta perquè no et quedis únicament parlant amb els usuaris d'Element.
|
||||
|
||||
Element pot fer tot això ja que opera sobre Matrix - l'estàndard per a les comunicacions obertes i descentralitzades.
|
||||
|
||||
Element et dóna el control perquè et deixa escollir qui vols que allotgi les teves converses. Des de l'aplicació d'Element, pots triar l'allotjament de diferents maneres:
|
||||
|
||||
1. Crea un compte gratuït al servidor públic de matrix.org allotjat pels desenvolupadors de Matrix o tria'n un entre els milers de servidors públics creats per voluntaris
|
||||
2. Allotja tu mateix el teu compte en el teu propi servidor
|
||||
3. Registra el compte en un servidor personalitzat subscrivint-te a la plataforma d'Element Matrix Services (EMS)
|
||||
|
||||
<b>Per què escollir Element?</b>
|
||||
|
||||
<b>PROPIETAT DE LES TEVES DADES</b>: Tu decideixes a on desar les teves dades i missatges. Tu les controles i n'ets el propietari, no una mega-corporació que s'aprofita de les teves dades o les cedeix a tercers.
|
||||
|
||||
<b>MISSATGERIA I COL·LABORACIÓ OBERTA</b>: Pots parlar amb qualsevol que estigui a la xarxa Matrix, ja sigui amb Element o amb qualsevol altre aplicació Matrix, fins i tot encara que utilitzin sistemes de missatgeria diferents com Slack, IRC o XMPP.
|
||||
|
||||
<b>SUPER-SEGUR</b>: Encriptació d'extrem a extrem real (només qui està conversant pot desxifrar els missatges), i amb signatures creuades per a verificar els dispositius dels participants en les converses.
|
||||
|
||||
<b>COMUNICACIÓ COMPLETA</b>: Missatgeria, veu i video-trucades, compartició de fitxers, compartició de pantalla i un munt d'integracions, bots i ginys. Crea sales, comunitats, mantén-te en contacte i enllesteix el que et proposes.
|
||||
|
||||
<b>A TOT ARREU</b>: Mantingues el contacte des de qualsevol lloc on siguis, amb un historial de missatges totalment sincronitzat entre tots els teus dispositius i també a la web: https://app.element.io.
|
1
fastlane/metadata/android/ca/short_description.txt
Normal file
1
fastlane/metadata/android/ca/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Xats i VoIP segurs i descentralitzats. Protegeix les teves dades de tercers.
|
1
fastlane/metadata/android/ca/title.txt
Normal file
1
fastlane/metadata/android/ca/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Element (abans Riot.im)
|
2
fastlane/metadata/android/cs/changelogs/40100100.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Tato nová verze obsahuje hlavně opravy chyb a vylepšení. Odeslání zprávy je nyní mhohem rychlejší.
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
2
fastlane/metadata/android/cs/changelogs/40100110.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100110.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Tato nová verze obsahuje hlavně vylepšení v uživatelském rozhraní. Nyní můžete pozvat přátele a napsat DM velmi rychle skenem QR kódů.
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
2
fastlane/metadata/android/cs/changelogs/40100120.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100120.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Náhled URL, nová klávesice s Emoji, nové možnosti nastavení místností a sníh na vánoce!
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
2
fastlane/metadata/android/cs/changelogs/40100130.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100130.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Náhled URL, nová klávesice s Emoji, nové možnosti nastavení místností a sníh na vánoce!
|
||||
Plné znění změn: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
2
fastlane/metadata/android/cs/changelogs/40100140.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100140.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Úpravy práv místností, automatický tmavý/světlý vzhled a řada oprav chyb.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
2
fastlane/metadata/android/cs/changelogs/40100150.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100150.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Podpora přihlášení v sociálních sítích.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
2
fastlane/metadata/android/cs/changelogs/40100160.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100160.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Podpora přihlášení v sociálních sítích.
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.15 a https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
2
fastlane/metadata/android/cs/changelogs/40100170.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40100170.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
2
fastlane/metadata/android/cs/changelogs/40101000.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40101000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: VoIP (audio a video hovory v DM), vylepšení a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
2
fastlane/metadata/android/cs/changelogs/40101010.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40101010.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
2
fastlane/metadata/android/cs/changelogs/40101020.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40101020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
2
fastlane/metadata/android/cs/changelogs/40101030.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40101030.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
2
fastlane/metadata/android/cs/changelogs/40101040.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40101040.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: vylepšení výkonnosti a opravy chyb!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
2
fastlane/metadata/android/cs/changelogs/40101050.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40101050.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: nutné opravy pro 1.1.4
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.5
|
2
fastlane/metadata/android/cs/changelogs/40101060.txt
Normal file
2
fastlane/metadata/android/cs/changelogs/40101060.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: nutné opravy chyb pro 1.1.5!
|
||||
Úplný záznam změn: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
30
fastlane/metadata/android/cs/full_description.txt
Normal file
30
fastlane/metadata/android/cs/full_description.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
Element je nový typ aplikace pro výměnu zpráv a spolupráci, která:
|
||||
|
||||
1. Vám dá kontrolu nad ochranou vašeho soukromí
|
||||
2. Umožní vám komunikovat s kýmkoli v síti Matrix a dokonce i mimo ni pomocí integrací s aplikacemi, jako je Slack
|
||||
3. Ochrání vás před inzercí, dataminingem a uzavřenými zahradami
|
||||
4. Zabezpečí vás end-to-end šifrováním s křížovým podpisem pro ověření ostatních
|
||||
|
||||
Element je zcela odlišný od ostatních aplikací pro zasílání zpráv a spolupráci, protože je decentralizovaný a otevřený.
|
||||
|
||||
Element vám umožňuje použít vlastní domovský server - nebo si vybrat hostitele - abyste měli soukromí, vlastnictví a kontrolu nad svými daty a konverzacemi. Poskytuje vám přístup k otevřené síti; takže nejste zaseknuti jen při konverzaci s ostatními uživateli Elementu. A je velmi bezpečný.
|
||||
|
||||
Element je toho všeho schopen, protože pracuje na Matrixu - standardu otevřené, decentralizované komunikace.
|
||||
|
||||
Element vám dává kontrolu nad tím, že si můžete vybrat, kdo bude hostovat vaše konverzace. Z aplikace Element si můžete vybrat hostování různými způsoby:
|
||||
|
||||
1. Získejte zdarma účet na veřejném serveru matrix.org hostovaném vývojáři Matrixu, nebo si vyberte z tisíců veřejných serverů hostovaných dobrovolníky
|
||||
2. Hostujte svůj účet spuštěním serveru na svém vlastním hardwaru
|
||||
3. Zaregistrujte si účet na vlastním serveru jednoduchým přihlášením k hostitelské platformě Element Matrix Services
|
||||
|
||||
<b>Proč zvolit Element?</b>
|
||||
|
||||
<b>VLASTNĚTE SVÁ DATA</b>: Vy rozhodnete, kde svá data a zprávy ponecháte. Vlastníte je a jsou pod vaší kontrolou, ne nějaký MEGACORP, který těží vaše data nebo poskytuje přístup třetím stranám.
|
||||
|
||||
<b>ZPRÁVY A SPOLUPRÁCE</b>: Můžete chatovat s kýmkoli v síti Matrix, ať už používá Element nebo jinou aplikaci, a to i v případě, že používají jiný systém zasílání zpráv, jako je Slack, IRC nebo XMPP.
|
||||
|
||||
<b>MAXIMÁLNĚ BEZPEČNÉ</b>: Skutečné šifrování typu end-to-end (pouze ti v konverzaci mohou dešifrovat zprávy) a křížové podepisování k ověření zařízení účastníků konverzace.
|
||||
|
||||
<b>KOMPLETNÍ KOMUNIKACE</b>: Zprávy, hlasové hovory a videohovory, sdílení souborů, sdílení obrazovky a celá řada integrací, robotů a widgetů. Budujte místnosti, komunity, zůstaňte v kontaktu a spolupracujte.
|
||||
|
||||
<b>KDEKOLIV JSTE</b>: Zůstaňte v kontaktu, ať jste kdekoli, s plně synchronizovanou historií zpráv na všech vašich zařízeních a na webu na adrese https://app.element.io.
|
1
fastlane/metadata/android/cs/short_description.txt
Normal file
1
fastlane/metadata/android/cs/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Skupinový messenger - šifrovaná komunikace, skupinový chat a video hovory
|
1
fastlane/metadata/android/cs/title.txt
Normal file
1
fastlane/metadata/android/cs/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Element - bezpečný messenger
|
2
fastlane/metadata/android/de/changelogs/40100100.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Diese neue Version enthält hauptsächlich Fehlerkorrekturen und Verbesserungen. Nachrichten verschicken geht jetzt viel schneller.
|
||||
Vollständige Versionshinweise: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
2
fastlane/metadata/android/de/changelogs/40100110.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100110.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Diese neue Version enthält hauptsächlich Verbesserungen der Benutzeroberfläche und der Handhabung. Du kannst jetzt ganz schnell Freunde einladen und DMs erstellen, indem du schlicht einen QR-Code scannst.
|
||||
Vollständige Versionshinweise: https://github.com/vector-im/element-android/releases/tag/v1.0.11
|
2
fastlane/metadata/android/de/changelogs/40100120.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100120.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: URL-Vorschau, neue Emoji-Tastatur, neue Raumeinstellungen und Schnee für Weihnachten!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.0.12
|
2
fastlane/metadata/android/de/changelogs/40100130.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100130.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: URL-Vorschau, neue Emoji-Tastatur, neue Raumeinstellungen und Schnee für Weihnachten!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.0.13
|
2
fastlane/metadata/android/de/changelogs/40100140.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100140.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Bearbeiten von Raumberechtigungen, automatisches Hell/Dunkel-Design und eine Reihe von Fehlerkorrekturen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.0.14
|
2
fastlane/metadata/android/de/changelogs/40100150.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100150.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Unterstützung für soziale Anmeldungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.0.15
|
2
fastlane/metadata/android/de/changelogs/40100160.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100160.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Unterstützung für soziale Anmeldungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.0.15 and https://github.com/vector-im/element-android/releases/tag/v1.0.16
|
2
fastlane/metadata/android/de/changelogs/40100170.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40100170.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Fehlerkorrekturen
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.0.17
|
2
fastlane/metadata/android/de/changelogs/40101000.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40101000.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: VoIP-Verbesserung (Audio- und Video-Anrufe in Direktnachrichten) und Fehlerkorrekturen!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.1.0
|
2
fastlane/metadata/android/de/changelogs/40101010.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40101010.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Leistungsverbesserungen und Fehlerbehebungen!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.1.1
|
2
fastlane/metadata/android/de/changelogs/40101020.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40101020.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Leistungsverbesserung und Fehlerbehebungen!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.1.2
|
2
fastlane/metadata/android/de/changelogs/40101030.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40101030.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Leistungsverbesserung und Fehlerbehebungen!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.1.3
|
2
fastlane/metadata/android/de/changelogs/40101040.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40101040.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Leistungsverbesserung und Fehlerbehebungen!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.1.4
|
2
fastlane/metadata/android/de/changelogs/40101050.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40101050.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Wichtige Fehlerbehebungen für 1.1.4!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.1.5
|
2
fastlane/metadata/android/de/changelogs/40101060.txt
Normal file
2
fastlane/metadata/android/de/changelogs/40101060.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hauptänderungen in dieser Version: Wichtige Fehlerbehebungen für 1.1.5!
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
39
fastlane/metadata/android/de/full_description.txt
Normal file
39
fastlane/metadata/android/de/full_description.txt
Normal file
@@ -0,0 +1,39 @@
|
||||
Element ist einerseits ein sicherer Messenger, andererseits ideal geeignet für die produktive Zusammenarbeit mit dem Team im Homeoffice. Mit eingebauter Ende-zu-Ende-Verschlüsselung ermöglicht Element umfangreiche und sichere Videokonferenzen, das Teilen von Dateien sowie Sprachanrufe.
|
||||
|
||||
<b>Element bietet folgende Funktionen:</b>
|
||||
- Fortschrittliche Werkzeuge für die Online-Kommunikation
|
||||
- Vollständig verschlüsselte Nachrichten, um eine sichere Kommunikation innerhalb und außerhalb von Unternehmen zu ermöglichen
|
||||
- Dezentralisierte Chats, basierend auf dem quelloffenen Matrix-Framework
|
||||
- Sichere und kontrollierte Dateifreigabe durch verschlüsselte Daten beim Verwalten von Projekten
|
||||
- Videochats mit VoIP und Bildschirmübertragung
|
||||
- Einfache Einbindung in Ihre bevorzugten Online-Kollaborations- und Projektverwaltungswerkzeuge, VoIP-Dienste und andere Kommunikationsapps für Ihr Team
|
||||
|
||||
Element unterscheidet sich grundlegend von anderen Kommunikations- und Kollaborationsapps. Es läuft auf Matrix, einem offenen Netzwerk für sichere und dezentralisierte Kommunikation. Es erlaubt Nutzern ihre eigene Infrastruktur zu betreiben und gibt ihnen damit vollständige Kontrolle und Besitz über ihre eigenen Daten und Nachrichten.
|
||||
|
||||
<b>Privatsphäre/Datenschutz und verschlüsselte Kommunikation</b>
|
||||
Element schützt Sie vor unerwünschter Werbung, dem Datenschürfen und abgeschlossenen Plattformen. Auch schützt es all Ihre Daten, Ihre Video- und Sprachkommunikation unter vier Augen, durch Ende-zu-Ende-Verschlüsselung und durch das Quersignieren von Geräten zur Verifizierung.
|
||||
|
||||
Element gibt Ihnen die Kontrolle über Ihre Privatsphäre und ermöglicht es Ihnen zugleich, mit jedem im Matrix-Netzwerk sicher zu kommunizieren - oder auch auf anderen geschäftlichen Kollaborationswerkzeugen, zum Beispiel durch das Einbinden von Apps wie Slack.
|
||||
|
||||
<b>Element kann man selber betreiben</b>
|
||||
Um mehr Kontrolle über Ihre sensiblen Daten und Konversationen zu ermöglichen, kann man Element selbst betreiben, oder Sie wählen irgendeinen Matrix-basierten Dienst - der Standard für quelloffene, dezentralisierte Kommunikation. Element gibt Ihnen Privatsphäre, Sicherheitskonformität und Flexibilität für Integrationen.
|
||||
|
||||
<b>Besitzen Sie Ihre Daten</b>
|
||||
Sie entscheiden, wo Sie Ihre Daten und Nachrichten aufbewahren - ohne das Datenschürfen oder den Zugriff Dritter zu riskieren.
|
||||
|
||||
Element gibt Ihnen auf verschiedene Arten die Kontrolle:
|
||||
1. Kostenlos auf dem öffentlichen matrix.org-Server registrieren, der von den Matrix-Entwicklern gehostet wird, oder wählen Sie aus Tausenden von öffentlichen Servern, die von Freiwilligen betrieben werden
|
||||
2. Ein Konto auf einem eigenen Server in der eigenen IT-Infrastruktur betreiben
|
||||
3. Einen Konto auf einem maßgeschneiderten Server erstellen, zum Beispiel durch ein Abonnement der Element Matrix Services (kurz EMS)
|
||||
|
||||
<b>Offene Kommunikation und Zusammenarbeit</b>
|
||||
Sie können mit jedem im Matrix-Netzwerk chatten, egal ob ihr Kontakt Element, eine andere Matrix-App oder sogar eine völlig andere Anwendung nutzt.
|
||||
|
||||
<b>Super sicher</b>
|
||||
Echte Ende-zu-Ende-Verschlüsselung (nur die Personen in der Unterhaltung können die Nachrichten entschüsseln), sowie die Quersignierung von Geräten zur Verifizierung.
|
||||
|
||||
<b>Vollständige Kommunikation und Integration</b>
|
||||
Kurznachrichten, Sprach- und Videoanrufe, Dateifreigaben, Bildschirmübertragungen und eine ganze Reihe an Integrationen, Bots and Widgets. Schaffen Sie Räume, Communities, bleiben Sie auf dem Laufenden und erledigen Sie Sachen.
|
||||
|
||||
<b>Da Weitermachen, wo Sie aufgehört haben</b>
|
||||
Bleiben Sie in Kontakt, egal wo Sie sind, mit vollständig synchronisiertem Nachrichtenverlauf quer über all Ihre Geräte und im Netz auf https://app.element.io
|
1
fastlane/metadata/android/de/short_description.txt
Normal file
1
fastlane/metadata/android/de/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Gruppen-Messenger - verschlüsselte Kommunikation, Gruppenchat und Videoanrufe
|
1
fastlane/metadata/android/de/title.txt
Normal file
1
fastlane/metadata/android/de/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Element - Sicherer Messenger
|
2
fastlane/metadata/android/en-US/changelogs/40100100.txt
Normal file
2
fastlane/metadata/android/en-US/changelogs/40100100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
This new version mainly contains bug fixes and improvements. Sending a message is now much faster.
|
||||
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.0.10
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user