mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-04 17:28:53 +01:00
Compare commits
701 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
430a55f89f | ||
|
|
d717aad03d | ||
|
|
efd86ad2fc | ||
|
|
b284835545 | ||
|
|
4dd30f4ec3 | ||
|
|
a48938f3d8 | ||
|
|
01989ad6e7 | ||
|
|
f37f67c6c0 | ||
|
|
36f7c60a99 | ||
|
|
3f067654d9 | ||
|
|
0ce3eab3cd | ||
|
|
b0f7c36cc2 | ||
|
|
966e208be5 | ||
|
|
a80d353e04 | ||
|
|
080fa88bfb | ||
|
|
172e3d129e | ||
|
|
52d5947c0a | ||
|
|
7334ebfce1 | ||
|
|
2c98bbaf7e | ||
|
|
5a91dba56e | ||
|
|
535c5a1574 | ||
|
|
b61c54c0e2 | ||
|
|
5ac5d45fc6 | ||
|
|
79ba929e70 | ||
|
|
3e9146a6f5 | ||
|
|
0c4c280a50 | ||
|
|
ebea499a5a | ||
|
|
d6b39e9f0a | ||
|
|
787eaee6a0 | ||
|
|
5ecb3d8832 | ||
|
|
b2e8666c9f | ||
|
|
8af41e4b2c | ||
|
|
5eaf1000c8 | ||
|
|
4ed6773983 | ||
|
|
0de0441f65 | ||
|
|
9e1b4a9a8c | ||
|
|
bf28b90e89 | ||
|
|
a0a962a94f | ||
|
|
abe0b2ebca | ||
|
|
7b4fe7ff40 | ||
|
|
1ba9793943 | ||
|
|
14d4228e86 | ||
|
|
3d2c51c14b | ||
|
|
72d75e9cd5 | ||
|
|
e125fa6bfb | ||
|
|
57574126bb | ||
|
|
833c81a99e | ||
|
|
5ca17dfe52 | ||
|
|
5e058bb655 | ||
|
|
ce87b50a07 | ||
|
|
2ad14800d1 | ||
|
|
f04a0533cb | ||
|
|
5ae51f844e | ||
|
|
4ce2c6ef73 | ||
|
|
4442f26f53 | ||
|
|
849fce5a89 | ||
|
|
482fce6a25 | ||
|
|
e7e69ab064 | ||
|
|
4b768419da | ||
|
|
2cca01d30f | ||
|
|
e0c69dc485 | ||
|
|
1dd79efdb2 | ||
|
|
dbb3c8def9 | ||
|
|
562185f46d | ||
|
|
f6c7c6de73 | ||
|
|
1ca3a9ca73 | ||
|
|
c76c3f65f2 | ||
|
|
59c27797d6 | ||
|
|
c5c720b1c9 | ||
|
|
caa09c82d0 | ||
|
|
d45f80f25d | ||
|
|
6a248f617a | ||
|
|
2959e05ea7 | ||
|
|
17faf56388 | ||
|
|
f533ad1533 | ||
|
|
25452fefa5 | ||
|
|
9702728c19 | ||
|
|
43f19d14d8 | ||
|
|
467c154ea6 | ||
|
|
d72c742ab6 | ||
|
|
567bf0facc | ||
|
|
d5329d0794 | ||
|
|
ff04e5c5c3 | ||
|
|
e529fbd1bc | ||
|
|
068eaff801 | ||
|
|
e0bb3a48c2 | ||
|
|
f2e4881026 | ||
|
|
b605148ac4 | ||
|
|
2b9126d74b | ||
|
|
206f6d84e7 | ||
|
|
01836b3a7c | ||
|
|
e68691c966 | ||
|
|
957f473e77 | ||
|
|
8a023100ea | ||
|
|
5bfdca509c | ||
|
|
9a837254ec | ||
|
|
3f27769d20 | ||
|
|
4f260c2063 | ||
|
|
75df16e842 | ||
|
|
fce6651e26 | ||
|
|
b06783bc90 | ||
|
|
72a1a9b0ff | ||
|
|
5568a14490 | ||
|
|
378ebb00c4 | ||
|
|
c81f40eb74 | ||
|
|
d97bde3959 | ||
|
|
4d301a4f66 | ||
|
|
9941b2d123 | ||
|
|
089d8a50b2 | ||
|
|
eb8ad5218d | ||
|
|
21b1401fc4 | ||
|
|
58ea9a1f48 | ||
|
|
2bb9578ef9 | ||
|
|
c3b8768570 | ||
|
|
94e3dabc20 | ||
|
|
542a820e22 | ||
|
|
8f7cc52255 | ||
|
|
63888f1c99 | ||
|
|
a588522c9b | ||
|
|
7a2eca3bd5 | ||
|
|
a8ba0dccca | ||
|
|
782c83cc4e | ||
|
|
46e6ae915c | ||
|
|
8a887b65a1 | ||
|
|
08491579dd | ||
|
|
25b01a30be | ||
|
|
48374e6950 | ||
|
|
6496f236ea | ||
|
|
e767434c2b | ||
|
|
bb6507a456 | ||
|
|
c3f9e5d972 | ||
|
|
34d87cf6e1 | ||
|
|
e657a4adf3 | ||
|
|
9594599d60 | ||
|
|
a0c0acb8fc | ||
|
|
0896718e5c | ||
|
|
be4bf27ede | ||
|
|
7253aaaa14 | ||
|
|
72cbe61f6c | ||
|
|
78d3db319c | ||
|
|
c7a6c7ad9e | ||
|
|
8bc183b994 | ||
|
|
ef6e5abc17 | ||
|
|
e96e6e8d18 | ||
|
|
cee33a23ac | ||
|
|
c5de7581ee | ||
|
|
5dc626078f | ||
|
|
9de75b3e1f | ||
|
|
f09bf5b14c | ||
|
|
c7ec3ab837 | ||
|
|
2a7b58bf46 | ||
|
|
7d5b0b1565 | ||
|
|
3620db3a92 | ||
|
|
69cad04875 | ||
|
|
d533cdc619 | ||
|
|
ae455d2615 | ||
|
|
7f27e52e58 | ||
|
|
4b10c19569 | ||
|
|
3f7f43d506 | ||
|
|
b4296c1e4b | ||
|
|
b62b5ea8ef | ||
|
|
db5cced91b | ||
|
|
b677827c86 | ||
|
|
fc0e902cbf | ||
|
|
6fbf4d4ae6 | ||
|
|
95149764eb | ||
|
|
a37680685f | ||
|
|
2b163a9acd | ||
|
|
2f41d15a41 | ||
|
|
d2c8b6e14c | ||
|
|
6877b9163b | ||
|
|
6ee14d5e7c | ||
|
|
824ff18ba5 | ||
|
|
548adb831d | ||
|
|
501ef69f97 | ||
|
|
a62f07db11 | ||
|
|
1b6cfe9fc6 | ||
|
|
eaa1124e71 | ||
|
|
380036195a | ||
|
|
d2619a6abd | ||
|
|
4d2f23ec37 | ||
|
|
6c1897d8d5 | ||
|
|
39de824bf0 | ||
|
|
889ebcadd4 | ||
|
|
db17d1fd24 | ||
|
|
cc282276c8 | ||
|
|
a5e00c4319 | ||
|
|
dba5252be6 | ||
|
|
874bc1a1c9 | ||
|
|
4b95851ae5 | ||
|
|
fbe907f1e9 | ||
|
|
cf0157c59d | ||
|
|
8f4dff8d53 | ||
|
|
1b3fb60cb0 | ||
|
|
ecbf9d60cb | ||
|
|
117c3ac2db | ||
|
|
9571215175 | ||
|
|
754dc8dab4 | ||
|
|
7caccd341b | ||
|
|
ef6c69a960 | ||
|
|
e82d11e035 | ||
|
|
a687fe09ff | ||
|
|
d19c536000 | ||
|
|
55e029e81d | ||
|
|
df89f8879d | ||
|
|
2b1db2943c | ||
|
|
1687f6966b | ||
|
|
2b685fb42e | ||
|
|
73f5a3398c | ||
|
|
35cf24b577 | ||
|
|
be920148e7 | ||
|
|
456aaa54f1 | ||
|
|
a872097c31 | ||
|
|
33c3c48bd5 | ||
|
|
cd24691130 | ||
|
|
5d92fb1cc4 | ||
|
|
c9e6204a8d | ||
|
|
b4ec935762 | ||
|
|
30426ee42a | ||
|
|
1a70449c4c | ||
|
|
374347da04 | ||
|
|
276662026e | ||
|
|
cd3e9a4009 | ||
|
|
7fb866fcfb | ||
|
|
d06febd5b5 | ||
|
|
04813fe345 | ||
|
|
6a3d1634b9 | ||
|
|
c554c0d456 | ||
|
|
e88f63f54d | ||
|
|
7ff051a638 | ||
|
|
ac9405e874 | ||
|
|
d18c5a7fad | ||
|
|
bdc90f3c02 | ||
|
|
94e28eddd0 | ||
|
|
6100664287 | ||
|
|
54aa477b28 | ||
|
|
3c5774960a | ||
|
|
5140c41c58 | ||
|
|
2b9bb3fb5c | ||
|
|
9500f4a59c | ||
|
|
a64b77d6f2 | ||
|
|
4f9e77e7cd | ||
|
|
13444136bd | ||
|
|
7beb4dd939 | ||
|
|
51e6ae8f03 | ||
|
|
7aca5f77f6 | ||
|
|
02ce6c62a8 | ||
|
|
b0b2c32a6f | ||
|
|
cf7fee2de8 | ||
|
|
bb730c137f | ||
|
|
da2eb02cde | ||
|
|
f271c85aef | ||
|
|
bd5f25ffc7 | ||
|
|
3d78d5473e | ||
|
|
49d3f7652d | ||
|
|
5b543c5212 | ||
|
|
2356bb6da2 | ||
|
|
c2bdc11832 | ||
|
|
2bd440e07c | ||
|
|
6eee4db87b | ||
|
|
e7d1db446b | ||
|
|
ff50755ba2 | ||
|
|
f8ef262b3d | ||
|
|
f8737995fa | ||
|
|
1bbefea857 | ||
|
|
143630c41b | ||
|
|
577eaa1eae | ||
|
|
316b071c81 | ||
|
|
5a6f55c0a8 | ||
|
|
e008a50acc | ||
|
|
41c3913482 | ||
|
|
803ff76678 | ||
|
|
309081437a | ||
|
|
5f152b73c2 | ||
|
|
f8d3336a1e | ||
|
|
dc1fdffe6a | ||
|
|
622d9c909f | ||
|
|
4e3ef19c1f | ||
|
|
b054a30fa7 | ||
|
|
7266c24354 | ||
|
|
5ec2877bcc | ||
|
|
0d93446c7d | ||
|
|
1e395ab416 | ||
|
|
0acb5ac7cd | ||
|
|
3b18b5d2b7 | ||
|
|
16e63a061d | ||
|
|
a6c8b940c9 | ||
|
|
74d9e3248b | ||
|
|
3af8b6050c | ||
|
|
da966753a1 | ||
|
|
0ad4b3f73e | ||
|
|
e8d072d4be | ||
|
|
b0eed4a095 | ||
|
|
ba720efe61 | ||
|
|
e23d575460 | ||
|
|
7fbcd17759 | ||
|
|
a95ebb2158 | ||
|
|
8a36425cac | ||
|
|
4261ed39dc | ||
|
|
ca37a884fd | ||
|
|
9fbb7683bc | ||
|
|
42e275ef0a | ||
|
|
19ece12e93 | ||
|
|
3ef0d3e4a3 | ||
|
|
602ea46b8b | ||
|
|
95c0bc6052 | ||
|
|
bd4ce1788c | ||
|
|
20d16a8433 | ||
|
|
db4c11cd53 | ||
|
|
f439e1f8e3 | ||
|
|
080b1aab83 | ||
|
|
61ba2ac97a | ||
|
|
7eebb38eda | ||
|
|
43e7d65af5 | ||
|
|
386d8bb312 | ||
|
|
3fbd72092c | ||
|
|
4e5b15cd88 | ||
|
|
8b2aeba3bd | ||
|
|
1d2334b920 | ||
|
|
38a234ae66 | ||
|
|
2c1226dc02 | ||
|
|
1df8ef6464 | ||
|
|
f8d40bf86d | ||
|
|
58ab03b4e3 | ||
|
|
0bf54e6b45 | ||
|
|
8fca0c69ac | ||
|
|
70eb4ca2a1 | ||
|
|
9d9e30725e | ||
|
|
ff9585ec7d | ||
|
|
a418c2750a | ||
|
|
9581994050 | ||
|
|
316d0e67c5 | ||
|
|
503bf04ec5 | ||
|
|
d6b76936dd | ||
|
|
c53d16717b | ||
|
|
2c747daa50 | ||
|
|
0b2d3edcce | ||
|
|
955bcde062 | ||
|
|
a91aa72fb4 | ||
|
|
163ece75b2 | ||
|
|
a8fb5f2598 | ||
|
|
3a62ad67e1 | ||
|
|
48f4e1ddc6 | ||
|
|
c37bb96aab | ||
|
|
a2057e20d2 | ||
|
|
577e05eb51 | ||
|
|
65a30cf2a7 | ||
|
|
121f0c6134 | ||
|
|
7d1897a9d2 | ||
|
|
415dbd1b61 | ||
|
|
cfc1c35203 | ||
|
|
911d7f3be8 | ||
|
|
c06944da13 | ||
|
|
b6dd4a3579 | ||
|
|
b057e145c5 | ||
|
|
772ad3b929 | ||
|
|
46681868d3 | ||
|
|
75795bd7d5 | ||
|
|
1908723fbe | ||
|
|
549992c08a | ||
|
|
845704b9fe | ||
|
|
ba03ca5e0c | ||
|
|
92a9f12b58 | ||
|
|
3437ac63bb | ||
|
|
d798a35c38 | ||
|
|
01b56995d9 | ||
|
|
3f190efb4e | ||
|
|
bb6b149c2e | ||
|
|
65b96fff16 | ||
|
|
0b8e8a7b2f | ||
|
|
a8a6fec19d | ||
|
|
a3fce4c149 | ||
|
|
85265412da | ||
|
|
e636a94de0 | ||
|
|
08509f6693 | ||
|
|
d28fc98cfd | ||
|
|
f584ef1d72 | ||
|
|
67a6df57c8 | ||
|
|
fadbb0adc5 | ||
|
|
58774033b7 | ||
|
|
66f0470960 | ||
|
|
68137cb66f | ||
|
|
4d6cacdb3d | ||
|
|
cf862af3ca | ||
|
|
a8d106a292 | ||
|
|
6155140de4 | ||
|
|
a4637248e8 | ||
|
|
8c4470a27e | ||
|
|
071fbfd916 | ||
|
|
1968438ebb | ||
|
|
7b31383b88 | ||
|
|
093a79045d | ||
|
|
e4928b0084 | ||
|
|
03420cf501 | ||
|
|
541b4674a8 | ||
|
|
6e108a03d1 | ||
|
|
c9dd332abd | ||
|
|
7e605fb6de | ||
|
|
fa2b0aedb0 | ||
|
|
402f49edd9 | ||
|
|
caf2e555dd | ||
|
|
32dc36d937 | ||
|
|
771d49bfa8 | ||
|
|
70dc78601a | ||
|
|
b4d781ddbb | ||
|
|
9c29601b55 | ||
|
|
28c37cb3ac | ||
|
|
bd121e47c8 | ||
|
|
7428e1e2ea | ||
|
|
376cb926b0 | ||
|
|
4ed0056d2a | ||
|
|
177ef8a555 | ||
|
|
7244a1f52f | ||
|
|
8d311923c1 | ||
|
|
9359d56880 | ||
|
|
3214200188 | ||
|
|
841ab7f983 | ||
|
|
53b3728432 | ||
|
|
cf9f98efc9 | ||
|
|
b5c666a1f4 | ||
|
|
b1954a509c | ||
|
|
c2c91cfe42 | ||
|
|
cccbec5744 | ||
|
|
4c89b20fad | ||
|
|
2328fa3e88 | ||
|
|
e19d4624c1 | ||
|
|
345f58ed48 | ||
|
|
4c14ce3937 | ||
|
|
82684c0169 | ||
|
|
2607328255 | ||
|
|
484ce3a1da | ||
|
|
85d5f62301 | ||
|
|
b0571f8184 | ||
|
|
b80dd28b40 | ||
|
|
e0cf0808cf | ||
|
|
ffdd5b62ae | ||
|
|
3b5376ef8b | ||
|
|
cd57fb0d76 | ||
|
|
6986acd6f4 | ||
|
|
2bc571ffd3 | ||
|
|
a8dddf33f8 | ||
|
|
46582a685b | ||
|
|
ad381783f7 | ||
|
|
b81c1eb65c | ||
|
|
2c4d3b3ee4 | ||
|
|
d1400928ce | ||
|
|
49abece92b | ||
|
|
b48b1f031e | ||
|
|
9cefe0bc04 | ||
|
|
ee73b0e229 | ||
|
|
ab0ce58812 | ||
|
|
333a206d36 | ||
|
|
86bb7666ea | ||
|
|
58b5ebf39d | ||
|
|
47947b85c7 | ||
|
|
6910ba6d2e | ||
|
|
08254edae6 | ||
|
|
e67307a961 | ||
|
|
9922621945 | ||
|
|
c7476a2a07 | ||
|
|
ac59528f5c | ||
|
|
97c9728c65 | ||
|
|
80d1694e6e | ||
|
|
28c6e31c7d | ||
|
|
8836b2a570 | ||
|
|
786c2b888b | ||
|
|
c91275c5da | ||
|
|
7b362460e7 | ||
|
|
a1862c3420 | ||
|
|
44ea9ccc59 | ||
|
|
4c9cdf3b8f | ||
|
|
4a6d4f197d | ||
|
|
ae04749336 | ||
|
|
caa743aba2 | ||
|
|
a4469a4285 | ||
|
|
2771b31aab | ||
|
|
5c418a4260 | ||
|
|
17dbdf3b74 | ||
|
|
8315ae47c4 | ||
|
|
50b59805ca | ||
|
|
58bc387d0b | ||
|
|
d2dd6790a0 | ||
|
|
78c7795b89 | ||
|
|
73c25f3476 | ||
|
|
6f9f89734d | ||
|
|
da68bee742 | ||
|
|
e5f1f9394d | ||
|
|
d9d6f8c97e | ||
|
|
a35a141411 | ||
|
|
1e0c7b1120 | ||
|
|
9b9734f82a | ||
|
|
fe437b5234 | ||
|
|
59bb505a3e | ||
|
|
28d8d62cbd | ||
|
|
cb05608422 | ||
|
|
e384a37fab | ||
|
|
9a04cd9e3b | ||
|
|
dd396eb75a | ||
|
|
611b52780e | ||
|
|
20a05220ea | ||
|
|
38e8f24c20 | ||
|
|
58d2c92102 | ||
|
|
f90ba45940 | ||
|
|
1ecf42bfd3 | ||
|
|
ed56c21e5b | ||
|
|
a0c55baf39 | ||
|
|
3b3ef0d545 | ||
|
|
78e7f99344 | ||
|
|
d709d67f54 | ||
|
|
6d30fd11a7 | ||
|
|
4a39c7950f | ||
|
|
3dd5ad2a8a | ||
|
|
d7b7727aa6 | ||
|
|
0199cd24ef | ||
|
|
8513e8c4f9 | ||
|
|
5d2d9017f1 | ||
|
|
879e8f98bd | ||
|
|
2c6524f6c0 | ||
|
|
c9bd81d332 | ||
|
|
2d29b02cea | ||
|
|
c0a279fcc5 | ||
|
|
1a612fab0b | ||
|
|
63e821634a | ||
|
|
62d951b438 | ||
|
|
8d749c404f | ||
|
|
d5b2f4fdd3 | ||
|
|
fae4ca91bd | ||
|
|
6e92ff5096 | ||
|
|
61522cd682 | ||
|
|
74dbd0814a | ||
|
|
05751a5b79 | ||
|
|
7741844055 | ||
|
|
09c07f0707 | ||
|
|
c565db812e | ||
|
|
00b72c9263 | ||
|
|
5c415139fd | ||
|
|
6d944c0f8c | ||
|
|
6744a79325 | ||
|
|
472d86acc0 | ||
|
|
c1ee7a53b5 | ||
|
|
8d44640377 | ||
|
|
cbcbe3f564 | ||
|
|
698923423f | ||
|
|
bc6114f6e0 | ||
|
|
21d91bb2cf | ||
|
|
bda9664cb9 | ||
|
|
9c055a35a9 | ||
|
|
bf794c41da | ||
|
|
de698c8a1a | ||
|
|
f972382f5e | ||
|
|
73b0331884 | ||
|
|
2248abb749 | ||
|
|
13435c0b54 | ||
|
|
5575f75118 | ||
|
|
4ce3c2309c | ||
|
|
cd7ee1a042 | ||
|
|
cd087113e3 | ||
|
|
36b6122b0f | ||
|
|
a74651d915 | ||
|
|
c274805eb0 | ||
|
|
d86d88f313 | ||
|
|
265e875a78 | ||
|
|
8353ad4962 | ||
|
|
9369cafd38 | ||
|
|
989cda6662 | ||
|
|
0570aaeb6e | ||
|
|
5a19117850 | ||
|
|
ff726ec4d2 | ||
|
|
0cd93986bd | ||
|
|
bc7ba5f2c6 | ||
|
|
1ddde6ab92 | ||
|
|
e9f2580bb8 | ||
|
|
b9dc2d3969 | ||
|
|
7e27203bd8 | ||
|
|
5a582c12d8 | ||
|
|
cd925d5f53 | ||
|
|
853a37920c | ||
|
|
2aa0b3700f | ||
|
|
35190ebb63 | ||
|
|
d74350b708 | ||
|
|
bd3e4f9f87 | ||
|
|
7370756344 | ||
|
|
7894377d1d | ||
|
|
6416df241f | ||
|
|
85408f2b12 | ||
|
|
b698daa4cf | ||
|
|
3a035a1b33 | ||
|
|
a11888ff71 | ||
|
|
423b8c942c | ||
|
|
26739491a5 | ||
|
|
6bf39c5102 | ||
|
|
daac3bd143 | ||
|
|
028242826e | ||
|
|
99d9c670b6 | ||
|
|
bc592cc4e2 | ||
|
|
04707b00e7 | ||
|
|
d44abfaeac | ||
|
|
6c30f3d573 | ||
|
|
2e70ed14dd | ||
|
|
7823d4f49f | ||
|
|
7bd3482367 | ||
|
|
709adf05aa | ||
|
|
524736c5b2 | ||
|
|
f53ae66fc9 | ||
|
|
0c102b061c | ||
|
|
ee198e47c8 | ||
|
|
75c2931c8d | ||
|
|
2bb4edecd7 | ||
|
|
b79d9af7ae | ||
|
|
5c50372021 | ||
|
|
d0d32c8f33 | ||
|
|
2aaaa1791e | ||
|
|
6ed63a67cd | ||
|
|
b858955243 | ||
|
|
63a676b0ef | ||
|
|
155b59d71f | ||
|
|
d9dba89781 | ||
|
|
0a572153f0 | ||
|
|
ce46c44b5d | ||
|
|
e6918b592e | ||
|
|
ddbbb4c21a | ||
|
|
d23290107b | ||
|
|
69f4c89f84 | ||
|
|
279f9578cc | ||
|
|
af7989839f | ||
|
|
01fb0c0eb6 | ||
|
|
dab47828c6 | ||
|
|
c070743723 | ||
|
|
9bbd9b56e7 | ||
|
|
311793ac33 | ||
|
|
986923ea6c | ||
|
|
2f6baf8743 | ||
|
|
4c43bf2228 | ||
|
|
585bd5f24c | ||
|
|
d420c0332b | ||
|
|
e32df5d247 | ||
|
|
19a8ec02cb | ||
|
|
798d4b90c3 | ||
|
|
206f1f3775 | ||
|
|
96273bb724 | ||
|
|
c0d9efc930 | ||
|
|
6722d9d15d | ||
|
|
52c2c58988 | ||
|
|
e3efc53b64 | ||
|
|
9a18f5ef6b | ||
|
|
ce8d545d6f | ||
|
|
f875a0c882 | ||
|
|
4bbddf736c | ||
|
|
c1da17df48 | ||
|
|
f6fa8166d2 | ||
|
|
20016adef1 | ||
|
|
265bb29626 | ||
|
|
d16be8c4d7 | ||
|
|
791a38a181 | ||
|
|
d1010eb886 | ||
|
|
471b214b4a | ||
|
|
f505d48d80 | ||
|
|
6d9a2d4787 | ||
|
|
a36e2408f7 | ||
|
|
9012a2afc0 | ||
|
|
4921198cd8 | ||
|
|
530b57644f | ||
|
|
921415632b | ||
|
|
c723b2c6bf | ||
|
|
17d338f7af | ||
|
|
3d9e12e4c1 | ||
|
|
4ca849c151 | ||
|
|
3e6145aed0 | ||
|
|
c960f29e38 | ||
|
|
c230eb179b | ||
|
|
05e77b1d33 | ||
|
|
a2bdea5df2 | ||
|
|
b2b2860a48 | ||
|
|
f71c1d0c5d | ||
|
|
43607edc1c | ||
|
|
08beb7ff43 | ||
|
|
b24c4e3302 | ||
|
|
06a6f0ea0b | ||
|
|
bd38c4f5d2 | ||
|
|
2e4665e5c4 | ||
|
|
1b250300c7 | ||
|
|
7f3966ff07 | ||
|
|
1f7e9df7ff | ||
|
|
fd32ec9598 | ||
|
|
ed12a7691d | ||
|
|
5759609a11 | ||
|
|
6a423cb18b | ||
|
|
c727f93534 | ||
|
|
623d2f2659 | ||
|
|
4dede65e32 | ||
|
|
1c5f4da20f | ||
|
|
33d9840a78 | ||
|
|
3e89e07ad3 | ||
|
|
99c3e043e7 | ||
|
|
3858024116 | ||
|
|
b06f0bba61 | ||
|
|
73ea50d162 | ||
|
|
98580e6a6b | ||
|
|
2f0a63774f | ||
|
|
3d8f364d59 | ||
|
|
2d93b31469 |
@@ -20,6 +20,7 @@ ktlint_standard_unnecessary-parentheses-before-trailing-lambda = disabled
|
||||
ktlint_standard_value-parameter-comment = disabled
|
||||
ktlint_standard_class-signature = disabled
|
||||
ktlint_standard_function-expression-body = disabled
|
||||
ktlint_standard_blank-line-between-when-conditions = disabled
|
||||
|
||||
# Disable ktlint on generated source code, see
|
||||
# https://github.com/JLLeitschuh/ktlint-gradle/issues/746
|
||||
|
||||
23
.github/stale.yml
vendored
23
.github/stale.yml
vendored
@@ -1,23 +0,0 @@
|
||||
# Number of days of inactivity before an Issue or Pull Request becomes stale
|
||||
daysUntilStale: 60
|
||||
|
||||
# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
|
||||
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
|
||||
daysUntilClose: 7
|
||||
|
||||
issues:
|
||||
exemptLabels:
|
||||
- acknowledged
|
||||
|
||||
# Comment to post when marking as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
|
||||
# Comment to post when closing a stale Issue or Pull Request.
|
||||
closeComment: >
|
||||
This issue has been closed due to inactivity.
|
||||
|
||||
# Limit the number of actions per hour, from 1-30. Default is 30
|
||||
limitPerRun: 1
|
||||
19
.github/workflows/docker.yml
vendored
19
.github/workflows/docker.yml
vendored
@@ -1,21 +1,20 @@
|
||||
name: Reproducible Build Check
|
||||
name: Check reproducible-build Dockerfile
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 5 * * *'
|
||||
- cron: "0 5 * * *"
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build image
|
||||
run: cd reproducible-builds && docker build -t signal-android . && cd ..
|
||||
|
||||
- name: Test build
|
||||
run: docker run --rm -v $(pwd):/project -w /project signal-android ./gradlew clean assemblePlayProdRelease
|
||||
- uses: actions/checkout@v6
|
||||
- name: Build image
|
||||
run: |
|
||||
cd reproducible-builds
|
||||
docker build -t signal-android .
|
||||
- name: Test build
|
||||
run: docker run --memory=12g --rm -v "$(pwd)":/project -w /project signal-android ./gradlew --no-daemon --max-workers=1 -Dorg.gradle.jvmargs="-Xmx4g -XX:MaxMetaspaceSize=512m" -Dkotlin.compiler.execution.strategy=in-process bundlePlayProdRelease
|
||||
|
||||
33
.github/workflows/stale.yml
vendored
Normal file
33
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Mark stale issues and PRs
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 2 * * *' # daily at 02:00 UTC
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v10
|
||||
with:
|
||||
days-before-stale: 60
|
||||
days-before-close: 7
|
||||
exempt-issue-labels: 'acknowledged'
|
||||
stale-issue-message: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions!
|
||||
close-issue-message: >
|
||||
This issue has been closed due to inactivity.
|
||||
stale-pr-message: >
|
||||
This pull request has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions!
|
||||
close-pr-message: >
|
||||
This pull request has been closed due to inactivity.
|
||||
operations-per-run: 30
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -33,3 +33,4 @@ maps.key
|
||||
kls_database.db
|
||||
.kotlin
|
||||
lefthook-local.yml
|
||||
sample-videos/
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
@file:Suppress("UnstableApiUsage")
|
||||
|
||||
import com.android.build.api.dsl.ManagedVirtualDevice
|
||||
import org.gradle.api.file.DirectoryProperty
|
||||
import org.gradle.api.file.RegularFileProperty
|
||||
import org.gradle.api.provider.ValueSource
|
||||
import org.gradle.api.provider.ValueSourceParameters
|
||||
import org.gradle.api.tasks.InputDirectory
|
||||
import org.gradle.api.tasks.InputFile
|
||||
import org.gradle.api.tasks.Optional
|
||||
import org.gradle.api.tasks.PathSensitive
|
||||
import org.gradle.api.tasks.PathSensitivity
|
||||
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
||||
import java.io.File
|
||||
import java.time.Instant
|
||||
import java.time.ZoneOffset
|
||||
import java.time.format.DateTimeFormatter
|
||||
import java.util.Locale
|
||||
import java.util.Properties
|
||||
|
||||
plugins {
|
||||
@@ -20,6 +14,7 @@ plugins {
|
||||
alias(libs.plugins.ktlint)
|
||||
alias(libs.plugins.compose.compiler)
|
||||
alias(libs.plugins.kotlinx.serialization)
|
||||
alias(benchmarkLibs.plugins.baselineprofile)
|
||||
id("androidx.navigation.safeargs")
|
||||
id("kotlin-parcelize")
|
||||
id("com.squareup.wire")
|
||||
@@ -29,8 +24,8 @@ plugins {
|
||||
|
||||
apply(from = "static-ips.gradle.kts")
|
||||
|
||||
val canonicalVersionCode = 1636
|
||||
val canonicalVersionName = "7.69.2"
|
||||
val canonicalVersionCode = 1673
|
||||
val canonicalVersionName = "8.6.0"
|
||||
val currentHotfixVersion = 0
|
||||
val maxHotfixVersions = 100
|
||||
|
||||
@@ -49,9 +44,16 @@ val languagesForBuildConfigProvider = languagesProvider.map { languages ->
|
||||
languages.joinToString(separator = ", ") { language -> "\"$language\"" }
|
||||
}
|
||||
|
||||
val localPropertiesFile = File(rootProject.projectDir, "local.properties")
|
||||
val localProperties: Properties? = if (localPropertiesFile.exists()) {
|
||||
Properties().apply { localPropertiesFile.inputStream().use { load(it) } }
|
||||
} else {
|
||||
null
|
||||
}
|
||||
val quickstartCredentialsDir: String? = localProperties?.getProperty("quickstart.credentials.dir")
|
||||
val benchmarkBackupFile: String? = localProperties?.getProperty("benchmark.backup.file")
|
||||
|
||||
val selectableVariants = listOf(
|
||||
"nightlyBackupRelease",
|
||||
"nightlyBackupSpinner",
|
||||
"nightlyProdSpinner",
|
||||
"nightlyProdPerf",
|
||||
"nightlyProdRelease",
|
||||
@@ -60,6 +62,8 @@ val selectableVariants = listOf(
|
||||
"playProdSpinner",
|
||||
"playProdCanary",
|
||||
"playProdPerf",
|
||||
"playProdMocked",
|
||||
"playProdNonMinifiedMocked",
|
||||
"playProdBenchmark",
|
||||
"playProdInstrumentation",
|
||||
"playProdRelease",
|
||||
@@ -69,8 +73,12 @@ val selectableVariants = listOf(
|
||||
"playStagingPerf",
|
||||
"playStagingInstrumentation",
|
||||
"playStagingRelease",
|
||||
"playProdQuickstart",
|
||||
"playStagingQuickstart",
|
||||
"websiteProdSpinner",
|
||||
"websiteProdRelease"
|
||||
"websiteProdRelease",
|
||||
"githubProdSpinner",
|
||||
"githubProdRelease"
|
||||
)
|
||||
|
||||
wire {
|
||||
@@ -84,6 +92,7 @@ wire {
|
||||
|
||||
protoPath {
|
||||
srcDir("${project.rootDir}/lib/libsignal-service/src/main/protowire")
|
||||
srcDir("${project.rootDir}/lib/archive/src/main/protowire")
|
||||
}
|
||||
// Handled by libsignal
|
||||
prune("signalservice.DecryptionErrorMessage")
|
||||
@@ -174,7 +183,8 @@ android {
|
||||
"META-INF/LICENSE-notice.md",
|
||||
"META-INF/proguard/androidx-annotations.pro",
|
||||
"**/*.dylib",
|
||||
"**/*.dll"
|
||||
"**/*.dll",
|
||||
"**/*.proto"
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -230,8 +240,8 @@ android {
|
||||
buildConfigField("String[]", "SIGNAL_CDSI_IPS", rootProject.extra["cdsi_ips"] as String)
|
||||
buildConfigField("String[]", "SIGNAL_SVR2_IPS", rootProject.extra["svr2_ips"] as String)
|
||||
buildConfigField("String", "SIGNAL_AGENT", "\"OWA\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"093be9ea32405e85ae28dbb48eb668aebeb7dbe29517b9b86ad4bec4dfe0e6a6\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE", "\"29cd63c87bea751e3bfd0fbd401279192e2e5c99948b4ee9437eafc4968355fb\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"29cd63c87bea751e3bfd0fbd401279192e2e5c99948b4ee9437eafc4968355fb\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE", "\"1240acbd4aa26974184844c8a46b1022d3957ac8a76c1fd8f5b1a15141ee0708\"")
|
||||
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{ \"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\", \"BUkY0I+9+oPgDCn4+Ac6Iu813yvqkDr/ga8DzLxFxuk6\"}")
|
||||
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"AMhf5ywVwITZMsff/eCyudZx9JDmkkkbV6PInzG4p8x3VqVJSFiMvnvlEKWuRob/1eaIetR31IYeAbm0NdOuHH8Qi+Rexi1wLlpzIo1gstHWBfZzy1+qHRV5A4TqPp15YzBPm0WSggW6PbSn+F4lf57VCnHF7p8SvzAA2ZZJPYJURt8X7bbg+H3i+PEjH9DXItNEqs2sNcug37xZQDLm7X36nOoGPs54XsEGzPdEV+itQNGUFEjY6X9Uv+Acuks7NpyGvCoKxGwgKgE5XyJ+nNKlyHHOLb6N1NuHyBrZrgtY/JYJHRooo5CEqYKBqdFnmbTVGEkCvJKxLnjwKWf+fEPoWeQFj5ObDjcKMZf2Jm2Ae69x+ikU5gBXsRmoF94GXTLfN0/vLt98KDPnxwAQL9j5V1jGOY8jQl6MLxEs56cwXN0dqCnImzVH3TZT1cJ8SW1BRX6qIVxEzjsSGx3yxF3suAilPMqGRp4ffyopjMD1JXiKR2RwLKzizUe5e8XyGOy9fplzhw3jVzTRyUZTRSZKkMLWcQ/gv0E4aONNqs4P+NameAZYOD12qRkxosQQP5uux6B2nRyZ7sAV54DgFyLiRcq1FvwKw2EPQdk4HDoePrO/RNUbyNddnM/mMgj4FW65xCoT1LmjrIjsv/Ggdlx46ueczhMgtBunx1/w8k8V+l8LVZ8gAT6wkU5J+DPQalQguMg12Jzug3q4TbdHiGCmD9EunCwOmsLuLJkz6EcSYXtrlDEnAM+hicw7iergYLLlMXpfTdGxJCWJmP4zqUFeTTmsmhsjGBt7NiEB/9pFFEB3pSbf4iiUukw63Eo8Aqnf4iwob6X1QviCWuc8t0LUlT9vALgh/f2DPVOOmR0RW6bgRvc7DSF20V/omg+YBw==\"")
|
||||
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AByD873dTilmOSG0TjKrvpeaKEsUmIO8Vx9BeMmftwUs9v7ikPwM8P3OHyT0+X3EUMZrSe9VUp26Wai51Q9I8mdk0hX/yo7CeFGJyzoOqn8e/i4Ygbn5HoAyXJx5eXfIbqpc0bIxzju4H/HOQeOpt6h742qii5u/cbwOhFZCsMIbElZTaeU+BWMBQiZHIGHT5IE0qCordQKZ5iPZom0HeFa8Yq0ShuEyAl0WINBiY6xE3H/9WnvzXBbMuuk//eRxXgzO8ieCeK8FwQNxbfXqZm6Ro1cMhCOF3u7xoX83QhpN\"")
|
||||
@@ -253,7 +263,7 @@ android {
|
||||
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_live_6cmGZopuTsV8novGgJJW9JpC00vLIgtQ1D\"")
|
||||
buildConfigField("boolean", "TRACING_ENABLED", "false")
|
||||
buildConfigField("boolean", "LINK_DEVICE_UX_ENABLED", "false")
|
||||
buildConfigField("boolean", "USE_STRING_ID", "true")
|
||||
buildConfigField("boolean", "USE_STRING_ID", "false")
|
||||
|
||||
ndk {
|
||||
abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
|
||||
@@ -352,8 +362,25 @@ android {
|
||||
isDebuggable = false
|
||||
isMinifyEnabled = true
|
||||
matchingFallbacks += "debug"
|
||||
applicationIdSuffix = ".benchmark"
|
||||
|
||||
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Benchmark\"")
|
||||
buildConfigField("boolean", "TRACING_ENABLED", "true")
|
||||
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{ \"BVT/2gHqbrG1xzuIypLIOjFgMtihrMld1/5TGADL6Dhv\"}")
|
||||
|
||||
manifestPlaceholders["applicationClass"] = "org.thoughtcrime.securesms.BenchmarkApplicationContext"
|
||||
}
|
||||
|
||||
create("mocked") {
|
||||
initWith(getByName("debug"))
|
||||
isDefault = false
|
||||
isDebuggable = false
|
||||
isMinifyEnabled = true
|
||||
matchingFallbacks += "debug"
|
||||
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Benchmark\"")
|
||||
buildConfigField("boolean", "TRACING_ENABLED", "true")
|
||||
|
||||
manifestPlaceholders["applicationClass"] = "org.thoughtcrime.securesms.ApplicationContext"
|
||||
}
|
||||
|
||||
create("canary") {
|
||||
@@ -363,6 +390,14 @@ android {
|
||||
matchingFallbacks += "debug"
|
||||
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Canary\"")
|
||||
}
|
||||
|
||||
create("quickstart") {
|
||||
initWith(getByName("debug"))
|
||||
isDefault = false
|
||||
isMinifyEnabled = false
|
||||
matchingFallbacks += "debug"
|
||||
buildConfigField("String", "BUILD_VARIANT_TYPE", "\"Quickstart\"")
|
||||
}
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
@@ -381,6 +416,13 @@ android {
|
||||
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"website\"")
|
||||
}
|
||||
|
||||
create("github") {
|
||||
dimension = "distribution"
|
||||
buildConfigField("boolean", "MANAGES_APP_UPDATES", "false")
|
||||
buildConfigField("String", "APK_UPDATE_MANIFEST_URL", "null")
|
||||
buildConfigField("String", "BUILD_DISTRIBUTION_TYPE", "\"github\"")
|
||||
}
|
||||
|
||||
create("nightly") {
|
||||
dimension = "distribution"
|
||||
versionNameSuffix = "-nightly-untagged-${getGitHash()}"
|
||||
@@ -411,8 +453,8 @@ android {
|
||||
buildConfigField("String", "SIGNAL_CDN3_URL", "\"https://cdn3-staging.signal.org\"")
|
||||
buildConfigField("String", "SIGNAL_CDSI_URL", "\"https://cdsi.staging.signal.org\"")
|
||||
buildConfigField("String", "SIGNAL_SVR2_URL", "\"https://svr2.staging.signal.org\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"2e8cefe6e3f389d8426adb24e9b7fb7adf10902c96f06f7bbcee36277711ed91\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE", "\"a75542d82da9f6914a1e31f8a7407053b99cc99a0e7291d8fbd394253e19b036\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE_LEGACY", "\"a75542d82da9f6914a1e31f8a7407053b99cc99a0e7291d8fbd394253e19b036\"")
|
||||
buildConfigField("String", "SVR2_MRENCLAVE", "\"97f151f6ed078edbbfd72fa9cae694dcc08353f1f5e8d9ccd79a971b10ffc535\"")
|
||||
buildConfigField("String[]", "UNIDENTIFIED_SENDER_TRUST_ROOTS", "new String[]{\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\", \"BYhU6tPjqP46KGZEzRs1OL4U39V5dlPJ/X09ha4rErkm\"}")
|
||||
buildConfigField("String", "ZKGROUP_SERVER_PUBLIC_PARAMS", "\"ABSY21VckQcbSXVNCGRYJcfWHiAMZmpTtTELcDmxgdFbtp/bWsSxZdMKzfCp8rvIs8ocCU3B37fT3r4Mi5qAemeGeR2X+/YmOGR5ofui7tD5mDQfstAI9i+4WpMtIe8KC3wU5w3Inq3uNWVmoGtpKndsNfwJrCg0Hd9zmObhypUnSkfYn2ooMOOnBpfdanRtrvetZUayDMSC5iSRcXKpdlukrpzzsCIvEwjwQlJYVPOQPj4V0F4UXXBdHSLK05uoPBCQG8G9rYIGedYsClJXnbrgGYG3eMTG5hnx4X4ntARBgELuMWWUEEfSK0mjXg+/2lPmWcTZWR9nkqgQQP0tbzuiPm74H2wMO4u1Wafe+UwyIlIT9L7KLS19Aw8r4sPrXZSSsOZ6s7M1+rTJN0bI5CKY2PX29y5Ok3jSWufIKcgKOnWoP67d5b2du2ZVJjpjfibNIHbT/cegy/sBLoFwtHogVYUewANUAXIaMPyCLRArsKhfJ5wBtTminG/PAvuBdJ70Z/bXVPf8TVsR292zQ65xwvWTejROW6AZX6aqucUjlENAErBme1YHmOSpU6tr6doJ66dPzVAWIanmO/5mgjNEDeK7DDqQdB1xd03HT2Qs2TxY3kCK8aAb/0iM0HQiXjxZ9HIgYhbtvGEnDKW5ILSUydqH/KBhW4Pb0jZWnqN/YgbWDKeJxnDbYcUob5ZY5Lt5ZCMKuaGUvCJRrCtuugSMaqjowCGRempsDdJEt+cMaalhZ6gczklJB/IbdwENW9KeVFPoFNFzhxWUIS5ML9riVYhAtE6JE5jX0xiHNVIIPthb458cfA8daR0nYfYAUKogQArm0iBezOO+mPk5vCNWI+wwkyFCqNDXz/qxl1gAntuCJtSfq9OC3NkdhQlgYQ==\"")
|
||||
buildConfigField("String", "GENERIC_SERVER_PUBLIC_PARAMS", "\"AHILOIrFPXX9laLbalbA9+L1CXpSbM/bTJXZGZiuyK1JaI6dK5FHHWL6tWxmHKYAZTSYmElmJ5z2A5YcirjO/yfoemE03FItyaf8W1fE4p14hzb5qnrmfXUSiAIVrhaXVwIwSzH6RL/+EO8jFIjJ/YfExfJ8aBl48CKHgu1+A6kWynhttonvWWx6h7924mIzW0Czj2ROuh4LwQyZypex4GuOPW8sgIT21KNZaafgg+KbV7XM1x1tF3XA17B4uGUaDbDw2O+nR1+U5p6qHPzmJ7ggFjSN6Utu+35dS1sS0P9N\"")
|
||||
@@ -422,22 +464,10 @@ android {
|
||||
buildConfigField("String", "RECAPTCHA_PROOF_URL", "\"https://signalcaptchas.org/staging/challenge/generate.html\"")
|
||||
buildConfigField("org.signal.libsignal.net.Network.Environment", "LIBSIGNAL_NET_ENV", "org.signal.libsignal.net.Network.Environment.STAGING")
|
||||
buildConfigField("int", "LIBSIGNAL_LOG_LEVEL", "org.signal.libsignal.protocol.logging.SignalProtocolLogger.DEBUG")
|
||||
buildConfigField("boolean", "USE_STRING_ID", "false")
|
||||
|
||||
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Staging\"")
|
||||
buildConfigField("String", "STRIPE_PUBLISHABLE_KEY", "\"pk_test_sngOd8FnXNkpce9nPXawKrJD00kIDngZkD\"")
|
||||
}
|
||||
|
||||
create("backup") {
|
||||
initWith(getByName("staging"))
|
||||
|
||||
dimension = "environment"
|
||||
|
||||
applicationIdSuffix = ".backup"
|
||||
|
||||
buildConfigField("boolean", "MANAGES_APP_UPDATES", "true")
|
||||
buildConfigField("String", "BUILD_ENVIRONMENT_TYPE", "\"Backup\"")
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
@@ -447,6 +477,7 @@ android {
|
||||
ignoreWarnings = true
|
||||
quiet = true
|
||||
disable += "LintError"
|
||||
lintConfig = rootProject.file("lint.xml")
|
||||
}
|
||||
|
||||
androidComponents {
|
||||
@@ -461,7 +492,7 @@ android {
|
||||
|
||||
// Starting with minSdk 23, Android leaves native libraries uncompressed, which is fine for the Play Store, but not for our self-distributed APKs.
|
||||
// This reverts it to the legacy behavior, compressing the native libraries, and drastically reducing the APK file size.
|
||||
if (variant.name.contains("website", ignoreCase = true)) {
|
||||
if (variant.name.contains("website", ignoreCase = true) || variant.name.contains("github", ignoreCase = true)) {
|
||||
variant.packaging.jniLibs.useLegacyPackaging.set(true)
|
||||
}
|
||||
|
||||
@@ -478,12 +509,39 @@ android {
|
||||
val nightlyVersionCode = (canonicalVersionCode * maxHotfixVersions) + (getNightlyBuildNumber(tag) * 10) + nightlyBuffer
|
||||
|
||||
variant.outputs.forEach { output ->
|
||||
output.versionName.set(tag)
|
||||
output.versionName.set("$tag | ${getLastCommitDateTimeUtc()}")
|
||||
output.versionCode.set(nightlyVersionCode)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onVariants(selector().withBuildType("quickstart")) { variant ->
|
||||
val environment = variant.flavorName?.let { name ->
|
||||
when {
|
||||
name.contains("staging", ignoreCase = true) -> "staging"
|
||||
name.contains("prod", ignoreCase = true) -> "prod"
|
||||
else -> "prod"
|
||||
}
|
||||
} ?: "prod"
|
||||
|
||||
val taskProvider = tasks.register<CopyQuickstartCredentialsTask>("copyQuickstartCredentials${variant.name.capitalize()}") {
|
||||
if (quickstartCredentialsDir != null) {
|
||||
inputDir.set(File(quickstartCredentialsDir))
|
||||
}
|
||||
filePrefix.set("${environment}_")
|
||||
}
|
||||
variant.sources.assets?.addGeneratedSourceDirectory(taskProvider) { it.outputDir }
|
||||
}
|
||||
|
||||
onVariants(selector().withBuildType("benchmark")) { variant ->
|
||||
val taskProvider = tasks.register<CopyBenchmarkBackupTask>("copyBenchmarkBackup${variant.name.capitalize()}") {
|
||||
if (benchmarkBackupFile != null) {
|
||||
inputFile.set(File(benchmarkBackupFile))
|
||||
}
|
||||
}
|
||||
variant.sources.assets?.addGeneratedSourceDirectory(taskProvider) { it.outputDir }
|
||||
}
|
||||
}
|
||||
|
||||
val releaseDir = "$projectDir/src/release/java"
|
||||
@@ -495,6 +553,41 @@ android {
|
||||
java.srcDir(path)
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
getByName("mocked") {
|
||||
java.srcDir("$projectDir/src/benchmarkShared/java")
|
||||
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
|
||||
}
|
||||
|
||||
getByName("benchmark") {
|
||||
java.srcDir("$projectDir/src/benchmarkShared/java")
|
||||
manifest.srcFile("$projectDir/src/benchmarkShared/AndroidManifest.xml")
|
||||
}
|
||||
}
|
||||
|
||||
applicationVariants.configureEach {
|
||||
outputs.configureEach {
|
||||
if (this is com.android.build.gradle.internal.api.BaseVariantOutputImpl) {
|
||||
val fileVersionName = versionName.substringBefore(" |")
|
||||
outputFileName = outputFileName.replace(".apk", "-$fileVersionName.apk")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
baselineProfile {
|
||||
warnings {
|
||||
disabledVariants = false
|
||||
}
|
||||
|
||||
mergeIntoMain = true
|
||||
|
||||
variants.create("mocked") {
|
||||
from(project(":baseline-profile"))
|
||||
}
|
||||
|
||||
dexLayoutOptimization = false
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -502,10 +595,11 @@ dependencies {
|
||||
ktlintRuleset(libs.ktlint.twitter.compose)
|
||||
coreLibraryDesugaring(libs.android.tools.desugar)
|
||||
|
||||
implementation(project(":lib:archive"))
|
||||
implementation(project(":lib:libsignal-service"))
|
||||
implementation(project(":lib:paging"))
|
||||
implementation(project(":core:util"))
|
||||
implementation(project(":lib:glide-config"))
|
||||
implementation(project(":lib:glide"))
|
||||
implementation(project(":lib:video"))
|
||||
implementation(project(":lib:device-transfer"))
|
||||
implementation(project(":lib:image-editor"))
|
||||
@@ -515,8 +609,13 @@ dependencies {
|
||||
implementation(project(":lib:qr"))
|
||||
implementation(project(":lib:sticky-header-grid"))
|
||||
implementation(project(":lib:photoview"))
|
||||
implementation(project(":lib:blurhash"))
|
||||
implementation(project(":core:ui"))
|
||||
implementation(project(":core:models"))
|
||||
implementation(project(":core:models-jvm"))
|
||||
implementation(project(":feature:camera"))
|
||||
implementation(project(":feature:registration"))
|
||||
implementation(project(":lib:apng"))
|
||||
|
||||
implementation(libs.androidx.fragment.ktx)
|
||||
implementation(libs.androidx.appcompat) {
|
||||
@@ -540,6 +639,8 @@ dependencies {
|
||||
implementation(libs.androidx.navigation.fragment.ktx)
|
||||
implementation(libs.androidx.navigation.ui.ktx)
|
||||
implementation(libs.androidx.navigation.compose)
|
||||
implementation(libs.androidx.navigation3.runtime)
|
||||
implementation(libs.androidx.navigation3.ui)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.ktx)
|
||||
implementation(libs.androidx.lifecycle.livedata.ktx)
|
||||
implementation(libs.androidx.lifecycle.process)
|
||||
@@ -556,6 +657,7 @@ dependencies {
|
||||
implementation(libs.androidx.concurrent.futures)
|
||||
implementation(libs.androidx.autofill)
|
||||
implementation(libs.androidx.biometric)
|
||||
implementation(libs.androidx.core.telecom)
|
||||
implementation(libs.androidx.sharetarget)
|
||||
implementation(libs.androidx.profileinstaller)
|
||||
implementation(libs.androidx.asynclayoutinflater)
|
||||
@@ -617,6 +719,7 @@ dependencies {
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
|
||||
implementation(project(":lib:billing"))
|
||||
implementation(project(":feature:media-send"))
|
||||
|
||||
"spinnerImplementation"(project(":lib:spinner"))
|
||||
|
||||
@@ -647,6 +750,7 @@ dependencies {
|
||||
testImplementation(testFixtures(project(":lib:libsignal-service")))
|
||||
testImplementation(testLibs.espresso.core)
|
||||
testImplementation(testLibs.kotlinx.coroutines.test)
|
||||
testImplementation(testLibs.sqlite.jdbc)
|
||||
testImplementation(libs.androidx.compose.ui.test.junit4)
|
||||
|
||||
"perfImplementation"(libs.androidx.compose.ui.test.manifest)
|
||||
@@ -709,6 +813,16 @@ fun getNightlyBuildNumber(tag: String?): Int {
|
||||
return match?.groupValues?.get(1)?.toIntOrNull() ?: 0
|
||||
}
|
||||
|
||||
fun getLastCommitDateTimeUtc(): String {
|
||||
val timestamp = providers.exec {
|
||||
commandLine("git", "log", "-1", "--pretty=format:%ct")
|
||||
}.standardOutput.asText.get().trim().toLong()
|
||||
val instant = Instant.ofEpochSecond(timestamp)
|
||||
val formatter = DateTimeFormatter.ofPattern("MMM d '@' HH:mm 'UTC'", Locale.US)
|
||||
.withZone(ZoneOffset.UTC)
|
||||
return formatter.format(instant)
|
||||
}
|
||||
|
||||
fun getMapsKey(): String {
|
||||
return providers
|
||||
.gradleProperty("mapsKey")
|
||||
@@ -768,3 +882,62 @@ abstract class PropertiesFileValueSource : ValueSource<Properties?, PropertiesFi
|
||||
fun String.capitalize(): String {
|
||||
return this.replaceFirstChar { it.uppercase() }
|
||||
}
|
||||
|
||||
abstract class CopyQuickstartCredentialsTask : DefaultTask() {
|
||||
@get:InputDirectory
|
||||
@get:Optional
|
||||
abstract val inputDir: DirectoryProperty
|
||||
|
||||
@get:Input
|
||||
abstract val filePrefix: Property<String>
|
||||
|
||||
@get:OutputDirectory
|
||||
abstract val outputDir: DirectoryProperty
|
||||
|
||||
@TaskAction
|
||||
fun copy() {
|
||||
if (!inputDir.isPresent) {
|
||||
throw GradleException("quickstart.credentials.dir is not set in local.properties. This is required for quickstart builds.")
|
||||
}
|
||||
|
||||
val prefix = filePrefix.get()
|
||||
val candidates = inputDir.get().asFile.listFiles()
|
||||
?.filter { it.extension == "json" && it.name.startsWith(prefix) }
|
||||
?: emptyList()
|
||||
|
||||
if (candidates.isEmpty()) {
|
||||
throw GradleException("No credential files matching '$prefix*.json' found in ${inputDir.get().asFile}. Add files like '${prefix}account1.json' to your credentials directory.")
|
||||
}
|
||||
|
||||
val chosen = candidates.random()
|
||||
logger.lifecycle("Selected quickstart credential: ${chosen.name}")
|
||||
|
||||
val dest = outputDir.get().asFile.resolve("quickstart")
|
||||
dest.mkdirs()
|
||||
chosen.copyTo(dest.resolve(chosen.name), overwrite = true)
|
||||
}
|
||||
}
|
||||
|
||||
abstract class CopyBenchmarkBackupTask : DefaultTask() {
|
||||
@get:InputFile
|
||||
@get:Optional
|
||||
abstract val inputFile: RegularFileProperty
|
||||
|
||||
@get:OutputDirectory
|
||||
abstract val outputDir: DirectoryProperty
|
||||
|
||||
@TaskAction
|
||||
fun copy() {
|
||||
val dest = outputDir.get().asFile.resolve("backups")
|
||||
dest.mkdirs()
|
||||
|
||||
if (!inputFile.isPresent) {
|
||||
logger.lifecycle("benchmark.backup.file is not set in local.properties. Benchmark tests using backup data will crash at runtime.")
|
||||
return
|
||||
}
|
||||
|
||||
val backupFile = inputFile.get().asFile
|
||||
logger.lifecycle("Using benchmark backup: ${backupFile.absolutePath} (${backupFile.length() / 1024}KB)")
|
||||
backupFile.copyTo(dest.resolve("backup.binproto"), overwrite = true)
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user