mirror of
https://github.com/vector-im/riotX-android
synced 2025-10-06 08:12:46 +02:00
Compare commits
2987 Commits
test/adm/p
...
tech/fix-v
Author | SHA1 | Date | |
---|---|---|---|
|
db562b99f8 | ||
|
8624199be3 | ||
|
b7c63907ea | ||
|
d8ff688e76 | ||
|
b4f7302057 | ||
|
6da6f6a7f4 | ||
|
7d2cbf5263 | ||
|
aa010dedff | ||
|
0c28384ece | ||
|
b4ca16735d | ||
|
0e45494c11 | ||
|
5e504942ca | ||
|
648498e2de | ||
|
8999b40c1a | ||
|
df3fd6f691 | ||
|
c28271dd8b | ||
|
14d2aec506 | ||
|
3c68222fd7 | ||
|
830e5ffa9f | ||
|
bf493f27ae | ||
|
0fea172154 | ||
|
5902c9cd83 | ||
|
237da2ce22 | ||
|
32d7516dcb | ||
|
874bcc117a | ||
|
949f06eb00 | ||
|
75236e9ed0 | ||
|
eac74bda09 | ||
|
3f88811590 | ||
|
10b5e8fd04 | ||
|
e2f0e14133 | ||
|
824a4bcae5 | ||
|
e76793781d | ||
|
7b0f94b9e3 | ||
|
925fffac45 | ||
|
298aaece01 | ||
|
57c9161e00 | ||
|
b8b2601e0b | ||
|
43a1bdb620 | ||
|
734945e154 | ||
|
0685fb1e1a | ||
|
73e061e472 | ||
|
9a298a6e3e | ||
|
a919989fd4 | ||
|
6823258abb | ||
|
8bfe7b68c3 | ||
|
1669320698 | ||
|
bbdac9d1ba | ||
|
61f5f81305 | ||
|
eb5253ab1a | ||
|
e87d4db72c | ||
|
11e6ca1784 | ||
|
ae50f5a006 | ||
|
be9c9f1640 | ||
|
1d8b4ce63b | ||
|
4e99217164 | ||
|
c61df899b4 | ||
|
ca92ad267d | ||
|
e2313ad1cd | ||
|
b05d52bb6d | ||
|
ad16130a94 | ||
|
b3334b3e8d | ||
|
e86b72b8db | ||
|
0ce72057dc | ||
|
fd9dca9621 | ||
|
60b164a447 | ||
|
13b1722060 | ||
|
01e1d74c72 | ||
|
e9b3d29128 | ||
|
e9d15b46d8 | ||
|
619ea819ed | ||
|
68da403f2f | ||
|
e9e29603de | ||
|
9e5f07a855 | ||
|
1d50bbdbda | ||
|
0c469ae079 | ||
|
32a15bee04 | ||
|
0691046601 | ||
|
3a38898961 | ||
|
373a0ca4fb | ||
|
5d533d4ec9 | ||
|
a947a53e14 | ||
|
b72a174edf | ||
|
e53972cf2d | ||
|
6c9ae331e3 | ||
|
3e0f76a362 | ||
|
e3ee59f6c1 | ||
|
81cc8ab98b | ||
|
3ddaf0c51f | ||
|
a3fff0777d | ||
|
283686a9d8 | ||
|
1d3c191153 | ||
|
7631c7ac9f | ||
|
42fc601c59 | ||
|
92d7391232 | ||
|
6d2a9ec9d5 | ||
|
e792228879 | ||
|
3b1599763c | ||
|
50b042ee98 | ||
|
f4b5cfc71f | ||
|
e0f327e8f6 | ||
|
7982f4be00 | ||
|
fb3fdf097c | ||
|
a1bdfd1a5c | ||
|
279820224c | ||
|
6cd0fbb614 | ||
|
c1dfa925c0 | ||
|
4205b4a777 | ||
|
4cd81f194c | ||
|
ecb7d77582 | ||
|
30effb781b | ||
|
92888b666c | ||
|
bf88c16c9d | ||
|
94d1649ec9 | ||
|
c7099f53c1 | ||
|
51fba85a3a | ||
|
3970c2ec31 | ||
|
15cf8b63a0 | ||
|
9553fe0648 | ||
|
a661f9c3fb | ||
|
4a89fcea14 | ||
|
583cc29472 | ||
|
8dbfafb324 | ||
|
34303c4a62 | ||
|
85f16e8dfa | ||
|
2763ebdd5a | ||
|
b5c6f60ee6 | ||
|
1afe0981a6 | ||
|
6ac9a7627b | ||
|
2e8b6e4eb9 | ||
|
147dac8ebf | ||
|
9a651b223b | ||
|
42ade670da | ||
|
0ec67c1ab8 | ||
|
125339a164 | ||
|
55c60c9a40 | ||
|
8fc201121d | ||
|
662d77cb7e | ||
|
db83099dc3 | ||
|
8177d9777c | ||
|
2a59533818 | ||
|
7f766eef2a | ||
|
6ac4d58636 | ||
|
ec0770434d | ||
|
da83a85f74 | ||
|
0c4707c315 | ||
|
73eb63a35e | ||
|
e37344a059 | ||
|
5d035314b4 | ||
|
59d3ff1671 | ||
|
58b94aef2d | ||
|
4de62d84b4 | ||
|
4b63f4b9bf | ||
|
8c884f45fb | ||
|
e19647f6ca | ||
|
ca2805fb7f | ||
|
bdff23a74d | ||
|
d9ad9859ec | ||
|
7c4527fba6 | ||
|
b501770fa9 | ||
|
f88039b7fd | ||
|
ff9add5a0c | ||
|
b60c279c06 | ||
|
41f75eed50 | ||
|
398f9427df | ||
|
b4d72d2219 | ||
|
b66c405430 | ||
|
11079afa6b | ||
|
41ca662dcc | ||
|
a17a4fe4b1 | ||
|
614383c08d | ||
|
3e12907b26 | ||
|
4222c7c7c4 | ||
|
cb36ef766c | ||
|
bc5309b5d7 | ||
|
dbea1726ec | ||
|
2527dbbeb2 | ||
|
de17c47a7d | ||
|
ab4ebc7f11 | ||
|
2ab0343e4f | ||
|
65654e7e8a | ||
|
6badbe738d | ||
|
f65074b3c5 | ||
|
62dbab907d | ||
|
48498020a0 | ||
|
3267cbbf78 | ||
|
94e2a0a3e3 | ||
|
5dd26a43dd | ||
|
a743cf28c6 | ||
|
7bdcacf489 | ||
|
6ba963b552 | ||
|
0b9b8251f9 | ||
|
45b138e53d | ||
|
c45f536855 | ||
|
f2891b74c5 | ||
|
047384c08c | ||
|
3566b10e3c | ||
|
438f302787 | ||
|
07d9e35842 | ||
|
27031ab267 | ||
|
06d447247a | ||
|
0eae1bd505 | ||
|
39a0b3b1ba | ||
|
712d39b9dd | ||
|
4a6a39b3c4 | ||
|
e3c41a07e5 | ||
|
6c2bf35d60 | ||
|
418a48de18 | ||
|
00a04b807e | ||
|
f13c34b2a0 | ||
|
5b46c803b2 | ||
|
9cf6dd7a88 | ||
|
643f99b8e0 | ||
|
5143ef9deb | ||
|
59e6fa98c9 | ||
|
8dcbd3710d | ||
|
a5046d43c8 | ||
|
d1776a04c0 | ||
|
13dd87dd85 | ||
|
36ba1c5491 | ||
|
3b2fa0d563 | ||
|
4a31dc403f | ||
|
37b216393e | ||
|
bdfbbbb2e6 | ||
|
3c6efd673e | ||
|
c408621bd5 | ||
|
8c32b08505 | ||
|
9b5d8c2d01 | ||
|
80507dac00 | ||
|
199195dcbd | ||
|
608c4bacec | ||
|
39f366a4a2 | ||
|
64c8789ef2 | ||
|
da88b37ec7 | ||
|
669beb1156 | ||
|
2ba00b3845 | ||
|
fe484e84f4 | ||
|
2592bc3772 | ||
|
7d549a311f | ||
|
c65bbd91d9 | ||
|
88a5c42a4a | ||
|
6394c7efde | ||
|
7511d21a6f | ||
|
32f7767aa5 | ||
|
07df58f4df | ||
|
69cb5738a4 | ||
|
fa1ef06952 | ||
|
3a73e72b16 | ||
|
801eef3ce7 | ||
|
7248692273 | ||
|
c5d3eaffb9 | ||
|
682905df25 | ||
|
2148270773 | ||
|
6e9b2baf6f | ||
|
0b105e2a7a | ||
|
52d05b373c | ||
|
fb8d4668d8 | ||
|
1ad585e154 | ||
|
d12bb09273 | ||
|
fde7072bc7 | ||
|
38a04c3655 | ||
|
3f30cf0bee | ||
|
78c2b10b89 | ||
|
f4865df50c | ||
|
52006c1bb4 | ||
|
a5ee4faef4 | ||
|
b995f798f9 | ||
|
611749c08f | ||
|
0c3310dd16 | ||
|
68f106efac | ||
|
e542dc4aac | ||
|
f74a0b0901 | ||
|
2a599d9760 | ||
|
3eb29b4661 | ||
|
26dbd31717 | ||
|
ebf707dca9 | ||
|
969663786b | ||
|
e2aa66e4c2 | ||
|
afbb76f341 | ||
|
273999ee88 | ||
|
6c2363471d | ||
|
1a5db3cc2c | ||
|
9564c8f144 | ||
|
d77ce27953 | ||
|
392cbeca8a | ||
|
b4fcffbdf9 | ||
|
22f8ace4c4 | ||
|
39364a68b1 | ||
|
3bfeaa764c | ||
|
604b7dafbd | ||
|
b7efd6384c | ||
|
ef17aac981 | ||
|
f54979ce13 | ||
|
593a04ea25 | ||
|
31a3552e26 | ||
|
468c7b600c | ||
|
16fad63e49 | ||
|
f604b1d384 | ||
|
b3eac52e3f | ||
|
5485b9a530 | ||
|
1c35e5ae9c | ||
|
4e0735c759 | ||
|
4dc01fcfa6 | ||
|
91b4918526 | ||
|
5e0d84bb25 | ||
|
73d4492bf5 | ||
|
707ff27371 | ||
|
8ac876380b | ||
|
83990b6a0b | ||
|
250633ec67 | ||
|
fea0c27bdd | ||
|
59f8753c6a | ||
|
a851b0aa96 | ||
|
fbe5918f30 | ||
|
24509543b9 | ||
|
97a010cbc5 | ||
|
8f69c5e0bc | ||
|
bfc89242fe | ||
|
3c7889c95d | ||
|
9347bc8cf4 | ||
|
7cc7444bd5 | ||
|
6a3bef591c | ||
|
8f614d82ae | ||
|
e0c455a476 | ||
|
36a221adf1 | ||
|
ab989e9ff0 | ||
|
e2ba576318 | ||
|
d6b7fcebde | ||
|
ee300cf11d | ||
|
891173c04a | ||
|
0a1c7561bd | ||
|
1b651f2aa5 | ||
|
9a29c79233 | ||
|
67b7bc3d83 | ||
|
83b8a0ea94 | ||
|
daacf35411 | ||
|
14bce28c87 | ||
|
289ed86be7 | ||
|
93ce7f8db5 | ||
|
f54d792bbf | ||
|
05f7850a01 | ||
|
61cf3c3125 | ||
|
5e00fe54ae | ||
|
efe5eb0501 | ||
|
ad49b4513c | ||
|
ae653eb672 | ||
|
59f55beab1 | ||
|
896895b43e | ||
|
bf25ef4369 | ||
|
7879289877 | ||
|
ecd1776085 | ||
|
b37996e4c3 | ||
|
8314eb71c0 | ||
|
eb59a534e0 | ||
|
838064dad3 | ||
|
af484813b5 | ||
|
1c501a0083 | ||
|
9dcb2b31a3 | ||
|
19578cfa66 | ||
|
bbe238e9c6 | ||
|
3eaf5f7fe0 | ||
|
384c118b8d | ||
|
af985d9b1f | ||
|
31c908c873 | ||
|
30710f7f15 | ||
|
b626a1e4f9 | ||
|
7c32884df5 | ||
|
ca70eddaf5 | ||
|
412fda27af | ||
|
295ae55142 | ||
|
40d716d099 | ||
|
13626a161a | ||
|
cc36f40a8d | ||
|
c690a8cd81 | ||
|
eb64b376f4 | ||
|
862edffcee | ||
|
a1102738d0 | ||
|
ba1549048d | ||
|
ed3bd871ea | ||
|
90fedfea93 | ||
|
e81f02f433 | ||
|
0f4deb7067 | ||
|
00f1c06504 | ||
|
82868dd6b7 | ||
|
df25b1a419 | ||
|
0973a20fe4 | ||
|
abca70f6f9 | ||
|
e4a1495f36 | ||
|
8727912052 | ||
|
bb6cb597d1 | ||
|
511c6a2ae1 | ||
|
a147d8623b | ||
|
34a424678d | ||
|
b13546b096 | ||
|
db29ebb93d | ||
|
287e890f60 | ||
|
c3bac2f0cf | ||
|
054802c02b | ||
|
6917e97f49 | ||
|
ad360074bf | ||
|
9dc0a36ca0 | ||
|
c53a8f3288 | ||
|
fbff8d6408 | ||
|
5791a4d3cd | ||
|
2b50208a23 | ||
|
8d378408c5 | ||
|
ed1244aa8f | ||
|
396da93a93 | ||
|
aeb64892fa | ||
|
abd826561d | ||
|
32f1a660f5 | ||
|
2f94b80c42 | ||
|
58846038ce | ||
|
c23a4e4601 | ||
|
e6c9409156 | ||
|
7e8bbda856 | ||
|
55d0a06fc1 | ||
|
9616cd4186 | ||
|
c302438b37 | ||
|
3c53a579a9 | ||
|
e0e9fbc820 | ||
|
ec260fac16 | ||
|
cad23d1477 | ||
|
578ff6bd44 | ||
|
8535e30937 | ||
|
da73550493 | ||
|
bddb37ef7a | ||
|
3e6f406ad4 | ||
|
deaf6984c1 | ||
|
0a1b32609e | ||
|
22ce829645 | ||
|
b632d95086 | ||
|
333ddab5f8 | ||
|
a6f2549ad9 | ||
|
ed13177376 | ||
|
5003459962 | ||
|
c3406c8a6d | ||
|
81f6f768fb | ||
|
43b96b64e5 | ||
|
2bbf28aa17 | ||
|
795439a40d | ||
|
778da5bb3a | ||
|
5985cec139 | ||
|
833ad6463c | ||
|
45f44bd1af | ||
|
8e362f6919 | ||
|
3ef3e3760d | ||
|
62e8beadf8 | ||
|
318352f1bd | ||
|
6341cf92a3 | ||
|
fe42cdc582 | ||
|
0950e41526 | ||
|
642da5a8e8 | ||
|
1ced47fbd2 | ||
|
f56f4e1160 | ||
|
388cb16481 | ||
|
3ed66d636b | ||
|
7a79032ea7 | ||
|
b6deff8a0b | ||
|
b18395f418 | ||
|
36e3abece6 | ||
|
98ce9899ff | ||
|
feb1a2a876 | ||
|
177049ba91 | ||
|
244aa094ef | ||
|
18a9846071 | ||
|
7837252f5f | ||
|
8df971bf7b | ||
|
10b1612ba3 | ||
|
75828e8797 | ||
|
713e1ef2ed | ||
|
d543c76259 | ||
|
d2ca4edc6d | ||
|
c7f945c8b5 | ||
|
39f9eb9641 | ||
|
cfe5a4d212 | ||
|
5c994ebfdd | ||
|
2d61e71409 | ||
|
4d3e21d046 | ||
|
117948f3f1 | ||
|
615ab414ff | ||
|
f67ec6d14e | ||
|
ad398d8caa | ||
|
32b32376c9 | ||
|
1ff340b018 | ||
|
c29e96ab46 | ||
|
ddaaa1aaeb | ||
|
2e81056b1e | ||
|
f0bc18d5ca | ||
|
fc8aa16105 | ||
|
bbbea4f316 | ||
|
657796c8b5 | ||
|
456d831a7d | ||
|
b0fb1f908e | ||
|
357a859cdc | ||
|
ec85199250 | ||
|
66fa5ca98e | ||
|
3319ed95dd | ||
|
51dcaf7556 | ||
|
a8eb7d95ac | ||
|
14e3753183 | ||
|
f668be5266 | ||
|
8168420877 | ||
|
a8ccb92912 | ||
|
84d938da94 | ||
|
6af5f9ed7f | ||
|
f1f6187735 | ||
|
19f17d161c | ||
|
8bc32a2f73 | ||
|
b5debe92c0 | ||
|
19ed871627 | ||
|
dc99c1122d | ||
|
fdc2e1c3c3 | ||
|
f62271354e | ||
|
95b37e2838 | ||
|
b67c3ce40b | ||
|
2c6c23da9c | ||
|
7a3a5ae30d | ||
|
ed2c365db2 | ||
|
eaf7da8e6e | ||
|
eb86a4f33c | ||
|
01bce5658b | ||
|
da2eddd857 | ||
|
a5df4a1cd9 | ||
|
bf602b64b9 | ||
|
94fbf2050c | ||
|
0bf4d54423 | ||
|
0ba5376fee | ||
|
1a07f195eb | ||
|
80dd0487d4 | ||
|
5fb341501e | ||
|
05136d9f87 | ||
|
90c0ae6616 | ||
|
a6c1e32051 | ||
|
3570ba71e7 | ||
|
775f584ff8 | ||
|
7a53aede85 | ||
|
dc51181ab4 | ||
|
0aa61a656f | ||
|
be8bcfb9e7 | ||
|
065e55aa7f | ||
|
332effd33d | ||
|
235c4ca5ee | ||
|
833f87ffcb | ||
|
c63538a01a | ||
|
83da82ce0b | ||
|
4e56f66112 | ||
|
22b0a23d26 | ||
|
e43bc88a4d | ||
|
457157995a | ||
|
70cfe00271 | ||
|
d8398c279c | ||
|
493d9240c2 | ||
|
a5536ab894 | ||
|
225d05e0be | ||
|
b2212a7e2b | ||
|
ee7c0593ba | ||
|
cac4df7d66 | ||
|
51ccd43724 | ||
|
eab4ebc3b1 | ||
|
90d688c222 | ||
|
2be2a05795 | ||
|
110cabaca1 | ||
|
5d1124aa95 | ||
|
128ff0d6ec | ||
|
cbf9dbf290 | ||
|
725537d8fe | ||
|
3905e564bd | ||
|
882065f6cd | ||
|
e22ce0d842 | ||
|
dee8484618 | ||
|
7216f6bd64 | ||
|
5df71c6161 | ||
|
c96343f1d7 | ||
|
69917ebc2e | ||
|
b14e3c61b3 | ||
|
72896f1c8a | ||
|
da70d520bc | ||
|
f7ae377874 | ||
|
e2646c3243 | ||
|
42c580c249 | ||
|
a4dd08ddb3 | ||
|
02d54878c3 | ||
|
cda50dca8c | ||
|
d130dd5e1b | ||
|
829c2482d5 | ||
|
64894d4443 | ||
|
e9120c8e33 | ||
|
66a6018a93 | ||
|
5d711793ad | ||
|
2b5920e451 | ||
|
2c63dee86a | ||
|
8cec528ac7 | ||
|
e523699cfe | ||
|
4c2f8537e1 | ||
|
d7b2cc095a | ||
|
c494644abf | ||
|
80b3c45928 | ||
|
8555758911 | ||
|
22db6b4619 | ||
|
997336ec5d | ||
|
5f0b26ae39 | ||
|
d85a16482e | ||
|
f6e382572e | ||
|
a869a7208c | ||
|
8e853fe091 | ||
|
973a5f1d6e | ||
|
6c47635a87 | ||
|
6c2885ff39 | ||
|
248c05f4e2 | ||
|
ec5d950b7b | ||
|
2648771196 | ||
|
adcb3c594a | ||
|
34fef8d197 | ||
|
033557dba4 | ||
|
58954ed590 | ||
|
203a262c66 | ||
|
7883a6c617 | ||
|
1c8fccad30 | ||
|
94e755552c | ||
|
074a9e0da6 | ||
|
d072ab1f37 | ||
|
9e0340bbea | ||
|
aa750cccbf | ||
|
1a79828aa5 | ||
|
5c02290ad4 | ||
|
c9e76f5f97 | ||
|
caf3308ea7 | ||
|
577cc58fab | ||
|
e3f5d15eaf | ||
|
94a87744ac | ||
|
d7daca9150 | ||
|
3a44c7ce93 | ||
|
692f04496b | ||
|
ace2c672ed | ||
|
2830664dbb | ||
|
12f4a05745 | ||
|
0d38ace8ca | ||
|
8336d4c269 | ||
|
d7bc43584d | ||
|
b50b6daca1 | ||
|
4cc0b81c86 | ||
|
cdf75be0ec | ||
|
0be46adfda | ||
|
841ee33c82 | ||
|
a7666e2112 | ||
|
9a0ea7bc2e | ||
|
13f7a9fc10 | ||
|
32bfaf8868 | ||
|
ff22d124b4 | ||
|
edb2d5d78e | ||
|
86438cf09c | ||
|
8892fac062 | ||
|
4c404ca4ce | ||
|
a1c79f8c13 | ||
|
a7aa72fb6e | ||
|
4bbc04a838 | ||
|
d4d7d07217 | ||
|
16efec9d1e | ||
|
9b57630eae | ||
|
7211c9c08e | ||
|
e86058b299 | ||
|
ba6aee2e81 | ||
|
43f191d073 | ||
|
042f24c749 | ||
|
6a62fb1d84 | ||
|
4fd7ce8286 | ||
|
b90fa1a9ca | ||
|
d405a66443 | ||
|
8a2894f038 | ||
|
dd8cf39082 | ||
|
4bc5426609 | ||
|
64156ada60 | ||
|
bb0c1af703 | ||
|
d5dd1fb166 | ||
|
ce87795520 | ||
|
06c77e4b5e | ||
|
0a2ce698be | ||
|
cc49e96d36 | ||
|
0629cae183 | ||
|
11b4ea5227 | ||
|
015aaa0516 | ||
|
fc4f4f7131 | ||
|
add7bd9052 | ||
|
1bd46e902b | ||
|
4162eb8e55 | ||
|
7fafd07e2c | ||
|
a251002808 | ||
|
d336d1921b | ||
|
6c725a1a75 | ||
|
986bc920fe | ||
|
4552a3c68d | ||
|
6009578829 | ||
|
37d46ca729 | ||
|
f75b2e6ef1 | ||
|
eeeb569ae0 | ||
|
0b1b228524 | ||
|
90ab40dccb | ||
|
2a1483f6a5 | ||
|
88fc0afea5 | ||
|
fecaf3e360 | ||
|
e17e3fe00a | ||
|
58e1fe4c01 | ||
|
789dffe4df | ||
|
f5104c7511 | ||
|
03d83b2aff | ||
|
4ffab7fc13 | ||
|
ec3512fd5b | ||
|
2fb794dd59 | ||
|
ac0af80e48 | ||
|
106fa1b1d5 | ||
|
8b70f3a3b9 | ||
|
cdeea21917 | ||
|
a1a8ccae38 | ||
|
ca10109a65 | ||
|
1d03460aee | ||
|
9a5b21d8f1 | ||
|
2b382d1249 | ||
|
e948fe05ca | ||
|
91176eca22 | ||
|
e4a08d1be1 | ||
|
a6ff10cbaf | ||
|
457f7fffee | ||
|
e00a9a10fb | ||
|
d52f3ab586 | ||
|
519855445e | ||
|
0dcab56e34 | ||
|
136ca4bafb | ||
|
2e323e6f2e | ||
|
66092cfa25 | ||
|
0b8c68739e | ||
|
fc76d08186 | ||
|
a59011ffd2 | ||
|
003a254c17 | ||
|
9c47c82da4 | ||
|
899673495a | ||
|
ce8939a092 | ||
|
f119de43b7 | ||
|
7a30c72828 | ||
|
0be7f3c356 | ||
|
cc74dcfb90 | ||
|
aef4c14b20 | ||
|
5e308e02a0 | ||
|
4485673db9 | ||
|
2c82bf1990 | ||
|
593c6e4b54 | ||
|
8857decc87 | ||
|
a3a76d1c35 | ||
|
1fd1a4e824 | ||
|
a56a7adb46 | ||
|
6031c50313 | ||
|
6c860710bd | ||
|
520d6f9b97 | ||
|
c5e601d726 | ||
|
d42b72c8bf | ||
|
b6bcefbb92 | ||
|
4fedafc1be | ||
|
f0dc938fd0 | ||
|
27de9230b1 | ||
|
446bf7e0aa | ||
|
ea465a1b86 | ||
|
6089d24409 | ||
|
6ac88a9420 | ||
|
74d99b156f | ||
|
8b0fba2ef5 | ||
|
680dc207c0 | ||
|
fc301c8a2e | ||
|
1389262c3f | ||
|
08fff48065 | ||
|
8a4bd0c467 | ||
|
06baae04ed | ||
|
1f7196b8d5 | ||
|
d9e440e7ee | ||
|
9220ab7718 | ||
|
6c767de148 | ||
|
6c65b0a9e0 | ||
|
894d4f700e | ||
|
497a6e7406 | ||
|
b152910f9c | ||
|
d92cf04b6f | ||
|
54d8c9de48 | ||
|
4ed8fe0be8 | ||
|
b64c756a23 | ||
|
314b077fbd | ||
|
d365ccdc21 | ||
|
19261ab2d0 | ||
|
ecfa7db07d | ||
|
b04d338f26 | ||
|
9281f5564e | ||
|
b14aed43b8 | ||
|
44cfa5dcb0 | ||
|
302c084701 | ||
|
557508c7b5 | ||
|
6b26e00dd8 | ||
|
17ac9f3b57 | ||
|
959a833c23 | ||
|
5012f37e6f | ||
|
7ee58ccc88 | ||
|
62f7b40a3e | ||
|
9eb6969456 | ||
|
a1152ff72c | ||
|
a124b514b8 | ||
|
969689cdb9 | ||
|
d8115a79a4 | ||
|
d702210f26 | ||
|
ef3615594b | ||
|
3b7fd2dfde | ||
|
971ad26deb | ||
|
b58aeaad9e | ||
|
e0e21d4282 | ||
|
2364b68907 | ||
|
5bb67ec253 | ||
|
d9fbc4a011 | ||
|
292f6622bd | ||
|
8667de423a | ||
|
0083c29968 | ||
|
9be766a107 | ||
|
9d02982734 | ||
|
d94f09a3b1 | ||
|
32375f30eb | ||
|
2deeff3895 | ||
|
467d17ddf9 | ||
|
7e8b5479c4 | ||
|
36c8877dbe | ||
|
a01fe4d8e2 | ||
|
7bc8b42028 | ||
|
0cda6af1f6 | ||
|
0c10e7a22b | ||
|
ef2aa6f829 | ||
|
60eb9b428d | ||
|
8f218ce773 | ||
|
2158661e77 | ||
|
fa8f72c909 | ||
|
616c16f8c6 | ||
|
ce23303b97 | ||
|
439224e4de | ||
|
0515303c8c | ||
|
fde0039027 | ||
|
5d1750675b | ||
|
989471a409 | ||
|
7a50e25bea | ||
|
73e437de0b | ||
|
cd929a203e | ||
|
bcd038deb2 | ||
|
5120cf7a76 | ||
|
3a9aa7472a | ||
|
a2c39c079a | ||
|
89f31b093e | ||
|
de240b7318 | ||
|
4f4d7f111d | ||
|
6526cf3c2e | ||
|
2764a6e103 | ||
|
3ff9ab1bc8 | ||
|
250ee1faa1 | ||
|
12405527e1 | ||
|
36c69a46fd | ||
|
31a350eea7 | ||
|
aecf460c96 | ||
|
fcc7bbadfa | ||
|
defd848363 | ||
|
527bcf2e6f | ||
|
fd37b31c44 | ||
|
c0c0f90b04 | ||
|
b9fa4ddfc8 | ||
|
ed00685514 | ||
|
1ebc2a9a8c | ||
|
db1d0daec0 | ||
|
fb0b38bb49 | ||
|
e81da5d8b4 | ||
|
358ec5a722 | ||
|
e87eefb319 | ||
|
ddaf5397b1 | ||
|
ce4ab78f13 | ||
|
9505d196e4 | ||
|
f9a6839f72 | ||
|
a2768ccab7 | ||
|
ac6b0a908a | ||
|
53e396d337 | ||
|
fe61fa844e | ||
|
d7949307a4 | ||
|
f94aad65dd | ||
|
6045eac87a | ||
|
af04221ad9 | ||
|
65b7a31728 | ||
|
9888e15f2a | ||
|
cc59b9e695 | ||
|
dfc8526b47 | ||
|
2f4725cfe9 | ||
|
6e1e31bac1 | ||
|
58d47df37b | ||
|
319ec6fbf4 | ||
|
045398d06f | ||
|
ed3b73a989 | ||
|
9892c66d27 | ||
|
7b61460fa2 | ||
|
f2c3b5cb43 | ||
|
b2d1915227 | ||
|
0c61595ace | ||
|
f605e0c479 | ||
|
02286b96b0 | ||
|
8156a646a1 | ||
|
19c8b2a630 | ||
|
e02cf61f2f | ||
|
7e7b98a3c1 | ||
|
dd496dc1a3 | ||
|
ac047afd27 | ||
|
77ae291c15 | ||
|
ec9199cb18 | ||
|
e15e941e49 | ||
|
fde0d81c1e | ||
|
2aac0c9d64 | ||
|
05816d00ae | ||
|
ee1f294327 | ||
|
a41ad6625e | ||
|
721c4c0d9c | ||
|
804880cc9c | ||
|
8cbdd6e130 | ||
|
4a3b6baaf7 | ||
|
dbbdc1791a | ||
|
7b96597d56 | ||
|
4af4f3f88c | ||
|
a56d8a23f5 | ||
|
f33e2fd656 | ||
|
c2fbb74e4b | ||
|
20b3dbc6e6 | ||
|
756570793f | ||
|
1ffa02c287 | ||
|
1bf36dce92 | ||
|
41d859dc5b | ||
|
81897a179e | ||
|
e6508e8a5a | ||
|
0567fa3e53 | ||
|
2683e9209b | ||
|
03afd2932c | ||
|
5864ce4348 | ||
|
90f2b93763 | ||
|
a821f34fc0 | ||
|
b375dd14f7 | ||
|
0506c9abfd | ||
|
ff71e69b0e | ||
|
2dc92caa30 | ||
|
f0bd5dc2dd | ||
|
619cb29707 | ||
|
30a8f22028 | ||
|
68e55c01f9 | ||
|
65c6e578eb | ||
|
2b8632ebe7 | ||
|
72377c9e7e | ||
|
ec5f874a81 | ||
|
6590cf5524 | ||
|
008e07d03e | ||
|
a30076a2ab | ||
|
6972622bc6 | ||
|
e0e06c6ac8 | ||
|
87ca9606b3 | ||
|
6572a1a331 | ||
|
b83acf373d | ||
|
8f91278d1a | ||
|
64c25f073c | ||
|
81cba3d275 | ||
|
018772ca9a | ||
|
8b8a4f3d7b | ||
|
09a91c4541 | ||
|
e26d87c73d | ||
|
8470ac9731 | ||
|
b6582c4144 | ||
|
f40cf13048 | ||
|
99de618bed | ||
|
dd69b254f9 | ||
|
9a97e0bf61 | ||
|
a4ea47e740 | ||
|
825ba77bb2 | ||
|
79e6dd074a | ||
|
b0f73b029c | ||
|
7bf8a41959 | ||
|
b73c097f3c | ||
|
b4ed380caf | ||
|
5d183654b1 | ||
|
b625d6a9bc | ||
|
c6e263a6d3 | ||
|
ee553d6693 | ||
|
bfd9dcbca2 | ||
|
4bff816056 | ||
|
aa24debd87 | ||
|
8aaf185a8e | ||
|
55d8b6a819 | ||
|
ac8597e745 | ||
|
e2ed4b4ae1 | ||
|
ab4eda18bf | ||
|
a53de92b10 | ||
|
2ee52f2062 | ||
|
d1a63ccd2d | ||
|
3c1e183ed6 | ||
|
9b1def3c1d | ||
|
8b9d1bb0d8 | ||
|
cb59d82846 | ||
|
fe1019f29f | ||
|
3d207f93f1 | ||
|
c07296c94d | ||
|
cceac66504 | ||
|
18943e3453 | ||
|
df02f505ad | ||
|
d42c27bfe0 | ||
|
811b2e8c75 | ||
|
9fe3fc69dd | ||
|
cc4aae0f4a | ||
|
b6d052e58d | ||
|
56afac26ad | ||
|
012485b8e3 | ||
|
f14aabcd22 | ||
|
e795e9da52 | ||
|
87a8c786f7 | ||
|
274b1a149c | ||
|
c848615636 | ||
|
b0a9b482e7 | ||
|
1497650146 | ||
|
927b51413c | ||
|
3fe7a9d8d5 | ||
|
c99f67bea4 | ||
|
ba5d6c9108 | ||
|
7d120f94f6 | ||
|
5d30026726 | ||
|
c926b4cc69 | ||
|
1ef809c633 | ||
|
e311d0e469 | ||
|
2c10d9dcaa | ||
|
f44d8b0b20 | ||
|
72e2951c3e | ||
|
9781656c1d | ||
|
4f71741107 | ||
|
74c9a71cbd | ||
|
49ad37a7f6 | ||
|
0944b2ff39 | ||
|
004f40bff5 | ||
|
8571fd0ba9 | ||
|
c616229d53 | ||
|
a8df1af6fd | ||
|
be696f5a5c | ||
|
1411fdd99f | ||
|
e1c572e46c | ||
|
fde2aee69a | ||
|
cf5745e966 | ||
|
0c4c695b9c | ||
|
e0349b27ed | ||
|
9114630bba | ||
|
3725921400 | ||
|
9ea0f88181 | ||
|
cf247eafb7 | ||
|
dbe5b35ad4 | ||
|
6b754f3e03 | ||
|
410a7b525f | ||
|
fedbe048ba | ||
|
3845e1435c | ||
|
21e88efaff | ||
|
6671a100ad | ||
|
91b0465caa | ||
|
68cd7d487a | ||
|
302edb44dc | ||
|
ddaf1128ac | ||
|
d116d98080 | ||
|
406a67827c | ||
|
725ed00759 | ||
|
5e19838108 | ||
|
fa8f110579 | ||
|
8e7e320e40 | ||
|
a83f714657 | ||
|
c20c3a741a | ||
|
d60695806f | ||
|
c41f0dd0cf | ||
|
619e5dd7d1 | ||
|
3d722118ca | ||
|
b161e5eb2e | ||
|
07dc0d2e54 | ||
|
e9aab6331a | ||
|
59f00cd196 | ||
|
c863b90d42 | ||
|
c7d5ceca5d | ||
|
4f5ad816f1 | ||
|
79ea66890f | ||
|
3a5c139759 | ||
|
fb67499657 | ||
|
66fa285910 | ||
|
4d62e75c65 | ||
|
cc6dad3fce | ||
|
b77475a3d9 | ||
|
036521af94 | ||
|
a062093acf | ||
|
630a981864 | ||
|
56691f613e | ||
|
a52a2504ef | ||
|
67d4afa012 | ||
|
ca49cce759 | ||
|
a812b77e7d | ||
|
7b208316e4 | ||
|
2c5504ffce | ||
|
24e78fef74 | ||
|
a2e8506600 | ||
|
eee418d1fd | ||
|
2b58c42c8b | ||
|
b2e64e6265 | ||
|
6e0ca3958b | ||
|
d49f104332 | ||
|
5daf82a32a | ||
|
bc856fd16c | ||
|
e9472d64f2 | ||
|
ba25e6d6fb | ||
|
b409431b0f | ||
|
d304624878 | ||
|
bb9459fcab | ||
|
e4640f14d2 | ||
|
8ef0850752 | ||
|
09d840506e | ||
|
d60683d991 | ||
|
590f99a5c2 | ||
|
e6addd1319 | ||
|
a11d5ebdd9 | ||
|
2d8ef9925d | ||
|
e8476882fc | ||
|
1ba8d29333 | ||
|
a0534d8fcc | ||
|
0f6d5aec88 | ||
|
fbd1009ebc | ||
|
0fccedd68f | ||
|
f366211436 | ||
|
2f1ce94efb | ||
|
01555d5cb4 | ||
|
e612421be3 | ||
|
36f13aa520 | ||
|
128ff1f8eb | ||
|
4522deb1ef | ||
|
aea0d2f2ca | ||
|
066d96912b | ||
|
5b9c7c3b27 | ||
|
4958b8ae7b | ||
|
c4831510ac | ||
|
050c23b578 | ||
|
a32a78751a | ||
|
01bc275311 | ||
|
87a0957d9a | ||
|
e77688b3f4 | ||
|
e9f5208efd | ||
|
3c8401bc24 | ||
|
d3a1783e57 | ||
|
9a981bb1d5 | ||
|
64c875e017 | ||
|
0fcf7c7079 | ||
|
8639b69e73 | ||
|
58ea816cae | ||
|
b468a9da33 | ||
|
91e4536f37 | ||
|
28362b53f8 | ||
|
fe0c2fc57f | ||
|
746191163a | ||
|
067a030f19 | ||
|
5cc96850af | ||
|
45bbf74db3 | ||
|
f21a978608 | ||
|
c153a833aa | ||
|
12b6f54cf9 | ||
|
abcde349f0 | ||
|
7de82e0204 | ||
|
0750e80f04 | ||
|
87995abc7f | ||
|
b6695c7009 | ||
|
616c1d780f | ||
|
47960c0dfd | ||
|
d62cf70b8c | ||
|
f37034c18e | ||
|
653c97b40d | ||
|
2dae13f6c8 | ||
|
e6df2b39b4 | ||
|
e577320301 | ||
|
41d35e68a0 | ||
|
8e2eb1903d | ||
|
7334d909d5 | ||
|
fb82b1d1ce | ||
|
f3ad9e38c3 | ||
|
fd255039f3 | ||
|
f56c315207 | ||
|
5958559186 | ||
|
e5163ad9c3 | ||
|
c6b9dba041 | ||
|
1e8a8d4da0 | ||
|
a5039287b2 | ||
|
796c5052c0 | ||
|
f6070ee9ca | ||
|
c66b1885ad | ||
|
3df337fa07 | ||
|
abab2a0db7 | ||
|
e9bd271642 | ||
|
c3bc53fe48 | ||
|
d4186af761 | ||
|
989c2ee967 | ||
|
4cfb79d566 | ||
|
d0a9e9eda0 | ||
|
7509e07df5 | ||
|
e1ea10e0a2 | ||
|
e51488bc57 | ||
|
09b6b6d194 | ||
|
cc0c9c262c | ||
|
a06dc55848 | ||
|
5e59eb474a | ||
|
c0d065da9c | ||
|
c28e7c86d4 | ||
|
d96d9575ed | ||
|
4dd5fa7051 | ||
|
732582b6fe | ||
|
48217a48fa | ||
|
3af663e91f | ||
|
1276b12188 | ||
|
46684702a1 | ||
|
d1c631b55c | ||
|
4a817fd9f5 | ||
|
7f43a1bb06 | ||
|
4bb9a68603 | ||
|
2a0331dc04 | ||
|
d632c866a2 | ||
|
985e09a68c | ||
|
d5fa6f188c | ||
|
8150333241 | ||
|
26cfe9ff1e | ||
|
ab1d899e1f | ||
|
5a994e7314 | ||
|
6c686351c4 | ||
|
75de805417 | ||
|
83f3229805 | ||
|
5c253bbd28 | ||
|
99a906fe9b | ||
|
6a9b496651 | ||
|
792fca8400 | ||
|
23a25cf240 | ||
|
242c14a156 | ||
|
d631c709d6 | ||
|
442180e373 | ||
|
03ebad14c4 | ||
|
70c9c8a21d | ||
|
8019eb55fa | ||
|
0c289eba2b | ||
|
0078697d4b | ||
|
d768031c21 | ||
|
6c7ed9abf7 | ||
|
4a436c3203 | ||
|
e260851f8d | ||
|
d198fbe559 | ||
|
33dd5374ff | ||
|
25e2143484 | ||
|
cc15c12c41 | ||
|
6fc15ea1ab | ||
|
60e1c7c573 | ||
|
d79e44d59f | ||
|
08a5d7ecea | ||
|
1624c8c73a | ||
|
cca907c636 | ||
|
bb13e1e437 | ||
|
11c1ae768a | ||
|
b38911751e | ||
|
81f3e4a360 | ||
|
da780ac56f | ||
|
0d4697b7e1 | ||
|
9e83f376e7 | ||
|
9a143d99cb | ||
|
3d7733156e | ||
|
fabdc20887 | ||
|
7dfe5264cd | ||
|
85b5713b24 | ||
|
95783506a2 | ||
|
fb05ab34d8 | ||
|
5c55263cf6 | ||
|
fd3b082a2c | ||
|
ac7b47b8b2 | ||
|
6657d6c5af | ||
|
9f3c8b6e5f | ||
|
f5ec7a312f | ||
|
a0eb2e733c | ||
|
85aba894d6 | ||
|
d8668f70bc | ||
|
b3a8052a51 | ||
|
61f05e78a3 | ||
|
00c6ad58a5 | ||
|
125135c250 | ||
|
b83f6f2cb7 | ||
|
3063c0da49 | ||
|
9dda647c52 | ||
|
b294c9a1fd | ||
|
0bedfc8087 | ||
|
b7826c02a3 | ||
|
c8a2bfc738 | ||
|
0dd9e943c7 | ||
|
96cfcc8229 | ||
|
d8fa1cb2ed | ||
|
8b220de952 | ||
|
a909779e08 | ||
|
d8fdaf0477 | ||
|
1d77f99148 | ||
|
687c2794fd | ||
|
f0ae458a54 | ||
|
d51a1fdb0e | ||
|
7a3f2bb240 | ||
|
9a649b6093 | ||
|
f770ae0653 | ||
|
49992f682e | ||
|
6b0f8318b7 | ||
|
a2cf8720ab | ||
|
3f637ea41a | ||
|
b89df0b520 | ||
|
9e1235d51f | ||
|
c6fd9f46cb | ||
|
10322545aa | ||
|
f0165f69d3 | ||
|
5c359d4d45 | ||
|
0f3e4046e1 | ||
|
372ff9ff97 | ||
|
0ad2051dd3 | ||
|
2792c48a6e | ||
|
a8a5c6b883 | ||
|
e52d351273 | ||
|
c02dc7b962 | ||
|
3eb590ebe8 | ||
|
653f699c28 | ||
|
b500fcd3d0 | ||
|
9a86ae670c | ||
|
79ba60c10d | ||
|
7f821f1285 | ||
|
7639f158d7 | ||
|
a8cd77c267 | ||
|
7ceef0045b | ||
|
26a677edc2 | ||
|
38ba61f144 | ||
|
10b1443fda | ||
|
a0bf1787cb | ||
|
5f6f16d94b | ||
|
ee941cf88d | ||
|
bc3ab9dd11 | ||
|
a5fffdfc1b | ||
|
ca8e4f51e9 | ||
|
a48d33dc3c | ||
|
3ad754e732 | ||
|
78afa3f100 | ||
|
51376cc202 | ||
|
309642845e | ||
|
448b6e1c74 | ||
|
6332668b8c | ||
|
c3105c8bb1 | ||
|
b08337e3a7 | ||
|
fbdbfb6be2 | ||
|
e4c8c88cee | ||
|
4dccff4d78 | ||
|
9976b3b8ac | ||
|
8c53d2f9b0 | ||
|
2d761385a1 | ||
|
62f2fe1c16 | ||
|
40f8d94954 | ||
|
b4f833cb0d | ||
|
50b7f3ef2c | ||
|
6ed36e804b | ||
|
cc1e1fe8eb | ||
|
70c62233d0 | ||
|
70c8703b2b | ||
|
ecbd2d48a7 | ||
|
33714b850f | ||
|
d2d24cbcbe | ||
|
82391aa281 | ||
|
f9580e6cd5 | ||
|
b2d7ef9fbf | ||
|
7961525869 | ||
|
2121ec5739 | ||
|
99fc4b4a21 | ||
|
667b30f145 | ||
|
7b15193eff | ||
|
17227f1ae6 | ||
|
1277376496 | ||
|
8fb402ab10 | ||
|
63626b79de | ||
|
f6415b0a5d | ||
|
d3ad8d8deb | ||
|
391bf842b4 | ||
|
237a5a18f3 | ||
|
c9273dd067 | ||
|
c404454cd7 | ||
|
bad4eba153 | ||
|
e26759fa89 | ||
|
c095cc73ce | ||
|
9c619001a5 | ||
|
4a5fe3c0f9 | ||
|
fe4174f005 | ||
|
c9794d8280 | ||
|
b412b9f4e9 | ||
|
8d8ee051eb | ||
|
578d90e463 | ||
|
c408f824d3 | ||
|
6f9b5c010d | ||
|
221cb24de8 | ||
|
246307ab98 | ||
|
758f0398bd | ||
|
493dc57a29 | ||
|
4d4dbc958b | ||
|
8b6e4dd4d4 | ||
|
e926871570 | ||
|
2f408656a7 | ||
|
f37e3b71eb | ||
|
ade1b7be8c | ||
|
ba9c1dde32 | ||
|
5fb10ab287 | ||
|
e2cd75284f | ||
|
b0237a4e22 | ||
|
428942d407 | ||
|
3f8cbd1b9c | ||
|
ae8f977d6b | ||
|
b769eafcc3 | ||
|
fbd1763dcf | ||
|
069c0c7cb4 | ||
|
bc5c53b70d | ||
|
e6475a3f83 | ||
|
7bb7a085a8 | ||
|
0a4595df5b | ||
|
7d29fbc68c | ||
|
c73c36eb26 | ||
|
67dd250f83 | ||
|
1ae5965632 | ||
|
13b9b5b5d6 | ||
|
4ed24b5571 | ||
|
55a5752e3b | ||
|
82fed20145 | ||
|
ac3285001f | ||
|
6b403ec224 | ||
|
79762d9133 | ||
|
cdbc197426 | ||
|
cedeb8fa50 | ||
|
cda100e596 | ||
|
0d63608d6e | ||
|
b820434cea | ||
|
982340b6b8 | ||
|
da4e77bca4 | ||
|
fcc70c7bc8 | ||
|
13218365bb | ||
|
b08b4324bc | ||
|
c6d272c45e | ||
|
69979aa761 | ||
|
bd7d3c5563 | ||
|
c38082eb63 | ||
|
fd6be11b6d | ||
|
dafbb32b97 | ||
|
907dc000ef | ||
|
26811c3c39 | ||
|
d4c61c7018 | ||
|
ccdc61d34b | ||
|
5c50a1d15b | ||
|
fcc334dc17 | ||
|
663302b582 | ||
|
8cc174a5c1 | ||
|
e58652a101 | ||
|
92f8dd971d | ||
|
42ceb1f7f2 | ||
|
0879e1581c | ||
|
347c07ec35 | ||
|
86b0c9cd78 | ||
|
91a63194ef | ||
|
5f6654b696 | ||
|
b1ef4dd60c | ||
|
ee5cc19c23 | ||
|
677818a18e | ||
|
c4a1d213b8 | ||
|
a6e6f68a1e | ||
|
2fe1b57297 | ||
|
8e4e70aaf9 | ||
|
548a243d64 | ||
|
3140867252 | ||
|
be92fe2564 | ||
|
d8d0d6f2d9 | ||
|
e3708be04e | ||
|
95c6b88e12 | ||
|
90c177cdb9 | ||
|
619da0e84d | ||
|
ab151cddd1 | ||
|
d7e1cba45c | ||
|
4c554e4e85 | ||
|
e8bd7ea967 | ||
|
67676a41cb | ||
|
2f3dc24857 | ||
|
400d8058e8 | ||
|
985e1569bf | ||
|
1062bfe039 | ||
|
b8d4ff552f | ||
|
ffb8b10f66 | ||
|
a02141c7c2 | ||
|
38763d0575 | ||
|
aeb881e8b6 | ||
|
2792cceebe | ||
|
b2ee7f327f | ||
|
c7b54b8d3d | ||
|
92801f625d | ||
|
cb38dacbb0 | ||
|
6c1016caff | ||
|
ac7aa9f31d | ||
|
50f8d0a667 | ||
|
4b7069f47c | ||
|
840b8847d9 | ||
|
d10d8d740f | ||
|
2c10678263 | ||
|
4c496bb148 | ||
|
f16302c34d | ||
|
78eb11fea8 | ||
|
f117d41374 | ||
|
9b60bc0ad4 | ||
|
a85ebbfc34 | ||
|
9d89c60177 | ||
|
384f95a180 | ||
|
4c31bd0639 | ||
|
3a80880ac7 | ||
|
e40b646adb | ||
|
257f41dbf1 | ||
|
39a41f6b4e | ||
|
484606bfa4 | ||
|
2c843985ca | ||
|
0dc80db9b7 | ||
|
909ce290c8 | ||
|
46ed9a87e4 | ||
|
f3e0ae0819 | ||
|
f501555ff9 | ||
|
c7efd8a6f6 | ||
|
8db704f3b9 | ||
|
a5bf25f2b4 | ||
|
b8cdf9dcaa | ||
|
6266b2019b | ||
|
7ab7d7cc80 | ||
|
53eb852e3a | ||
|
a806991e88 | ||
|
de3a070710 | ||
|
d524f1a7d4 | ||
|
a7ed2114be | ||
|
fca4df3522 | ||
|
fdb9ed80d4 | ||
|
a10a8ce5ca | ||
|
fb87d31ce4 | ||
|
a69c1fa584 | ||
|
6ab746d8be | ||
|
10796f1fa0 | ||
|
6feca4badf | ||
|
63419fcf5e | ||
|
1fd0fe504d | ||
|
68bd55fef5 | ||
|
38904cc021 | ||
|
b7b1a96bc2 | ||
|
b9b261a3a3 | ||
|
40949aaf7e | ||
|
94567510ca | ||
|
5a378383f5 | ||
|
bdc370474e | ||
|
6a2a69ada6 | ||
|
cf22a76742 | ||
|
dc1ac779f1 | ||
|
6acd37e457 | ||
|
07f2d9b449 | ||
|
dd5c343269 | ||
|
9a059ead44 | ||
|
95f4d88461 | ||
|
64871e3681 | ||
|
ead8cec4a6 | ||
|
cfb1e09d64 | ||
|
a0f86d270b | ||
|
ff2fc3e0a7 | ||
|
d904ebbd70 | ||
|
051f925f0e | ||
|
1ba986d45a | ||
|
8a68b31f1b | ||
|
1659ca001d | ||
|
7f1bcacd97 | ||
|
67d5289f01 | ||
|
3e770f9efa | ||
|
4126e6418b | ||
|
8abae6f917 | ||
|
7c3257942c | ||
|
19fc97ba0f | ||
|
e3b3617b1a | ||
|
db84d02cd2 | ||
|
7d800dd8e0 | ||
|
c7a7a4db16 | ||
|
d8533b0abf | ||
|
de0c4f3f67 | ||
|
2cbb5306f9 | ||
|
b3e86129e9 | ||
|
310c4b4a24 | ||
|
6f74f28561 | ||
|
6b8bbf2574 | ||
|
41a3a07bf6 | ||
|
09f158e85d | ||
|
253480fd2b | ||
|
cdaec0e293 | ||
|
11b2cd3dc0 | ||
|
388a380101 | ||
|
5793a38774 | ||
|
a030769aea | ||
|
ea5b2b3433 | ||
|
c6728dde38 | ||
|
169ac9d0a0 | ||
|
59ef8e10c8 | ||
|
d19346b9c6 | ||
|
ad76cbbc40 | ||
|
89348995c2 | ||
|
1e0799d5b0 | ||
|
0776d394bc | ||
|
7616912411 | ||
|
0743140973 | ||
|
8434fb9a64 | ||
|
586c227816 | ||
|
f469450ca4 | ||
|
d957e24747 | ||
|
48119604b9 | ||
|
568052c4ce | ||
|
c9e93d695b | ||
|
61f19d5bde | ||
|
d055d5e5df | ||
|
bf95ece5c8 | ||
|
03202080b3 | ||
|
b68e01cda4 | ||
|
b847d8cf36 | ||
|
16c6cdf108 | ||
|
3c092c4e2a | ||
|
4f19034a94 | ||
|
f58ba13ef0 | ||
|
98d195c010 | ||
|
a51d626fe8 | ||
|
35325db407 | ||
|
f0c8c3fd63 | ||
|
293a177148 | ||
|
3e42cec4ec | ||
|
57f42ed0f5 | ||
|
2c444527bd | ||
|
dd397b9a48 | ||
|
414dc52f7d | ||
|
2b6bfc1ebc | ||
|
e89bb0eea7 | ||
|
d43c802c90 | ||
|
0d9cd2b3a3 | ||
|
1355178fee | ||
|
f4b50f1e0f | ||
|
8a5a47c6a5 | ||
|
81505d3802 | ||
|
8811f752e5 | ||
|
be099dcae0 | ||
|
6cd05c899e | ||
|
abf35d730d | ||
|
f3e7d0daff | ||
|
906fe8be76 | ||
|
654eede21b | ||
|
2a36dc8ee5 | ||
|
e003bc973a | ||
|
941c2a792f | ||
|
daecd7d43a | ||
|
26aaf84806 | ||
|
cadd5c050b | ||
|
b8734a23a9 | ||
|
a53ad39e1a | ||
|
84bb11c1bf | ||
|
0b5f991434 | ||
|
96eaa62d7b | ||
|
080759b154 | ||
|
de2aac0ecd | ||
|
26d42a198d | ||
|
d08b4b953f | ||
|
c07ea743c5 | ||
|
9d89ab1b60 | ||
|
227f6ffa58 | ||
|
b1a459b6de | ||
|
ca565ea3d9 | ||
|
5108b5dccb | ||
|
1c03162357 | ||
|
67d595dbf1 | ||
|
6f610b134e | ||
|
0241a21674 | ||
|
063b017f42 | ||
|
61d8af62d5 | ||
|
6dbdc34f0f | ||
|
6c2574c99e | ||
|
93b7e1094c | ||
|
f7a0615105 | ||
|
8dc57fe2f0 | ||
|
397614121c | ||
|
944b447d93 | ||
|
aae6e20f9c | ||
|
bdb49f5946 | ||
|
b437996208 | ||
|
d281f9dde5 | ||
|
d5b375e82b | ||
|
6fd99dc302 | ||
|
ed3a201f0b | ||
|
90a4e71b06 | ||
|
f5e33ca980 | ||
|
82feda476d | ||
|
5e9e65e10f | ||
|
be3d419290 | ||
|
e6e079a071 | ||
|
e326188aa8 | ||
|
bfa50f186a | ||
|
f2db4be479 | ||
|
0bbc74b193 | ||
|
27b1bc9e66 | ||
|
7617309058 | ||
|
a8b73f0cf9 | ||
|
df6ebcacd1 | ||
|
a92fae6d25 | ||
|
1297ccd45c | ||
|
28ca03cc67 | ||
|
c6a89c738a | ||
|
529898d9fa | ||
|
9a2beb5017 | ||
|
08cb6de83d | ||
|
03da067e44 | ||
|
c25edfada4 | ||
|
0dad4cb02a | ||
|
7415623c2f | ||
|
c7db89613c | ||
|
71320e42d0 | ||
|
fb5f0cbd00 | ||
|
e7322e8524 | ||
|
5a67c39c7f | ||
|
a885ff5e47 | ||
|
b0907de582 | ||
|
ddd82441bd | ||
|
8e829c6aad | ||
|
d9fb58fbcb | ||
|
f64adeba7f | ||
|
34145f0374 | ||
|
df241dbdb8 | ||
|
010cf540b6 | ||
|
55fdff4242 | ||
|
d3a516b05d | ||
|
a9a7400fef | ||
|
fb352ffa38 | ||
|
d8d808d0b4 | ||
|
8c26592d46 | ||
|
9b8e45ebfe | ||
|
93aac8faea | ||
|
2e88998b05 | ||
|
3a5b737639 | ||
|
28dd507a74 | ||
|
96f0d52753 | ||
|
45c80de333 | ||
|
243463adbc | ||
|
395d48f946 | ||
|
497f7cf044 | ||
|
d6358dcb16 | ||
|
28a3ae264c | ||
|
dd3928f075 | ||
|
b3bfd05ecb | ||
|
e861edd544 | ||
|
6e57aeb9e5 | ||
|
98b55457b5 | ||
|
34713d5023 | ||
|
33a19c1ef5 | ||
|
e2a55fb6f6 | ||
|
c77ecc6a21 | ||
|
58580f1e6a | ||
|
fbbd6b1a90 | ||
|
98a7f7df4d | ||
|
6d1dd089f0 | ||
|
415b0d4820 | ||
|
72c4af0026 | ||
|
fcc1838aed | ||
|
a9d704f273 | ||
|
054c0435a8 | ||
|
ea71a8b5c2 | ||
|
90e851a4bc | ||
|
2b629f130f | ||
|
18efa84e3a | ||
|
a8d43538f1 | ||
|
e53dd1e1a1 | ||
|
88346ffc68 | ||
|
6608264d15 | ||
|
0c98a2f81f | ||
|
2118eaea90 | ||
|
52b07021a7 | ||
|
4bdde101b8 | ||
|
6f38f9c2e6 | ||
|
3f087eb632 | ||
|
0d084648a3 | ||
|
53a8098caa | ||
|
d0e5b3eb21 | ||
|
a815ac996b | ||
|
1556e5d078 | ||
|
55bb6fa21a | ||
|
9fb19af39c | ||
|
8da88f9263 | ||
|
778269f831 | ||
|
356718dc9a | ||
|
62a20ba69d | ||
|
dfd8bf6c4c | ||
|
5a02bca442 | ||
|
85504162a5 | ||
|
a903a19d2d | ||
|
fb2505fcfe | ||
|
fabb345107 | ||
|
45cb013e1a | ||
|
b446ceded8 | ||
|
c603b780cf | ||
|
7df7df7541 | ||
|
85264401cc | ||
|
d2fbe26182 | ||
|
33ca5753f1 | ||
|
cb400b660d | ||
|
9350053214 | ||
|
4cf97d48c9 | ||
|
e75070be91 | ||
|
1361852721 | ||
|
a0025bc99b | ||
|
f5d3bcbb94 | ||
|
0a0eb08de9 | ||
|
65b949071a | ||
|
7c0d340bd0 | ||
|
80ec0aaf05 | ||
|
382a936e0a | ||
|
abea68557b | ||
|
f278e2884a | ||
|
ce718d9370 | ||
|
7c4df42aa8 | ||
|
e91be2b599 | ||
|
e87d97083f | ||
|
1a33f6e094 | ||
|
7d349bdfc3 | ||
|
9233007d97 | ||
|
61c5bbc444 | ||
|
63f0cce561 | ||
|
3a216759a1 | ||
|
bbe3613aa6 | ||
|
2a32a780cf | ||
|
ec65267750 | ||
|
e7a68907f9 | ||
|
d112f860a2 | ||
|
93559aee63 | ||
|
1a986e7437 | ||
|
69488642f8 | ||
|
3ec8c77d17 | ||
|
6fda2cc7b3 | ||
|
e44c9aa126 | ||
|
dc63d41c97 | ||
|
9941281107 | ||
|
f17129b660 | ||
|
7b0878daf9 | ||
|
ca7b469d28 | ||
|
324b3cc68c | ||
|
c2c58f81d8 | ||
|
667db71fb9 | ||
|
80b94821a0 | ||
|
87c650bcba | ||
|
c50c9b9ae8 | ||
|
70996655e1 | ||
|
8476fba5ff | ||
|
a2aa0471c5 | ||
|
2fe03a0016 | ||
|
5b3711b634 | ||
|
320915e0a1 | ||
|
65b634fe95 | ||
|
c0a2b39f6d | ||
|
86b888c336 | ||
|
98df2d82db | ||
|
9866bfefed | ||
|
82e68472dc | ||
|
69920a6e46 | ||
|
af3718d202 | ||
|
0e463875f9 | ||
|
a8c1214417 | ||
|
a82ddf5d5c | ||
|
a398391908 | ||
|
2a46fbe77c | ||
|
1f34d368a2 | ||
|
8679ba9a38 | ||
|
2f8aeb991e | ||
|
e0b378e2be | ||
|
863cc7e0fc | ||
|
1df71d31e2 | ||
|
d17152cbe2 | ||
|
5fa3b3f168 | ||
|
4c3f6db55c | ||
|
ef4889a1b3 | ||
|
0488ce822f | ||
|
43f4dae62b | ||
|
3b09323ee4 | ||
|
353a8a70eb | ||
|
78a6e2354f | ||
|
95969253b5 | ||
|
c9a28c1cf1 | ||
|
30115fa2b9 | ||
|
8100a2e674 | ||
|
5bb397f35e | ||
|
0a0c322963 | ||
|
7971a74614 | ||
|
71d1024fe9 | ||
|
eb84072a05 | ||
|
f40f838a9f | ||
|
1d3b4e9829 | ||
|
0d80bdfd41 | ||
|
16481df0f7 | ||
|
4f9b361346 | ||
|
47cedfb522 | ||
|
7ef8193a93 | ||
|
3c03bae4c5 | ||
|
4200b4b5e9 | ||
|
7a4a6030db | ||
|
d7c2dbe83f | ||
|
9abf6e37d1 | ||
|
c3ae0c2251 | ||
|
dcffc35041 | ||
|
6f4e079a2e | ||
|
1d573e3f5d | ||
|
1a668da077 | ||
|
a9358e98b2 | ||
|
9929d6a4eb | ||
|
ccb4f2d1dd | ||
|
c4c62acdaa | ||
|
142c87314c | ||
|
622ada7125 | ||
|
abc0e51f1e | ||
|
5c64724bf8 | ||
|
b956615a23 | ||
|
d342a86cbc | ||
|
7e4b8ac868 | ||
|
484657ccf9 | ||
|
0e94bffd5c | ||
|
838b9477ef | ||
|
20d96eda85 | ||
|
bed5f28c2f | ||
|
e940736938 | ||
|
d3fb12da19 | ||
|
c581564bb1 | ||
|
f57c46de9a | ||
|
e63fa2d83f | ||
|
e655a54064 | ||
|
c6ef972e3c | ||
|
7ac46a2fd1 | ||
|
4f09160697 | ||
|
d9fd627bb1 | ||
|
6e3283cb34 | ||
|
2d44e47e6a | ||
|
62e8394218 | ||
|
a2646c56cf | ||
|
f21e30f7c7 | ||
|
c10254dbfa | ||
|
924e668023 | ||
|
532bc18b1e | ||
|
945026730c | ||
|
519d43ceb7 | ||
|
6b75e2c993 | ||
|
c7881fc55e | ||
|
81e14c7c3b | ||
|
3cffedd353 | ||
|
785ce03e67 | ||
|
9a39354332 | ||
|
96da695473 | ||
|
3ab941eace | ||
|
d50b0fbb6b | ||
|
8406b2a4eb | ||
|
cd72563d8b | ||
|
e26393b1b5 | ||
|
bd4263861e | ||
|
84ece3b575 | ||
|
a4cae9ef07 | ||
|
eef904b3d5 | ||
|
231bd6292a | ||
|
ec073552bd | ||
|
fb4c83b3c4 | ||
|
2ab2af90e9 | ||
|
1cfcc18407 | ||
|
4779b78616 | ||
|
1a898a8ad5 | ||
|
d6abd176fc | ||
|
2be43e9294 | ||
|
a7bc2ef3bc | ||
|
aab558af09 | ||
|
d0d2929a84 | ||
|
4e6e5041d8 | ||
|
29d4916a2e | ||
|
c4e578a653 | ||
|
37371ac024 | ||
|
9925cf9996 | ||
|
03d6ace3ae | ||
|
0aacde9d9d | ||
|
dff0f9d1bc | ||
|
8bb421a916 | ||
|
0f0492db3b | ||
|
8ada26529a | ||
|
23cd6dae42 | ||
|
2cf40cbcf2 | ||
|
a525ede25d | ||
|
4e42bedde9 | ||
|
5a948891f0 | ||
|
2c5ddca821 | ||
|
0fe4b9f07f | ||
|
8bea64bc0c | ||
|
8854b81977 | ||
|
a886e93c7e | ||
|
a8cd6ca497 | ||
|
6da4245efb | ||
|
cd6d06529e | ||
|
216de6c050 | ||
|
f1056898ed | ||
|
c81866f34e | ||
|
77dfd5f826 | ||
|
592f890fac | ||
|
bd9fa48312 | ||
|
9ddded4996 | ||
|
f56703abc4 | ||
|
0f29f7848b | ||
|
b07e0a47e8 | ||
|
41431cd1d2 | ||
|
8754f230d3 | ||
|
42be961681 | ||
|
a76b6e522b | ||
|
6d53bf667c | ||
|
b5aedd4626 | ||
|
ab34bb6df7 | ||
|
80abe1f675 | ||
|
13144f078a | ||
|
b37dce7da7 | ||
|
32c6281dd2 | ||
|
0948cab31f | ||
|
7ddec674fb | ||
|
9641ff132d | ||
|
65bc4acbab | ||
|
9047d9d62c | ||
|
082b39e651 | ||
|
eb503b8ab6 | ||
|
e1fc6fa727 | ||
|
3e05431e6f | ||
|
6c0b7f7b43 | ||
|
fc98057042 | ||
|
31bb9eaac8 | ||
|
9eba3034db | ||
|
e55c378683 | ||
|
b16ccf5098 | ||
|
dcca546c4b | ||
|
d0b598463f | ||
|
af039371e1 | ||
|
8860dac759 | ||
|
8d2a914c64 | ||
|
707507202d | ||
|
879cafc8d1 | ||
|
1ecc42c903 | ||
|
f981900cf3 | ||
|
fb7fbced39 | ||
|
7332c08bb4 | ||
|
7d4df8be09 | ||
|
752434acb4 | ||
|
7b159c5b71 | ||
|
9b61c1aead | ||
|
632064ffde | ||
|
29f48249e2 | ||
|
539d134b77 | ||
|
61ff944994 | ||
|
3db8e0b045 | ||
|
d42a3da5b7 | ||
|
398e98ae85 | ||
|
554d35fe96 | ||
|
a46d7ed8dd | ||
|
b144bac578 | ||
|
e86f9193dd | ||
|
7ea2d0a86d | ||
|
10d683ad5d | ||
|
26d1a12b74 | ||
|
ba3d350127 | ||
|
c9ab0927f0 | ||
|
3dcec85dea | ||
|
ac4b33647d | ||
|
2c96179383 | ||
|
e3981f42e9 | ||
|
b9b1e2b397 | ||
|
6386c1603f | ||
|
dccc3b457d | ||
|
51b930147a | ||
|
dc95f4553e | ||
|
cd74f09d70 | ||
|
ba0898831b | ||
|
dee5dfd187 | ||
|
706e8e7627 | ||
|
705b55c57a | ||
|
9bf147e5b6 | ||
|
a278483f1c | ||
|
663812b90b | ||
|
daa571957a | ||
|
ba8fcf9de3 | ||
|
162fd0a840 | ||
|
a1aa337edb | ||
|
1b88cc39a9 | ||
|
755d743b06 | ||
|
260f73b0c2 | ||
|
45d3fe7c07 | ||
|
b686d30b1c | ||
|
a8c36e5e70 | ||
|
5e6422b64c | ||
|
c61412520d | ||
|
7860173fa2 | ||
|
0011eda8e0 | ||
|
242cc28daa | ||
|
674e538131 | ||
|
3942e9bfa9 | ||
|
a3774c1161 | ||
|
712a38e26a | ||
|
8238cd7f57 | ||
|
fe7515761a | ||
|
14a4a8edd7 | ||
|
16ca26569f | ||
|
d37b273eee | ||
|
3557121758 | ||
|
7558d71ec2 | ||
|
7bd2184b26 | ||
|
a1d35ae9e4 | ||
|
f13dfb8291 | ||
|
4f86ad0934 | ||
|
841b63b819 | ||
|
b558d14a48 | ||
|
94c0a020fb | ||
|
6a66125286 | ||
|
30f5e2bb6c | ||
|
19de43dd65 | ||
|
c6bae6812d | ||
|
d71d37c1ce | ||
|
b25fd4a540 | ||
|
f89b9305e8 | ||
|
3a97cfcc36 | ||
|
e0fe91f54b | ||
|
90f16c6736 | ||
|
17f8009ce0 | ||
|
825f14d919 | ||
|
d8814974c5 | ||
|
d978d0a6b4 | ||
|
b78fb532ff | ||
|
2f2dae89f7 | ||
|
3367c059e9 | ||
|
baae7375af | ||
|
7dbe472e79 | ||
|
135d879038 | ||
|
49b8c6f946 | ||
|
42272c7067 | ||
|
baefec80a0 | ||
|
9577be02bc | ||
|
34e4a082c2 | ||
|
73f3f68eff | ||
|
373a3008a9 | ||
|
5e5dc41088 | ||
|
450e917a1f | ||
|
c1a8183a54 | ||
|
2612c02ef1 | ||
|
cbd0a12422 | ||
|
fb2c9fb002 | ||
|
d545ed82ec | ||
|
c43eda932b | ||
|
0736e41ea7 | ||
|
ee23118079 | ||
|
d5a4e764f2 | ||
|
ec3248d714 | ||
|
934d860bea | ||
|
a4dd279352 | ||
|
24d59eba87 | ||
|
0abeb3306e | ||
|
514c4234f2 | ||
|
aea94d79eb | ||
|
e12103387d | ||
|
9766b62539 | ||
|
cbfe0d64b5 | ||
|
b5fc0b502c | ||
|
0ed9a1885c | ||
|
7f3325e8df | ||
|
d40c2f8c78 | ||
|
d5c5c5734f | ||
|
c9553d31e9 | ||
|
063f082fac | ||
|
385720b89d | ||
|
c204f41bec | ||
|
64334c3437 | ||
|
2fbec133b6 | ||
|
155842f8bc | ||
|
b993bd9aef | ||
|
fa2d9e90ed | ||
|
6fc278eb2b | ||
|
49681982ae | ||
|
0147eb4b22 | ||
|
2174b1105f | ||
|
279b9b5d6a | ||
|
ded7b1e0d0 | ||
|
3390e206b0 | ||
|
8cee066ba3 | ||
|
2eeba285e8 | ||
|
c2707d4538 | ||
|
10eebff8a6 | ||
|
163212554b | ||
|
ba0c7abfc5 | ||
|
11b0ed99b5 | ||
|
134e86ecdd | ||
|
ecfd9a5eb3 | ||
|
c10d4a7382 | ||
|
7908c4ba2e | ||
|
979dec75de | ||
|
9725396582 | ||
|
53c0609c38 | ||
|
01c70e165d | ||
|
2fbbee2d65 | ||
|
1f04e73fcb | ||
|
56e6f512fc | ||
|
d1e2a903b4 | ||
|
55bac9ba0f | ||
|
0bf37abca1 | ||
|
5b35534c3d | ||
|
19de21535b | ||
|
cffa3270dd | ||
|
e08a78b396 | ||
|
b4723414a2 | ||
|
eba52ea54f | ||
|
2cc881a5d0 | ||
|
4ea4990177 | ||
|
aac2df85bb | ||
|
31bc66717f | ||
|
d876690fc7 | ||
|
c7d021ece6 | ||
|
eb49ceb803 | ||
|
4fa8e70276 | ||
|
2a9ac539e4 | ||
|
c384a3de8d | ||
|
b3adad8543 | ||
|
65bb1a7ddc | ||
|
91fc75fa5c | ||
|
2f70c1bd4d | ||
|
978de65124 | ||
|
75a6986770 | ||
|
fca06bd167 | ||
|
ad787d3914 | ||
|
d07557a5ee | ||
|
a7bb0efc93 | ||
|
0c3ea4f923 | ||
|
90c78ac401 | ||
|
88d2853a31 | ||
|
5689006c81 | ||
|
027619aa01 | ||
|
990a6832bd | ||
|
2d654da691 | ||
|
4ac314ab10 | ||
|
d8947f5c0b | ||
|
d84b768db3 | ||
|
c8afdfc731 | ||
|
f8f006d41c | ||
|
d1a3e02faf | ||
|
38126c6b4f | ||
|
6681d4fe17 | ||
|
b1e062a204 | ||
|
33911c880c | ||
|
4a54674159 | ||
|
890cc72ea3 | ||
|
f4f58703d3 | ||
|
8fb6957bc0 | ||
|
f9f1b3e39a | ||
|
2f2ee1b894 | ||
|
c43122a6f8 | ||
|
2b8d1dd11c | ||
|
3560ac95d1 | ||
|
5846ad5768 | ||
|
3c72ee6e0c | ||
|
905934b9d4 | ||
|
a139756dbc | ||
|
87087197e5 | ||
|
639c570150 | ||
|
fc66e5f120 | ||
|
a5378d6e94 | ||
|
fb7df5bf46 | ||
|
420144dceb | ||
|
110c17e57d | ||
|
18b49068c1 | ||
|
80d42f0963 | ||
|
35e0a0af33 | ||
|
6cc2a36ee1 | ||
|
cdfb728a73 | ||
|
45768c5251 | ||
|
bbbeb4b283 | ||
|
bdb2d29666 | ||
|
3f6b5292d4 | ||
|
76bc6a5e0a | ||
|
fb8408c3da | ||
|
4018113c88 | ||
|
77601f61fb | ||
|
ff6aa1147c | ||
|
ad8cb22863 | ||
|
ddf6a69a69 | ||
|
399e95a247 | ||
|
cc80bf986c | ||
|
12d969b2c0 | ||
|
74de9c82c0 | ||
|
9216d8ba32 | ||
|
f1e57d2970 | ||
|
5e10449746 | ||
|
674e3a72c4 | ||
|
96acb61fa1 | ||
|
09a918bac4 | ||
|
42811751fb | ||
|
d88d27985e | ||
|
ee7fccf072 | ||
|
7eca405693 | ||
|
f774f46627 | ||
|
1069f77bd5 | ||
|
f00257f461 | ||
|
848adc415f | ||
|
04b297b261 | ||
|
befcfe8c5b | ||
|
88167a0287 | ||
|
ef1356f4dd | ||
|
ba18c6f3e2 | ||
|
928183ff64 | ||
|
0f0d828655 | ||
|
6c72139939 | ||
|
37618a2353 | ||
|
9b22880d57 | ||
|
2f9517f69d | ||
|
87053f2c70 | ||
|
6df88fba59 | ||
|
d0ab6af0b7 | ||
|
3f491018b4 | ||
|
3b2f9d9404 | ||
|
adde210cfd | ||
|
6ad672e04b | ||
|
9bc70399f1 | ||
|
a4721033c8 | ||
|
0b3dfab951 | ||
|
78da5017a9 | ||
|
b35a09906c | ||
|
ac61aeea29 | ||
|
1bad8f7741 | ||
|
d3784c8019 | ||
|
de960116b3 | ||
|
dd22cdf7f2 | ||
|
f62d598b79 | ||
|
73568dbc86 | ||
|
31b245b8e3 | ||
|
14ecdefebb | ||
|
8030a8ceaf | ||
|
733c2848a7 | ||
|
7274924977 | ||
|
c290dd6c1d | ||
|
462d3071de | ||
|
68c6e524d2 | ||
|
93bacc98fe | ||
|
49d1c1baee | ||
|
2946f2ec59 | ||
|
17d85840a7 | ||
|
5eac30d283 | ||
|
d43cff9d2f | ||
|
4b50058917 | ||
|
4ea2b19351 | ||
|
c2bf6ab7e3 | ||
|
26dcc9bc52 | ||
|
b2f67f971b | ||
|
ec1eb495a7 | ||
|
6513210904 | ||
|
a6113526d0 | ||
|
2fa25f8b5e | ||
|
d67f86a1e0 | ||
|
b284b92464 | ||
|
b455bf04aa | ||
|
36fc2fb51e | ||
|
ea714bbdaa | ||
|
4ffce89ef2 | ||
|
0602f58074 | ||
|
10125f4738 | ||
|
7acd917a2f | ||
|
0f7f4245e4 | ||
|
e51aaddb2c | ||
|
014afbf754 | ||
|
24c68147c0 | ||
|
4f1a40a750 | ||
|
9dc32bd957 | ||
|
5b3a476ce2 | ||
|
aae55992ac | ||
|
9d92b3346d | ||
|
4b862be9df | ||
|
c2ac07b1c9 | ||
|
23324990c0 | ||
|
e9cb417cef | ||
|
e506337522 | ||
|
56608d564e | ||
|
0ef67b6b64 | ||
|
fa21b6d224 | ||
|
d75bd140d9 | ||
|
edfabb0f26 | ||
|
fa5b7c66ca | ||
|
32389a9b33 | ||
|
93a247e0ce | ||
|
cc8f17b786 | ||
|
35163f77ba | ||
|
e3d46cfd15 | ||
|
a5f404f247 | ||
|
db3cb42cc3 | ||
|
06e67a313b | ||
|
49930773e7 | ||
|
bae830dd03 | ||
|
6fcbd24ce1 | ||
|
5d0d177a7a | ||
|
0b9db0ee6b | ||
|
0104fe70ab | ||
|
166d2a3ba0 | ||
|
d586f64338 | ||
|
6ed6b49d7f | ||
|
a5fd11c204 | ||
|
7d8590d85f | ||
|
5cc7deea4e | ||
|
9c1c87ba5d | ||
|
f6b0e8d13c | ||
|
f3d7127f17 | ||
|
941d5844b5 | ||
|
b6b487dfa0 | ||
|
524dcbb3d1 | ||
|
e53c0909dc | ||
|
89b2753c7d | ||
|
cb2562da08 | ||
|
0e7167d2c7 | ||
|
b85e17ad1a | ||
|
bcd5269414 | ||
|
98938251ee | ||
|
5fb801b480 | ||
|
dbed8eb8e7 | ||
|
f75be10bd3 | ||
|
f036bb653e | ||
|
8d15f4c83a | ||
|
42e5e96f78 | ||
|
a3e9e46ff2 | ||
|
c68e3d89c8 | ||
|
cda71d2752 | ||
|
41db82a731 | ||
|
b822055e2d | ||
|
ffb1066a30 | ||
|
100da85e4a | ||
|
dc7d2d7482 | ||
|
f728d5ff74 | ||
|
095b220d99 | ||
|
7c50720b76 | ||
|
8e8d38c3bb | ||
|
4f8aedb038 | ||
|
b0c294b41b | ||
|
e18146a006 | ||
|
01dad8bef0 | ||
|
807e89521f | ||
|
966b3ce54a | ||
|
31db65e348 | ||
|
033b877269 | ||
|
10016fcb15 | ||
|
3b680e27e8 | ||
|
de3e0acb56 | ||
|
3756b2d240 | ||
|
4501c7cf45 | ||
|
b3841c9006 | ||
|
289ce7419d | ||
|
ea151b37f0 | ||
|
0287153e56 | ||
|
d002ab6a6b | ||
|
8d3c70f522 | ||
|
70c35304ce | ||
|
15765166fb | ||
|
28050488ba | ||
|
ac89495348 | ||
|
e89f9eae1a | ||
|
9110fe8a6a | ||
|
5934043d17 | ||
|
c48fd7708c | ||
|
e6beb73e3d | ||
|
8e709dbbdb | ||
|
1fe4ecee99 | ||
|
884525bef0 | ||
|
1c73e28226 | ||
|
ba5828711b | ||
|
e3c72876df | ||
|
bd970505f1 | ||
|
6f7f61f33f | ||
|
b5168f27dd | ||
|
3146920c04 | ||
|
19fa2f273d | ||
|
8e5c96adf5 | ||
|
fd5c30c8a9 | ||
|
5b985dc032 | ||
|
637b3bb5ba | ||
|
de185b94f3 | ||
|
b1750c1c21 | ||
|
102684ed88 | ||
|
9874bdeeab | ||
|
df23fd10bc | ||
|
2ca96a770d | ||
|
8af49891ff | ||
|
e6e05317e1 | ||
|
9cf9e10e5c | ||
|
b88ddbc854 | ||
|
4f3b4a71ce | ||
|
4fc6cb1de3 | ||
|
01b7395c04 | ||
|
8d930446ca | ||
|
3f670045b3 | ||
|
9d60aff8a2 | ||
|
2ce64b8f87 | ||
|
3cc1951587 | ||
|
d6b68a33c9 | ||
|
aa753e4845 | ||
|
2271df9907 | ||
|
233fe21f26 | ||
|
90cda6b2be | ||
|
00002105cf | ||
|
e337035aec | ||
|
2e1a11e10e | ||
|
7dd5b801bb | ||
|
7fdf138e5a | ||
|
7f59efb876 | ||
|
2e7c7c94fb | ||
|
130ed63b03 | ||
|
9ed62ac9f7 | ||
|
4ebb26d3d3 | ||
|
c6c96677e2 | ||
|
373991915e | ||
|
8cddd9f575 | ||
|
483b1ab503 | ||
|
5de6771547 | ||
|
70bb2b7fee | ||
|
bd2cd3ad96 | ||
|
16554bf351 | ||
|
5b64946dfb | ||
|
4ccd242cbf | ||
|
fedc637dee | ||
|
b138ac8601 | ||
|
9d0fe46723 | ||
|
9b60ee70c5 | ||
|
f86362f065 | ||
|
2f983d46b7 | ||
|
ae94f45f34 | ||
|
353f290f0c | ||
|
afaa89ad42 | ||
|
75da9887be | ||
|
af4f8d001e | ||
|
41a37ae83f | ||
|
769b217c7e | ||
|
84b3d5520c | ||
|
d757914225 | ||
|
73d78646ea | ||
|
a10e67c594 | ||
|
1e5b378fbf | ||
|
cb3e2b6a0c | ||
|
0806e7358a | ||
|
04679ea21d | ||
|
9a756f2b7a | ||
|
0670c3c6ee | ||
|
fb884e29b5 | ||
|
21abc3fa77 | ||
|
aa9b5ce0bd | ||
|
bc7a50124f | ||
|
3d437f94f1 | ||
|
b3a5812a61 | ||
|
828e13f9be | ||
|
a94bea3b91 | ||
|
816be72386 | ||
|
ab651cbe50 | ||
|
609cdf72ae | ||
|
292020e95d | ||
|
aa344b1ecd | ||
|
eeaf9fd616 | ||
|
b262aad3a8 | ||
|
17ccccc6e6 | ||
|
538c099913 | ||
|
67f1929784 | ||
|
e6198d7bf6 | ||
|
ec498cf054 | ||
|
c071dc502e | ||
|
d7a1ae3a00 | ||
|
ad60467ae7 | ||
|
cffdb7f7a6 | ||
|
5fbcec0c9c | ||
|
0b6f35b256 | ||
|
c7997edf9a | ||
|
00809027c1 | ||
|
289f27b738 | ||
|
3442829e11 | ||
|
8843fe0a54 | ||
|
8d7a54a6cf | ||
|
2b0077b138 | ||
|
6a728e3851 | ||
|
bfdc885d7f | ||
|
49a29fb56f | ||
|
12b3afbc50 | ||
|
1756fa26e1 | ||
|
eeb7d60e59 | ||
|
d18e7ad001 | ||
|
b8c0c61a4c | ||
|
7f2279c8a8 | ||
|
ead189a9c7 | ||
|
066c540eb7 | ||
|
f707f177d9 | ||
|
174e1fe332 | ||
|
f7f924ce6b | ||
|
c6751f00ab | ||
|
ff1dbf6f22 | ||
|
8bc7d3e073 | ||
|
90ab67e1fc | ||
|
8018ba3213 | ||
|
2eaf843031 | ||
|
83e79207c1 | ||
|
e54a82f658 | ||
|
a5dc8ec181 | ||
|
daa0734e5b | ||
|
8247b1dd7a | ||
|
924d7e10a1 | ||
|
44b2a7fb72 | ||
|
88de113a4e | ||
|
453aa28380 | ||
|
21225b8a28 | ||
|
b0f4c87d6b | ||
|
1d36269b03 | ||
|
1b8b4de690 | ||
|
ddd9749177 | ||
|
bbef119f62 | ||
|
c8b44bfd4c | ||
|
e84f012b73 | ||
|
03a8289a13 | ||
|
fe4abf9d78 | ||
|
9ce9ad6d3a | ||
|
913c6b0f14 | ||
|
d5432cd0e7 | ||
|
6a52ff4da2 | ||
|
c6e5a75448 | ||
|
897d28bb03 | ||
|
fc3ebca273 | ||
|
7a9b931a36 | ||
|
fef3cdaeb1 | ||
|
e6614fc4fc | ||
|
bc8432418d | ||
|
24dc5b10e8 | ||
|
e1285aa50b | ||
|
3336249b00 | ||
|
2802a714ab | ||
|
92a140b504 | ||
|
5735b094ac | ||
|
e1292c03a1 | ||
|
adb5b4c1b9 | ||
|
3332d827f0 | ||
|
29ff4d1e84 | ||
|
e18402f834 | ||
|
096db6c35d | ||
|
0675b7c16c | ||
|
927f526c6c | ||
|
8647400dda | ||
|
8b2d6c8dc2 | ||
|
d7c8abbe98 | ||
|
abb335c43d | ||
|
136d2e330a | ||
|
755da616ed | ||
|
9e084ec372 | ||
|
52eb48d808 | ||
|
6ec6d41aa9 | ||
|
b0ce32e97e | ||
|
9f4f3f482c | ||
|
f5b4e897fa | ||
|
fd5b7099af | ||
|
8f06415744 | ||
|
40e4c4ce1e | ||
|
c8fb034c57 | ||
|
ba109a486f | ||
|
86c9e60129 | ||
|
f6190b125c | ||
|
73c93958c2 | ||
|
75d038b058 | ||
|
797e0ee706 | ||
|
ea7df9b673 | ||
|
100aa24021 | ||
|
59afb5cf4c | ||
|
b8418f97dc | ||
|
690fda180c | ||
|
eda0aa97d0 | ||
|
aa65d82341 | ||
|
33151eef73 | ||
|
8d2debf47e | ||
|
1b8440d7c8 | ||
|
65d7ec8696 | ||
|
095cc12e10 | ||
|
d9480bb136 | ||
|
5efe26c7dd | ||
|
8145049315 | ||
|
c07bc0890f | ||
|
7ef91ce717 | ||
|
401027e919 | ||
|
bd473375a1 | ||
|
79212321a2 | ||
|
40d8d5c605 | ||
|
bec3f793f3 | ||
|
ca9591e423 | ||
|
3b06f18ccb | ||
|
81b90df909 | ||
|
7a7af40d61 | ||
|
5410b61ae3 | ||
|
d6029210d0 | ||
|
44ca82bbef | ||
|
cf90ff9fd2 | ||
|
f5a621a6d5 | ||
|
c59c5cfb4a | ||
|
580bbd60e7 | ||
|
946902719b | ||
|
59c13bf8c1 | ||
|
8c44c9828c | ||
|
8b2132c6dd | ||
|
137fe89938 | ||
|
bc2a99c3cf | ||
|
b76899a6e0 | ||
|
610c1d1150 | ||
|
d86c12dc7a | ||
|
fb1a686f90 | ||
|
d1bafc531e | ||
|
b2af918969 | ||
|
25b81c2952 | ||
|
c3ce887e33 | ||
|
b3bbb0329e | ||
|
4b6f74364d | ||
|
34e97112a4 | ||
|
fdaaed430e | ||
|
791d4fb1e8 | ||
|
8864a3cf2c | ||
|
cfdc18d421 | ||
|
b081429725 | ||
|
ae9922a731 | ||
|
71706bc6a6 | ||
|
d0628129f5 | ||
|
e1dde0cef1 | ||
|
5faa2ff205 | ||
|
20422a5451 | ||
|
5766414d79 | ||
|
d4af2a7a87 | ||
|
b4b2b97eb1 | ||
|
7913a42664 | ||
|
f95853a7b3 | ||
|
c3209d7049 | ||
|
6c21a6b48d | ||
|
bec72264cd | ||
|
3b1a7f93cb | ||
|
b131848b72 | ||
|
a59b8bf50c | ||
|
b05fc763ae | ||
|
683a9cdfff | ||
|
47eb7173f0 | ||
|
d76b93ced3 | ||
|
695c234139 | ||
|
a07c1b8afa | ||
|
f831252e35 | ||
|
b9b0e84704 | ||
|
9a38d59f9a | ||
|
fd252dbaff | ||
|
b3fdb5ed17 | ||
|
ff1099667a | ||
|
3f3662e605 | ||
|
98999c754f | ||
|
7bb73ffb57 | ||
|
b331521e93 | ||
|
721d7cb6a0 | ||
|
c46aaa24a5 | ||
|
0b35ee7c79 | ||
|
7e494786d4 | ||
|
71e14ea43b | ||
|
96e3544a47 | ||
|
76fc3b5336 | ||
|
5e359101d2 | ||
|
9779e9b9a5 | ||
|
94f2640f5c | ||
|
b1e045d911 | ||
|
62dd47b15d | ||
|
cd27ea69bb | ||
|
182fae77da | ||
|
bda822d2e5 | ||
|
90c78f1244 | ||
|
311374d642 | ||
|
afa0090c78 | ||
|
69aabb56a0 | ||
|
a7a1645abe | ||
|
ddd6fc214f | ||
|
7d9cb1dc0c | ||
|
b784c0fcc2 | ||
|
3826b7ba28 | ||
|
096e51951a | ||
|
79858a6560 | ||
|
b12e0cd9f3 | ||
|
946353aeb9 | ||
|
9710447ea3 | ||
|
165b8d1b93 | ||
|
d307349ae2 | ||
|
7ff9566788 | ||
|
49acc6704f | ||
|
aac075fa89 | ||
|
422487ea9f | ||
|
97b2dd3d14 | ||
|
53c83ab8d8 | ||
|
92d54dc733 | ||
|
0307e572c0 | ||
|
b86693580e | ||
|
827c7e58f6 | ||
|
8218d8f267 | ||
|
8d74acf060 | ||
|
268c41a0ee | ||
|
dc1eba2847 | ||
|
d92875e3c2 | ||
|
6e3979a32d | ||
|
740acda60b | ||
|
853c0a25bf | ||
|
ede784684f | ||
|
1ab4ae9eac | ||
|
d3d17ebbcb | ||
|
768df330b5 | ||
|
e6c8ffd1b8 | ||
|
cfd6456614 | ||
|
96c825e265 | ||
|
bad62be497 | ||
|
109b381e2e | ||
|
2d351aa60f | ||
|
85f3592938 | ||
|
f949c517b6 | ||
|
f90078c593 | ||
|
1bea28e27a | ||
|
e323caa233 | ||
|
c958d3a383 | ||
|
7bc880e6bf | ||
|
c71f9c81cd | ||
|
2378643071 | ||
|
4bcdaa309e | ||
|
9fddd09f1c | ||
|
47635aae6e | ||
|
bc5ebb20b5 | ||
|
0979d56a36 | ||
|
4dc8d23826 | ||
|
641c06f10d | ||
|
80b6b77a3a | ||
|
c414f80fa6 | ||
|
c4834a44d1 | ||
|
a4b5d1819d | ||
|
8136f57b5e | ||
|
c0efd9f1af | ||
|
735adf0c96 | ||
|
8e7ae5e9d2 | ||
|
350643c8a4 | ||
|
9cc646760a | ||
|
8a53eafa72 | ||
|
eb4d31e955 | ||
|
817d692471 | ||
|
4964c9f151 | ||
|
02b6916487 | ||
|
b2d8163aad | ||
|
074e5bcfb6 | ||
|
d4a5b71a4d | ||
|
2081e2c45b | ||
|
4094a66f3c | ||
|
13175212a0 | ||
|
99b3ec606c | ||
|
468cc30019 | ||
|
2b681a43c8 | ||
|
b547a49ab3 | ||
|
f5d0663b06 | ||
|
5b185152c6 | ||
|
dae0b66c90 | ||
|
51fe7b9a93 | ||
|
2a66e03742 | ||
|
e00a9278d5 | ||
|
8c783f9414 | ||
|
30fe3773ae | ||
|
a4fa65b4fd | ||
|
fe793798fa | ||
|
f036d35829 | ||
|
4290945118 | ||
|
bc050d3030 | ||
|
28c4abb505 | ||
|
464735f829 | ||
|
c093b3476f | ||
|
93264812c0 | ||
|
86663ec073 | ||
|
6c569e6f9d | ||
|
5265856772 | ||
|
4864980a5a | ||
|
23e8cad10f | ||
|
26cddd2d0d | ||
|
54d7d47dfc | ||
|
52c0fa41c6 | ||
|
b2765e4b63 | ||
|
388e35e828 | ||
|
99d4bbe74b | ||
|
5532e7dfa1 | ||
|
dc1a4ae3a2 | ||
|
328d834851 | ||
|
b9adbb7d60 | ||
|
5c9281bc7e | ||
|
fe27451532 | ||
|
aa64eb14b7 | ||
|
2dcc120cf7 | ||
|
a71c50c638 | ||
|
d12ab17516 | ||
|
61b8053b9b | ||
|
4184aaba76 | ||
|
03acf4505a | ||
|
abbc57429a | ||
|
a0a7d3e7f6 | ||
|
6a3044cb2e | ||
|
b12549831e | ||
|
4adaa20f72 | ||
|
520c3e474c | ||
|
5f2cb671e2 | ||
|
1ec99ee89e | ||
|
bc500a567a | ||
|
e706c5a3c8 | ||
|
271bc91303 | ||
|
444980395e | ||
|
51ffe26a91 | ||
|
6c3150edb7 | ||
|
a893f5acdb | ||
|
2e08c07dad | ||
|
83bd9bca86 | ||
|
7c1d1c3464 | ||
|
50839c206b | ||
|
21fe5a23fb | ||
|
52c404ac9c | ||
|
7018fdb2f5 | ||
|
ed1179b155 | ||
|
87e740973c | ||
|
b46794d4df | ||
|
c9b32fec44 | ||
|
7881f7f9ea | ||
|
47493fcfa1 | ||
|
f70a24d257 | ||
|
a355b625e9 | ||
|
7cc79fef0f | ||
|
042ec3628f | ||
|
7e415e82b0 | ||
|
962e9abc6b | ||
|
4784717b0c | ||
|
b280358077 | ||
|
33475602f8 | ||
|
87ad35dca6 | ||
|
70cded2733 | ||
|
9e53e6cc8f | ||
|
3b2e61fa66 | ||
|
45afc04421 | ||
|
a3367d4075 | ||
|
0250f61d10 | ||
|
6b9b688072 | ||
|
92d177a68e | ||
|
9b479ca8c0 | ||
|
2bbecd4cc5 | ||
|
2c84f234a6 | ||
|
4305b21ba8 | ||
|
2138ec0799 | ||
|
cdd7db4174 | ||
|
b3cfc88773 | ||
|
a8bbf29b42 | ||
|
7c0cd1dc52 | ||
|
ce579c1dd3 | ||
|
6a8230239b | ||
|
626395304d | ||
|
5fcae7f4e6 | ||
|
21459db634 | ||
|
ef59faf160 | ||
|
a173accfa5 | ||
|
ae540297b1 | ||
|
cd45248f40 | ||
|
70b5b9855a | ||
|
ec57ff1b03 | ||
|
6836a12557 | ||
|
04af8b2360 | ||
|
e1f227a545 | ||
|
0d75273121 | ||
|
085dd943ff | ||
|
e8432f3140 | ||
|
22b21b8c7f | ||
|
6338941885 | ||
|
858923846d | ||
|
9bd3254e41 | ||
|
7896bf9023 | ||
|
2d07b80ace | ||
|
c996f876a2 | ||
|
489670cf6b | ||
|
bcd802d335 | ||
|
bb2369dad2 | ||
|
275505b3e6 | ||
|
92f87a3a5a | ||
|
2fda593c3c | ||
|
32bde5a344 | ||
|
ea53462107 | ||
|
40dee006dd | ||
|
47d5d09af2 | ||
|
d3d99dd3ba | ||
|
b82efe95bd | ||
|
dffd568e14 | ||
|
d33081c349 | ||
|
187502c358 | ||
|
25e73e5bd0 | ||
|
209a442d5b | ||
|
12dc8a8112 | ||
|
448e8e001f | ||
|
dab866d170 | ||
|
31ec8d39d8 |
1802
.editorconfig
1802
.editorconfig
File diff suppressed because it is too large
Load Diff
11
.github/ISSUE_TEMPLATE/bug.yml
vendored
11
.github/ISSUE_TEMPLATE/bug.yml
vendored
@@ -73,3 +73,14 @@ body:
|
||||
- 'No'
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: pr
|
||||
attributes:
|
||||
label: Are you willing to provide a PR?
|
||||
description: |
|
||||
Providing a PR can drastically speed up the process of fixing this bug. Don't worry, it's still OK to answer 'No' :).
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
validations:
|
||||
required: true
|
||||
|
11
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
11
.github/ISSUE_TEMPLATE/enhancement.yml
vendored
@@ -34,3 +34,14 @@ body:
|
||||
placeholder: Is there anything else you'd like to add?
|
||||
validations:
|
||||
required: false
|
||||
- type: dropdown
|
||||
id: pr
|
||||
attributes:
|
||||
label: Are you willing to provide a PR?
|
||||
description: |
|
||||
Don't worry, it's still OK to answer 'No' :).
|
||||
options:
|
||||
- 'Yes'
|
||||
- 'No'
|
||||
validations:
|
||||
required: true
|
||||
|
38
.github/ISSUE_TEMPLATE/release.yml
vendored
38
.github/ISSUE_TEMPLATE/release.yml
vendored
@@ -21,6 +21,8 @@ body:
|
||||
- [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
|
||||
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
|
||||
|
||||
- [ ] Ensure all [the required PRs](https://github.com/vector-im/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged
|
||||
|
||||
### Do the release
|
||||
|
||||
- [ ] Make sure `develop` and `main` are up to date (git pull)
|
||||
@@ -29,7 +31,7 @@ body:
|
||||
- [ ] Check the rageshake with the current dev version: https://github.com/matrix-org/element-android-rageshakes/labels/1.2.3-dev
|
||||
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
|
||||
- [ ] Create an account on matrix.org and do some smoke tests that the sanity test does not cover like: 1-1 call, 1-1 video call, Jitsi call for instance
|
||||
- [ ] Run towncrier: `towncrier --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
|
||||
- [ ] Run towncrier: `towncrier build --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
|
||||
- [ ] Check that the folder `changelog.d` is empty. It can happen that some remaining files stay here
|
||||
- [ ] Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things
|
||||
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
|
||||
@@ -49,24 +51,34 @@ body:
|
||||
|
||||
### Once tested and validated internally
|
||||
|
||||
- [ ] Create a new beta release on the GooglePlay console and upload the 4 signed Apks.
|
||||
- [ ] Create a new open testing release on the GooglePlay console and upload the 4 signed Apks.
|
||||
- [ ] Check that the version codes are correct
|
||||
- [ ] Copy the fastlane change to the GooglePlay console in the section en-GB.
|
||||
- [ ] Push to beta release to 100% of the users
|
||||
- [ ] Notify the F-Droid team so that they can schedule the publication on F-Droid
|
||||
- [ ] Push the open testing release to 100% of the users
|
||||
- [ ] Notify the F-Droid team [here](https://matrix.to/#/!LAAuJLQXYHjMNWKrCK:matrix.org?via=matrix.org&via=bubu1.eu&via=lant.uk) so that they can schedule the publication on F-Droid
|
||||
- [ ] The application is available to the PlayStore testers (live). Google can take between 1 hour and up to 7 days to approve the release.
|
||||
- [ ] The application is available to the F-Droid users.
|
||||
|
||||
### Once Live on PlayStore
|
||||
### Once open testing is live on PlayStore
|
||||
|
||||
- [ ] Ping the Android public room and update its topic
|
||||
- [ ] Add an entry in the internal diary
|
||||
|
||||
### After at least 2 days
|
||||
### Once Live on F-Droid
|
||||
|
||||
- [ ] Update the Android public room topic
|
||||
|
||||
### After at least 2 days (generally next Monday)
|
||||
|
||||
- [ ] Check the [rageshakes](https://github.com/matrix-org/element-android-rageshakes/issues)
|
||||
- [ ] Check the crash reports on the GooglePlay console
|
||||
- [ ] Check the Android Element room for any reported issues on the new version
|
||||
- [ ] If all is OK, push to production and notify Markus (Bubu) to release the F-Droid version
|
||||
- [ ] Ping the Android public room and update its topic with the new available version
|
||||
- [ ] If all is OK, promote the open testing release to production. Generally using a 100% roll out, but can be a smaller value depending on the release content.
|
||||
- [ ] The application is available to the PlayStore users (live). Google can take (again!) between 1 hour and up to 7 days to approve the release.
|
||||
|
||||
### Once production is live on PlayStore
|
||||
|
||||
- [ ] Ping the Android public room and update its topic
|
||||
- [ ] Add an entry in the internal diary
|
||||
|
||||
### Android SDK2
|
||||
|
||||
@@ -90,12 +102,20 @@ body:
|
||||
|
||||
##### Release on MavenCentral
|
||||
|
||||
- [ ] Checkout the branch `main`
|
||||
- [ ] Run the command `./gradlew publish --no-daemon --no-parallel`. You'll need some non-public element to do so
|
||||
- [ ] Run the command `./gradlew closeAndReleaseRepository`. If it is working well, you can jump directly to the final step of this section.
|
||||
|
||||
If `./gradlew closeAndReleaseRepository` fails (for instance, several repositories are waiting to be handled), you have to close and release the repository manually. Do the following steps:
|
||||
|
||||
- [ ] Connect to https://s01.oss.sonatype.org
|
||||
- [ ] Click on Staging Repositories and check the the files have been uploaded
|
||||
- [ ] Click on close
|
||||
- [ ] Wait (check Activity tab until step "Repository closed" is displayed)
|
||||
- [ ] Click on release. The staging repository will disappear
|
||||
|
||||
Final step
|
||||
|
||||
- [ ] Check that the release is available in https://repo1.maven.org/maven2/org/matrix/android/matrix-android-sdk2/ (it can take a few minutes)
|
||||
|
||||
##### Release on GitHub
|
||||
|
42
.github/workflows/build.yml
vendored
42
.github/workflows/build.yml
vendored
@@ -7,9 +7,8 @@ on:
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
CI_GRADLE_ARG_PROPERTIES: >
|
||||
-Porg.gradle.jvmargs=-Xmx2g
|
||||
-Porg.gradle.parallel=false
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
debug:
|
||||
@@ -35,19 +34,20 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Assemble ${{ matrix.target }} debug apk
|
||||
run: ./gradlew assemble${{ matrix.target }}Debug $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
||||
run: ./gradlew assemble${{ matrix.target }}Debug $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload ${{ matrix.target }} debug APKs
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: vector-${{ matrix.target }}-debug
|
||||
path: |
|
||||
vector/build/outputs/apk/*/debug/*.apk
|
||||
vector-app/build/outputs/apk/*/debug/*.apk
|
||||
|
||||
release:
|
||||
name: Build unsigned GPlay APKs
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main'
|
||||
# Only runs on main, no concurrency.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/head/main' && format('build-release-apk-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('build-release-apk-develop-{0}', github.sha) || format('build-debug-{0}', github.ref) }}
|
||||
cancel-in-progress: ${{ github.ref != 'refs/head/main' }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
@@ -59,12 +59,34 @@ jobs:
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Assemble GPlay unsigned apk
|
||||
run: ./gradlew clean assembleGplayRelease $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
||||
run: ./gradlew clean assembleGplayRelease $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload Gplay unsigned APKs
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: vector-gplay-release-unsigned
|
||||
path: |
|
||||
vector/build/outputs/apk/*/release/*.apk
|
||||
vector-app/build/outputs/apk/*/release/*.apk
|
||||
|
||||
# TODO add exodus checks
|
||||
exodus:
|
||||
runs-on: ubuntu-latest
|
||||
needs: release
|
||||
steps:
|
||||
- name: Obtain apk from artifact
|
||||
id: download
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: vector-gplay-release-unsigned
|
||||
- name: Show apks in artifact
|
||||
run: ls -R ${{steps.download.outputs.download-path}}
|
||||
- name: Execute exodus-standalone
|
||||
uses: docker://exodusprivacy/exodus-standalone:latest
|
||||
with:
|
||||
args: /github/workspace/gplay/release/vector-gplay-universal-release-unsigned.apk -j -o /github/workspace/exodus.json
|
||||
- name: Upload exodus json report
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: exodus.json
|
||||
path: |
|
||||
exodus.json
|
||||
- name: Check for trackers
|
||||
run: "jq -e '.trackers == []' exodus.json > /dev/null || { echo '::error static analysis identified user tracking library' ; exit 1; }"
|
||||
|
20
.github/workflows/danger.yml
vendored
Normal file
20
.github/workflows/danger.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: Danger CI
|
||||
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
name: Danger
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- run: |
|
||||
npm install --save-dev @babel/plugin-transform-flow-strip-types
|
||||
- name: Danger
|
||||
uses: danger/danger-js@11.1.2
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile.js"
|
||||
env:
|
||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||
# Fallback for forks
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
@@ -1,5 +1,8 @@
|
||||
name: "Validate Gradle Wrapper"
|
||||
on: [push, pull_request]
|
||||
on:
|
||||
pull_request: { }
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
|
||||
jobs:
|
||||
validation:
|
||||
|
46
.github/workflows/nightly.yml
vendored
Normal file
46
.github/workflows/nightly.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
name: Build and release nightly APK
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# Every nights at 4
|
||||
- cron: "0 4 * * *"
|
||||
|
||||
env:
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
nightly:
|
||||
name: Build and publish nightly Gplay APK to Firebase
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Install towncrier
|
||||
run: |
|
||||
python3 -m pip install towncrier
|
||||
- name: Prepare changelog file
|
||||
run: |
|
||||
mv towncrier.toml towncrier.toml.bak
|
||||
sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml
|
||||
rm towncrier.toml.bak
|
||||
yes n | towncrier build --version nightly
|
||||
- name: Build and upload Gplay Nightly APK
|
||||
run: |
|
||||
./gradlew assembleGplayNightly appDistributionUploadGplayNightly $CI_GRADLE_ARG_PROPERTIES
|
||||
env:
|
||||
ELEMENT_ANDROID_NIGHTLY_KEYID: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYID }}
|
||||
ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD }}
|
||||
ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD }}
|
||||
FIREBASE_TOKEN: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_FIREBASE_TOKEN }}
|
232
.github/workflows/post-pr.yml
vendored
232
.github/workflows/post-pr.yml
vendored
@@ -10,9 +10,8 @@ on:
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
CI_GRADLE_ARG_PROPERTIES: >
|
||||
-Porg.gradle.jvmargs=-Xmx4g
|
||||
-Porg.gradle.parallel=false
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -29,204 +28,10 @@ jobs:
|
||||
steps:
|
||||
- run: echo "Run those tests!" # no-op success
|
||||
|
||||
# Run Android Tests
|
||||
integration-tests:
|
||||
name: Matrix SDK - Running Integration Tests
|
||||
needs: should-i-run
|
||||
runs-on: macos-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
api-level: [ 28 ]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: gradle/wrapper-validation-action@v1
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: 11
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v3
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Start synapse server
|
||||
uses: michaelkaye/setup-matrix-synapse@v1.0.3
|
||||
with:
|
||||
uploadLogs: true
|
||||
httpPort: 8080
|
||||
disableRateLimiting: true
|
||||
public_baseurl: "http://10.0.2.2:8080/"
|
||||
# package: org.matrix.android.sdk.session
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.session] API[${{ matrix.api-level }}]
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86
|
||||
profile: Nexus 5X
|
||||
force-avd-creation: false
|
||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
emulator-build: 7425822
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-session.log
|
||||
chmod 777 emulator-session.log
|
||||
adb logcat >> emulator-session.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.session' matrix-sdk-android:connectedDebugAndroidTest
|
||||
- name: Read Results [org.matrix.android.sdk.session]
|
||||
if: always()
|
||||
id: get-comment-body-session
|
||||
run: python3 ./tools/ci/render_test_output.py session ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.account] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86
|
||||
profile: Nexus 5X
|
||||
force-avd-creation: false
|
||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
emulator-build: 7425822
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-account.log
|
||||
chmod 777 emulator-account.log
|
||||
adb logcat >> emulator-account.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.account' matrix-sdk-android:connectedDebugAndroidTest
|
||||
- name: Read Results [org.matrix.android.sdk.account]
|
||||
if: always()
|
||||
id: get-comment-body-account
|
||||
run: python3 ./tools/ci/render_test_output.py account ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: org.matrix.android.sdk.internal
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.internal] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86
|
||||
profile: Nexus 5X
|
||||
force-avd-creation: false
|
||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
emulator-build: 7425822
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-internal.log
|
||||
chmod 777 emulator-internal.log
|
||||
adb logcat >> emulator-internal.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.internal' matrix-sdk-android:connectedDebugAndroidTest
|
||||
- name: Read Results [org.matrix.android.sdk.internal]
|
||||
if: always()
|
||||
id: get-comment-body-internal
|
||||
run: python3 ./tools/ci/render_test_output.py internal ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: org.matrix.android.sdk.ordering
|
||||
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.ordering] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86
|
||||
profile: Nexus 5X
|
||||
force-avd-creation: false
|
||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
emulator-build: 7425822
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-ordering.log
|
||||
chmod 777 emulator-ordering.log
|
||||
adb logcat >> emulator-ordering.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.package='org.matrix.android.sdk.ordering' matrix-sdk-android:connectedDebugAndroidTest
|
||||
- name: Read Results [org.matrix.android.sdk.ordering]
|
||||
if: always()
|
||||
id: get-comment-body-ordering
|
||||
run: python3 ./tools/ci/render_test_output.py ordering ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: class PermalinkParserTest
|
||||
- name: Run integration tests for Matrix SDK class [org.matrix.android.sdk.PermalinkParserTest] API[${{ matrix.api-level }}]
|
||||
if: always()
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86
|
||||
profile: Nexus 5X
|
||||
force-avd-creation: false
|
||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
emulator-build: 7425822
|
||||
script: |
|
||||
adb root
|
||||
adb logcat -c
|
||||
touch emulator-permalink.log
|
||||
chmod 777 emulator-permalink.log
|
||||
adb logcat >> emulator-permalink.log &
|
||||
./gradlew $CI_GRADLE_ARG_PROPERTIES -Pandroid.testInstrumentationRunnerArguments.class='org.matrix.android.sdk.PermalinkParserTest' matrix-sdk-android:connectedDebugAndroidTest
|
||||
- name: Read Results [org.matrix.android.sdk.PermalinkParserTest]
|
||||
if: always()
|
||||
id: get-comment-body-permalink
|
||||
run: python3 ./tools/ci/render_test_output.py permalink ./matrix-sdk-android/build/outputs/androidTest-results/connected/*.xml
|
||||
- name: Remove adb logcat
|
||||
if: always()
|
||||
run: pkill -9 adb
|
||||
# package: class PermalinkParserTest
|
||||
- name: Find Comment
|
||||
if: always() && github.event_name == 'pull_request'
|
||||
uses: peter-evans/find-comment@v2
|
||||
id: fc
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
comment-author: 'github-actions[bot]'
|
||||
body-includes: Integration Tests Results
|
||||
- name: Publish results to PR
|
||||
if: always() && github.event_name == 'pull_request'
|
||||
uses: peter-evans/create-or-update-comment@v2
|
||||
with:
|
||||
comment-id: ${{ steps.fc.outputs.comment-id }}
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
body: |
|
||||
### Matrix SDK
|
||||
## Integration Tests Results:
|
||||
- `[org.matrix.android.sdk.session]`<br>${{ steps.get-comment-body-session.outputs.session }}
|
||||
- `[org.matrix.android.sdk.account]`<br>${{ steps.get-comment-body-account.outputs.account }}
|
||||
- `[org.matrix.android.sdk.internal]`<br>${{ steps.get-comment-body-internal.outputs.internal }}
|
||||
- `[org.matrix.android.sdk.ordering]`<br>${{ steps.get-comment-body-ordering.outputs.ordering }}
|
||||
- `[org.matrix.android.sdk.PermalinkParserTest]`<br>${{ steps.get-comment-body-permalink.outputs.permalink }}
|
||||
edit-mode: replace
|
||||
- name: Upload Test Report Log
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: integrationtest-error-results
|
||||
path: |
|
||||
emulator-permalink.log
|
||||
emulator-internal.log
|
||||
emulator-ordering.log
|
||||
emulator-account.log
|
||||
emulator-session.log
|
||||
|
||||
ui-tests:
|
||||
name: UI Tests (Synapse)
|
||||
needs: should-i-run
|
||||
runs-on: macos-latest
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -235,7 +40,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v3
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: actions/cache@v3
|
||||
@@ -282,42 +87,13 @@ jobs:
|
||||
emulator.log
|
||||
failure_screenshots/
|
||||
|
||||
codecov-units:
|
||||
name: Unit tests with code coverage
|
||||
needs: should-i-run
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- run: ./gradlew allCodeCoverageReport $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload Codecov data
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: codecov-xml
|
||||
path: |
|
||||
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
|
||||
|
||||
# Notify the channel about delayed failures
|
||||
notify:
|
||||
name: Notify matrix
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- should-i-run
|
||||
- integration-tests
|
||||
- ui-tests
|
||||
- codecov-units
|
||||
if: always() && (needs.should-i-run.result == 'success' ) && ((needs.codecov-units.result != 'success' ) || (needs.ui-tests.result != 'success') || (needs.integration-tests.result != 'success'))
|
||||
# No concurrency required, runs every time on a schedule.
|
||||
steps:
|
||||
|
195
.github/workflows/quality.yml
vendored
195
.github/workflows/quality.yml
vendored
@@ -5,6 +5,11 @@ on:
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -XX:MaxPermSize=512m -Dkotlin.daemon.jvm.options="-Xmx2g" -Dkotlin.incremental=false
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
check:
|
||||
name: Project Check Suite
|
||||
@@ -14,7 +19,7 @@ jobs:
|
||||
- name: Run code quality check suite
|
||||
run: ./tools/check/check_code_quality.sh
|
||||
|
||||
# Knit for all the modules (https://github.com/Kotlin/kotlinx-knit)
|
||||
# Knit for all the modules (https://github.com/Kotlin/kotlinx-knit)
|
||||
knit:
|
||||
name: Knit
|
||||
runs-on: ubuntu-latest
|
||||
@@ -22,158 +27,68 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run knit
|
||||
run: |
|
||||
./gradlew knit
|
||||
./gradlew knitCheck $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
# ktlint for all the modules
|
||||
ktlint:
|
||||
name: Kotlin Linter
|
||||
# Check the project: ktlint, detekt, lint
|
||||
lint:
|
||||
name: Android Linter
|
||||
runs-on: ubuntu-latest
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('ktlint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('ktlint-develop-{0}', github.sha) || format('ktlint-{0}', github.ref) }}
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('lint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('lint-develop-{0}', github.sha) || format('lint-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run ktlint
|
||||
run: |
|
||||
./gradlew ktlintCheck --continue
|
||||
- name: Upload reports
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ktlinting-report
|
||||
path: |
|
||||
*/build/reports/ktlint/ktlint*/ktlint*.txt
|
||||
- name: Handle Results
|
||||
if: always()
|
||||
id: ktlint-results
|
||||
run: |
|
||||
results="$(cat */*/build/reports/ktlint/ktlint*/ktlint*.txt */build/reports/ktlint/ktlint*/ktlint*.txt | sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g")"
|
||||
if [ -z "$results" ]; then
|
||||
echo "::set-output name=add_comment::false"
|
||||
else
|
||||
body="👎\`Failed${results}\`"
|
||||
body="${body//'%'/'%25'}"
|
||||
body="${body//$'\n'/'%0A'}"
|
||||
body="${body//$'\r'/'%0D'}"
|
||||
body="$( echo $body | sed 's/\/home\/runner\/work\/element-android\/element-android\//\`<br\/>\`/g')"
|
||||
body="$( echo $body | sed 's/\/src\/main\/java\// 🔸 /g')"
|
||||
body="$( echo $body | sed 's/im\/vector\/app\///g')"
|
||||
body="$( echo $body | sed 's/im\/vector\/lib\/attachmentviewer\///g')"
|
||||
body="$( echo $body | sed 's/im\/vector\/lib\/multipicker\///g')"
|
||||
body="$( echo $body | sed 's/im\/vector\/lib\///g')"
|
||||
body="$( echo $body | sed 's/org\/matrix\/android\/sdk\///g')"
|
||||
body="$( echo $body | sed 's/\/src\/androidTest\/java\// 🔸 /g')"
|
||||
echo "::set-output name=add_comment::true"
|
||||
echo "::set-output name=body::$body"
|
||||
fi
|
||||
- name: Find Comment
|
||||
if: always() && github.event_name == 'pull_request'
|
||||
uses: peter-evans/find-comment@v2
|
||||
id: fc
|
||||
with:
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
comment-author: 'github-actions[bot]'
|
||||
body-includes: Ktlint Results
|
||||
- name: Add comment if needed
|
||||
if: always() && github.event_name == 'pull_request' && steps.ktlint-results.outputs.add_comment == 'true'
|
||||
uses: peter-evans/create-or-update-comment@v2
|
||||
with:
|
||||
comment-id: ${{ steps.fc.outputs.comment-id }}
|
||||
issue-number: ${{ github.event.pull_request.number }}
|
||||
body: |
|
||||
### Ktlint Results
|
||||
|
||||
${{ steps.ktlint-results.outputs.body }}
|
||||
edit-mode: replace
|
||||
- name: Delete comment if needed
|
||||
if: always() && github.event_name == 'pull_request' && steps.fc.outputs.comment-id != '' && steps.ktlint-results.outputs.add_comment == 'false'
|
||||
uses: actions/github-script@v3
|
||||
with:
|
||||
script: |
|
||||
github.issues.deleteComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
comment_id: ${{ steps.fc.outputs.comment-id }}
|
||||
})
|
||||
|
||||
# Lint for main module
|
||||
android-lint:
|
||||
name: Android Linter
|
||||
runs-on: ubuntu-latest
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('android-lint-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('android-lint-develop-{0}', github.sha) || format('android-lint-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Lint analysis
|
||||
run: ./gradlew clean :vector:lint --stacktrace
|
||||
- name: Upload reports
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: lint-report
|
||||
path: |
|
||||
vector/build/reports/*.*
|
||||
|
||||
# Lint for Gplay and Fdroid release APK
|
||||
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 ]
|
||||
# Allow all jobs on develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/develop' && format('apk-lint-develop-{0}-{1}', matrix.target, github.sha) || format('apk-lint-{0}-{1}', matrix.target, github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
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
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: release-lint-report-${{ matrix.target }}
|
||||
path: |
|
||||
vector/build/reports/*.*
|
||||
|
||||
detekt:
|
||||
name: Detekt Analysis
|
||||
runs-on: ubuntu-latest
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('detekt-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('detekt-develop-{0}', github.sha) || format('detekt-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
./gradlew ktlintCheck $CI_GRADLE_ARG_PROPERTIES --continue
|
||||
- name: Run detekt
|
||||
if: always()
|
||||
run: |
|
||||
./gradlew detekt
|
||||
./gradlew detekt $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Run lint
|
||||
# Not always, if ktlint or detekt fail, avoid running the long lint check.
|
||||
run: |
|
||||
./gradlew vector-app:lintGplayRelease $CI_GRADLE_ARG_PROPERTIES
|
||||
./gradlew vector-app:lintFdroidRelease $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload reports
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: detekt-report
|
||||
name: linting-report
|
||||
path: |
|
||||
*/build/reports/detekt/detekt.html
|
||||
*/build/reports/**/*.*
|
||||
- name: Prepare Danger
|
||||
if: always()
|
||||
run: |
|
||||
npm install --save-dev @babel/core
|
||||
npm install --save-dev @babel/plugin-transform-flow-strip-types
|
||||
yarn add danger-plugin-lint-report --dev
|
||||
- name: Danger lint
|
||||
if: always()
|
||||
uses: danger/danger-js@11.1.2
|
||||
with:
|
||||
args: "--dangerfile tools/danger/dangerfile-lint.js"
|
||||
env:
|
||||
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
|
||||
# Fallback for forks
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Gradle dependency analysis using https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin
|
||||
dependency-analysis:
|
||||
name: Dependency analysis
|
||||
runs-on: ubuntu-latest
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('dep-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('dep-develop-{0}', github.sha) || format('dep-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Dependency analysis
|
||||
run: ./gradlew dependencyCheckAnalyze $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload dependency analysis
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: dependency-analysis
|
||||
path: build/reports/dependency-check-report.html
|
||||
|
81
.github/workflows/sonarqube.yml
vendored
81
.github/workflows/sonarqube.yml
vendored
@@ -1,81 +0,0 @@
|
||||
name: Sonarqube nightly
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 20 * * *'
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
CI_GRADLE_ARG_PROPERTIES: >
|
||||
-Porg.gradle.jvmargs=-Xmx4g
|
||||
-Porg.gradle.parallel=false
|
||||
jobs:
|
||||
codecov-units:
|
||||
name: Unit tests with code coverage
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- run: ./gradlew allCodeCoverageReport $CI_GRADLE_ARG_PROPERTIES
|
||||
- name: Upload Codecov data
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: codecov-xml
|
||||
path: |
|
||||
build/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml
|
||||
|
||||
sonarqube:
|
||||
name: Sonarqube upload
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- codecov-units
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: codecov-xml # will restore to allCodeCoverageReport.xml by default; we restore to the same location in following tasks
|
||||
- run: mkdir -p build/reports/jacoco/allCodeCoverageReport/
|
||||
- run: mv allCodeCoverageReport.xml build/reports/jacoco/allCodeCoverageReport/
|
||||
- run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
|
||||
env:
|
||||
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||
|
||||
# Notify the channel about sonarqube failures
|
||||
notify:
|
||||
name: Notify matrix
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- sonarqube
|
||||
- codecov-units
|
||||
if: always() && (needs.sonarqube.result != 'success' || needs.codecov-units.result != 'success')
|
||||
steps:
|
||||
- uses: michaelkaye/matrix-hookshot-action@v1.0.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
hookshot_url: ${{ secrets.ELEMENT_ANDROID_HOOKSHOT_URL }}
|
||||
text_template: "Sonarqube run (on ${{ github.ref }}): {{#each job_statuses }}{{#with this }}{{#if completed }} {{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
|
||||
html_template: "Sonarqube run (on ${{ github.ref }}): {{#each job_statuses }}{{#with this }}{{#if completed }}<br />{{icon conclusion}} {{name}} <font color='{{color conclusion}}'>{{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a></font>{{/if}}{{/with}}{{/each}}"
|
@@ -13,7 +13,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v3
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Install Prerequisite dependencies
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python 3.8
|
||||
uses: actions/setup-python@v3
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- name: Install Prerequisite dependencies
|
||||
|
194
.github/workflows/tests.yml
vendored
194
.github/workflows/tests.yml
vendored
@@ -1,84 +1,154 @@
|
||||
name: Test
|
||||
|
||||
on:
|
||||
pull_request: {}
|
||||
pull_request: { }
|
||||
push:
|
||||
branches: [main, develop]
|
||||
branches: [ main, develop ]
|
||||
|
||||
# Enrich gradle.properties for CI/CD
|
||||
env:
|
||||
CI_GRADLE_ARG_PROPERTIES: >
|
||||
-Porg.gradle.jvmargs=-Xmx2g
|
||||
-Porg.gradle.parallel=false
|
||||
GRADLE_OPTS: -Dorg.gradle.jvmargs="-Xmx3072m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError" -Dkotlin.daemon.jvm.options="-Xmx2560m" -Dkotlin.incremental=false
|
||||
CI_GRADLE_ARG_PROPERTIES: --stacktrace -PpreDexEnable=false --max-workers 2 --no-daemon
|
||||
|
||||
jobs:
|
||||
# Build Android Tests
|
||||
build-android-tests:
|
||||
name: Build Android Tests
|
||||
runs-on: ubuntu-latest
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('build-android-tests-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: 11
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Build Android Tests
|
||||
run: ./gradlew clean assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
||||
|
||||
unit-tests:
|
||||
name: Run Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
tests:
|
||||
name: Runs all tests
|
||||
runs-on: buildjet-4vcpu-ubuntu-2204
|
||||
strategy:
|
||||
matrix:
|
||||
api-level: [28]
|
||||
# Allow all jobs on main and develop. Just one per PR.
|
||||
concurrency:
|
||||
group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('unit-tests-{0}', github.ref) }}
|
||||
cancel-in-progress: true
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/cache@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: 'adopt'
|
||||
java-version: '11'
|
||||
- uses: gradle/gradle-build-action@v2
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.8
|
||||
- uses: michaelkaye/setup-matrix-synapse@v1.0.3
|
||||
with:
|
||||
uploadLogs: true
|
||||
httpPort: 8080
|
||||
disableRateLimiting: true
|
||||
public_baseurl: "http://10.0.2.2:8080/"
|
||||
|
||||
- name: AVD cache
|
||||
uses: actions/cache@v3
|
||||
id: avd-cache
|
||||
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 $CI_GRADLE_ARG_PROPERTIES --stacktrace
|
||||
~/.android/avd/*
|
||||
~/.android/adb*
|
||||
key: avd-${{ matrix.api-level }}
|
||||
|
||||
- name: create AVD and generate snapshot for caching
|
||||
if: steps.avd-cache.outputs.cache-hit != 'true'
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86
|
||||
profile: Nexus 5X
|
||||
force-avd-creation: true # Is set to false in the doc https://github.com/ReactiveCircus/android-emulator-runner
|
||||
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
disable-animations: true
|
||||
script: echo "Generated AVD snapshot for caching."
|
||||
|
||||
- name: Run all the codecoverage tests at once
|
||||
uses: reactivecircus/android-emulator-runner@v2
|
||||
# continue-on-error: true
|
||||
with:
|
||||
api-level: ${{ matrix.api-level }}
|
||||
arch: x86
|
||||
profile: Nexus 5X
|
||||
force-avd-creation: false
|
||||
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
disable-animations: true
|
||||
emulator-build: 7425822
|
||||
script: |
|
||||
./gradlew gatherGplayDebugStringTemplates $CI_GRADLE_ARG_PROPERTIES
|
||||
./gradlew unitTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES
|
||||
./gradlew instrumentationTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES
|
||||
./gradlew generateCoverageReport $CI_GRADLE_ARG_PROPERTIES
|
||||
# NB: continue-on-error marks steps.tests.conclusion = 'success' but leaves steps.tests.outcome = 'failure'
|
||||
### - name: Run all the codecoverage tests at once (retry if emulator failed)
|
||||
### uses: reactivecircus/android-emulator-runner@v2
|
||||
### if: always() && steps.tests.outcome == 'failure' # don't run if previous step succeeded.
|
||||
### with:
|
||||
### api-level: 28
|
||||
### arch: x86
|
||||
### profile: Nexus 5X
|
||||
### force-avd-creation: false
|
||||
### emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
|
||||
### disable-animations: true
|
||||
### emulator-build: 7425822
|
||||
### script: |
|
||||
### ./gradlew gatherGplayDebugStringTemplates $CI_GRADLE_ARG_PROPERTIES
|
||||
### ./gradlew unitTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES
|
||||
### ./gradlew instrumentationTestsWithCoverage $CI_GRADLE_ARG_PROPERTIES
|
||||
### ./gradlew generateCoverageReport $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
- name: Upload Integration Test Report Log
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: integration-test-error-results
|
||||
path: |
|
||||
*/build/outputs/androidTest-results/connected/
|
||||
*/build/reports/androidTests/connected/
|
||||
|
||||
# we may have failed a previous step and retried, that's OK
|
||||
- name: Publish results to Sonar
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.SONARQUBE_GITHUB_API_TOKEN }} # Needed to get PR information, if any
|
||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||
ORG_GRADLE_PROJECT_SONAR_LOGIN: ${{ secrets.SONAR_TOKEN }}
|
||||
if: ${{ always() && env.GITHUB_TOKEN != '' && env.SONAR_TOKEN != '' && env.ORG_GRADLE_PROJECT_SONAR_LOGIN != '' }}
|
||||
run: ./gradlew sonarqube $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
- name: Format unit test results
|
||||
if: always()
|
||||
run: python3 ./tools/ci/render_test_output.py unit ./**/build/test-results/**/*.xml
|
||||
- name: Publish Unit Test Results
|
||||
uses: EnricoMi/publish-unit-test-result-action@v1
|
||||
if: always() &&
|
||||
github.event.sender.login != 'dependabot[bot]' &&
|
||||
( github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository )
|
||||
with:
|
||||
files: ./**/build/test-results/**/*.xml
|
||||
|
||||
# Notify the channel about runs against develop or main that have failures, as PRs should have caught these first.
|
||||
notify:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- unit-tests
|
||||
- build-android-tests
|
||||
if: ${{ (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' ) && failure() }}
|
||||
steps:
|
||||
- uses: michaelkaye/matrix-hookshot-action@v0.3.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
matrix_access_token: ${{ secrets.ELEMENT_ANDROID_NOTIFICATION_ACCESS_TOKEN }}
|
||||
matrix_room_id: ${{ secrets.ELEMENT_ANDROID_INTERNAL_ROOM_ID }}
|
||||
text_template: "Build is broken for ${{ github.ref }}: {{#each job_statuses }}{{#with this }}{{#if completed }}{{name}} {{conclusion}} at {{completed_at}}, {{/if}}{{/with}}{{/each}}"
|
||||
html_template: "Build is broken for ${{ github.ref }}: {{#each job_statuses }}{{#with this }}{{#if completed }}<br />{{icon conclusion }} {{name}} <font color='{{color conclusion }}'>{{conclusion}} at {{completed_at}} <a href=\"{{html_url}}\">[details]</a></font>{{/if}}{{/with}}{{/each}}"
|
||||
# can't be run on macos due to containers.
|
||||
# - name: Publish Unit Test Results
|
||||
# uses: EnricoMi/publish-unit-test-result-action@v1
|
||||
# if: always() &&
|
||||
# github.event.sender.login != 'dependabot[bot]' &&
|
||||
# ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository )
|
||||
# with:
|
||||
# files: ./**/build/test-results/**/*.xml
|
||||
|
||||
# Unneeded as part of the test suite above, kept around in case we want to re-enable them.
|
||||
#
|
||||
# # Build Android Tests
|
||||
# build-android-tests:
|
||||
# name: Build Android Tests
|
||||
# runs-on: ubuntu-latest
|
||||
# concurrency:
|
||||
# group: ${{ github.ref == 'refs/heads/main' && format('unit-tests-main-{0}', github.sha) || github.ref == 'refs/heads/develop' && format('unit-tests-develop-{0}', github.sha) || format('build-android-tests-{0}', github.ref) }}
|
||||
# cancel-in-progress: true
|
||||
# steps:
|
||||
# - uses: actions/checkout@v3
|
||||
# - uses: actions/setup-java@v3
|
||||
# with:
|
||||
# distribution: 'adopt'
|
||||
# java-version: 11
|
||||
# - uses: actions/cache@v3
|
||||
# with:
|
||||
# path: |
|
||||
# ~/.gradle/caches
|
||||
# ~/.gradle/wrapper
|
||||
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
|
||||
# restore-keys: |
|
||||
# ${{ runner.os }}-gradle-
|
||||
# - name: Build Android Tests
|
||||
# run: ./gradlew clean assembleAndroidTest $CI_GRADLE_ARG_PROPERTIES
|
||||
|
||||
|
76
.github/workflows/triage-labelled.yml
vendored
76
.github/workflows/triage-labelled.yml
vendored
@@ -9,15 +9,15 @@ jobs:
|
||||
name: Add Z-Labs label for features behind labs flags
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags')
|
||||
contains(github.event.issue.labels.*.name, 'A-Maths') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Pinning') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Polls') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Location-Sharing') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Message-Bubbles') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Themes-Custom') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Tags')
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
with:
|
||||
@@ -42,20 +42,13 @@ jobs:
|
||||
column-name: "Need info"
|
||||
label-name: "X-Needs-Info"
|
||||
|
||||
add_priority_design_issues_to_project:
|
||||
name: P1 X-Needs-Design to Design project board
|
||||
add_design_issues_to_project:
|
||||
name: X-Needs-Design to Design project board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
contains(github.event.issue.labels.*.name, 'X-Needs-Design') &&
|
||||
(contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
||||
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||
contains(github.event.issue.labels.*.name, 'O-Occasional')) ||
|
||||
contains(github.event.issue.labels.*.name, 'S-Major') &&
|
||||
contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||
contains(github.event.issue.labels.*.name, 'A11y') &&
|
||||
contains(github.event.issue.labels.*.name, 'O-Frequent'))
|
||||
contains(github.event.issue.labels.*.name, 'X-Needs-Design')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
@@ -79,7 +72,7 @@ jobs:
|
||||
name: X-Needs-Product to Design project board
|
||||
runs-on: ubuntu-latest
|
||||
if: >
|
||||
contains(github.event.issue.labels.*.name, 'X-Needs-Product')
|
||||
contains(github.event.issue.labels.*.name, 'X-Needs-Product')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
id: add_to_project
|
||||
@@ -105,10 +98,8 @@ jobs:
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
(contains(github.event.issue.labels.*.name, 'A-Spaces') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Space-Settings') ||
|
||||
contains(github.event.issue.labels.*.name, 'A-Subspaces') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-IA'))
|
||||
(contains(github.event.issue.labels.*.name, 'Team: Delight') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-AppLayout'))
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
@@ -151,32 +142,6 @@ jobs:
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc2KCw"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_threads_issues:
|
||||
name: A-Threads to Thread board
|
||||
runs-on: ubuntu-latest
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
contains(github.event.issue.labels.*.name, 'A-Threads')
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
headers: '{"GraphQL-Features": "projects_next_graphql"}'
|
||||
query: |
|
||||
mutation add_to_project($projectid:ID!,$contentid:ID!) {
|
||||
addProjectNextItem(input:{projectId:$projectid contentId:$contentid}) {
|
||||
projectNextItem {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
projectid: ${{ env.PROJECT_ID }}
|
||||
contentid: ${{ github.event.issue.node_id }}
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc0rRA"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
move_message_bubbles_issues:
|
||||
name: A-Message-Bubbles to Message bubbles board
|
||||
runs-on: ubuntu-latest
|
||||
@@ -201,7 +166,7 @@ jobs:
|
||||
env:
|
||||
PROJECT_ID: "PN_kwDOAM0swc3m-g"
|
||||
GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
|
||||
move_ftue_issues:
|
||||
name: Z-FTUE to Mobile FTUE board
|
||||
runs-on: ubuntu-latest
|
||||
@@ -258,9 +223,12 @@ jobs:
|
||||
# Skip in forks
|
||||
if: >
|
||||
github.repository == 'vector-im/element-android' &&
|
||||
(contains(github.event.issue.labels.*.name, 'Z-ElementX-Alpha') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-ElementX-Beta') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-ElementX'))
|
||||
(contains(github.event.issue.labels.*.name, 'Z-BBQ-Alpha') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-BBQ-Beta') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-BBQ-Release') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-Banquet-Alpha') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-Banquet-Beta') ||
|
||||
contains(github.event.issue.labels.*.name, 'Z-Banquet-Release'))
|
||||
steps:
|
||||
- uses: octokit/graphql-action@v2.x
|
||||
with:
|
||||
|
7
.github/workflows/triage-priority-bugs.yml
vendored
7
.github/workflows/triage-priority-bugs.yml
vendored
@@ -14,10 +14,7 @@ jobs:
|
||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Cross-Signing') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Dehydration') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-Key-Backup') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-Spaces') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-Spaces-Settings') &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-Subspaces')) &&
|
||||
!contains(github.event.issue.labels.*.name, 'A-E2EE-SAS-Verification')) &&
|
||||
(contains(github.event.issue.labels.*.name, 'T-Defect') &&
|
||||
contains(github.event.issue.labels.*.name, 'S-Critical') &&
|
||||
(contains(github.event.issue.labels.*.name, 'O-Frequent') ||
|
||||
@@ -30,7 +27,7 @@ jobs:
|
||||
- uses: alex-page/github-project-automation-plus@bb266ff4dde9242060e2d5418e120a133586d488
|
||||
with:
|
||||
project: Android App Team
|
||||
column: P1
|
||||
column: Important Issues & Topics (P1)
|
||||
repo-token: ${{ secrets.ELEMENT_BOT_TOKEN }}
|
||||
|
||||
P1_issues_to_crypto_team_workboard:
|
||||
|
7
.gitignore
vendored
7
.gitignore
vendored
@@ -16,4 +16,9 @@
|
||||
/fastlane/private
|
||||
/fastlane/report.xml
|
||||
|
||||
/library/build
|
||||
/**/build
|
||||
|
||||
# Added by yarn
|
||||
/package.json
|
||||
/yarn.lock
|
||||
/node_modules
|
||||
|
1
.idea/dictionaries/bmarty.xml
generated
1
.idea/dictionaries/bmarty.xml
generated
@@ -40,6 +40,7 @@
|
||||
<w>sygnal</w>
|
||||
<w>threepid</w>
|
||||
<w>uisi</w>
|
||||
<w>unifiedpush</w>
|
||||
<w>unpublish</w>
|
||||
<w>unwedging</w>
|
||||
<w>vctr</w>
|
||||
|
18
.travis.yml
18
.travis.yml
@@ -1,18 +0,0 @@
|
||||
# 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
|
||||
# - Build pushed branches -> On (build the branch)
|
||||
# - Build pushed pull request -> On (build the PR after auto-merge)
|
||||
#
|
||||
# - Auto cancel branch builds -> On
|
||||
# - Auto cancel pull request builds -> On
|
||||
|
||||
sudo: false
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
|
||||
# Just run a simple script here
|
||||
script:
|
||||
- ./tools/travis/check_pr.sh
|
467
CHANGES.md
467
CHANGES.md
@@ -1,3 +1,468 @@
|
||||
Changes in Element v1.4.36 (2022-09-10)
|
||||
=======================================
|
||||
|
||||
New App Layout can be enabled in the Labs settings. Please give it a try!
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Adds New App Layout into Labs ([#7038](https://github.com/vector-im/element-android/issues/7038))
|
||||
- Try to detect devices that lack Opus encoder support, use bundled libopus library for those. ([#7010](https://github.com/vector-im/element-android/issues/7010))
|
||||
- Suggest @room when @channel, @everyone, or @here is typed in composer ([#6529](https://github.com/vector-im/element-android/issues/6529))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix long incremental sync. ([#6917](https://github.com/vector-im/element-android/issues/6917))
|
||||
- Fix push with FCM ([#7068](https://github.com/vector-im/element-android/issues/7068))
|
||||
- FTUE - Fixes optional email registration step always being mandatory ([#6969](https://github.com/vector-im/element-android/issues/6969))
|
||||
- Fixes /addToSpace and /joinSpace commands showing invalid syntax warnings ([#6844](https://github.com/vector-im/element-android/issues/6844))
|
||||
- Fix low occurrence crashes. ([#6967](https://github.com/vector-im/element-android/issues/6967))
|
||||
- Fix crash when opening an unknown room ([#6978](https://github.com/vector-im/element-android/issues/6978))
|
||||
- Fix crash on PIN code settings screen. ([#6979](https://github.com/vector-im/element-android/issues/6979))
|
||||
- Fix autoplayed animated stickers ([#6982](https://github.com/vector-im/element-android/issues/6982))
|
||||
- Catch race condition crash in voice recording ([#6989](https://github.com/vector-im/element-android/issues/6989))
|
||||
- Fix invite to room when in a space buttons not working. ([#7054](https://github.com/vector-im/element-android/issues/7054))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Create DM room only on first message - Create the DM and navigate to the new room after sending an event ([#5525](https://github.com/vector-im/element-android/issues/5525))
|
||||
- [App Layout] New empty states for home screen ([#6835](https://github.com/vector-im/element-android/issues/6835))
|
||||
- [App Layout] Bottom navigation tabs are removed for new home screen ([#6565](https://github.com/vector-im/element-android/issues/6565))
|
||||
- [App Layout] fixed space switching dialog measured with wrong height sometimes ([#6750](https://github.com/vector-im/element-android/issues/6750))
|
||||
- [App Layout] Fabs doesn't go off screen anymore ([#6765](https://github.com/vector-im/element-android/issues/6765))
|
||||
- [New Layout] Adds back navigation through spaces ([#6877](https://github.com/vector-im/element-android/issues/6877))
|
||||
- [App Layout] new room invites screen ([#6889](https://github.com/vector-im/element-android/issues/6889))
|
||||
- [App Layout] - Invites now show empty screen after you reject last invite ([#6876](https://github.com/vector-im/element-android/issues/6876))
|
||||
- [App Layout] - space switcher now has empty state ([#6754](https://github.com/vector-im/element-android/issues/6754))
|
||||
- [App Layout] - Improves Developer Mode Debug Button UX and adds it to New App Layout ([#6871](https://github.com/vector-im/element-android/issues/6871))
|
||||
- [New Layout] Changes space sheet to accordion-style with expandable subspaces ([#6907](https://github.com/vector-im/element-android/issues/6907))
|
||||
- [New Layout] Adds space invites ([#6924](https://github.com/vector-im/element-android/issues/6924))
|
||||
- [App Layout] fixed invites count badge bottom margin on a home screen ([#6947](https://github.com/vector-im/element-android/issues/6947))
|
||||
- [New Layout] Improves talkback accessibility ([#7016](https://github.com/vector-im/element-android/issues/7016))
|
||||
- [New Layout] Changes space icon in fab and in release notes screen ([#7039](https://github.com/vector-im/element-android/issues/7039))
|
||||
- [New Layout] Adds header to spaces bottom sheet ([#7040](https://github.com/vector-im/element-android/issues/7040))
|
||||
- [App Layout] New App Layout is enabled by default (Edit: has to be enabled in Labs) ([#6958](https://github.com/vector-im/element-android/issues/6958))
|
||||
- [App Layout] Obsolete settings are not shown when App Layout flag is enabled ([#6646](https://github.com/vector-im/element-android/issues/6646))
|
||||
- [Devices Management] Session overview screen ([#6961](https://github.com/vector-im/element-android/issues/6961))
|
||||
- [Devices Management] Refactor some code to improve testability ([#7043](https://github.com/vector-im/element-android/issues/7043))
|
||||
- [Device Manager] Current Session Section ([#6902](https://github.com/vector-im/element-android/issues/6902))
|
||||
- [Device Manager] Other Sessions Section ([#6945](https://github.com/vector-im/element-android/issues/6945))
|
||||
- [Device Manager] Render Security Recommendations ([#6964](https://github.com/vector-im/element-android/issues/6964))
|
||||
|
||||
Improved Documentation 📚
|
||||
------------------------
|
||||
- Clarify that setting up a FCM Rewrite Proxy is not necessary for use of the UnifiedPush FCM distributor. ([#6727](https://github.com/vector-im/element-android/issues/6727))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Increase sticker size ([#6982](https://github.com/vector-im/element-android/issues/6982))
|
||||
- Focus input field when editing homeserver address to speed up login and registration. ([#6926](https://github.com/vector-im/element-android/issues/6926))
|
||||
- Log basic Http information in production. ([#6925](https://github.com/vector-im/element-android/issues/6925))
|
||||
- Converts the vector module to a library with a parent vector-app application module ([#6407](https://github.com/vector-im/element-android/issues/6407))
|
||||
- Creates a dedicated strings module ([#3955](https://github.com/vector-im/element-android/issues/3955))
|
||||
- Remove FragmentModule and the Fragment factory. No need to Inject the constructor on your Fragment, just add @AndroidEntryPoint annotation and @Inject class members. ([#6894](https://github.com/vector-im/element-android/issues/6894))
|
||||
- Small refactor of UnifiedPushHelper ([#6936](https://github.com/vector-im/element-android/issues/6936))
|
||||
- CI: only run sonarqube task when token is known ([#7057](https://github.com/vector-im/element-android/issues/7057))
|
||||
|
||||
|
||||
Changes in Element v1.4.34 (2022-08-23)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- [Notification] - Handle creation of notification for live location and poll start ([#6746](https://github.com/vector-im/element-android/issues/6746))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fixes onboarding requiring matrix.org to be accessible on the first step, the server can now be manually changed ([#6718](https://github.com/vector-im/element-android/issues/6718))
|
||||
- Fixing sign in/up for homeservers that rely on the SSO fallback url ([#6827](https://github.com/vector-im/element-android/issues/6827))
|
||||
- Fixes uncaught exceptions in the SyncWorker to cause the worker to become stuck in the failure state ([#6836](https://github.com/vector-im/element-android/issues/6836))
|
||||
- Fixes onboarding captcha crashing when no WebView is available by showing an error with information instead ([#6855](https://github.com/vector-im/element-android/issues/6855))
|
||||
- Removes ability to continue registration after the app has been destroyed, fixes the next steps crashing due to missing information from the previous steps ([#6860](https://github.com/vector-im/element-android/issues/6860))
|
||||
- Fixes crash when exiting the login or registration entry screens whilst they're loading ([#6861](https://github.com/vector-im/element-android/issues/6861))
|
||||
- Fixes server selection being unable to trust certificates ([#6864](https://github.com/vector-im/element-android/issues/6864))
|
||||
- Ensure SyncThread is started when the app is launched after a Push has been received. ([#6884](https://github.com/vector-im/element-android/issues/6884))
|
||||
- Fixes missing firebase notifications after logging in when UnifiedPush distributor is installed ([#6891](https://github.com/vector-im/element-android/issues/6891))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Create DM room only on first message - Trigger the flow when the "Direct Message" action is selected from the room member details screen ([#5525](https://github.com/vector-im/element-android/issues/5525))
|
||||
- added filter tabs for new App layout's Home screen ([#6505](https://github.com/vector-im/element-android/issues/6505))
|
||||
- [App Layout] added dialog to configure app layout ([#6506](https://github.com/vector-im/element-android/issues/6506))
|
||||
- Adds space list bottom sheet for new app layout ([#6749](https://github.com/vector-im/element-android/issues/6749))
|
||||
- [App Layout] Dialpad moved from bottom navigation tab to a separate activity accessed via home screen context menu ([#6787](https://github.com/vector-im/element-android/issues/6787))
|
||||
- Makes toolbar switch title based on space in New App Layout ([#6795](https://github.com/vector-im/element-android/issues/6795))
|
||||
- [Devices management] Add a feature flag and empty screen for future new layout ([#6798](https://github.com/vector-im/element-android/issues/6798))
|
||||
- Adds new chat bottom sheet as the click action of the main FAB in the new app layout ([#6801](https://github.com/vector-im/element-android/issues/6801))
|
||||
- [Devices management] Other sessions section in new layout ([#6806](https://github.com/vector-im/element-android/issues/6806))
|
||||
- [New Layout] Adds space settings accessible through clicking the toolbar ([#6859](https://github.com/vector-im/element-android/issues/6859))
|
||||
- Adds New App Layout FABs (hidden behind feature flag) ([#6693](https://github.com/vector-im/element-android/issues/6693))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Rename `DebugService.logDbUsageInfo` (resp. `Session.logDbUsageInfo`) to `DebugService.getDbUsageInfo` (resp. `Session.getDbUsageInfo`) and return a String instead of logging. The caller may want to log the String. ([#6884](https://github.com/vector-im/element-android/issues/6884))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Removes the Login2 proof of concept - replaced by the FTUE changes ([#5974](https://github.com/vector-im/element-android/issues/5974))
|
||||
- Enable auto-capitalization for Room creation Title field ([#6645](https://github.com/vector-im/element-android/issues/6645))
|
||||
- Decouples the variant logic from the vector module ([#6783](https://github.com/vector-im/element-android/issues/6783))
|
||||
- Add a developer setting to enable LeakCanary at runtime ([#6786](https://github.com/vector-im/element-android/issues/6786))
|
||||
- [Create Room] Reduce some boilerplate with room state event contents ([#6799](https://github.com/vector-im/element-android/issues/6799))
|
||||
- [Call] Memory leak after a call ([#6808](https://github.com/vector-im/element-android/issues/6808))
|
||||
- Fix some string template ([#6843](https://github.com/vector-im/element-android/issues/6843))
|
||||
|
||||
|
||||
Changes in Element v1.4.32 (2022-08-10)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- [Location Share] Render fallback UI when map fails to load ([#6711](https://github.com/vector-im/element-android/issues/6711))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix message content sometimes appearing in the log ([#6706](https://github.com/vector-im/element-android/issues/6706))
|
||||
- Disable 'Enable biometrics' option if there are not biometric authenticators enrolled. ([#6713](https://github.com/vector-im/element-android/issues/6713))
|
||||
- Fix crash when biometric key is used when coming back to foreground and KeyStore reports that the device is still locked. ([#6768](https://github.com/vector-im/element-android/issues/6768))
|
||||
- Catch all exceptions on lockscreen system key migrations. ([#6769](https://github.com/vector-im/element-android/issues/6769))
|
||||
- Fixes crash when entering non ascii characters during account creation ([#6735](https://github.com/vector-im/element-android/issues/6735))
|
||||
- Fixes onboarding login/account creation errors showing after navigation ([#6737](https://github.com/vector-im/element-android/issues/6737))
|
||||
- [Location sharing] Invisible text on map symbol ([#6687](https://github.com/vector-im/element-android/issues/6687))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Adds new app layout toolbar ([#6655](https://github.com/vector-im/element-android/issues/6655))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- [Modularization] Provides abstraction to avoid direct usages of BuildConfig ([#6406](https://github.com/vector-im/element-android/issues/6406))
|
||||
- Refactors SpaceStateHandler (previously AppStateHandler) and adds unit tests for it ([#6598](https://github.com/vector-im/element-android/issues/6598))
|
||||
- Setup Danger to the project ([#6637](https://github.com/vector-im/element-android/issues/6637))
|
||||
- [Location Share] Open maximized map on tapping on live sharing notification ([#6642](https://github.com/vector-im/element-android/issues/6642))
|
||||
- [Location sharing] Align naming of components for live location feature ([#6647](https://github.com/vector-im/element-android/issues/6647))
|
||||
- [Location share] Update minimum sending period to 5 seconds for a live ([#6653](https://github.com/vector-im/element-android/issues/6653))
|
||||
- [Location sharing] - Fix the memory leaks ([#6674](https://github.com/vector-im/element-android/issues/6674))
|
||||
- [Timeline] Memory leak in audio message playback tracker ([#6678](https://github.com/vector-im/element-android/issues/6678))
|
||||
- [FTUE] Memory leak on FtueAuthSplashCarouselFragment ([#6680](https://github.com/vector-im/element-android/issues/6680))
|
||||
- Link directly to DCO docs from danger message. ([#6739](https://github.com/vector-im/element-android/issues/6739))
|
||||
|
||||
|
||||
Changes in Element v1.4.31 (2022-08-01)
|
||||
=======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fixes crash when returning to the app after backgrounding ([#6709](https://github.com/vector-im/element-android/issues/6709))
|
||||
- Fix message content sometimes appearing in the log ([#6706](https://github.com/vector-im/element-android/issues/6706))
|
||||
|
||||
|
||||
Changes in Element v1.4.30 (2022-07-29)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- [FTUE] - Enable improved login and register onboarding flows ([#2585](https://github.com/vector-im/element-android/issues/2585))
|
||||
- Adds settings screen to change app font scale or enable using system setting ([#5687](https://github.com/vector-im/element-android/issues/5687))
|
||||
- [Location sharing] - Delete action on a live message ([#6437](https://github.com/vector-im/element-android/issues/6437))
|
||||
- [Timeline] - Collapse redacted events ([#6487](https://github.com/vector-im/element-android/issues/6487))
|
||||
- Improve lock screen implementation with extra security measures ([#6522](https://github.com/vector-im/element-android/issues/6522))
|
||||
- Move initialization of the Session to a background thread. MainActivity is restoring the session now, instead of VectorApplication. Useful when for instance a long migration of a database is required. ([#6548](https://github.com/vector-im/element-android/issues/6548))
|
||||
- Share location with other apps ([#6567](https://github.com/vector-im/element-android/issues/6567))
|
||||
- Support element call widget ([#6616](https://github.com/vector-im/element-android/issues/6616))
|
||||
- [FTUE] Updates FTUE registration to include username availability check and update copy ([#6546](https://github.com/vector-im/element-android/issues/6546))
|
||||
- [FTUE] - Allows the email address to be changed during the verification process ([#6622](https://github.com/vector-im/element-android/issues/6622))
|
||||
- [FTUE] Updates the copy within the FTUE onboarding ([#6547](https://github.com/vector-im/element-android/issues/6547))
|
||||
- [FTUE] Test session feedback ([#6620](https://github.com/vector-im/element-android/issues/6620))
|
||||
- [FTUE] - Improved reset password error message ([#6621](https://github.com/vector-im/element-android/issues/6621))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fixes wrong voice message being displayed and played on the timeline. ([#6213](https://github.com/vector-im/element-android/issues/6213))
|
||||
- Fixes the room list not taking into account the Show all rooms in Home preference ([#6665](https://github.com/vector-im/element-android/issues/6665))
|
||||
- Stop using unstable names for withheld codes ([#5115](https://github.com/vector-im/element-android/issues/5115))
|
||||
- Fixes room not being in space after upgrade ([#6200](https://github.com/vector-im/element-android/issues/6200))
|
||||
- Fixed issues with reporting sync state events from different threads ([#6341](https://github.com/vector-im/element-android/issues/6341))
|
||||
- Display specific message when verification QR code is malformed ([#6395](https://github.com/vector-im/element-android/issues/6395))
|
||||
- When there is no way to verify a device (no 4S nor other device) propose to reset verification keys ([#6466](https://github.com/vector-im/element-android/issues/6466))
|
||||
- Unwedging could cause the SDK to force creating a new olm session every hour ([#6534](https://github.com/vector-im/element-android/issues/6534))
|
||||
- [Location Share] - Wrong room live location status bar visibility in timeline ([#6537](https://github.com/vector-im/element-android/issues/6537))
|
||||
- Fix infinite loading when opening a DM when the current room is the same DM. ([#6549](https://github.com/vector-im/element-android/issues/6549))
|
||||
- Do not log the live location of the user ([#6579](https://github.com/vector-im/element-android/issues/6579))
|
||||
- Fix backup saving several times the same keys ([#6585](https://github.com/vector-im/element-android/issues/6585))
|
||||
- Check user power level before sharing live location ([#6587](https://github.com/vector-im/element-android/issues/6587))
|
||||
- [Location Share] - Live is considered as ended while still active ([#6596](https://github.com/vector-im/element-android/issues/6596))
|
||||
- Put EC permission shortcuts behind labs flag (PSG-630) ([#6634](https://github.com/vector-im/element-android/issues/6634))
|
||||
- ObjectAnimators are not canceled in TypingMessageDotsView ([#6663](https://github.com/vector-im/element-android/issues/6663))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Communities/Groups are removed completely ([#5733](https://github.com/vector-im/element-android/issues/5733))
|
||||
- SDK - The SpaceFilter is query parameter is no longer nullable, use SpaceFilter.NoFilter instead ([#6666](https://github.com/vector-im/element-android/issues/6666))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Nightly build publication on Firebase ([#6478](https://github.com/vector-im/element-android/issues/6478))
|
||||
- Communities/Groups are removed completely ([#5733](https://github.com/vector-im/element-android/issues/5733))
|
||||
- Improves performance on search screen by replacing flattenParents with directParentName in RoomSummary ([#6314](https://github.com/vector-im/element-android/issues/6314))
|
||||
- Log durations of DB migration and migration steps. ([#6538](https://github.com/vector-im/element-android/issues/6538))
|
||||
- [Location Share] - Standardise "Stop" texts for live ([#6541](https://github.com/vector-im/element-android/issues/6541))
|
||||
- Adds NewAppLayoutEnabled feature flag ([#6584](https://github.com/vector-im/element-android/issues/6584))
|
||||
- [Location sharing] - Small improvements of UI for live ([#6607](https://github.com/vector-im/element-android/issues/6607))
|
||||
- Live Location Sharing - Reset zoom level while focusing a user ([#6609](https://github.com/vector-im/element-android/issues/6609))
|
||||
- Fix a typo in the terms and conditions step during registration. ([#6612](https://github.com/vector-im/element-android/issues/6612))
|
||||
- [Location sharing] - OnTap on the top live status bar, display the expanded map view ([#6625](https://github.com/vector-im/element-android/issues/6625))
|
||||
- [Location Share] - Expanded map state when no more live location shares ([#6635](https://github.com/vector-im/element-android/issues/6635))
|
||||
|
||||
|
||||
Changes in Element v1.4.28 (2022-07-13)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Improve user experience when he is first invited to a room. Users will be able to decrypt and view previous messages ([#5853](https://github.com/vector-im/element-android/issues/5853))
|
||||
- [Location sharing] - Reply action on a live message ([#6401](https://github.com/vector-im/element-android/issues/6401))
|
||||
- Show a loader if all the Room Members are not yet loaded. ([#6413](https://github.com/vector-im/element-android/issues/6413))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fixes numbered lists always starting from 1 ([#4777](https://github.com/vector-im/element-android/issues/4777))
|
||||
- Adds LoginType to SessionParams to fix soft logout form not showing for SSO and Password type ([#5398](https://github.com/vector-im/element-android/issues/5398))
|
||||
- Use stable endpoint for alias management instead of MSC2432. Contributed by Nico. ([#6288](https://github.com/vector-im/element-android/issues/6288))
|
||||
- [Poll] Fixes visible and wrong votes in closed poll after removing 2 previous polls ([#6430](https://github.com/vector-im/element-android/issues/6430))
|
||||
- Fix HTML entities being displayed in messages ([#6442](https://github.com/vector-im/element-android/issues/6442))
|
||||
- Gallery picker can pick external images ([#6450](https://github.com/vector-im/element-android/issues/6450))
|
||||
- Fixes crash when sharing plain text, such as a url ([#6451](https://github.com/vector-im/element-android/issues/6451))
|
||||
- Fix crashes on Timeline [Thread] due to range validation ([#6461](https://github.com/vector-im/element-android/issues/6461))
|
||||
- Fix crashes when opening Thread ([#6463](https://github.com/vector-im/element-android/issues/6463))
|
||||
- Fix ConcurrentModificationException on BackgroundDetectionObserver ([#6469](https://github.com/vector-im/element-android/issues/6469))
|
||||
- Fixes inconsistency with rooms within spaces showing or disappearing from home ([#6510](https://github.com/vector-im/element-android/issues/6510))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- FTUE - Adds support for resetting the password during the FTUE onboarding journey ([#5284](https://github.com/vector-im/element-android/issues/5284))
|
||||
- Create DM room only on first message - Design implementation & debug feature flag ([#5525](https://github.com/vector-im/element-android/issues/5525))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Replacing Epoxy annotation layout id references with getDefaultLayoutId ([#6389](https://github.com/vector-im/element-android/issues/6389))
|
||||
- Ensure `RealmList<T>.clearWith()` extension is correctly used. ([#6392](https://github.com/vector-im/element-android/issues/6392))
|
||||
- [Poll] - Add a description under undisclosed poll when not ended ([#6423](https://github.com/vector-im/element-android/issues/6423))
|
||||
- Add `android:hasFragileUserData="true"` in the manifest ([#6429](https://github.com/vector-im/element-android/issues/6429))
|
||||
- Add code check to prevent modification of frozen class ([#6434](https://github.com/vector-im/element-android/issues/6434))
|
||||
- Let your Activity or Fragment implement `VectorMenuProvider` if they provide a menu. ([#6436](https://github.com/vector-im/element-android/issues/6436))
|
||||
- Rename Android Service to use `AndroidService` suffix ([#6458](https://github.com/vector-im/element-android/issues/6458))
|
||||
|
||||
|
||||
Changes in Element v1.4.27 (2022-07-06)
|
||||
=======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fixes crash when sharing plain text, such as a url ([#6451](https://github.com/vector-im/element-android/issues/6451))
|
||||
- Fix crashes on Timeline [Thread] due to range validation ([#6461](https://github.com/vector-im/element-android/issues/6461))
|
||||
- Fix crashes when opening Thread ([#6463](https://github.com/vector-im/element-android/issues/6463))
|
||||
- Fix ConcurrentModificationException on BackgroundDetectionObserver ([#6469](https://github.com/vector-im/element-android/issues/6469))
|
||||
|
||||
|
||||
Changes in Element v1.4.26 (2022-06-30)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Use UnifiedPush and allows user to have push without FCM. ([#3448](https://github.com/vector-im/element-android/issues/3448))
|
||||
- Replace ffmpeg-kit with libopus and libopusenc. ([#6203](https://github.com/vector-im/element-android/issues/6203))
|
||||
- Improve lock screen implementation. ([#6217](https://github.com/vector-im/element-android/issues/6217))
|
||||
- Allow sharing text based content via android's share menu (eg .ics files) ([#6285](https://github.com/vector-im/element-android/issues/6285))
|
||||
- Promote live location labs flag ([#6350](https://github.com/vector-im/element-android/issues/6350))
|
||||
- [Location sharing] - Stop any active live before starting a new one ([#6364](https://github.com/vector-im/element-android/issues/6364))
|
||||
- Expose pusher profile tag in advanced settings ([#6369](https://github.com/vector-im/element-android/issues/6369))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fixes concurrent modification crash when signing out or launching the app ([#5821](https://github.com/vector-im/element-android/issues/5821))
|
||||
- Refactor - better naming, return native user id and not sip user id and create a dm with the native user instead of with the sip user. ([#6101](https://github.com/vector-im/element-android/issues/6101))
|
||||
- Fixed /upgraderoom command not doing anything ([#6154](https://github.com/vector-im/element-android/issues/6154))
|
||||
- Fixed crash when opening large images in the timeline ([#6290](https://github.com/vector-im/element-android/issues/6290))
|
||||
- [Location sharing] Fix crash when starting/stopping a live when offline ([#6315](https://github.com/vector-im/element-android/issues/6315))
|
||||
- Fix loop in timeline and simplify management of chunks and timeline events. ([#6318](https://github.com/vector-im/element-android/issues/6318))
|
||||
- Update design and behaviour on widget permission bottom sheet ([#6326](https://github.com/vector-im/element-android/issues/6326))
|
||||
- Fix | Some user verification requests couldn't be accepted/declined ([#6328](https://github.com/vector-im/element-android/issues/6328))
|
||||
- [Location sharing] Fix stop of a live not possible from another device ([#6349](https://github.com/vector-im/element-android/issues/6349))
|
||||
- Fix backslash escapes in formatted messages ([#6357](https://github.com/vector-im/element-android/issues/6357))
|
||||
- Fixes wrong error message when signing in with wrong credentials ([#6371](https://github.com/vector-im/element-android/issues/6371))
|
||||
- [Location Share] - Adding missing prefix "u=" for uncertainty in geo URI ([#6375](https://github.com/vector-im/element-android/issues/6375))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- FTUE - Adds automatic homeserver selection when typing a full matrix id during registration or login ([#6162](https://github.com/vector-im/element-android/issues/6162))
|
||||
|
||||
Improved Documentation 📚
|
||||
------------------------
|
||||
- Update the PR process doc to come back to one reviewer with optional additional reviewers. ([#6396](https://github.com/vector-im/element-android/issues/6396))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Group all location sharing related API into LocationSharingService ([#5864](https://github.com/vector-im/element-android/issues/5864))
|
||||
- Add support for MSC2457 - opting in or out of logging out all devices when changing password ([#6191](https://github.com/vector-im/element-android/issues/6191))
|
||||
- Create `QueryStateEventValue` to do query on `stateKey` for State Event. Also remove the default parameter values for those type. ([#6319](https://github.com/vector-im/element-android/issues/6319))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- - Notify of the latest known location in LocationTracker to avoid multiple locations at start
|
||||
- Debounce location updates
|
||||
- Improve location providers access ([#5913](https://github.com/vector-im/element-android/issues/5913))
|
||||
- Add unit tests for LiveLocationAggregationProcessor code ([#6155](https://github.com/vector-im/element-android/issues/6155))
|
||||
- Making screenshots in bug reports opt in instead of opt out ([#6261](https://github.com/vector-im/element-android/issues/6261))
|
||||
- Setup [Flipper](https://fbflipper.com/) ([#6300](https://github.com/vector-im/element-android/issues/6300))
|
||||
- CreatePollViewModel unit tests ([#6320](https://github.com/vector-im/element-android/issues/6320))
|
||||
- Fix flaky test in voice recording feature. ([#6329](https://github.com/vector-im/element-android/issues/6329))
|
||||
- Poll view state unit tests ([#6366](https://github.com/vector-im/element-android/issues/6366))
|
||||
- Let LoadRoomMembersTask insert by chunk to release db. ([#6394](https://github.com/vector-im/element-android/issues/6394))
|
||||
|
||||
|
||||
Changes in Element v1.4.25 (2022-06-27)
|
||||
=======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Second attempt to fix session database migration to version 30.
|
||||
|
||||
Changes in Element v1.4.24 (2022-06-22)
|
||||
=======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- First attempt to fix session database migration to version 30.
|
||||
|
||||
Changes in Element v1.4.23 (2022-06-21)
|
||||
=======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix loop in timeline and simplify management of chunks and timeline events. ([#6318](https://github.com/vector-im/element-android/issues/6318))
|
||||
|
||||
|
||||
Changes in Element v1.4.22 (2022-06-14)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Make read receipt avatar list more compact ([#5970](https://github.com/vector-im/element-android/issues/5970))
|
||||
- Allow .well-known configuration to override key sharing mode ([#6147](https://github.com/vector-im/element-android/issues/6147))
|
||||
- Re-organize location settings flags ([#6244](https://github.com/vector-im/element-android/issues/6244))
|
||||
- Add report action for live location messages ([#6280](https://github.com/vector-im/element-android/issues/6280))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix cases of missing, swapped, or duplicated messages ([#5528](https://github.com/vector-im/element-android/issues/5528))
|
||||
- Fix wrong status of live location sharing in timeline ([#6209](https://github.com/vector-im/element-android/issues/6209))
|
||||
- Fix StackOverflowError while recording voice message ([#6222](https://github.com/vector-im/element-android/issues/6222))
|
||||
- Text cropped: "Secure backup" ([#6232](https://github.com/vector-im/element-android/issues/6232))
|
||||
- Fix copyright attributions of map views ([#6247](https://github.com/vector-im/element-android/issues/6247))
|
||||
- Fix flickering bottom bar of live location item ([#6264](https://github.com/vector-im/element-android/issues/6264))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- FTUE - Adds Sign Up tracking ([#5285](https://github.com/vector-im/element-android/issues/5285))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Some methods from `Session` have been moved to a new `SyncService`, that you can retrieve from a `Session`.
|
||||
- `SyncStatusService` method has been moved to the new `SyncService`
|
||||
- `InitSyncStep` have been moved and renamed to `InitialSyncStep`
|
||||
- `SyncStatusService.Status` has been renamed to `SyncRequestState`
|
||||
- The existing `SyncService` has been renamed to `SyncAndroidService` because of name clash with the new SDK Service ([#6029](https://github.com/vector-im/element-android/issues/6029))
|
||||
- Allows `AuthenticationService.getLoginFlow` to fail without resetting state from previously successful calls ([#6093](https://github.com/vector-im/element-android/issues/6093))
|
||||
- Allows new passwords to be passed at the point of confirmation when resetting a password ([#6169](https://github.com/vector-im/element-android/issues/6169))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- Adds support for parsing homeserver versions without a patch number ([#6017](https://github.com/vector-im/element-android/issues/6017))
|
||||
- Updating exit onboarding dialog copy formatting to match iOS ([#6087](https://github.com/vector-im/element-android/issues/6087))
|
||||
- Disables when arrow alignment in code style ([#6126](https://github.com/vector-im/element-android/issues/6126))
|
||||
|
||||
|
||||
Changes in Element 1.4.20 (2022-06-13)
|
||||
======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix: All rooms are shown in Home regardless of the switch state. ([#6272](https://github.com/vector-im/element-android/issues/6272))
|
||||
- Fix regression on EventInsertLiveObserver getting blocked so there is no event being processed anymore. ([#6278](https://github.com/vector-im/element-android/issues/6278))
|
||||
|
||||
|
||||
Changes in Element 1.4.19 (2022-06-07)
|
||||
======================================
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix | performance regression on roomlist + proper display of space parents in explore rooms. ([#6233](https://github.com/vector-im/element-android/issues/6233))
|
||||
|
||||
|
||||
Changes in Element v1.4.18 (2022-05-31)
|
||||
=======================================
|
||||
|
||||
Features ✨
|
||||
----------
|
||||
- Space explore screen changes: removed space card, added rooms filtering ([#5658](https://github.com/vector-im/element-android/issues/5658))
|
||||
- Adds space or user id as a subtitle under rooms in search ([#5860](https://github.com/vector-im/element-android/issues/5860))
|
||||
- Adds up navigation in spaces ([#6073](https://github.com/vector-im/element-android/issues/6073))
|
||||
- Labs flag for enabling live location sharing ([#6098](https://github.com/vector-im/element-android/issues/6098))
|
||||
- Added support for mandatory backup or passphrase from .well-known configuration. ([#6133](https://github.com/vector-im/element-android/issues/6133))
|
||||
- Security - Asking for user confirmation when tapping URLs which contain unicode directional overrides ([#6163](https://github.com/vector-im/element-android/issues/6163))
|
||||
- Add settings switch to allow autoplaying animated images ([#6166](https://github.com/vector-im/element-android/issues/6166))
|
||||
- Live Location Sharing - User List Bottom Sheet ([#6170](https://github.com/vector-im/element-android/issues/6170))
|
||||
|
||||
Bugfixes 🐛
|
||||
----------
|
||||
- Fix some notifications not clearing when read ([#4862](https://github.com/vector-im/element-android/issues/4862))
|
||||
- Do not switch away from home space on notification when "Show all Rooms in Home" is selected. ([#5827](https://github.com/vector-im/element-android/issues/5827))
|
||||
- Use fixed text size in read receipt counter ([#5856](https://github.com/vector-im/element-android/issues/5856))
|
||||
- Revert: Use member name instead of room name in DM creation item ([#6032](https://github.com/vector-im/element-android/issues/6032))
|
||||
- Poll refactoring with unit tests ([#6074](https://github.com/vector-im/element-android/issues/6074))
|
||||
- Correct .well-known/matrix/client handling for server_names which include ports. ([#6095](https://github.com/vector-im/element-android/issues/6095))
|
||||
- Glide - Use current drawable while loading new static map image ([#6103](https://github.com/vector-im/element-android/issues/6103))
|
||||
- Fix sending multiple invites to a room reaching only one or two people ([#6109](https://github.com/vector-im/element-android/issues/6109))
|
||||
- Prevent widget web view from reloading on screen / orientation change ([#6140](https://github.com/vector-im/element-android/issues/6140))
|
||||
- Fix decrypting redacted event from sending errors ([#6148](https://github.com/vector-im/element-android/issues/6148))
|
||||
- Make widget web view request system permissions for camera and microphone (PSF-1061) ([#6149](https://github.com/vector-im/element-android/issues/6149))
|
||||
|
||||
In development 🚧
|
||||
----------------
|
||||
- Adds email input and verification screens to the new FTUE onboarding flow ([#5278](https://github.com/vector-im/element-android/issues/5278))
|
||||
- FTUE - Adds the redesigned Sign In screen ([#5283](https://github.com/vector-im/element-android/issues/5283))
|
||||
- [Live location sharing] Update message in timeline during the live ([#5689](https://github.com/vector-im/element-android/issues/5689))
|
||||
- FTUE - Overrides sign up flow ordering for matrix.org only ([#5783](https://github.com/vector-im/element-android/issues/5783))
|
||||
- Live location sharing: navigation from timeline to map screen
|
||||
Live location sharing: show user pins on map screen ([#6012](https://github.com/vector-im/element-android/issues/6012))
|
||||
- FTUE - Adds homeserver login/register deeplink support ([#6023](https://github.com/vector-im/element-android/issues/6023))
|
||||
- [Live location sharing] Update entity in DB when a live is timed out ([#6123](https://github.com/vector-im/element-android/issues/6123))
|
||||
|
||||
SDK API changes ⚠️
|
||||
------------------
|
||||
- Notifies other devices when a verification request sent from an Android device is accepted.` ([#5724](https://github.com/vector-im/element-android/issues/5724))
|
||||
- Some `val` have been changed to `fun` to increase their visibility in the generated documentation. Just add `()` if you were using them.
|
||||
- `KeysBackupService.state` has been replaced by `KeysBackupService.getState()`
|
||||
- `KeysBackupService.isStucked` has been replaced by `KeysBackupService.isStuck()`
|
||||
- SDK documentation improved ([#5952](https://github.com/vector-im/element-android/issues/5952))
|
||||
- Improve replay attacks and reduce duplicate message index errors ([#6077](https://github.com/vector-im/element-android/issues/6077))
|
||||
- Remove `RoomSummaryQueryParams.roomId`. If you need to observe a single room, use the new API `RoomService.getRoomSummaryLive(roomId: String)`
|
||||
- `ActiveSpaceFilter` has been renamed to `SpaceFilter`
|
||||
- `RoomCategoryFilter.ALL` has been removed, just pass `null` to not filter on Room category. ([#6143](https://github.com/vector-im/element-android/issues/6143))
|
||||
|
||||
Other changes
|
||||
-------------
|
||||
- leaving space experience changed to be aligned with iOS ([#5728](https://github.com/vector-im/element-android/issues/5728))
|
||||
- @Ignore a number of tests that are currently failing in CI. ([#6025](https://github.com/vector-im/element-android/issues/6025))
|
||||
- Remove ShortcutBadger lib and usage (it was dead code) ([#6041](https://github.com/vector-im/element-android/issues/6041))
|
||||
- Test: Ensure calling 'fail()' is not caught by the catch block ([#6089](https://github.com/vector-im/element-android/issues/6089))
|
||||
- Excludes transitive optional non FOSS google location dependency from fdroid builds ([#6100](https://github.com/vector-im/element-android/issues/6100))
|
||||
- Fixed grammar errors in /vector/src/main/res/values/strings.xml ([#6132](https://github.com/vector-im/element-android/issues/6132))
|
||||
- Downgrade gradle from 7.2.0 to 7.1.3 ([#6141](https://github.com/vector-im/element-android/issues/6141))
|
||||
- Add Lao language to the in-app settings. ([#6196](https://github.com/vector-im/element-android/issues/6196))
|
||||
- Remove the background location permission request ([#6198](https://github.com/vector-im/element-android/issues/6198))
|
||||
|
||||
|
||||
Changes in Element v1.4.16 (2022-05-17)
|
||||
=======================================
|
||||
|
||||
@@ -36,7 +501,7 @@ Other changes
|
||||
- Reformatted project code ([#5953](https://github.com/vector-im/element-android/issues/5953))
|
||||
- Update check for server-side threads support to match spec. ([#5997](https://github.com/vector-im/element-android/issues/5997))
|
||||
- Setup detekt ([#6038](https://github.com/vector-im/element-android/issues/6038))
|
||||
- Notify the user for each new message ([#46312](https://github.com/vector-im/element-android/issues/46312))
|
||||
- Notify the user for each new message ([#4632](https://github.com/vector-im/element-android/issues/4632))
|
||||
|
||||
|
||||
Changes in Element v1.4.14 (2022-05-05)
|
||||
|
39
Gemfile.lock
39
Gemfile.lock
@@ -24,10 +24,29 @@ GEM
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
claide (1.0.3)
|
||||
claide-plugins (0.9.2)
|
||||
cork
|
||||
nap
|
||||
open4 (~> 1.3)
|
||||
colored (1.2)
|
||||
colored2 (3.1.2)
|
||||
commander (4.6.0)
|
||||
highline (~> 2.0.0)
|
||||
cork (0.3.0)
|
||||
colored2 (~> 3.1)
|
||||
danger (8.6.1)
|
||||
claide (~> 1.0)
|
||||
claide-plugins (>= 0.9.2)
|
||||
colored2 (~> 3.1)
|
||||
cork (~> 0.1)
|
||||
faraday (>= 0.9.0, < 2.0)
|
||||
faraday-http-cache (~> 2.0)
|
||||
git (~> 1.7)
|
||||
kramdown (~> 2.3)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
no_proxy_fix
|
||||
octokit (~> 4.7)
|
||||
terminal-table (>= 1, < 4)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.3)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
@@ -52,6 +71,8 @@ GEM
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-http-cache (2.4.0)
|
||||
faraday (>= 0.8)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
@@ -98,6 +119,8 @@ GEM
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3)
|
||||
gh_inspector (1.1.3)
|
||||
git (1.11.0)
|
||||
rchardet (~> 1.8)
|
||||
google-apis-androidpublisher_v3 (0.8.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-core (0.4.0)
|
||||
@@ -143,17 +166,28 @@ GEM
|
||||
jmespath (1.4.0)
|
||||
json (2.5.1)
|
||||
jwt (2.2.3)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
memoist (0.16.2)
|
||||
mini_magick (4.11.0)
|
||||
mini_mime (1.1.0)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.0.0)
|
||||
nanaimo (0.3.0)
|
||||
nap (1.1.0)
|
||||
naturally (2.2.1)
|
||||
no_proxy_fix (0.1.2)
|
||||
octokit (4.25.1)
|
||||
faraday (>= 1, < 3)
|
||||
sawyer (~> 0.9)
|
||||
open4 (1.3.4)
|
||||
os (1.1.1)
|
||||
plist (3.6.0)
|
||||
public_suffix (4.0.6)
|
||||
rake (13.0.6)
|
||||
rchardet (1.8.0)
|
||||
representable (3.1.1)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
@@ -163,6 +197,9 @@ GEM
|
||||
rouge (2.0.7)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
sawyer (0.9.2)
|
||||
addressable (>= 2.3.5)
|
||||
faraday (>= 0.17.3, < 3)
|
||||
security (0.1.3)
|
||||
signet (0.15.0)
|
||||
addressable (~> 2.3)
|
||||
@@ -200,9 +237,11 @@ GEM
|
||||
xcpretty (~> 0.2, >= 0.0.7)
|
||||
|
||||
PLATFORMS
|
||||
universal-darwin-21
|
||||
x86_64-darwin-20
|
||||
|
||||
DEPENDENCIES
|
||||
danger
|
||||
fastlane
|
||||
|
||||
BUNDLED WITH
|
||||
|
@@ -1,9 +1,9 @@
|
||||
[](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=im.vector.app.android)
|
||||
[](https://sonarcloud.io/dashboard?id=im.vector.app.android)
|
||||
[](https://sonarcloud.io/dashboard?id=im.vector.app.android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||
[](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
|
||||
|
||||
# Element Android
|
||||
|
||||
|
90
build.gradle
90
build.gradle
@@ -24,13 +24,15 @@ buildscript {
|
||||
classpath libs.gradle.gradlePlugin
|
||||
classpath libs.gradle.kotlinPlugin
|
||||
classpath libs.gradle.hiltPlugin
|
||||
classpath 'com.google.gms:google-services:4.3.10'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
||||
classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3'
|
||||
classpath 'com.google.gms:google-services:4.3.13'
|
||||
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.4.0.2513'
|
||||
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
||||
classpath "com.likethesalad.android:stem-plugin:2.0.0"
|
||||
classpath 'org.owasp:dependency-check-gradle:7.1.0.1'
|
||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.21"
|
||||
classpath "com.likethesalad.android:stem-plugin:2.2.2"
|
||||
classpath 'org.owasp:dependency-check-gradle:7.2.0'
|
||||
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.10"
|
||||
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
|
||||
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
@@ -38,9 +40,12 @@ buildscript {
|
||||
|
||||
plugins {
|
||||
// ktlint Plugin
|
||||
id "org.jlleitschuh.gradle.ktlint" version "10.3.0"
|
||||
id "org.jlleitschuh.gradle.ktlint" version "11.0.0"
|
||||
// Detekt
|
||||
id "io.gitlab.arturbosch.detekt" version "1.20.0"
|
||||
id "io.gitlab.arturbosch.detekt" version "1.21.0"
|
||||
|
||||
// Dependency Analysis
|
||||
id 'com.autonomousapps.dependency-analysis' version "1.13.1"
|
||||
}
|
||||
|
||||
// https://github.com/jeremylong/DependencyCheck
|
||||
@@ -122,6 +127,11 @@ allprojects {
|
||||
enableExperimentalRules = true
|
||||
// display the corresponding rule
|
||||
verbose = true
|
||||
reporters {
|
||||
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.PLAIN)
|
||||
// To have XML report for Danger
|
||||
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.CHECKSTYLE)
|
||||
}
|
||||
disabledRules = [
|
||||
// TODO Re-enable these 4 rules after reformatting project
|
||||
"indent",
|
||||
@@ -142,6 +152,8 @@ allprojects {
|
||||
"experimental:comment-wrapping",
|
||||
// - A KDoc comment after any other element on the same line must be separated by a new line
|
||||
"experimental:kdoc-wrapping",
|
||||
// Ignore error "Redundant curly braces", since we use it to fix false positives, for instance in "elementLogs.${i}.txt"
|
||||
"string-template",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -165,7 +177,7 @@ def launchTask = getGradle()
|
||||
.toString()
|
||||
.toLowerCase()
|
||||
|
||||
if (launchTask.contains("codeCoverageReport".toLowerCase())) {
|
||||
if (launchTask.contains("coverage".toLowerCase())) {
|
||||
apply from: 'coverage.gradle'
|
||||
}
|
||||
|
||||
@@ -177,8 +189,8 @@ apply plugin: 'org.sonarqube'
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property "sonar.projectName", "Element-Android"
|
||||
property "sonar.projectKey", "im.vector.app.android"
|
||||
property "sonar.projectName", "element-android"
|
||||
property "sonar.projectKey", "vector-im_element-android"
|
||||
property "sonar.host.url", "https://sonarcloud.io"
|
||||
property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
|
||||
property "sonar.sourceEncoding", "UTF-8"
|
||||
@@ -188,7 +200,7 @@ sonarqube {
|
||||
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
||||
property "sonar.organization", "new_vector_ltd_organization"
|
||||
property "sonar.java.coveragePlugin", "jacoco"
|
||||
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml"
|
||||
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/generateCoverageReport/generateCoverageReport.xml"
|
||||
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
||||
}
|
||||
}
|
||||
@@ -219,3 +231,59 @@ project(":library:diff-match-patch") {
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
dependencyAnalysis {
|
||||
dependencies {
|
||||
bundle("kotlin-stdlib") {
|
||||
includeGroup("org.jetbrains.kotlin")
|
||||
}
|
||||
bundle("react") {
|
||||
includeGroup("com.facebook.react")
|
||||
}
|
||||
}
|
||||
issues {
|
||||
all {
|
||||
ignoreKtx(true)
|
||||
onUsedTransitiveDependencies {
|
||||
// Transitively used dependencies that should be declared directly
|
||||
severity("ignore")
|
||||
}
|
||||
onUnusedDependencies {
|
||||
severity("fail")
|
||||
}
|
||||
onUnusedAnnotationProcessors {
|
||||
severity("fail")
|
||||
exclude("com.airbnb.android:epoxy-processor", "com.google.dagger:hilt-compiler") // False positives
|
||||
}
|
||||
}
|
||||
project(":library:jsonviewer") {
|
||||
onUnusedDependencies {
|
||||
exclude("org.json:json") // Used in unit tests, overwrites the one bundled into Android
|
||||
}
|
||||
}
|
||||
project(":library:ui-styles")
|
||||
project(":matrix-sdk-android") {
|
||||
onUnusedDependencies {
|
||||
exclude("io.reactivex.rxjava2:rxkotlin") // Transitively required for mocking realm as monarchy doesn't expose Rx
|
||||
}
|
||||
}
|
||||
project(":matrix-sdk-android-flow") {
|
||||
onUnusedDependencies {
|
||||
exclude("androidx.paging:paging-runtime-ktx") // False positive
|
||||
}
|
||||
}
|
||||
project(":vector") {
|
||||
onUnusedDependencies {
|
||||
// False positives
|
||||
exclude(
|
||||
"androidx.fragment:fragment-testing",
|
||||
"com.facebook.soloader:soloader",
|
||||
"com.vanniktech:emoji-google",
|
||||
"com.vanniktech:emoji-material",
|
||||
"org.maplibre.gl:android-plugin-annotation-v9",
|
||||
"org.maplibre.gl:android-sdk",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
1
changelog.d/5424.bugfix
Normal file
1
changelog.d/5424.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Fix text margin in QR code view when no display name is set
|
@@ -1 +0,0 @@
|
||||
Space explore screen changes: removed space card, added rooms filtering
|
@@ -1 +0,0 @@
|
||||
[Live location sharing] Update message in timeline during the live
|
@@ -1 +0,0 @@
|
||||
- Notifies other devices when a verification request sent from an Android device is accepted.`
|
@@ -1 +0,0 @@
|
||||
leaving space experience changed to be aligned with iOS
|
@@ -1 +0,0 @@
|
||||
@Ignore a number of tests that are currently failing in CI.
|
@@ -1 +0,0 @@
|
||||
Revert: Use member name instead of room name in DM creation item
|
@@ -1 +0,0 @@
|
||||
Remove ShortcutBadger lib and usage (it was dead code)
|
@@ -1 +0,0 @@
|
||||
Poll refactoring with unit tests
|
@@ -1 +0,0 @@
|
||||
Correct .well-known/matrix/client handling for server_names which include ports.
|
@@ -1 +0,0 @@
|
||||
Labs flag for enabling live location sharing
|
1
changelog.d/6776.bugfix
Normal file
1
changelog.d/6776.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
[App Layout] Recents carousel now scrolled to first position when new item added to or moved to this position
|
1
changelog.d/6779.misc
Normal file
1
changelog.d/6779.misc
Normal file
@@ -0,0 +1 @@
|
||||
[Modules] Lifts the application variants to the app module
|
1
changelog.d/6970.wip
Normal file
1
changelog.d/6970.wip
Normal file
@@ -0,0 +1 @@
|
||||
Create DM room only on first message - Add a spinner when sending the first message
|
1
changelog.d/7035.misc
Normal file
1
changelog.d/7035.misc
Normal file
@@ -0,0 +1 @@
|
||||
Ensure that we do not expect all the Event fields when requesting `rooms/{roomId}/hierarchy` endpoint.
|
1
changelog.d/7045.wip
Normal file
1
changelog.d/7045.wip
Normal file
@@ -0,0 +1 @@
|
||||
[Device Manager] Filter Other Sessions
|
1
changelog.d/7077.wip
Normal file
1
changelog.d/7077.wip
Normal file
@@ -0,0 +1 @@
|
||||
[Device management] Session details screen
|
1
changelog.d/7079.bugfix
Normal file
1
changelog.d/7079.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Fixed problem when room list's scroll did jump after rooms placeholders were replaced with rooms summary items
|
1
changelog.d/7102.bugfix
Normal file
1
changelog.d/7102.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Fixes crash when quickly double clicking FABs in the new app layout
|
1
changelog.d/7103.bugfix
Normal file
1
changelog.d/7103.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Fixes space list and new chat bottom sheets showing too small in New App Layout (especially evident in landscape)
|
1
changelog.d/7108.misc
Normal file
1
changelog.d/7108.misc
Normal file
@@ -0,0 +1 @@
|
||||
Move some GitHub actions to buildjet runners, and remove the second attempt to run integration tests.
|
1
changelog.d/7121.wip
Normal file
1
changelog.d/7121.wip
Normal file
@@ -0,0 +1 @@
|
||||
Create DM room only on first message - Fix glitch in the room list
|
1
changelog.d/7122.bugfix
Normal file
1
changelog.d/7122.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
[App Layout] Room leaving prompt dialog now waits user to confirm leaving before do so
|
1
changelog.d/7130.bugfix
Normal file
1
changelog.d/7130.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
Fix empty verification bottom sheet.
|
1
changelog.d/7132.bugfix
Normal file
1
changelog.d/7132.bugfix
Normal file
@@ -0,0 +1 @@
|
||||
[New Layout] Fixes new chat dialog not getting dismissed after selecting its actions
|
1
changelog.d/7140.misc
Normal file
1
changelog.d/7140.misc
Normal file
@@ -0,0 +1 @@
|
||||
Exclude legacy android support annotation library
|
1
changelog.d/7142.misc
Normal file
1
changelog.d/7142.misc
Normal file
@@ -0,0 +1 @@
|
||||
Pulling no longer hosted im.dlg:android-dialer directly into the repository and removing legacy support library usages
|
1
changelog.d/7153.wip
Normal file
1
changelog.d/7153.wip
Normal file
@@ -0,0 +1 @@
|
||||
Create DM room only on first message - Handle the local rooms within the new AppLayout
|
1
changelog.d/7157.misc
Normal file
1
changelog.d/7157.misc
Normal file
@@ -0,0 +1 @@
|
||||
Fixing build cache misses when compiling the vector module
|
1
changelog.d/7166.misc
Normal file
1
changelog.d/7166.misc
Normal file
@@ -0,0 +1 @@
|
||||
New App Layout is now enabled by default! Go to the Settings > Labs to toggle this
|
@@ -1,9 +1,37 @@
|
||||
def excludes = [ ]
|
||||
def excludes = [
|
||||
// dependency injection graph
|
||||
'**/*Module.*',
|
||||
'**/*Module*.*',
|
||||
|
||||
// Framework entry points
|
||||
'**/*Activity*',
|
||||
'**/*Fragment*',
|
||||
'**/*Application*',
|
||||
'**/*AndroidService*',
|
||||
|
||||
// We would like to exclude android widgets as well but our naming is inconsistent
|
||||
|
||||
// Proof of concept
|
||||
'**/*Login2*',
|
||||
|
||||
// Generated
|
||||
'**/*JsonAdapter*',
|
||||
'**/*Item.*',
|
||||
'**/*$Holder.*',
|
||||
'**/*ViewHolder.*',
|
||||
'**/*View.*',
|
||||
'**/*BottomSheet.*'
|
||||
]
|
||||
|
||||
def initializeReport(report, projects, classExcludes) {
|
||||
projects.each { project -> project.apply plugin: 'jacoco' }
|
||||
report.executionData { fileTree(rootProject.rootDir.absolutePath).include("**/build/jacoco/*.exec") }
|
||||
|
||||
report.executionData {
|
||||
fileTree(rootProject.rootDir.absolutePath).include(
|
||||
"**/build/**/*.exec",
|
||||
"**/build/outputs/code_coverage/**/coverage.ec",
|
||||
)
|
||||
}
|
||||
report.reports {
|
||||
xml.enabled true
|
||||
html.enabled true
|
||||
@@ -43,13 +71,21 @@ def collectProjects(predicate) {
|
||||
return subprojects.findAll { it.buildFile.isFile() && predicate(it) }
|
||||
}
|
||||
|
||||
task allCodeCoverageReport(type: JacocoReport) {
|
||||
task generateCoverageReport(type: JacocoReport) {
|
||||
outputs.upToDateWhen { false }
|
||||
rootProject.apply plugin: 'jacoco'
|
||||
// to limit projects in a specific report, add
|
||||
// def excludedProjects = [ ... ]
|
||||
// def projects = collectProjects { !excludedProjects.contains(it.name) }
|
||||
def projects = collectProjects { true }
|
||||
dependsOn { projects*.test }
|
||||
def projects = collectProjects { ['vector-app', 'vector', 'matrix-sdk-android'].contains(it.name) }
|
||||
initializeReport(it, projects, excludes)
|
||||
}
|
||||
|
||||
task unitTestsWithCoverage(type: GradleBuild) {
|
||||
// the 7.1.3 android gradle plugin has a bug where enableTestCoverage generates invalid coverage
|
||||
startParameter.projectProperties.coverage = [enableTestCoverage: false]
|
||||
tasks = ['testDebugUnitTest']
|
||||
}
|
||||
|
||||
task instrumentationTestsWithCoverage(type: GradleBuild) {
|
||||
startParameter.projectProperties.coverage = [enableTestCoverage: true]
|
||||
startParameter.projectProperties['android.testInstrumentationRunnerArguments.notPackage'] = 'im.vector.app.ui'
|
||||
tasks = [':vector-app:connectedGplayDebugAndroidTest', ':vector:connectedDebugAndroidTest', 'matrix-sdk-android:connectedDebugAndroidTest']
|
||||
}
|
||||
|
@@ -7,31 +7,36 @@ ext.versions = [
|
||||
'targetCompat' : JavaVersion.VERSION_11,
|
||||
]
|
||||
|
||||
def gradle = "7.2.0"
|
||||
|
||||
// Pinned to 7.1.3 because of https://github.com/vector-im/element-android/issues/6142
|
||||
// Please test carefully before upgrading again.
|
||||
def gradle = "7.1.3"
|
||||
// Ref: https://kotlinlang.org/releases.html
|
||||
def kotlin = "1.6.21"
|
||||
def kotlinCoroutines = "1.6.1"
|
||||
def kotlinCoroutines = "1.6.4"
|
||||
def dagger = "2.42"
|
||||
def appDistribution = "16.0.0-beta04"
|
||||
def retrofit = "2.9.0"
|
||||
def arrow = "0.8.2"
|
||||
def markwon = "4.6.2"
|
||||
def moshi = "1.13.0"
|
||||
def lifecycle = "2.4.1"
|
||||
def lifecycle = "2.5.1"
|
||||
def flowBinding = "1.2.0"
|
||||
def flipper = "0.164.0"
|
||||
def epoxy = "4.6.2"
|
||||
def mavericks = "2.6.1"
|
||||
def mavericks = "2.7.0"
|
||||
def glide = "4.13.2"
|
||||
def bigImageViewer = "1.8.1"
|
||||
def jjwt = "0.11.5"
|
||||
def vanniktechEmoji = "0.9.0"
|
||||
def vanniktechEmoji = "0.15.0"
|
||||
|
||||
def fragment = "1.5.2"
|
||||
|
||||
// Testing
|
||||
def mockk = "1.12.4"
|
||||
def mockk = "1.12.3" // We need to use 1.12.3 to have mocking in androidTest until a new version is released: https://github.com/mockk/mockk/issues/819
|
||||
def espresso = "3.4.0"
|
||||
def androidxTest = "1.4.0"
|
||||
def androidxOrchestrator = "1.4.1"
|
||||
|
||||
|
||||
ext.libs = [
|
||||
gradle : [
|
||||
'gradlePlugin' : "com.android.tools.build:gradle:$gradle",
|
||||
@@ -45,12 +50,15 @@ ext.libs = [
|
||||
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
|
||||
],
|
||||
androidx : [
|
||||
'appCompat' : "androidx.appcompat:appcompat:1.4.1",
|
||||
'core' : "androidx.core:core-ktx:1.7.0",
|
||||
'activity' : "androidx.activity:activity:1.5.1",
|
||||
'appCompat' : "androidx.appcompat:appcompat:1.4.2",
|
||||
'biometric' : "androidx.biometric:biometric:1.1.0",
|
||||
'core' : "androidx.core:core-ktx:1.8.0",
|
||||
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
|
||||
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
|
||||
'fragmentKtx' : "androidx.fragment:fragment-ktx:1.4.1",
|
||||
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.3",
|
||||
'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment",
|
||||
'fragmentTesting' : "androidx.fragment:fragment-testing:$fragment",
|
||||
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
|
||||
'work' : "androidx.work:work-runtime-ktx:2.7.1",
|
||||
'autoFill' : "androidx.autofill:autofill:1.1.0",
|
||||
'preferenceKtx' : "androidx.preference:preference-ktx:1.2.0",
|
||||
@@ -69,20 +77,36 @@ ext.libs = [
|
||||
'testRules' : "androidx.test:rules:$androidxTest",
|
||||
'espressoCore' : "androidx.test.espresso:espresso-core:$espresso",
|
||||
'espressoContrib' : "androidx.test.espresso:espresso-contrib:$espresso",
|
||||
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso"
|
||||
'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso",
|
||||
'viewpager2' : "androidx.viewpager2:viewpager2:1.0.0",
|
||||
'transition' : "androidx.transition:transition:1.2.0",
|
||||
],
|
||||
google : [
|
||||
'material' : "com.google.android.material:material:1.6.0"
|
||||
'material' : "com.google.android.material:material:1.6.1",
|
||||
'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
|
||||
'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution",
|
||||
// Phone number https://github.com/google/libphonenumber
|
||||
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.55"
|
||||
],
|
||||
dagger : [
|
||||
'dagger' : "com.google.dagger:dagger:$dagger",
|
||||
'daggerCompiler' : "com.google.dagger:dagger-compiler:$dagger",
|
||||
'hilt' : "com.google.dagger:hilt-android:$dagger",
|
||||
'hiltAndroidTesting' : "com.google.dagger:hilt-android-testing:$dagger",
|
||||
'hiltCompiler' : "com.google.dagger:hilt-compiler:$dagger"
|
||||
],
|
||||
flipper : [
|
||||
'flipper' : "com.facebook.flipper:flipper:$flipper",
|
||||
'flipperNetworkPlugin' : "com.facebook.flipper:flipper-network-plugin:$flipper",
|
||||
],
|
||||
element : [
|
||||
'opusencoder' : "io.element.android:opusencoder:1.0.4",
|
||||
],
|
||||
squareup : [
|
||||
'moshi' : "com.squareup.moshi:moshi-adapters:$moshi",
|
||||
'moshi' : "com.squareup.moshi:moshi:$moshi",
|
||||
'moshiKt' : "com.squareup.moshi:moshi-kotlin:$moshi",
|
||||
'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi",
|
||||
'moshiAdapters' : "com.squareup.moshi:moshi-adapters:$moshi",
|
||||
'retrofit' : "com.squareup.retrofit2:retrofit:$retrofit",
|
||||
'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit"
|
||||
],
|
||||
@@ -107,6 +131,10 @@ ext.libs = [
|
||||
'mavericks' : "com.airbnb.android:mavericks:$mavericks",
|
||||
'mavericksTesting' : "com.airbnb.android:mavericks-testing:$mavericks"
|
||||
],
|
||||
maplibre : [
|
||||
'androidSdk' : "org.maplibre.gl:android-sdk:9.5.2",
|
||||
'pluginAnnotation' : "org.maplibre.gl:android-plugin-annotation-v9:1.0.0"
|
||||
],
|
||||
mockk : [
|
||||
'mockk' : "io.mockk:mockk:$mockk",
|
||||
'mockkAndroid' : "io.mockk:mockk-android:$mockk"
|
||||
@@ -143,3 +171,5 @@ ext.libs = [
|
||||
'junit' : "junit:junit:4.13.2"
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
|
@@ -9,6 +9,7 @@ ext.groups = [
|
||||
'com.github.jetradarmobile',
|
||||
'com.github.MatrixFrog',
|
||||
'com.github.tapadoo',
|
||||
'com.github.UnifiedPush',
|
||||
'com.github.vector-im',
|
||||
'com.github.yalantis',
|
||||
'com.github.Zhuinden',
|
||||
@@ -31,6 +32,7 @@ ext.groups = [
|
||||
],
|
||||
group: [
|
||||
'com.android',
|
||||
'com.android.ndk.thirdparty',
|
||||
'com.android.tools',
|
||||
'com.google.firebase',
|
||||
'com.google.testing.platform',
|
||||
@@ -52,6 +54,7 @@ ext.groups = [
|
||||
'com.dropbox.core',
|
||||
'com.soywiz.korlibs.korte',
|
||||
'com.facebook.fbjni',
|
||||
'com.facebook.flipper',
|
||||
'com.facebook.fresco',
|
||||
'com.facebook.infer.annotation',
|
||||
'com.facebook.soloader',
|
||||
@@ -66,11 +69,10 @@ ext.groups = [
|
||||
'com.gabrielittner.threetenbp',
|
||||
'com.getkeepsafe.relinker',
|
||||
'com.github.bumptech.glide',
|
||||
'com.github.filippudak',
|
||||
'com.github.filippudak.progresspieview',
|
||||
'com.github.javaparser',
|
||||
'com.github.piasy',
|
||||
'com.github.shyiko.klob',
|
||||
'com.github.rubensousa',
|
||||
'com.google',
|
||||
'com.google.android',
|
||||
'com.google.api.grpc',
|
||||
@@ -93,6 +95,7 @@ ext.groups = [
|
||||
'com.ibm.icu',
|
||||
'com.jakewharton.android.repackaged',
|
||||
'com.jakewharton.timber',
|
||||
'com.kgurgul.flipper',
|
||||
'com.linkedin.dexmaker',
|
||||
'com.mapbox.mapboxsdk',
|
||||
'com.nulab-inc',
|
||||
@@ -102,7 +105,9 @@ ext.groups = [
|
||||
'com.pinterest.ktlint',
|
||||
'com.posthog.android',
|
||||
'com.squareup',
|
||||
'com.squareup.curtains',
|
||||
'com.squareup.duktape',
|
||||
'com.squareup.leakcanary',
|
||||
'com.squareup.moshi',
|
||||
'com.squareup.okhttp3',
|
||||
'com.squareup.okio',
|
||||
@@ -120,6 +125,8 @@ ext.groups = [
|
||||
'commons-logging',
|
||||
'info.picocli',
|
||||
'io.arrow-kt',
|
||||
'io.element.android',
|
||||
'io.github.davidburstrom.contester',
|
||||
'io.github.detekt.sarif4k',
|
||||
'io.github.microutils',
|
||||
'io.github.reactivecircus.flowbinding',
|
||||
@@ -168,6 +175,7 @@ ext.groups = [
|
||||
'org.glassfish.jaxb',
|
||||
'org.hamcrest',
|
||||
'org.jacoco',
|
||||
'org.java-websocket',
|
||||
'org.jetbrains',
|
||||
'org.jetbrains.dokka',
|
||||
'org.jetbrains.intellij.deps',
|
||||
|
@@ -1,5 +1,34 @@
|
||||
# Adding and removing ThreePids to an account
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Add email](#add-email)
|
||||
* [User enter the email](#user-enter-the-email)
|
||||
* [The email is already added to an account](#the-email-is-already-added-to-an-account)
|
||||
* [The email is free](#the-email-is-free)
|
||||
* [User receives an e-mail](#user-receives-an-e-mail)
|
||||
* [User clicks on the link](#user-clicks-on-the-link)
|
||||
* [User returns on Element](#user-returns-on-element)
|
||||
* [User enters his password](#user-enters-his-password)
|
||||
* [The link has not been clicked](#the-link-has-not-been-clicked)
|
||||
* [Wrong password](#wrong-password)
|
||||
* [The link has been clicked and the account password is correct](#the-link-has-been-clicked-and-the-account-password-is-correct)
|
||||
* [Remove email](#remove-email)
|
||||
* [User want to remove an email from his account](#user-want-to-remove-an-email-from-his-account)
|
||||
* [Email was not bound to an identity server](#email-was-not-bound-to-an-identity-server)
|
||||
* [Email was bound to an identity server](#email-was-bound-to-an-identity-server)
|
||||
* [Add phone number](#add-phone-number)
|
||||
* [The phone number is already added to an account](#the-phone-number-is-already-added-to-an-account)
|
||||
* [The phone number is free](#the-phone-number-is-free)
|
||||
* [User receive a text message](#user-receive-a-text-message)
|
||||
* [User enter the code to the app](#user-enter-the-code-to-the-app)
|
||||
* [Wrong code](#wrong-code)
|
||||
* [Correct code](#correct-code)
|
||||
* [Remove phone number](#remove-phone-number)
|
||||
* [User wants to remove a phone number from his account](#user-wants-to-remove-a-phone-number-from-his-account)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Add email
|
||||
|
||||
### User enter the email
|
||||
|
@@ -1,5 +1,13 @@
|
||||
# Analytics in Element
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Solution](#solution)
|
||||
* [How to add a new Event](#how-to-add-a-new-event)
|
||||
* [Forks of Element](#forks-of-element)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Solution
|
||||
|
||||
Element is using PostHog to send analytics event.
|
||||
|
@@ -1,5 +1,14 @@
|
||||
# Color migration
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Changes](#changes)
|
||||
* [Main change for developers](#main-change-for-developers)
|
||||
* [Remaining work](#remaining-work)
|
||||
* [Migration guide](#migration-guide)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
### Changes
|
||||
|
||||
- use colors defined in https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=557%3A0
|
||||
|
105
docs/danger.md
Normal file
105
docs/danger.md
Normal file
@@ -0,0 +1,105 @@
|
||||
## Danger
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [What does danger checks](#what-does-danger-checks)
|
||||
* [PR check](#pr-check)
|
||||
* [Quality check](#quality-check)
|
||||
* [Setup](#setup)
|
||||
* [Run danger locally](#run-danger-locally)
|
||||
* [Danger user](#danger-user)
|
||||
* [Useful links](#useful-links)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## What does danger checks
|
||||
|
||||
### PR check
|
||||
|
||||
See the [dangerfile](../tools/danger/dangerfile.js). If you add rules in the dangerfile, please update the list below!
|
||||
|
||||
Here are the checks that Danger does so far:
|
||||
|
||||
- PR description is not empty
|
||||
- Big PR got a warning to recommend to split
|
||||
- PR contains a file for towncrier and extension is checked
|
||||
- PR does not modify frozen classes
|
||||
- PR contains a Sign-Off, with exception for Element employee contributors
|
||||
- PR with change on layout should include screenshot in the description
|
||||
- PR which adds png file warn about the usage of vector drawables
|
||||
- non draft PR should have a reviewer
|
||||
|
||||
### Quality check
|
||||
|
||||
After all the checks that generate checkstyle XML report, such as Ktlint, lint, or Detekt, Danger is run with this [dangerfile](../tools/danger/dangerfile-lint.js), in order to post comments to the PR with the detected error and warnings.
|
||||
|
||||
To run locally, you will have to install the plugin `danger-plugin-lint-report` using:
|
||||
|
||||
```shell
|
||||
yarn add danger-plugin-lint-report --dev
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
This operation should not be necessary, since Danger is already setup for the project.
|
||||
|
||||
To setup danger to the project, run:
|
||||
|
||||
```shell
|
||||
bundle exec danger init
|
||||
```
|
||||
|
||||
## Run danger locally
|
||||
|
||||
When modifying the [dangerfile](../tools/danger/dangerfile.js), you can check it by running Danger locally.
|
||||
|
||||
To run danger locally, install it and run:
|
||||
|
||||
```shell
|
||||
bundle exec danger pr <PR_URL> --dangerfile=./tools/danger/dangerfile.js
|
||||
```
|
||||
|
||||
For instance:
|
||||
|
||||
```shell
|
||||
bundle exec danger pr https://github.com/vector-im/element-android/pull/6637 --dangerfile=./tools/danger/dangerfile.js
|
||||
```
|
||||
|
||||
We may need to create a GitHub token to have less API rate limiting, and then set the env var:
|
||||
|
||||
```shell
|
||||
export DANGER_GITHUB_API_TOKEN='YOUR_TOKEN'
|
||||
```
|
||||
|
||||
Swift and Kotlin (just in case)
|
||||
|
||||
```shell
|
||||
bundle exec danger-swift pr <PR_URL> --dangerfile=./tools/danger/dangerfile.js
|
||||
bundle exec danger-kotlin pr <PR_URL> --dangerfile=./tools/danger/dangerfile.js
|
||||
```
|
||||
|
||||
## Danger user
|
||||
|
||||
To let Danger check all the PRs, including PRs form forks, a GitHub account have been created:
|
||||
- login: ElementBot
|
||||
- password: Stored on Passbolt
|
||||
- GitHub token: A token with limited access has been created and added to the repository https://github.com/vector-im/element-android as secret DANGER_GITHUB_API_TOKEN. This token is not saved anywhere else. In case of problem, just delete it and create a new one, then update the secret.
|
||||
|
||||
PRs from forks do not always have access to the secret `secrets.DANGER_GITHUB_API_TOKEN`, so `secrets.GITHUB_TOKEN` is also provided to the job environment. If `secrets.DANGER_GITHUB_API_TOKEN` is available, it will be used, so user `ElementBot` will comment the PR. Else `secrets.GITHUB_TOKEN` will be used, and bot `github-actions` will comment the PR.
|
||||
|
||||
## Useful links
|
||||
|
||||
- https://danger.systems/
|
||||
- https://danger.systems/js/
|
||||
- https://danger.systems/js/guides/getting_started.html
|
||||
- https://danger.systems/js/reference.html
|
||||
- https://github.com/danger/awesome-danger
|
||||
|
||||
Some danger files to get inspired from
|
||||
|
||||
- https://github.com/artsy/emission/blob/master/dangerfile.ts
|
||||
- https://github.com/facebook/react-native/blob/master/bots/dangerfile.js
|
||||
- https://github.com/apollographql/apollo-client/blob/master/config/dangerfile.ts
|
||||
- https://github.com/styleguidist/react-styleguidist/blob/master/dangerfile.js
|
||||
- https://github.com/storybooks/storybook/blob/master/dangerfile.js
|
||||
- https://github.com/ReactiveX/rxjs/blob/master/dangerfile.js
|
@@ -1,5 +1,31 @@
|
||||
# Element Android design
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Introduction](#introduction)
|
||||
* [How to import from Figma to the Element Android project](#how-to-import-from-figma-to-the-element-android-project)
|
||||
* [Colors](#colors)
|
||||
* [Text](#text)
|
||||
* [Dimension, position and margin](#dimension-position-and-margin)
|
||||
* [Icons](#icons)
|
||||
* [Export drawable from Figma](#export-drawable-from-figma)
|
||||
* [Import in Android Studio](#import-in-android-studio)
|
||||
* [Images](#images)
|
||||
* [Figma links](#figma-links)
|
||||
* [Coumpound](#coumpound)
|
||||
* [Login](#login)
|
||||
* [Login v2](#login-v2)
|
||||
* [Room list](#room-list)
|
||||
* [Timeline](#timeline)
|
||||
* [Voice message](#voice-message)
|
||||
* [Room settings](#room-settings)
|
||||
* [VoIP](#voip)
|
||||
* [Presence](#presence)
|
||||
* [Spaces](#spaces)
|
||||
* [List to be continued...](#list-to-be-continued)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Introduction
|
||||
|
||||
Design at element.io is done using Figma - https://www.figma.com
|
||||
|
58
docs/flipper.md
Normal file
58
docs/flipper.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# Flipper
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Introduction](#introduction)
|
||||
* [Setup](#setup)
|
||||
* [Troubleshoot](#troubleshoot)
|
||||
* [No device found issue](#no-device-found-issue)
|
||||
* [Diagnostic Activity](#diagnostic-activity)
|
||||
* [Other](#other)
|
||||
* [Links](#links)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Introduction
|
||||
|
||||
[Flipper](https://fbflipper.com) is a powerful tool from Meta, which allow to inspect the running application details and states from your computer.
|
||||
|
||||
Flipper is configured in the Element Android project to let the developers be able to:
|
||||
- inspect all the Realm databases content;
|
||||
- do layout inspection;
|
||||
- see the crash logs;
|
||||
- see the logcat;
|
||||
- see all the network requests;
|
||||
- see all the SharedPreferences;
|
||||
- take screenshots and record videos of the device;
|
||||
- and more!
|
||||
|
||||
## Setup
|
||||
|
||||
- Install Flipper on your computer. Follow instructions here: https://fbflipper.com/docs/getting-started/index/
|
||||
- Run the debug version of Element on an emulator or on a real device.
|
||||
|
||||
### Troubleshoot
|
||||
|
||||
#### No device found issue
|
||||
|
||||
The configuration of the Flipper application has to be updated. The issue has been asked and answered here: https://stackoverflow.com/questions/71744103/android-emulator-unable-to-connect-to-flipper/72608113#72608113
|
||||
|
||||
#### Diagnostic Activity
|
||||
|
||||
Flipper comes with a Diagnostic Activity that you can start from command line using:
|
||||
|
||||
```shell
|
||||
adb shell am start -n im.vector.app.debug/com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity
|
||||
```
|
||||
|
||||
It provides some log which can help to figure out what's going on client side.
|
||||
|
||||
#### Other
|
||||
|
||||
https://fbflipper.com/docs/getting-started/troubleshooting/android/ may help.
|
||||
|
||||
## Links
|
||||
|
||||
- Official Flipper website: https://fbflipper.com
|
||||
- Realm Plugin for Flipper: https://github.com/kamgurgul/Flipper-Realm
|
||||
- Dedicated Matrix room: https://matrix.to/#/#unifiedpush:matrix.org
|
@@ -7,8 +7,8 @@ Hilt is built on top of Dagger 2 and simplify usage by removing needs to create
|
||||
When you create a new feature, you should have the following:
|
||||
|
||||
Annotate your Activity with @AndroidEntryPoint
|
||||
Annotate your Fragment with @AndroidEntryPoint
|
||||
If you have a BottomSheetFragment => Annotate it with @AndroidEntryPoint
|
||||
Otherwise => Add your Fragment to the FragmentModule
|
||||
Add your ViewModel.Factory to the MavericksViewModelModule
|
||||
Makes sure your ViewModel as the following code:
|
||||
|
||||
|
@@ -1,5 +1,19 @@
|
||||
# Identity server
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Introduction](#introduction)
|
||||
* [Implementation](#implementation)
|
||||
* [Related MSCs](#related-mscs)
|
||||
* [Steps and requirements](#steps-and-requirements)
|
||||
* [Screens](#screens)
|
||||
* [Settings](#settings)
|
||||
* [Discovery screen](#discovery-screen)
|
||||
* [Set identity server screen](#set-identity-server-screen)
|
||||
* [Ref:](#ref:)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
Issue: #607
|
||||
PR: #1354
|
||||
|
||||
|
@@ -1,5 +1,18 @@
|
||||
# Integration tests
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Pre requirements](#pre-requirements)
|
||||
* [Install and run Synapse](#install-and-run-synapse)
|
||||
* [Run the test](#run-the-test)
|
||||
* [Stop Synapse](#stop-synapse)
|
||||
* [Troubleshoot](#troubleshoot)
|
||||
* [Android Emulator does cannot reach the homeserver](#android-emulator-does-cannot-reach-the-homeserver)
|
||||
* [Tests partially run but some fail with "Unable to contact localhost:8080"](#tests-partially-run-but-some-fail-with-"unable-to-contact-localhost:8080")
|
||||
* [virtualenv command fails](#virtualenv-command-fails)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
Integration tests are useful to ensure that the code works well for any use cases.
|
||||
|
||||
They can also be used as sample on how to use the Matrix SDK.
|
||||
|
@@ -1,20 +1,32 @@
|
||||
# Jitsi in Element Android
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Native Jitsi SDK](#native-jitsi-sdk)
|
||||
* [How to build the Jitsi Meet SDK](#how-to-build-the-jitsi-meet-sdk)
|
||||
* [Jitsi version](#jitsi-version)
|
||||
* [Run the build script](#run-the-build-script)
|
||||
* [Link with the new generated library](#link-with-the-new-generated-library)
|
||||
* [Sanity tests](#sanity-tests)
|
||||
* [Export the build library](#export-the-build-library)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
Native Jitsi support has been added to Element Android by the PR [#1914](https://github.com/vector-im/element-android/pull/1914). The description of the PR contains some documentation about the behaviour in each possible room configuration.
|
||||
|
||||
Also, ensure to have a look on [the documentation from Element Web](https://github.com/vector-im/element-web/blob/develop/docs/jitsi.md)
|
||||
|
||||
The official documentation about how to integrate the Jitsi SDK in an Android app is available here: https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk.
|
||||
|
||||
# Native Jitsi SDK
|
||||
## Native Jitsi SDK
|
||||
|
||||
The Jitsi SDK is built by ourselves with the flag LIBRE_BUILD, to be able to be integrated on the F-Droid version of Element Android.
|
||||
|
||||
The generated maven repository is then host in the project https://github.com/vector-im/jitsi_libre_maven
|
||||
|
||||
## How to build the Jitsi Meet SDK
|
||||
### How to build the Jitsi Meet SDK
|
||||
|
||||
### Jitsi version
|
||||
#### Jitsi version
|
||||
|
||||
Update the script `./tools/jitsi/build_jisti_libs.sh` with the tag of the project `https://github.com/jitsi/jitsi-meet`.
|
||||
|
||||
@@ -22,7 +34,7 @@ Latest tag can be found from this page: https://github.com/jitsi/jitsi-meet-rele
|
||||
|
||||
Currently we are building the version with the tag `android-sdk-3.10.0`.
|
||||
|
||||
### Run the build script
|
||||
#### Run the build script
|
||||
|
||||
At the root of the Element Android, run the following script:
|
||||
|
||||
@@ -32,7 +44,7 @@ At the root of the Element Android, run the following script:
|
||||
|
||||
It will build the Jitsi Meet Android library and put every generated files in the folder `/tmp/jitsi`
|
||||
|
||||
### Link with the new generated library
|
||||
#### Link with the new generated library
|
||||
|
||||
- Update the file `./build.gradle` to use the previously created local Maven repository. Currently we have this line:
|
||||
|
||||
@@ -57,7 +69,7 @@ implementation('com.facebook.react:react-native-webrtc:1.92.1-jitsi-9093212@aar'
|
||||
- Perform a gradle sync and build the project
|
||||
- Perform test
|
||||
|
||||
### Sanity tests
|
||||
#### Sanity tests
|
||||
|
||||
In order to validate that the upgrade of the Jitsi and WebRTC dependency does not break anything, the following sanity tests have to be performed, using two devices:
|
||||
- Make 1-1 audio call (so using WebRTC)
|
||||
@@ -65,7 +77,7 @@ In order to validate that the upgrade of the Jitsi and WebRTC dependency does no
|
||||
- Create and join a conference call with audio only (so using Jitsi library). Leave the conference. Join it again.
|
||||
- Create and join a conference call with audio and video (so using Jitsi library) Leave the conference. Join it again.
|
||||
|
||||
### Export the build library
|
||||
#### Export the build library
|
||||
|
||||
If all the tests are passed, you can export the generated Jitsi library to our Maven repository.
|
||||
|
||||
@@ -81,4 +93,4 @@ url "https://github.com/vector-im/jitsi_libre_maven/raw/master/android-sdk-3.10.
|
||||
|
||||
- Build the project and perform the sanity tests again.
|
||||
|
||||
- Update the file `/CHANGES.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.
|
||||
|
54
docs/nightly_build.md
Normal file
54
docs/nightly_build.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# Nightly builds
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Configuration](#configuration)
|
||||
* [How to register to get nightly build](#how-to-register-to-get-nightly-build)
|
||||
* [Build nightly manually](#build-nightly-manually)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Configuration
|
||||
|
||||
The nightly build will contain what's on develop, in release mode, for Gplay variant. It is signed using a dedicated signature, and has a dedicated appId (`im.vector.app.nightly`), so it can be installed along with the production version of Element Android. The only other difference compared to Element Android is a different app icon background. We do not want to change the app name since it will also affect some strings in the app, and we do want to do that.
|
||||
|
||||
Nightly builds are built and released to Firebase every days, and automatically.
|
||||
|
||||
This is recommended to exclusively use this app, with your main account, instead of Element Android, and fallback to Element Android just in case of regression, to discover as soon as possible any regression, and report it to the team. To avoid double notification, you may want to disable the notification from the Element Android production version. Just open Element Android, navigate to `Settings/Notifications` and uncheck `Enable notifications for this session`.
|
||||
|
||||
*Note:* Due to a limitation of Firebase, the nightly build is the universal build, which means that the size of the APK is a bit bigger, but this should not have any other side effect.
|
||||
|
||||
## How to register to get nightly build
|
||||
|
||||
Provide your email to the Android team, who will add it to the list "External testers" on Firebase. You will then receive an invite on the provided email.
|
||||
|
||||
Follow the instructions on the email to install the latest nightly build. This is not clear yet if new nightly build will be automatically installed or not.
|
||||
|
||||
## Build nightly manually
|
||||
|
||||
Nightly build can be built manually from your computer. You will need to retrieved some secrets from Passbolt and add them to your file `~/.gradle/gradle.properties`:
|
||||
|
||||
```
|
||||
signing.element.nightly.storePassword=VALUE_FROM_PASSBOLT
|
||||
signing.element.nightly.keyId=VALUE_FROM_PASSBOLT
|
||||
signing.element.nightly.keyPassword=VALUE_FROM_PASSBOLT
|
||||
```
|
||||
|
||||
You will also need to add the environment variable `FIREBASE_TOKEN`:
|
||||
|
||||
```sh
|
||||
export FIREBASE_TOKEN=VALUE_FROM_PASSBOLT
|
||||
```
|
||||
|
||||
Then you can run the following commands (which are also used in the file for [the GitHub action](../.github/workflows/nightly.yml)):
|
||||
|
||||
```sh
|
||||
git checkout develop
|
||||
mv towncrier.toml towncrier.toml.bak
|
||||
sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml
|
||||
rm towncrier.toml.bak
|
||||
yes n | towncrier build --version nightly
|
||||
./gradlew assembleGplayNightly appDistributionUploadGplayNightly $CI_GRADLE_ARG_PROPERTIES
|
||||
```
|
||||
|
||||
Then you can reset the change on the codebase.
|
@@ -1,37 +1,42 @@
|
||||
This document aims to describe how Element android displays notifications to the end user. It also clarifies notifications and background settings in the app.
|
||||
|
||||
# Table of Contents
|
||||
1. [Prerequisites Knowledge](#prerequisites-knowledge)
|
||||
* [How does a matrix client get a message from a homeserver?](#how-does-a-matrix-client-get-a-message-from-a-homeserver)
|
||||
* [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)
|
||||
* [How does the homeserver know when to notify a client?](#how-does-the-homeserver-know-when-to-notify-a-client)
|
||||
* [Push vs privacy, and mitigation](#push-vs-privacy-and-mitigation)
|
||||
* [Background processing limitations](#background-processing-limitations)
|
||||
2. [Element Notification implementations](#element-notification-implementations)
|
||||
* [Requirements](#requirements)
|
||||
* [Foreground sync mode (Gplay & F-Droid)](#foreground-sync-mode-gplay-f-droid)
|
||||
* [Push (FCM) received in background](#push-fcm-received-in-background)
|
||||
* [FCM Fallback mode](#fcm-fallback-mode)
|
||||
* [F-Droid background Mode](#f-droid-background-mode)
|
||||
3. [Application Settings](#application-settings)
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Prerequisites Knowledge](#prerequisites-knowledge)
|
||||
* [How does a matrix client get a message from a homeserver?](#how-does-a-matrix-client-get-a-message-from-a-homeserver?)
|
||||
* [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)
|
||||
* [How does the homeserver know when to notify a client?](#how-does-the-homeserver-know-when-to-notify-a-client?)
|
||||
* [Push vs privacy, and mitigation](#push-vs-privacy-and-mitigation)
|
||||
* [Background processing limitations](#background-processing-limitations)
|
||||
* [Element Notification implementations](#element-notification-implementations)
|
||||
* [Requirements](#requirements)
|
||||
* [Foreground sync mode (Gplay and F-Droid)](#foreground-sync-mode-gplay-and-f-droid)
|
||||
* [Push (FCM) received in background](#push-fcm-received-in-background)
|
||||
* [FCM Fallback mode](#fcm-fallback-mode)
|
||||
* [F-Droid background Mode](#f-droid-background-mode)
|
||||
* [Application Settings](#application-settings)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
|
||||
First let's start with some prerequisite knowledge
|
||||
|
||||
# Prerequisites Knowledge
|
||||
## Prerequisites Knowledge
|
||||
|
||||
## How does a matrix client get a message from a homeserver?
|
||||
### How does a matrix client get a message from a homeserver?
|
||||
|
||||
In order to get messages from a homeserver, a matrix client need to perform a ``sync`` operation.
|
||||
|
||||
`To read events, the intended flow of operation is for clients to first call the /sync API without a since parameter. This returns the most recent message events for each room, as well as the state of the room at the start of the returned timeline. `
|
||||
|
||||
The client need to call the `sync`API periodically in order to get incremental updates of the server state (new messages).
|
||||
The client need to call the `sync` API periodically in order to get incremental updates of the server state (new messages).
|
||||
This mechanism is known as **HTTP long Polling**.
|
||||
|
||||
Using the **HTTP Long Polling** mechanism a client polls a server requesting new information.
|
||||
Using the **HTTP Long Polling** mechanism a client polls a server requesting new information.
|
||||
The server *holds the request open until new data is available*.
|
||||
Once available, the server responds and sends the new information.
|
||||
When the client receives the new information, it immediately sends another request, and the operation is repeated.
|
||||
@@ -52,7 +57,7 @@ By default, this is 0, so the server will return immediately even if the respons
|
||||
|
||||
When the Element Android app is open (i.e in foreground state), the default timeout is 30 seconds, and delay is 0.
|
||||
|
||||
## How does a mobile app receives push notification
|
||||
### How does a mobile app receives push notification
|
||||
|
||||
Push notification is used as a way to wake up a mobile application when some important information is available and should be processed.
|
||||
|
||||
@@ -66,22 +71,22 @@ FCM will only work on android devices that have Google plays services installed
|
||||
(In simple terms, Google Play Services is a background service that runs on Android, which in turn helps in integrating Google’s advanced functionalities to other applications)
|
||||
|
||||
De-Googlified devices need to rely on something else in order to stay up to date with a server.
|
||||
There some cases when devices with google services cannot use FCM (network infrastructure limitations -firewalls- ,
|
||||
privacy and or independency requirement, source code licence)
|
||||
There some cases when devices with google services cannot use FCM (network infrastructure limitations -firewalls-,
|
||||
privacy and or independence requirement, source code licence)
|
||||
|
||||
## Push VS Notification
|
||||
### Push VS Notification
|
||||
|
||||
This need some disambiguation, because it is the source of common confusion:
|
||||
|
||||
|
||||
*The fact that you see a notification on your screen does not mean that you have successfully configured your PUSH plateform.*
|
||||
*The fact that you see a notification on your screen does not mean that you have successfully configured your PUSH platform.*
|
||||
|
||||
Technically there is a difference between a push and a notification. A notification is what you see on screen and/or in the notification Menu/Drawer (in the top bar of the phone).
|
||||
|
||||
Notifications are not always triggered by a push (One can display a notification locally triggered by an alarm)
|
||||
|
||||
|
||||
## Push in the matrix federated world
|
||||
### Push in the matrix federated world
|
||||
|
||||
In order to send a push to a mobile, App developers need to have a server that will use the FCM APIs, and these APIs requires authentication!
|
||||
This server is called a **Push Gateway** in the matrix world
|
||||
@@ -118,11 +123,11 @@ Client/Server API + | | | | |
|
||||
```
|
||||
|
||||
Recommended reading:
|
||||
* https://thomask.sdf.org/blog/2016/12/11/riots-magical-push-notifications-in-ios.html
|
||||
* https://thomask.sdf.org/blog/2016/12/11/riots-magical-push-notifications-in-ios.html
|
||||
* https://matrix.org/docs/spec/client_server/r0.4.0.html#id128
|
||||
|
||||
|
||||
## How does the homeserver know when to notify a client?
|
||||
### How does the homeserver know when to notify a client?
|
||||
|
||||
This is defined by [**push rules**](https://matrix.org/docs/spec/client_server/r0.4.0.html#push-rules-).
|
||||
|
||||
@@ -140,14 +145,14 @@ Of course, content patterns matching cannot be used for encrypted messages serve
|
||||
|
||||
That is why clients are able to **process the push rules client side** to decide what kind of notification should be presented for a given event.
|
||||
|
||||
## Push vs privacy, and mitigation
|
||||
### Push vs privacy, and mitigation
|
||||
|
||||
As seen previously, App developers don't directly send a push to the end user's device, they use a Push Provider as intermediary. So technically this intermediary is able to read the content of what is sent.
|
||||
|
||||
App developers usually mitigate this by sending a `silent notification`, that is a notification with no identifiable data, or with an encrypted payload. When the push is received the app can then synchronise to it's server in order to generate a local notification.
|
||||
|
||||
|
||||
## Background processing limitations
|
||||
### Background processing limitations
|
||||
|
||||
A mobile applications process live in a managed word, meaning that its process can be limited (e.g no network access), stopped or killed at almost anytime by the Operating System.
|
||||
|
||||
@@ -167,15 +172,15 @@ The documentation on this subject is vague, and as per our experiments not alway
|
||||
|
||||
It is getting more and more complex to have reliable notifications when FCM is not used.
|
||||
|
||||
# Element Notification implementations
|
||||
## Element Notification implementations
|
||||
|
||||
## Requirements
|
||||
### Requirements
|
||||
|
||||
Element Android must work with and without FCM.
|
||||
* The Element android app published on F-Droid do not rely on FCM (all related dependencies are not present)
|
||||
* The Element android app published on google play rely on FCM, with a fallback mode when FCM registration has failed (e.g outdated or missing Google Play Services)
|
||||
|
||||
## Foreground sync mode (Gplay & F-Droid)
|
||||
### Foreground sync mode (Gplay and F-Droid)
|
||||
|
||||
When in foreground, Element performs sync continuously with a timeout value set to 10 seconds (see HttpPooling).
|
||||
|
||||
@@ -183,9 +188,9 @@ As this mode does not need to live beyond the scope of the application, and as p
|
||||
|
||||
This mode is turned on when the app enters foreground, and off when enters background.
|
||||
|
||||
In background, and depending on wether push is available or not, Element will use different methods to perform the syncs (Workers / Alarms / Service)
|
||||
In background, and depending on whether push is available or not, Element will use different methods to perform the syncs (Workers / Alarms / Service)
|
||||
|
||||
## Push (FCM) received in background
|
||||
### Push (FCM) received in background
|
||||
|
||||
In order to enable Push, Element must first get a push token from the firebase SDK, then register a pusher with this token on the homeserver.
|
||||
|
||||
@@ -225,10 +230,10 @@ Upon reception of the FCM push, Element will perform a sync call to the homeserv
|
||||
|
||||
Element implements several strategies in these cases (TODO document)
|
||||
|
||||
## FCM Fallback mode
|
||||
### FCM Fallback mode
|
||||
|
||||
It is possible that Element is not able to get a FCM push token.
|
||||
Common errors (amoung several others) that can cause that:
|
||||
Common errors (among several others) that can cause that:
|
||||
* Google Play Services is outdated
|
||||
* Google Play Service fails in someways with FCM servers (infamous `SERVICE_NOT_AVAILABLE`)
|
||||
|
||||
@@ -246,7 +251,7 @@ Usually in this mode, what happen is when you take back your phone in your hand,
|
||||
|
||||
The fallback mode is supposed to be a temporary state waiting for the user to fix issues for FCM, or for App Developers that has done a fork to correctly configure their FCM settings.
|
||||
|
||||
## F-Droid background Mode
|
||||
### F-Droid background Mode
|
||||
|
||||
The F-Droid Element flavor has no dependencies to FCM, therefore cannot relies on Push.
|
||||
|
||||
@@ -256,7 +261,7 @@ Only solution left is to use `AlarmManager`, that offers new API to allow launch
|
||||
|
||||
Notice that these alarms, due to their potential impact on battery life, can still be restricted by the system. Documentation says that they will not be triggered more than every minutes under normal system operation, and when in low power mode about every 15 mn.
|
||||
|
||||
These restrictions can be relaxed by requirering the app to be white listed from battery optimization.
|
||||
These restrictions can be relaxed by requiring the app to be white listed from battery optimization.
|
||||
|
||||
F-Droid version will schedule alarms that will then trigger a Broadcast Receiver, that in turn will launch a Service (in the classic android way), and the reschedule an alarm for next time.
|
||||
|
||||
@@ -266,9 +271,7 @@ That is why on Element F-Droid, the broadcast receiver will acquire a temporary
|
||||
|
||||
Note that foreground services require to put a notification informing the user that the app is doing something even if not launched).
|
||||
|
||||
|
||||
|
||||
# Application Settings
|
||||
## Application Settings
|
||||
|
||||
**Notifications > Enable notifications for this account**
|
||||
|
||||
|
@@ -1,5 +1,43 @@
|
||||
# Pull requests
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Introduction](#introduction)
|
||||
* [Who should read this document?](#who-should-read-this-document?)
|
||||
* [Submitting PR](#submitting-pr)
|
||||
* [Who can submit pull requests?](#who-can-submit-pull-requests?)
|
||||
* [Humans](#humans)
|
||||
* [Draft PR?](#draft-pr?)
|
||||
* [Base branch](#base-branch)
|
||||
* [PR Review Assignment](#pr-review-assignment)
|
||||
* [PR review time](#pr-review-time)
|
||||
* [Re-request PR review](#re-request-pr-review)
|
||||
* [When create split PR?](#when-create-split-pr?)
|
||||
* [Avoid fixing other unrelated issue in a big PR](#avoid-fixing-other-unrelated-issue-in-a-big-pr)
|
||||
* [Bots](#bots)
|
||||
* [Dependabot](#dependabot)
|
||||
* [Gradle wrapper](#gradle-wrapper)
|
||||
* [Sync analytics plan](#sync-analytics-plan)
|
||||
* [Reviewing PR](#reviewing-pr)
|
||||
* [Who can review pull requests?](#who-can-review-pull-requests?)
|
||||
* [What to have in mind when reviewing a PR](#what-to-have-in-mind-when-reviewing-a-pr)
|
||||
* [Rules](#rules)
|
||||
* [Check the form](#check-the-form)
|
||||
* [PR title](#pr-title)
|
||||
* [PR description](#pr-description)
|
||||
* [File change](#file-change)
|
||||
* [Check the commit](#check-the-commit)
|
||||
* [Check the substance](#check-the-substance)
|
||||
* [Make a dedicated meeting to review the PR](#make-a-dedicated-meeting-to-review-the-pr)
|
||||
* [What happen to the issue(s)?](#what-happen-to-the-issues?)
|
||||
* [Merge conflict](#merge-conflict)
|
||||
* [When and who can merge PR](#when-and-who-can-merge-pr)
|
||||
* [Merge type](#merge-type)
|
||||
* [Resolve conversation](#resolve-conversation)
|
||||
* [Responsibility](#responsibility)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Introduction
|
||||
|
||||
This document gives some clue about how to efficiently manage Pull Requests (PR). This document is a first draft and may be improved later.
|
||||
@@ -45,15 +83,16 @@ Exceptions can occur:
|
||||
|
||||
##### PR Review Assignment
|
||||
|
||||
We use automatic assignment for PR reviews. A PR is automatically routed by GitHub to 2 team members using the round robin algorithm. The process is the following:
|
||||
We use automatic assignment for PR reviews. **A PR is automatically routed by GitHub to one team member** using the round robin algorithm. Additional reviewers can be used for complex changes or when the first reviewer is not confident enough on the changes.
|
||||
The process is the following:
|
||||
|
||||
- The PR creator can assign specific people if they have another Android developer in their team or they think a specific reviewer should take a look at the PR.
|
||||
- If there are missing reviewers, the PR creator assigns the [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) team as a reviewer.
|
||||
- GitHub automatically assigns other reviewers. If one of the chosen reviewers is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
|
||||
- The PR creator selects the [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) team as a reviewer.
|
||||
- GitHub automatically assign the reviewer. If the reviewer is not available (holiday, etc.), remove them and set again the team, GitHub will select another reviewer.
|
||||
- Alternatively, the PR creator can directly assign specific people if they have another Android developer in their team or they think a specific reviewer should take a look at their PR.
|
||||
- Reviewers get a notification to make the review: they review the code following the good practice (see the rest of this document).
|
||||
- After making their own review, if they feel not confident enough, they can ask another person for a full review, or they can tag someone within a PR comment to check specific lines.
|
||||
|
||||
For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) or any members directly.
|
||||
For PRs coming from the community, the issue wrangler can assign either the team [element-android-reviewers](https://github.com/orgs/vector-im/teams/element-android-reviewers) or any member directly.
|
||||
|
||||
##### PR review time
|
||||
|
||||
@@ -64,6 +103,7 @@ Some tips to achieve it:
|
||||
- Set up your GH notifications correctly
|
||||
- Check your pulls page: [https://github.com/pulls](https://github.com/pulls)
|
||||
- Check your pending assigned PRs before starting or resuming your day to day tasks
|
||||
- If you are busy with high priority tasks, inform the author. They will find another developer
|
||||
|
||||
It is hard to define a deadline for a review. It depends on the PR size and the complexity. Let's start with a goal of 24h (working day!) for a PR smaller than 500 lines. If bigger, the submitter and the reviewer should discuss.
|
||||
|
||||
@@ -151,7 +191,7 @@ Examples of prefixes:
|
||||
- `[Bugfix]`
|
||||
- etc.
|
||||
|
||||
Also, it's still possible to add labels to the PRs, such as `A-` or `T-` labels, even if this is not a string requirement. We prefer to spend time to add labels on issues.
|
||||
Also, it's still possible to add labels to the PRs, such as `A-` or `T-` labels, even if this is not a strong requirement. We prefer to spend time to add labels on issues.
|
||||
|
||||
##### PR description
|
||||
|
||||
|
@@ -2,6 +2,27 @@
|
||||
|
||||
This document describes the flow of signin to a homeserver, and also the flow when user want to reset his password. Examples come from the `matrix.org` homeserver.
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Sign in flows](#sign-in-flows)
|
||||
* [Get the flow](#get-the-flow)
|
||||
* [Login with username](#login-with-username)
|
||||
* [Incorrect password](#incorrect-password)
|
||||
* [Correct password:](#correct-password:)
|
||||
* [Login with email](#login-with-email)
|
||||
* [Unknown email](#unknown-email)
|
||||
* [Known email, wrong password](#known-email-wrong-password)
|
||||
* [Known email, correct password](#known-email-correct-password)
|
||||
* [Login with Msisdn](#login-with-msisdn)
|
||||
* [Login with SSO](#login-with-sso)
|
||||
* [Reset password](#reset-password)
|
||||
* [Send email](#send-email)
|
||||
* [When the email is not known](#when-the-email-is-not-known)
|
||||
* [When the email is known](#when-the-email-is-known)
|
||||
* [User clicks on the link](#user-clicks-on-the-link)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Sign in flows
|
||||
|
||||
### Get the flow
|
||||
@@ -322,4 +343,4 @@ curl -X POST --data $'{"auth":{"type":"m.login.email.identity","threepid_creds":
|
||||
{}
|
||||
```
|
||||
|
||||
The password has been changed, and all the existing token are invalidated. User can now login with the new password.
|
||||
The password has been changed, and all the existing token are invalidated. User can now login with the new password.
|
||||
|
@@ -4,6 +4,20 @@ This document describes the flow of registration to a homeserver. Examples come
|
||||
|
||||
*Ref*: https://matrix.org/docs/spec/client_server/latest#account-registration-and-management
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Sign up flows](#sign-up-flows)
|
||||
* [First step](#first-step)
|
||||
* [Step 1: entering user name and password](#step-1:-entering-user-name-and-password)
|
||||
* [If username already exists](#if-username-already-exists)
|
||||
* [Step 2: entering email](#step-2:-entering-email)
|
||||
* [Step 2 bis: user enters an email](#step-2-bis:-user-enters-an-email)
|
||||
* [Step 3: Accepting T&C](#step-3:-accepting-t&c)
|
||||
* [Step 4: Captcha](#step-4:-captcha)
|
||||
* [Step 5: MSISDN](#step-5:-msisdn)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Sign up flows
|
||||
|
||||
### First step
|
||||
|
@@ -10,6 +10,20 @@ Currently the test are covering a small set of application flows:
|
||||
- Self verification via emoji
|
||||
- Self verification via passphrase
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Prerequisites:](#prerequisites:)
|
||||
* [Run the tests](#run-the-tests)
|
||||
* [From the source code](#from-the-source-code)
|
||||
* [From command line](#from-command-line)
|
||||
* [Recipes](#recipes)
|
||||
* [Wait for initial sync](#wait-for-initial-sync)
|
||||
* [Accessing current activity](#accessing-current-activity)
|
||||
* [Interact with other session](#interact-with-other-session)
|
||||
* [Contributing to the UiAllScreensSanityTest](#contributing-to-the-uiallscreenssanitytest)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## 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).
|
||||
|
58
docs/unifiedpush.md
Normal file
58
docs/unifiedpush.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# UnifiedPush
|
||||
|
||||
<!--- TOC -->
|
||||
|
||||
* [Introduction](#introduction)
|
||||
* [Configuration in Element-Android and their forks](#configuration-in-element-android-and-their-forks)
|
||||
* [Enabling and disabling the feature](#enabling-and-disabling-the-feature)
|
||||
* [Override the configuration at runtime](#override-the-configuration-at-runtime)
|
||||
* [Enabling the feature](#enabling-the-feature)
|
||||
* [Disabling the feature](#disabling-the-feature)
|
||||
* [Useful links](#useful-links)
|
||||
|
||||
<!--- END -->
|
||||
|
||||
## Introduction
|
||||
|
||||
The recently started UnifiedPush project is an Android protocol and library for apps to be able to receive distributor-agnostic push notifications.
|
||||
|
||||
The *F-Droid* and *Gplay* flavors of Element Android support UnifiedPush, so the user can use any distributor installed on their devices. This would make it possible to have push notifications without depending on Google services or libraries. Currently, the main distributors are [ntfy](https://ntfy.sh) which does not require any setup (like manual registration) to use the public server and [NextPush](https://github.com/UP-NextPush/android), available as a nextcloud application.
|
||||
|
||||
The *Gplay* variant uses a UnifiedPush library which basically embed a FCM distributor built into the application (so a user doesn't need to do anything other than install the app to get FCM notifications). This variant uses Google Services to receive notifications if the user has not installed any distributor. A [FCM Rewrite Proxy](https://unifiedpush.org/developers/embedded_fcm/#fcm-rewrite-proxy) is not required for Element Android's implementation of the FCM distributor - it will work with an existing Matrix push provider, such as [Sygnal](https://github.com/matrix-org/sygnal).
|
||||
|
||||
The *F-Droid* variant does not use this library to avoid any proprietary blob. It will use a polling service if the user has not installed any distributor.
|
||||
|
||||
In all cases, if there are other distributors available, the user will have to opt-in to one of them in the preferences.
|
||||
|
||||
## Configuration in Element-Android and their forks
|
||||
|
||||
### Enabling and disabling the feature
|
||||
|
||||
Allowing the user to use an alternative distributor can be changed in [Config](../vector-config/src/main/java/im/vector/app/config/Config.kt). The flag is named `ALLOW_EXTERNAL_UNIFIED_PUSH_DISTRIBUTORS`. Default value is `true`.
|
||||
|
||||
#### Override the configuration at runtime
|
||||
|
||||
On debug version, it is possible to override this configuration at runtime, using the `Feature` screen. The Feature is named `Allow external UnifiedPush distributors`.
|
||||
|
||||
#### Enabling the feature
|
||||
|
||||
This is the default behavior of Element Android.
|
||||
|
||||
If `ALLOW_EXTERNAL_UNIFIED_PUSH_DISTRIBUTORS` is set to true, it allows any available external UnifiedPush distributor to be chosen by the user.
|
||||
- For Gplay variant it means that FCM will be used by default, but user can choose another UnifiedPush distributor;
|
||||
- For F-Droid variant, it means that background polling will be used by default, but user can choose another UnifiedPush distributor.
|
||||
- On the UI, the setting to choose an alternative distributor will be visible to the user, and some tests in the notification troubleshoot screen will shown.
|
||||
- For F-Droid, if the user has chosen a distributor, the settings to configure the background polling will be hidden.
|
||||
|
||||
#### Disabling the feature
|
||||
|
||||
If `ALLOW_EXTERNAL_UNIFIED_PUSH_DISTRIBUTORS` is set to false, it prevents the usage of external UnifiedPush distributors.
|
||||
- For Gplay variant it means that only FCM will be used;
|
||||
- For F-Droid variant, it means that only background polling will be used.
|
||||
- On the UI, the setting to choose an alternative distributor will be hidden to the user, and some tests in the notification troubleshoot screen will be hidden.
|
||||
|
||||
### Useful links
|
||||
|
||||
- UnifiedPush official website: [https://unifiedpush.org/](https://unifiedpush.org/)
|
||||
- List of available distributors can be retrieved here: [https://unifiedpush.org/users/distributors/](https://unifiedpush.org/users/distributors/)
|
||||
- UnifiedPush project discussion can occurs here: [#unifiedpush:matrix.org](https://matrix.to/#/#unifiedpush:matrix.org)
|
@@ -1 +1 @@
|
||||
مُحادثة آمنة لا مركزية و VoIP. حافظ على بياناتك آمنة من الأطراف الثالثة.
|
||||
برنامج المراسلة الجماعية - الرسائل المشفرة والدردشة الجماعية ومكالمات الفيديو
|
||||
|
@@ -1 +1 @@
|
||||
Element (Riot.im سابقًا)
|
||||
إيليمنت - تطبيق محادثات أمن
|
||||
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104140.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104140.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Zlepšení správy ignorovaných uživatelů. Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Vylepšena správa šifrovaných zpráv. Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104220.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104220.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104230.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104230.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104240.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104240.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104250.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104250.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104260.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104260.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Podpora UnifiedPush a možnost používat push bez FCM.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104270.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104270.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104280.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104280.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104300.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104300.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Umožňuje vylepšené přihlašování a registraci.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104310.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104310.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Umožňuje vylepšené přihlašování a registraci.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104320.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104320.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/cs-CZ/changelogs/40104340.txt
Normal file
2
fastlane/metadata/android/cs-CZ/changelogs/40104340.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Hlavní změny v této verzi: Opravy různých chyb a vylepšení stability.
|
||||
Úplný seznam změn: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104140.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104140.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verbesserte Verwaltung der ignorierten Benutzer:innen. Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104160.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104160.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Bessere Verwaltung von verschlüsselten Nachrichten. Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104180.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104180.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104190.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104190.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104200.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104200.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104220.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104220.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104230.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104230.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104240.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104240.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
2
fastlane/metadata/android/de-DE/changelogs/40104250.txt
Normal file
2
fastlane/metadata/android/de-DE/changelogs/40104250.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
Die wichtigsten Änderungen in dieser Version: Verschiedene Fehlerbehebungen und Stabilitätsverbesserungen.
|
||||
Vollständiges Änderungsprotokoll: https://github.com/vector-im/element-android/releases
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user