Compare commits
568 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9f8a110428 | |||
| 07b4279d0b | |||
| 6a33b231e3 | |||
| b38d02061d | |||
| f832a36a5e | |||
| 911ca7c29d | |||
| 544b75a2a7 | |||
| 56e8d4fb06 | |||
| 36a2278aef | |||
| 0c785b85b8 | |||
| a0ecba147e | |||
| 977591ac82 | |||
| fe1838d3fe | |||
| ede06cf97d | |||
| 93deee6824 | |||
| db19077834 | |||
| 6f91f62db2 | |||
| 1fc63b7597 | |||
| a079e479ec | |||
| e90705b459 | |||
| 244db437cb | |||
| 6558eae032 | |||
| 88b54a262b | |||
| 4fa8b8a4bd | |||
| cc0ced9a81 | |||
| 52447f5e97 | |||
| bceb69b284 | |||
| a8d826020d | |||
| 2ada7f87f2 | |||
| 7f8ca58762 | |||
| 058c25808b | |||
| c1e6b6b086 | |||
| b0a6bb79f6 | |||
| de52bf50a2 | |||
| 207dd23c86 | |||
| 7e0de29dd7 | |||
| eaa8f1ee8f | |||
| fb494c1151 | |||
| 49ecd9ef5d | |||
| 8772214fd4 | |||
| 5b74d0cbeb | |||
| 1e7c93007d | |||
| 608815a69b | |||
| fb49efa34d | |||
| b20e8616ec | |||
| acf78b6b63 | |||
| d68fe928b8 | |||
| db4d561d9e | |||
| 6933ca50a7 | |||
| 88c0e6f8ab | |||
| 6cd4728e3c | |||
| 97cc82837c | |||
| 5f0b0e8495 | |||
| c837d590ab | |||
| 6108a32631 | |||
| 6d78e1760d | |||
| c7b7242eff | |||
| 77c687efcf | |||
| 274af2f010 | |||
| 6cd5100530 | |||
| 115a408b0b | |||
| d983016137 | |||
| a8309b6b2b | |||
| e241589c92 | |||
| dcb6240a6a | |||
| 599bb5ab0f | |||
| 739fe584c6 | |||
| 920d1c6207 | |||
| c1d3d26a15 | |||
| e3b66dc7e8 | |||
| dfa08d1356 | |||
| 6da734c2f9 | |||
| a9f3141a77 | |||
| ee267d4702 | |||
| c39174ed8a | |||
| 9c872b6da6 | |||
| 2924a09936 | |||
| b9da012cc4 | |||
| 8626d41787 | |||
| c58705722a | |||
| c702ff676a | |||
| 995569dd50 | |||
| a0dfd42527 | |||
| a7dd78cce6 | |||
| e2e9cd40b3 | |||
| e4fc6f41b8 | |||
| 778b2a0d27 | |||
| 64cd15ca0b | |||
| 1e46c3c0ba | |||
| 91772b4e11 | |||
| af5c7cb7ca | |||
| e760474fa9 | |||
| 28bb88e347 | |||
| 17a1fe97ca | |||
| 7348237862 | |||
| 4e66db5dc1 | |||
| ffa6c9acd1 | |||
| b3e66a9259 | |||
| 5c0cf8c1f0 | |||
| 89c716fca4 | |||
| aae9830dfa | |||
| 48c72697c1 | |||
| aac7e9ea53 | |||
| a1b10b3222 | |||
| 2ab8db33e3 | |||
| 2b1386232f | |||
| 7bb1caa22e | |||
| 72c14b8651 | |||
| f85c3bb1e6 | |||
| d8714fe3b4 | |||
| c54c1907b6 | |||
| 55257155dd | |||
| 55a8bd86de | |||
| c60909272b | |||
| 3dcc2d8171 | |||
| 0ccbb22e4c | |||
| 0ffa10eaea | |||
| 9824073023 | |||
| d2adc11a2d | |||
| 4d0b870c88 | |||
| 840997cb7d | |||
| e4406621ed | |||
| 7f96ee0b62 | |||
| 17f850b31a | |||
| 5d87ad0301 | |||
| a33eeed6d3 | |||
| 554ce29337 | |||
| 6054d0b36f | |||
| 8ba15cf3b4 | |||
| b15e5b4867 | |||
| 544511905a | |||
| 02e3f511bd | |||
| 0539b071e7 | |||
| 36e400650c | |||
| d8930daf4b | |||
| 17b5816d5b | |||
| e574c81ea2 | |||
| 6799a2f841 | |||
| 61fb20f412 | |||
| 47f648e7bc | |||
| 064c0ddb82 | |||
| b42c42007d | |||
| 807cdfce2e | |||
| 43dc3aeebd | |||
| 0369c5ee16 | |||
| 3df2390fe4 | |||
| 9ec4a7af0f | |||
| 70636fb4a7 | |||
| 3c4efdd8f9 | |||
| 80deb301e5 | |||
| 5eabfdc34c | |||
| 5e96832666 | |||
| 1ccce24cf8 | |||
| d59e4f2da7 | |||
| a254c1a7b2 | |||
| 82cc610938 | |||
| becf7c40e8 | |||
| ed21c3ca03 | |||
| 631005e565 | |||
| b57fab8c75 | |||
| 4260a8436b | |||
| 23d478191f | |||
| d075a33d4e | |||
| 7507dadbe7 | |||
| bfd0363390 | |||
| cfb22825f4 | |||
| d37fafbfe7 | |||
| 2dc2eb5835 | |||
| 019d036f69 | |||
| f1ca5fc8e2 | |||
| 9089fc4001 | |||
| b281b817ba | |||
| cee6736656 | |||
| 350ca059b9 | |||
| a7cc5bdc5e | |||
| 2893dfff60 | |||
| 1c14f06734 | |||
| ff053437e3 | |||
| 03dc220cea | |||
| 097f97b5e4 | |||
| 95d3db3260 | |||
| 0485ae603b | |||
| 2f93da6f1a | |||
| 78f3e28974 | |||
| fecd8300c3 | |||
| 262f90dbe7 | |||
| ed271c6f3e | |||
| 3fa5843c93 | |||
| 7f544cb3e5 | |||
| 9f4d40a364 | |||
| 09f0c5b63f | |||
| 53e0dc5dee | |||
| 8b06051e7c | |||
| 660ec88202 | |||
| b9057a1c11 | |||
| 1f85b1f3d2 | |||
| 71f78f03f4 | |||
| 4b3d129097 | |||
| daeb823399 | |||
| c7f76c5d1c | |||
| 9ba1391a1e | |||
| 5d137465e8 | |||
| 78cbb3c073 | |||
| 097d95428a | |||
| 2cfb6ede7f | |||
| 695663a5b1 | |||
| a2204c8370 | |||
| 8c4757ea02 | |||
| 85821274fa | |||
| a8b1ec8e52 | |||
| adbdaebd69 | |||
| c2da4fcd7d | |||
| 46ebff3659 | |||
| 452ccd0350 | |||
| 6e6c809690 | |||
| 7b5c1904cf | |||
| c0aa9d7587 | |||
| 5d03e3d516 | |||
| 2bc3a4417f | |||
| 59d03cbeb2 | |||
| f9f9ae68f5 | |||
| 88f2b67984 | |||
| 44dba4bd98 | |||
| ef585eba42 | |||
| 42967dab13 | |||
| 4f75d1a5db | |||
| debacbdf58 | |||
| 12c4283c30 | |||
| 096c9e0ff7 | |||
| 2f23a13a6f | |||
| bdadbaaac4 | |||
| 16f41555ba | |||
| 8c037456e7 | |||
| feccee557e | |||
| 67f5605bc4 | |||
| ccb18cd46c | |||
| 5b1d91016c | |||
| 27ab04ab41 | |||
| 9432a45b39 | |||
| 9e3475ed94 | |||
| 86d088bce2 | |||
| a135e7efa2 | |||
| c247935f1a | |||
| 31657f5c15 | |||
| bcecc30d33 | |||
| 7193252d77 | |||
| 5b682a3a3d | |||
| 6b8659a393 | |||
| 14557d3dc1 | |||
| 03cbee0277 | |||
| adc0907906 | |||
| f14a71a076 | |||
| 12c2b53f7c | |||
| ff60b5b731 | |||
| 43954a176a | |||
| d698d3bd6f | |||
| 50a81c0e60 | |||
| b0b8377a8e | |||
| 7d02bb8487 | |||
| 8449d75684 | |||
| b89163bb14 | |||
| b7ce220600 | |||
| 948079a42e | |||
| de1c6cdd0c | |||
| 37147fb0a5 | |||
| 33334f80c3 | |||
| 36286da9bd | |||
| 2248acb9f2 | |||
| 3632a2cc95 | |||
| 9447ea12cb | |||
| 89c2329fdf | |||
| 84012c7adb | |||
| d7395af774 | |||
| be4daff0f3 | |||
| c2459d0a31 | |||
| 5f993ed0f7 | |||
| acea24c19c | |||
| 82b5d58d04 | |||
| af2990fa08 | |||
| 0fa48540e1 | |||
| 0f06b96832 | |||
| 4f423be6f9 | |||
| bea21ed5ff | |||
| a9cff032f5 | |||
| b2d02d4ace | |||
| 066df77abf | |||
| b38a3e6259 | |||
| d78919acf8 | |||
| af96d11188 | |||
| 5e1bef26ed | |||
| 95333eccd4 | |||
| 89e075c56e | |||
| d026498a8c | |||
| bae381e6f8 | |||
| 050f7a24c9 | |||
| 77ad1ea729 | |||
| bf667c0cfc | |||
| ccb8ef98b4 | |||
| a1f0660339 | |||
| 447236ee38 | |||
| ebf3b0dfe1 | |||
| ee9216df8a | |||
| 3e34668232 | |||
| 8f8f41f184 | |||
| 4f7cba8d7c | |||
| 00b719c783 | |||
| b03eccec33 | |||
| 5805539deb | |||
| 1b48fd07a3 | |||
| 1e375ec494 | |||
| ee9acf2687 | |||
| 1d8e85fcad | |||
| 4e2afa7362 | |||
| d06564c7b9 | |||
| ced48d0788 | |||
| e273593343 | |||
| c5767b07a7 | |||
| 709ce7e9de | |||
| a8f7908ed4 | |||
| 8230786638 | |||
| df4ecc4e32 | |||
| 5b755b9501 | |||
| b3c7c8db5c | |||
| a21c537428 | |||
| 6d339cd023 | |||
| 840c493265 | |||
| 14999800e2 | |||
| 8e332d0798 | |||
| cd007a20d7 | |||
| 8b99af3eef | |||
| d354de806e | |||
| c7ef0c06f8 | |||
| 9d14bcb808 | |||
| de03706d8d | |||
| a3caabcafd | |||
| faafa40122 | |||
| d1a6582ad7 | |||
| f81c0b448e | |||
| 70347e754c | |||
| a1245baf61 | |||
| 007ea43dc8 | |||
| 582028f2c2 | |||
| 0e2d52026e | |||
| 233cc7ecce | |||
| 1baf03f51a | |||
| f066a9cab2 | |||
| 825d1a02ab | |||
| 97cc8b7777 | |||
| 72662b5b52 | |||
| ea4e0b6d6f | |||
| 6df93c0bb5 | |||
| 23a0bb3ce0 | |||
| 4cd5256267 | |||
| 5362e07a5c | |||
| 936bd327bd | |||
| db89619a4a | |||
| b5ce7325fc | |||
| ccaeb089ab | |||
| 3240ba3a55 | |||
| bb7be66efe | |||
| 8814a0d949 | |||
| 9aa488223f | |||
| 30d9233365 | |||
| 3ac540c687 | |||
| 8d561ead21 | |||
| 15b650382e | |||
| 110a40592b | |||
| d0ce4ff032 | |||
| 85c9a9050a | |||
| af42d5b671 | |||
| 9580bb0a38 | |||
| 9abb167874 | |||
| cd13676a21 | |||
| 1dd59bee36 | |||
| 59bcbe592b | |||
| 0917e17c69 | |||
| eb249ca69a | |||
| 97d1175915 | |||
| 2141f1073e | |||
| c6287547a3 | |||
| 9257c6ddf3 | |||
| 480748e1aa | |||
| c015687951 | |||
| 1bd1e9cc65 | |||
| c4a4374465 | |||
| 90681d47f8 | |||
| 936be693ce | |||
| a32b875587 | |||
| 4e6798e38e | |||
| 6352f7baf4 | |||
| aac9725adc | |||
| 900371bb30 | |||
| a58f564d1e | |||
| 942154a61f | |||
| 7f0a7b0c13 | |||
| 37bcac40bb | |||
| 02ea99254a | |||
| 3849b46f0a | |||
| 116bd41c63 | |||
| 457ad4c607 | |||
| d0a9bd4c6d | |||
| d3bed549f2 | |||
| fe1aa016b9 | |||
| af55cb0c03 | |||
| 714eaa62a8 | |||
| 5038f49487 | |||
| 57835dc8f1 | |||
| 3439eb4536 | |||
| 929ee04814 | |||
| 9d98a779a8 | |||
| 5a23ddeaf4 | |||
| 7ae5159194 | |||
| bdf93af3db | |||
| dcc147d994 | |||
| 19b2658414 | |||
| 1c4833f3b4 | |||
| e8ca673bf8 | |||
| 5a614faee1 | |||
| af8042c5f4 | |||
| a46e7541d0 | |||
| a6890fc8dd | |||
| 0c0d7aeead | |||
| 874697f6e5 | |||
| e0d1987445 | |||
| 17400020b7 | |||
| e8e80e5d05 | |||
| f9946083dd | |||
| 453f93a84f | |||
| a8c47b5091 | |||
| 78a818eba6 | |||
| 4ca90374b9 | |||
| a5fbcffa14 | |||
| a21ec2f166 | |||
| cdfb88ea18 | |||
| 1ec45fe364 | |||
| 60b5c82da8 | |||
| f0af5743c4 | |||
| 81930a6833 | |||
| 278ee79df0 | |||
| 7f2a758400 | |||
| fc1c092cf0 | |||
| f42a8cf962 | |||
| 27db9d06e4 | |||
| 3d5cfb3c74 | |||
| df9186827c | |||
| e0137706b2 | |||
| 99bcda8709 | |||
| eddff07eb8 | |||
| 4e859a84ce | |||
| 8665dad867 | |||
| c0996ed116 | |||
| 830e651fef | |||
| acb48752ce | |||
| ba8597900a | |||
| c1f0253aa3 | |||
| d70d82c5ea | |||
| 29b9d3f902 | |||
| 1a85a9cb31 | |||
| ead6e6b2f3 | |||
| 03b1eb4bd5 | |||
| 5c870ca8ea | |||
| 965de16de1 | |||
| a210ef3136 | |||
| beaa86389d | |||
| 4fbb87b5b7 | |||
| 76d1382d9a | |||
| 79a142c1be | |||
| dd66e22443 | |||
| c77809fa90 | |||
| 9f7bb69341 | |||
| b58faf4fd1 | |||
| dbeb2b5330 | |||
| 9574a19ec2 | |||
| 73bb7873e1 | |||
| 475c54213d | |||
| 8d6f1341f1 | |||
| 80d0ba31ca | |||
| c7bfede74c | |||
| c902d17f98 | |||
| 6c31d656dd | |||
| 34e8d5ac57 | |||
| d636f37132 | |||
| 150a21bfa3 | |||
| 5b61c8ac18 | |||
| d72d4c4c41 | |||
| 5a1464c069 | |||
| c2ec09f079 | |||
| 8a8817f8d3 | |||
| a5368b7ea9 | |||
| d8a75d599d | |||
| f92e2bae4a | |||
| 19d15cb3e5 | |||
| b66e0e7e32 | |||
| 4a1f39f4be | |||
| a17d3e1b47 | |||
| f580128366 | |||
| 18252712a5 | |||
| ed5f5adc9b | |||
| 4c30aa9f13 | |||
| 3cdf17ccaa | |||
| a8dbfd812d | |||
| ff3890cc12 | |||
| 9c196bd2d5 | |||
| 4508aa7c35 | |||
| f15a629731 | |||
| 857fda42c8 | |||
| a5eb823a17 | |||
| 31435128f4 | |||
| 6656077edc | |||
| 9974f6edf1 | |||
| 6715a89a25 | |||
| 23b4a9b191 | |||
| 666cdeae6b | |||
| 5d7ac81c4b | |||
| 93856ed8cf | |||
| 84fd1a9140 | |||
| 9949e5e3a5 | |||
| c0a44c7fc3 | |||
| d9df1ec39e | |||
| abcd599ad8 | |||
| 8a3d0dde91 | |||
| 0f3de6c979 | |||
| c089d6cd43 | |||
| cfcb9a8cdb | |||
| 83479d11b7 | |||
| 73b8f11b5a | |||
| 4593014d00 | |||
| 2cf5d57454 | |||
| 048d859881 | |||
| 1df28c6564 | |||
| f59e937006 | |||
| 5948b46ac7 | |||
| 75b232bfdc | |||
| 9e6594cc0b | |||
| 7f85b61e89 | |||
| 1a32bc8232 | |||
| e603162ee7 | |||
| 08eca5d844 | |||
| 1d1dbcf9cd | |||
| e6b107fa78 | |||
| 284cca3e25 | |||
| 1e0b0d926a | |||
| cb86be578b | |||
| b8bb2b78bd | |||
| 6fceb25121 | |||
| 0484047b4e | |||
| b9a10653f1 | |||
| 42a5504f0d | |||
| ae784db80d | |||
| f5cbf64ccf | |||
| cecf16c595 | |||
| fb4c9d3bf1 | |||
| b5aa46bb67 | |||
| 2dc68ed053 | |||
| 58d818923d | |||
| f4a6cd9c68 | |||
| ed04535537 | |||
| 7d4de3d4cb | |||
| bc7cc306cb | |||
| 5fa07e7094 | |||
| 2b069fa63f | |||
| 99848f98d3 | |||
| 967e9dd9a7 | |||
| 4a720289e2 | |||
| 86d58e97cf | |||
| bc6b7d15f1 | |||
| 37f3b1f1ba | |||
| 262012887c |
@@ -0,0 +1,17 @@
|
||||
name: Android CI
|
||||
|
||||
on: [push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew qa
|
||||
@@ -1,4 +1,5 @@
|
||||
.classpath
|
||||
captures/
|
||||
project.properties
|
||||
.project
|
||||
.settings
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.thoughtcrime.securesms">
|
||||
|
||||
<uses-sdk tools:overrideLibrary="com.amulyakhare.textdrawable,com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat,android.support.v13,com.davemorrissey.labs.subscaleview,com.tomergoldst.tooltips,com.klinker.android.send_message,com.takisoft.colorpicker,android.support.v14.preference"/>
|
||||
<uses-sdk tools:overrideLibrary="androidx.camera.core,androidx.camera.camera2"/>
|
||||
|
||||
<permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"
|
||||
android:label="Access to TextSecure Secrets"
|
||||
@@ -27,6 +27,7 @@
|
||||
tools:ignore="ProtectedPermissions"/>
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
|
||||
|
||||
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
|
||||
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
|
||||
@@ -58,6 +59,7 @@
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||
|
||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||
@@ -86,6 +88,7 @@
|
||||
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
||||
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
|
||||
|
||||
<application android:name=".ApplicationContext"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
@@ -111,22 +114,20 @@
|
||||
<meta-data android:name="firebase_messaging_auto_init_enabled" android:value="false" />
|
||||
|
||||
<activity android:name="org.thoughtcrime.securesms.WebRtcCallActivity"
|
||||
android:theme="@style/TextSecure.LightTheme.WebRTCCall"
|
||||
android:excludeFromRecents="true"
|
||||
android:screenOrientation="portrait"
|
||||
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|screenSize|fontScale"
|
||||
android:launchMode="singleTask"/>
|
||||
|
||||
<activity android:name=".CountrySelectionActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".InviteActivity"
|
||||
android:theme="@style/TextSecure.HighlightTheme"
|
||||
android:theme="@style/Signal.Light.NoActionBar.Invite"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:parentActivityName=".ConversationListActivity"
|
||||
android:parentActivityName=".MainActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="org.thoughtcrime.securesms.ConversationListActivity" />
|
||||
android:value="org.thoughtcrime.securesms.MainActivity" />
|
||||
</activity>
|
||||
|
||||
<activity android:name=".PromptMmsActivity"
|
||||
@@ -189,16 +190,8 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
|
||||
<activity android:name=".ConversationListActivity"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:exported="true" />
|
||||
|
||||
<activity-alias android:name=".RoutingActivity"
|
||||
android:targetActivity=".ConversationListActivity"
|
||||
android:targetActivity=".MainActivity"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
@@ -214,24 +207,14 @@
|
||||
|
||||
</activity-alias>
|
||||
|
||||
<activity android:name=".ConversationListArchiveActivity"
|
||||
android:label="@string/AndroidManifest_archived_conversations"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:parentActivityName=".ConversationListActivity">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="org.thoughtcrime.securesms.ConversationListActivity" />
|
||||
</activity>
|
||||
|
||||
<activity android:name=".conversation.ConversationActivity"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:parentActivityName=".ConversationListActivity">
|
||||
android:parentActivityName=".MainActivity">
|
||||
<meta-data
|
||||
android:name="android.support.PARENT_ACTIVITY"
|
||||
android:value="org.thoughtcrime.securesms.ConversationListActivity" />
|
||||
android:value="org.thoughtcrime.securesms.MainActivity" />
|
||||
</activity>
|
||||
|
||||
<activity android:name=".longmessage.LongMessageActivity" />
|
||||
@@ -259,7 +242,7 @@
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".DatabaseUpgradeActivity"
|
||||
<activity android:name=".migrations.ApplicationMigrationActivity"
|
||||
android:theme="@style/NoAnimation.Theme.AppCompat.Light.DarkActionBar"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
@@ -296,10 +279,11 @@
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".mediasend.MediaSendActivity"
|
||||
android:theme="@style/TextSecure.DarkNoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
<activity android:name=".mediasend.MediaSendActivity"
|
||||
android:theme="@style/TextSecure.FullScreenMedia"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:launchMode="singleTop"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".PassphraseChangeActivity"
|
||||
android:label="@string/AndroidManifest__change_passphrase"
|
||||
@@ -316,22 +300,17 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".registration.WelcomeActivity"
|
||||
<activity android:name=".registration.RegistrationNavigationActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightRegistrationTheme"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".RegistrationActivity"
|
||||
<activity android:name=".revealable.ViewOnceMessageActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightRegistrationTheme"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".registration.CaptchaActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:theme="@style/TextSecure.FullScreenMedia"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:excludeFromRecents="true"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".stickers.StickerManagementActivity"
|
||||
@@ -355,10 +334,9 @@
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".MediaOverviewActivity"
|
||||
<activity android:name=".mediaoverview.MediaOverviewActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".DummyActivity"
|
||||
@@ -420,6 +398,10 @@
|
||||
android:theme="@style/TextSecure.DarkTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".scribbles.NewStickerSelectActivity"
|
||||
android:theme="@style/TextSecure.DarkTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
|
||||
android:theme="@style/TextSecure.DarkTheme"/>
|
||||
|
||||
@@ -457,6 +439,22 @@
|
||||
android:exported="true"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity
|
||||
android:name=".maps.PlacePickerActivity"
|
||||
android:label="@string/PlacePickerActivity_title"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity
|
||||
android:name=".usernames.ProfileEditActivityV2"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="adjustResize"/>
|
||||
|
||||
<activity android:name=".MainActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize" />
|
||||
|
||||
<service android:enabled="true" android:name="org.thoughtcrime.securesms.service.WebRtcCallService"/>
|
||||
<service android:enabled="true" android:name=".service.ApplicationMigrationService"/>
|
||||
<service android:enabled="true" android:exported="false" android:name=".service.KeyCachingService"/>
|
||||
@@ -570,6 +568,8 @@
|
||||
|
||||
<receiver android:name=".service.ExpirationListener" />
|
||||
|
||||
<receiver android:name=".revealable.ViewOnceMessageManager$ViewOnceAlarm" />
|
||||
|
||||
<provider android:name=".providers.PartProvider"
|
||||
android:grantUriPermissions="true"
|
||||
android:exported="false"
|
||||
@@ -580,7 +580,7 @@
|
||||
android:exported="false"
|
||||
android:authorities="org.thoughtcrime.provider.securesms.mms" />
|
||||
|
||||
<provider android:name="android.support.v4.content.FileProvider"
|
||||
<provider android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="org.thoughtcrime.securesms.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
@@ -609,6 +609,11 @@
|
||||
android:authorities="org.thoughtcrime.securesms.database.stickerpack"
|
||||
android:exported="false" />
|
||||
|
||||
<provider android:name="androidx.camera.camera2.impl.Camera2Initializer"
|
||||
android:authorities="${applicationId}.camerax-init"
|
||||
android:exported="false"
|
||||
android:enabled="false" />
|
||||
|
||||
<receiver android:name=".service.BootReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED"/>
|
||||
@@ -683,6 +688,12 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<service
|
||||
android:name=".gcm.FcmJobService"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"
|
||||
android:enabled="@bool/enable_job_service"
|
||||
tools:targetApi="26" />
|
||||
|
||||
<service
|
||||
android:name=".jobmanager.JobSchedulerScheduler$SystemService"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"
|
||||
@@ -706,6 +717,8 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
|
||||
|
||||
<uses-library android:name="com.sec.android.app.multiwindow" android:required="false"/>
|
||||
<meta-data android:name="com.sec.android.support.multiwindow" android:value="true" />
|
||||
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_W" android:value="632.0dip" />
|
||||
|
||||
@@ -0,0 +1,462 @@
|
||||
import org.signal.signing.ApkSignerUtil
|
||||
|
||||
import java.security.MessageDigest
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
google()
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2"
|
||||
}
|
||||
jcenter {
|
||||
content {
|
||||
includeVersion 'org.jetbrains.trove4j', 'trove4j', '20160824'
|
||||
}
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.1'
|
||||
classpath 'androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0'
|
||||
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
|
||||
}
|
||||
}
|
||||
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'com.google.protobuf'
|
||||
apply plugin: 'androidx.navigation.safeargs'
|
||||
apply plugin: 'witness'
|
||||
apply from: 'translations.gradle'
|
||||
apply from: 'witness-verifications.gradle'
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/photoview/releases/"
|
||||
content {
|
||||
includeGroupByRegex "com\\.github\\.chrisbanes.*"
|
||||
}
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/shortcutbadger/releases/"
|
||||
content {
|
||||
includeGroupByRegex "me\\.leolin.*"
|
||||
}
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/circular-progress-button/releases/"
|
||||
content {
|
||||
includeGroupByRegex "com\\.github\\.dmytrodanylyk\\.circular-progress-button\\.*"
|
||||
}
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/sqlcipher/release/"
|
||||
content {
|
||||
includeGroupByRegex "org\\.signal.*"
|
||||
}
|
||||
}
|
||||
maven { // textdrawable
|
||||
url 'https://dl.bintray.com/amulyakhare/maven'
|
||||
content {
|
||||
includeGroupByRegex "com\\.amulyakhare.*"
|
||||
}
|
||||
}
|
||||
google()
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
mavenLocal()
|
||||
}
|
||||
|
||||
protobuf {
|
||||
protoc {
|
||||
artifact = 'com.google.protobuf:protoc:3.10.0'
|
||||
}
|
||||
generateProtoTasks {
|
||||
all().each { task ->
|
||||
task.builtins {
|
||||
java {
|
||||
option "lite"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.0.0'
|
||||
implementation 'androidx.legacy:legacy-support-v13:1.0.0'
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.preference:preference:1.0.0'
|
||||
implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
|
||||
implementation 'androidx.gridlayout:gridlayout:1.0.0'
|
||||
implementation 'androidx.exifinterface:exifinterface:1.0.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||
implementation 'androidx.multidex:multidex:2.0.1'
|
||||
implementation 'androidx.navigation:navigation-fragment:2.1.0'
|
||||
implementation 'androidx.navigation:navigation-ui:2.1.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
|
||||
implementation 'androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05'
|
||||
implementation 'androidx.lifecycle:lifecycle-common-java8:2.1.0'
|
||||
implementation "androidx.camera:camera-core:1.0.0-alpha06"
|
||||
implementation "androidx.camera:camera-camera2:1.0.0-alpha06"
|
||||
|
||||
implementation('com.google.firebase:firebase-messaging:17.3.4') {
|
||||
exclude group: 'com.google.firebase', module: 'firebase-core'
|
||||
exclude group: 'com.google.firebase', module: 'firebase-analytics'
|
||||
exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
|
||||
}
|
||||
|
||||
implementation 'com.google.android.gms:play-services-maps:16.1.0'
|
||||
implementation 'com.google.android.gms:play-services-auth:16.0.1'
|
||||
|
||||
implementation 'com.google.android.exoplayer:exoplayer-core:2.9.1'
|
||||
implementation 'com.google.android.exoplayer:exoplayer-ui:2.9.1'
|
||||
|
||||
implementation 'org.conscrypt:conscrypt-android:2.0.0'
|
||||
implementation 'org.signal:aesgcmprovider:0.0.3'
|
||||
|
||||
implementation project(':libsignal-service')
|
||||
|
||||
implementation 'org.signal:ringrtc-android:0.2.0'
|
||||
|
||||
implementation "me.leolin:ShortcutBadger:1.1.16"
|
||||
implementation 'se.emilsjolander:stickylistheaders:2.7.0'
|
||||
implementation 'com.jpardogo.materialtabstrip:library:1.0.9'
|
||||
implementation 'org.apache.httpcomponents:httpclient-android:4.3.5'
|
||||
implementation 'com.github.chrisbanes:PhotoView:2.1.3'
|
||||
implementation 'com.github.bumptech.glide:glide:4.9.0'
|
||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
|
||||
annotationProcessor 'androidx.annotation:annotation:1.1.0'
|
||||
implementation 'com.makeramen:roundedimageview:2.1.0'
|
||||
implementation 'com.pnikosis:materialish-progress:1.5'
|
||||
implementation 'org.greenrobot:eventbus:3.0.0'
|
||||
implementation 'pl.tajchert:waitingdots:0.1.0'
|
||||
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
|
||||
implementation 'com.melnykov:floatingactionbutton:1.3.0'
|
||||
implementation 'com.google.zxing:android-integration:3.1.0'
|
||||
implementation 'mobi.upod:time-duration-picker:1.1.3'
|
||||
implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
||||
implementation 'com.google.zxing:core:3.2.1'
|
||||
implementation ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') {
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
}
|
||||
implementation ('cn.carbswang.android:NumberPickerView:1.0.9') {
|
||||
exclude group: 'com.android.support', module: 'appcompat-v7'
|
||||
}
|
||||
implementation ('com.tomergoldst.android:tooltips:1.0.6') {
|
||||
exclude group: 'com.android.support', module: 'appcompat-v7'
|
||||
}
|
||||
implementation ('com.klinkerapps:android-smsmms:4.0.1') {
|
||||
exclude group: 'com.squareup.okhttp', module: 'okhttp'
|
||||
exclude group: 'com.squareup.okhttp', module: 'okhttp-urlconnection'
|
||||
}
|
||||
implementation 'com.annimon:stream:1.1.8'
|
||||
implementation ('com.takisoft.fix:colorpicker:0.9.1') {
|
||||
exclude group: 'com.android.support', module: 'appcompat-v7'
|
||||
exclude group: 'com.android.support', module: 'recyclerview-v7'
|
||||
}
|
||||
|
||||
implementation 'com.airbnb.android:lottie:3.0.7'
|
||||
|
||||
implementation 'com.codewaves.stickyheadergrid:stickyheadergrid:0.9.4'
|
||||
implementation 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3-S2'
|
||||
implementation 'org.signal:android-database-sqlcipher:3.5.9-S3'
|
||||
implementation ('com.googlecode.ez-vcard:ez-vcard:0.9.11') {
|
||||
exclude group: 'com.fasterxml.jackson.core'
|
||||
exclude group: 'org.freemarker'
|
||||
}
|
||||
|
||||
testImplementation 'junit:junit:4.12'
|
||||
testImplementation 'org.assertj:assertj-core:3.11.1'
|
||||
testImplementation 'org.mockito:mockito-core:1.9.5'
|
||||
testImplementation 'org.powermock:powermock-api-mockito:1.6.1'
|
||||
testImplementation 'org.powermock:powermock-module-junit4:1.6.1'
|
||||
testImplementation 'org.powermock:powermock-module-junit4-rule:1.6.1'
|
||||
testImplementation 'org.powermock:powermock-classloading-xstream:1.6.1'
|
||||
|
||||
testImplementation 'androidx.test:core:1.2.0'
|
||||
androidTestImplementation 'androidx.multidex:multidex:2.0.1'
|
||||
androidTestImplementation 'androidx.multidex:multidex-instrumentation:2.0.0'
|
||||
androidTestImplementation 'com.google.dexmaker:dexmaker:1.2'
|
||||
androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
|
||||
androidTestImplementation ('org.assertj:assertj-core:1.7.1') {
|
||||
exclude group: 'org.hamcrest', module: 'hamcrest-core'
|
||||
}
|
||||
androidTestImplementation ('com.squareup.assertj:assertj-android:1.1.1') {
|
||||
exclude group: 'org.hamcrest', module: 'hamcrest-core'
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
}
|
||||
testImplementation 'org.robolectric:robolectric:4.2'
|
||||
testImplementation 'org.robolectric:shadows-multidex:4.2'
|
||||
}
|
||||
|
||||
dependencyVerification {
|
||||
configuration = '(play|website)(Debug|Release)RuntimeClasspath'
|
||||
}
|
||||
|
||||
def canonicalVersionCode = 575
|
||||
def canonicalVersionName = "4.51.2"
|
||||
|
||||
def postFixSize = 10
|
||||
def abiPostFix = ['universal' : 0,
|
||||
'armeabi-v7a' : 1,
|
||||
'arm64-v8a' : 2,
|
||||
'x86' : 3,
|
||||
'x86_64' : 4]
|
||||
|
||||
android {
|
||||
flavorDimensions "none"
|
||||
compileSdkVersion 28
|
||||
buildToolsVersion '28.0.3'
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
dexOptions {
|
||||
javaMaxHeapSize "4g"
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
versionCode canonicalVersionCode * postFixSize
|
||||
versionName canonicalVersionName
|
||||
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 28
|
||||
multiDexEnabled true
|
||||
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
project.ext.set("archivesBaseName", "Signal");
|
||||
|
||||
buildConfigField "long", "BUILD_TIMESTAMP", getLastCommitTimestamp() + "L"
|
||||
buildConfigField "String", "SIGNAL_URL", "\"https://textsecure-service.whispersystems.org\""
|
||||
buildConfigField "String", "STORAGE_URL", "\"https://storage.signal.org\""
|
||||
buildConfigField "String", "SIGNAL_CDN_URL", "\"https://cdn.signal.org\""
|
||||
buildConfigField "String", "SIGNAL_CONTACT_DISCOVERY_URL", "\"https://api.directory.signal.org\""
|
||||
buildConfigField "String", "SIGNAL_SERVICE_STATUS_URL", "\"uptime.signal.org\""
|
||||
buildConfigField "String", "SIGNAL_KEY_BACKUP_URL", "\"https://api.backup.signal.org\""
|
||||
buildConfigField "String", "CONTENT_PROXY_HOST", "\"contentproxy.signal.org\""
|
||||
buildConfigField "int", "CONTENT_PROXY_PORT", "443"
|
||||
buildConfigField "String", "USER_AGENT", "\"OWA\""
|
||||
buildConfigField "boolean", "DEV_BUILD", "false"
|
||||
buildConfigField "String", "MRENCLAVE", "\"cd6cfc342937b23b1bdd3bbf9721aa5615ac9ff50a75c5527d441cd3276826c9\""
|
||||
buildConfigField "String", "KEY_BACKUP_ENCLAVE_NAME", "\"f2e2a5004794a6c1bac5c4949eadbc243dd02e02d1a93f10fe24584fb70815d8\""
|
||||
buildConfigField "String", "KEY_BACKUP_MRENCLAVE", "\"f51f435802ada769e67aaf5744372bb7e7d519eecf996d335eb5b46b872b5789\""
|
||||
buildConfigField "String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\""
|
||||
buildConfigField "String[]", "LANGUAGES", "new String[]{\"" + autoResConfig().collect { s -> s.replace('-r', '_') }.join('", "') + '"}'
|
||||
buildConfigField "int", "CANONICAL_VERSION_CODE", "$canonicalVersionCode"
|
||||
|
||||
ndk {
|
||||
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
}
|
||||
|
||||
resConfigs autoResConfig()
|
||||
|
||||
splits {
|
||||
abi {
|
||||
enable true
|
||||
reset()
|
||||
include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
universalApk true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
exclude 'LICENSE.txt'
|
||||
exclude 'LICENSE'
|
||||
exclude 'NOTICE'
|
||||
exclude 'asm-license.txt'
|
||||
exclude 'META-INF/LICENSE'
|
||||
exclude 'META-INF/NOTICE'
|
||||
exclude 'META-INF/proguard/androidx-annotations.pro'
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'),
|
||||
'proguard/proguard-firebase-messaging.pro',
|
||||
'proguard/proguard-google-play-services.pro',
|
||||
'proguard/proguard-jackson.pro',
|
||||
'proguard/proguard-sqlite.pro',
|
||||
'proguard/proguard-appcompat-v7.pro',
|
||||
'proguard/proguard-square-okhttp.pro',
|
||||
'proguard/proguard-square-okio.pro',
|
||||
'proguard/proguard-spongycastle.pro',
|
||||
'proguard/proguard-rounded-image-view.pro',
|
||||
'proguard/proguard-glide.pro',
|
||||
'proguard/proguard-shortcutbadger.pro',
|
||||
'proguard/proguard-retrofit.pro',
|
||||
'proguard/proguard-webrtc.pro',
|
||||
'proguard/proguard-klinker.pro',
|
||||
'proguard/proguard-retrolambda.pro',
|
||||
'proguard/proguard-okhttp.pro',
|
||||
'proguard/proguard-ez-vcard.pro',
|
||||
'proguard/proguard.cfg'
|
||||
testProguardFiles 'proguard/proguard-automation.pro',
|
||||
'proguard/proguard.cfg'
|
||||
}
|
||||
staging {
|
||||
initWith debug
|
||||
|
||||
buildConfigField "String", "SIGNAL_URL", "\"https://textsecure-service-staging.whispersystems.org\""
|
||||
buildConfigField "String", "STORAGE_URL", "\"https://storage-staging.signal.org\""
|
||||
buildConfigField "String", "SIGNAL_CDN_URL", "\"https://cdn-staging.signal.org\""
|
||||
buildConfigField "String", "SIGNAL_CONTACT_DISCOVERY_URL", "\"https://api-staging.directory.signal.org\""
|
||||
buildConfigField "String", "SIGNAL_KEY_BACKUP_URL", "\"https://api-staging.backup.signal.org\""
|
||||
buildConfigField "String", "MRENCLAVE", "\"ba4ebb438bc07713819ee6c98d94037747006d7df63fc9e44d2d6f1fec962a79\""
|
||||
buildConfigField "String", "KEY_BACKUP_ENCLAVE_NAME", "\"b5a865941f95887018c86725cc92308d34a3084dc2b4e7bd2de5e5e1690b50c6\""
|
||||
buildConfigField "String", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BbqY1DzohE4NUZoVF+L18oUPrK3kILllLEJh2UnPSsEx\""
|
||||
}
|
||||
release {
|
||||
minifyEnabled true
|
||||
proguardFiles = buildTypes.debug.proguardFiles
|
||||
}
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
play {
|
||||
dimension "none"
|
||||
ext.websiteUpdateUrl = "null"
|
||||
buildConfigField "boolean", "PLAY_STORE_DISABLED", "false"
|
||||
buildConfigField "String", "NOPLAY_UPDATE_URL", "$ext.websiteUpdateUrl"
|
||||
}
|
||||
|
||||
website {
|
||||
dimension "none"
|
||||
ext.websiteUpdateUrl = "https://updates.signal.org/android"
|
||||
buildConfigField "boolean", "PLAY_STORE_DISABLED", "true"
|
||||
buildConfigField "String", "NOPLAY_UPDATE_URL", "\"$ext.websiteUpdateUrl\""
|
||||
}
|
||||
}
|
||||
|
||||
android.applicationVariants.all { variant ->
|
||||
variant.outputs.each { output ->
|
||||
output.outputFileName = output.outputFileName.replace(".apk", "-${variant.versionName}.apk")
|
||||
def abiName = output.getFilter("ABI") ?: 'universal'
|
||||
def postFix = abiPostFix.get(abiName, 0)
|
||||
|
||||
if (postFix >= postFixSize) throw new AssertionError("postFix is too large")
|
||||
|
||||
output.versionCodeOverride = canonicalVersionCode * postFixSize + postFix
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
manifest.srcFile '../AndroidManifest.xml'
|
||||
java.srcDirs = ['../src']
|
||||
resources.srcDirs = ['../src']
|
||||
aidl.srcDirs = ['../src']
|
||||
renderscript.srcDirs = ['../src']
|
||||
res.srcDirs = ['../res']
|
||||
assets.srcDirs = ['../assets']
|
||||
jniLibs.srcDirs = ['../libs']
|
||||
proto.srcDir '../protobuf'
|
||||
}
|
||||
androidTest {
|
||||
java.srcDirs = ['../test/androidTest/java']
|
||||
}
|
||||
test {
|
||||
java.srcDirs = ['../test/unitTest/java']
|
||||
resources.srcDirs = ['../test/unitTest/resources']
|
||||
}
|
||||
staging {
|
||||
res.srcDirs = ['../staging/res']
|
||||
}
|
||||
|
||||
website.manifest.srcFile '../website/AndroidManifest.xml'
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError true
|
||||
baseline file("lint-baseline.xml")
|
||||
disable "LintError"
|
||||
}
|
||||
|
||||
testOptions {
|
||||
unitTests {
|
||||
includeAndroidResources = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def assembleWebsiteDescriptor = { variant, file ->
|
||||
if (file.exists()) {
|
||||
MessageDigest md = MessageDigest.getInstance("SHA-256");
|
||||
file.eachByte 4096, {bytes, size ->
|
||||
md.update(bytes, 0, size);
|
||||
}
|
||||
|
||||
String digest = md.digest().collect {String.format "%02x", it}.join();
|
||||
String url = variant.productFlavors.get(0).ext.websiteUpdateUrl
|
||||
String apkName = file.getName()
|
||||
|
||||
String descriptor = "{" +
|
||||
"\"versionCode\" : ${canonicalVersionCode * postFixSize + abiPostFix['universal']}," +
|
||||
"\"versionName\" : \"$canonicalVersionName\"," +
|
||||
"\"sha256sum\" : \"$digest\"," +
|
||||
"\"url\" : \"$url/$apkName\"" +
|
||||
"}"
|
||||
|
||||
File descriptorFile = new File(file.getParent(), apkName.replace(".apk", ".json"))
|
||||
|
||||
descriptorFile.write(descriptor)
|
||||
}
|
||||
}
|
||||
|
||||
def signProductionRelease = { variant ->
|
||||
variant.outputs.collect { output ->
|
||||
String apkName = output.outputFile.name
|
||||
File inputFile = new File(output.outputFile.path)
|
||||
File outputFile = new File(output.outputFile.parent, apkName.replace('-unsigned', ''))
|
||||
|
||||
new ApkSignerUtil('sun.security.pkcs11.SunPKCS11',
|
||||
'pkcs11.config',
|
||||
'PKCS11',
|
||||
'file:pkcs11.password').calculateSignature(inputFile.getAbsolutePath(),
|
||||
outputFile.getAbsolutePath())
|
||||
|
||||
inputFile.delete()
|
||||
outputFile
|
||||
}
|
||||
}
|
||||
|
||||
task signProductionPlayRelease {
|
||||
doLast {
|
||||
signProductionRelease(android.applicationVariants.find { (it.name == 'playRelease') })
|
||||
}
|
||||
}
|
||||
|
||||
task signProductionWebsiteRelease {
|
||||
doLast {
|
||||
def variant = android.applicationVariants.find { (it.name == 'websiteRelease') }
|
||||
File signedRelease = signProductionRelease(variant).find { it.name.contains('universal') }
|
||||
assembleWebsiteDescriptor(variant, signedRelease)
|
||||
}
|
||||
}
|
||||
|
||||
tasks.whenTaskAdded { task ->
|
||||
if (task.name.equals("assemblePlayRelease")) {
|
||||
task.finalizedBy signProductionPlayRelease
|
||||
}
|
||||
|
||||
if (task.name.equals("assembleWebsiteRelease")) {
|
||||
task.finalizedBy signProductionWebsiteRelease
|
||||
}
|
||||
}
|
||||
|
||||
def getLastCommitTimestamp() {
|
||||
new ByteArrayOutputStream().withStream { os ->
|
||||
def result = exec {
|
||||
executable = 'git'
|
||||
args = ['log', '-1', '--pretty=format:%ct']
|
||||
standardOutput = os
|
||||
}
|
||||
|
||||
return os.toString() + "000"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<issues format="5" by="lint 3.3.2" client="gradle" variant="playRelease" version="3.3.2">
|
||||
|
||||
<issue
|
||||
id="MissingPermission"
|
||||
message="Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with `checkPermission`) or explicitly handle a potential `SecurityException`"
|
||||
errorLine1=" List<SubscriptionInfo> list = subscriptionManager.getActiveSubscriptionInfoList();"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/org/thoughtcrime/securesms/util/dualsim/SubscriptionManagerCompat.java"
|
||||
line="101"
|
||||
column="35"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="ResourceType"
|
||||
message="Expected resource of type styleable"
|
||||
errorLine1=" drawables.getColor(1, 0xff000000);"
|
||||
errorLine2=" ~">
|
||||
<location
|
||||
file="src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java"
|
||||
line="187"
|
||||
column="36"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="AppLinkUrlError"
|
||||
message="Missing URL"
|
||||
errorLine1=" <intent-filter>"
|
||||
errorLine2=" ^">
|
||||
<location
|
||||
file="AndroidManifest.xml"
|
||||
line="368"
|
||||
column="9"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="AppLinkUrlError"
|
||||
message="Missing URL"
|
||||
errorLine1=" <intent-filter>"
|
||||
errorLine2=" ^">
|
||||
<location
|
||||
file="AndroidManifest.xml"
|
||||
line="381"
|
||||
column="9"/>
|
||||
</issue>
|
||||
|
||||
</issues>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<lint>
|
||||
|
||||
<!-- L10N errors -->
|
||||
<!-- This is a runtime crash so we don't want to ship with this. -->
|
||||
<issue id="StringFormatMatches" severity="error" />
|
||||
|
||||
<!-- L10N warnings -->
|
||||
<issue id="MissingTranslation" severity="warning" />
|
||||
<issue id="MissingQuantity" severity="warning" />
|
||||
<issue id="ExtraTranslation" severity="warning" />
|
||||
<issue id="ImpliedQuantity" severity="warning" />
|
||||
|
||||
<issue id="CanvasSize" severity="error" />
|
||||
<issue id="HardcodedText" severity="error" />
|
||||
<issue id="VectorRaster" severity="error" />
|
||||
<issue id="ButtonOrder" severity="error" />
|
||||
<issue id="ExtraTranslation" severity="warning" />
|
||||
|
||||
<issue id="RestrictedApi" severity="error">
|
||||
<ignore path="*/org/thoughtcrime/securesms/mediasend/camerax/VideoCapture.java" />
|
||||
<ignore path="*/org/thoughtcrime/securesms/mediasend/camerax/CameraXModule.java" />
|
||||
</issue>
|
||||
|
||||
</lint>
|
||||
@@ -0,0 +1,11 @@
|
||||
-dontoptimize
|
||||
-dontobfuscate
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
-keep class org.whispersystems.** { *; }
|
||||
-keep class org.thoughtcrime.securesms.** { *; }
|
||||
-keepclassmembers class ** {
|
||||
public void onEvent*(**);
|
||||
}
|
||||
|
||||
# Protobuf lite
|
||||
-keep class * extends com.google.protobuf.GeneratedMessageLite { *; }
|
||||
@@ -0,0 +1,108 @@
|
||||
import groovy.io.FileType
|
||||
import groovy.transform.stc.ClosureParams
|
||||
import groovy.transform.stc.SimpleType
|
||||
|
||||
ext {
|
||||
autoResConfig = this.&autoResConfig
|
||||
}
|
||||
|
||||
def allStringsResourceFiles(@ClosureParams(value = SimpleType.class, options = ['java.io.File']) Closure c) {
|
||||
file('../res').eachFileRecurse(FileType.FILES) { f ->
|
||||
if (f.name == 'strings.xml') {
|
||||
c(f)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Discovers supported languages listed as under the res/values- directory.
|
||||
*/
|
||||
def autoResConfig() {
|
||||
def files = []
|
||||
allStringsResourceFiles { f ->
|
||||
files.add(f.parentFile.name)
|
||||
}
|
||||
['en'] + files.collect { f -> f =~ /^values-([a-z]{2}(-r[A-Z]{2})?)$/ }
|
||||
.findAll { matcher -> matcher.find() }
|
||||
.collect { matcher -> matcher.group(1) }
|
||||
.sort()
|
||||
}
|
||||
|
||||
task pullTranslations(type: Exec) {
|
||||
group 'Translate'
|
||||
description 'Pull translations, requires transifex client and api key.'
|
||||
commandLine 'tx', 'pull', '-a', '--minimum-perc=80', '--force'
|
||||
}
|
||||
|
||||
task replaceEllipsis {
|
||||
group 'Translate'
|
||||
description 'Process strings for ellipsis characters.'
|
||||
doLast {
|
||||
allStringsResourceFiles { f ->
|
||||
def before = f.text
|
||||
def after = f.text.replace('...', '…')
|
||||
if (before != after) {
|
||||
f.text = after
|
||||
logger.info("$f.parentFile.name/$f.name...updated")
|
||||
}
|
||||
}
|
||||
}
|
||||
mustRunAfter pullTranslations
|
||||
}
|
||||
|
||||
task cleanApostropheErrors {
|
||||
group 'Translate'
|
||||
description 'Fix transifex apostrophe string errors.'
|
||||
doLast {
|
||||
allStringsResourceFiles { f ->
|
||||
def before = f.text
|
||||
def after = before.replaceAll(/([^\\=08])(')/, '$1\\\\\'')
|
||||
if (before != after) {
|
||||
f.text = after
|
||||
logger.info("$f.parentFile.name/$f.name...updated")
|
||||
}
|
||||
}
|
||||
}
|
||||
mustRunAfter replaceEllipsis
|
||||
}
|
||||
|
||||
task excludeNonTranslatables {
|
||||
group 'Translate'
|
||||
description 'Remove strings that are marked "translatable"="false" or are ExtraTranslations.'
|
||||
doLast {
|
||||
def englishFile = file('../res/values/strings.xml')
|
||||
|
||||
def english = new XmlParser().parse(englishFile)
|
||||
def nonTranslatable = english
|
||||
.findAll { it['@translatable'] == 'false' }
|
||||
.collect { it['@name'] }
|
||||
.toSet()
|
||||
def all = english.collect { it['@name'] }.toSet()
|
||||
def translatable = all - nonTranslatable
|
||||
|
||||
allStringsResourceFiles { f ->
|
||||
if (f != englishFile) {
|
||||
def newLines = f.readLines()
|
||||
.collect { line ->
|
||||
def matcher = line =~ /name="([^"]*)".*<\//
|
||||
if (matcher.find()) {
|
||||
def name = matcher.group(1)
|
||||
if (!line.contains('excludeNonTranslatables') && !translatable.contains(name)) {
|
||||
return " <!-- Removed by excludeNonTranslatables ${line.trim()} -->"
|
||||
}
|
||||
}
|
||||
return line
|
||||
}
|
||||
|
||||
f.write(newLines.join("\n") + "\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
mustRunAfter cleanApostropheErrors
|
||||
}
|
||||
|
||||
task translate {
|
||||
group 'Translate'
|
||||
description 'Pull translations and post-process for ellipsis, apostrophes and non-translatables.'
|
||||
dependsOn pullTranslations, replaceEllipsis, cleanApostropheErrors, excludeNonTranslatables
|
||||
}
|
||||
@@ -0,0 +1,375 @@
|
||||
// Auto-generated, use ./gradlew calculateChecksums to regenerate
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
|
||||
['androidx.activity:activity:1.0.0',
|
||||
'd1bc9842455c2e534415d88c44df4d52413b478db9093a1ba36324f705f44c3d'],
|
||||
|
||||
['androidx.annotation:annotation:1.1.0',
|
||||
'd38d63edb30f1467818d50aaf05f8a692dea8b31392a049bfa991b159ad5b692'],
|
||||
|
||||
['androidx.appcompat:appcompat-resources:1.1.0-beta01',
|
||||
'53c0a33d07c4bab48d4c8169bf30053aa14965af4a775b56092a9fc7079802b1'],
|
||||
|
||||
['androidx.appcompat:appcompat:1.1.0-beta01',
|
||||
'49ad229add44f822fcb3c8405c3fddbd72660da6a839ce29e13158f5980514fd'],
|
||||
|
||||
['androidx.arch.core:core-common:2.1.0',
|
||||
'fe1237bf029d063e7f29fe39aeaf73ef74c8b0a3658486fc29d3c54326653889'],
|
||||
|
||||
['androidx.arch.core:core-runtime:2.1.0',
|
||||
'dd77615bd3dd275afb11b62df25bae46b10b4a117cd37943af45bdcbf8755852'],
|
||||
|
||||
['androidx.asynclayoutinflater:asynclayoutinflater:1.0.0',
|
||||
'f7eab60c57addd94bb06275832fe7600611beaaae1a1ec597c231956faf96c8b'],
|
||||
|
||||
['androidx.camera:camera-camera2:1.0.0-alpha06',
|
||||
'e50f20deb950ffebcd4d1de5408ef7a5404bec80ec77119e05663c890739b903'],
|
||||
|
||||
['androidx.camera:camera-core:1.0.0-alpha06',
|
||||
'0096cabe539d9b4288f406acfb44264b137ebd600e38e33504ff425c979016c9'],
|
||||
|
||||
['androidx.cardview:cardview:1.0.0',
|
||||
'1193c04c22a3d6b5946dae9f4e8c59d6adde6a71b6bd5d87fb99d82dda1afec7'],
|
||||
|
||||
['androidx.collection:collection:1.1.0',
|
||||
'632a0e5407461de774409352940e292a291037724207a787820c77daf7d33b72'],
|
||||
|
||||
['androidx.concurrent:concurrent-futures:1.0.0-alpha03',
|
||||
'50812a53912255e3e0f2147d13bbbb81937c3726fda2e984e77a27c7207d96a1'],
|
||||
|
||||
['androidx.constraintlayout:constraintlayout-solver:1.1.3',
|
||||
'965c177e64fbd81bd1d27b402b66ef9d7bc7b5cb5f718044bf7a453abc542045'],
|
||||
|
||||
['androidx.constraintlayout:constraintlayout:1.1.3',
|
||||
'5ff864def9d41cd04e08348d69591143bae3ceff4284cf8608bceb98c36ac830'],
|
||||
|
||||
['androidx.coordinatorlayout:coordinatorlayout:1.0.0',
|
||||
'e508c695489493374d942bf7b4ee02abf7571d25aac4c622e57d6cd5cd29eb73'],
|
||||
|
||||
['androidx.core:core:1.1.0',
|
||||
'76c7cfbe596fe3c09a6983bf1c89e889299c08ac9a3b52ce5182a088d056647e'],
|
||||
|
||||
['androidx.cursoradapter:cursoradapter:1.0.0',
|
||||
'a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564'],
|
||||
|
||||
['androidx.customview:customview:1.0.0',
|
||||
'20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2'],
|
||||
|
||||
['androidx.documentfile:documentfile:1.0.0',
|
||||
'865a061ef2fad16522f8433536b8d47208c46ff7c7745197dfa1eeb481869487'],
|
||||
|
||||
['androidx.drawerlayout:drawerlayout:1.0.0',
|
||||
'9402442cdc5a43cf62fb14f8cf98c63342d4d9d9b805c8033c6cf7e802749ac1'],
|
||||
|
||||
['androidx.exifinterface:exifinterface:1.0.0',
|
||||
'ee48be10aab8f54efff4c14b77d11e10b9eeee4379d5ef6bf297a2923c55cc11'],
|
||||
|
||||
['androidx.fragment:fragment:1.1.0',
|
||||
'a14c8b8f2153f128e800fbd266a6beab1c283982a29ec570d2cc05d307d81496'],
|
||||
|
||||
['androidx.gridlayout:gridlayout:1.0.0',
|
||||
'a7e5dc6f39dbc3dc6ac6d57b02a9c6fd792e80f0e45ddb3bb08e8f03d23c8755'],
|
||||
|
||||
['androidx.interpolator:interpolator:1.0.0',
|
||||
'33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a'],
|
||||
|
||||
['androidx.legacy:legacy-preference-v14:1.0.0',
|
||||
'd6d11913e56b8f2d14fd560bd1ad6d7fd5624a15dd4ec073b2d9188205f86280'],
|
||||
|
||||
['androidx.legacy:legacy-support-core-ui:1.0.0',
|
||||
'0d1260c6e7e6a337f875df71b516931e703f716e90889817cd3a20fa5ac3d947'],
|
||||
|
||||
['androidx.legacy:legacy-support-core-utils:1.0.0',
|
||||
'a7edcf01d5b52b3034073027bc4775b78a4764bb6202bb91d61c829add8dd1c7'],
|
||||
|
||||
['androidx.legacy:legacy-support-v13:1.0.0',
|
||||
'65f5fcb57644d381d471a00fdf50f90b808be6b48a8ae57fb4ea39b7da8cca86'],
|
||||
|
||||
['androidx.legacy:legacy-support-v4:1.0.0',
|
||||
'78fec1485f0f388a4749022dd51416857127cd2544ae1c3fd0b16589055480b0'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-common-java8:2.1.0',
|
||||
'a1ec63c1bb973443cb731d78ec336c5e20e7ee35c89cbb32d36f92c55bb02542'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-common:2.2.0-alpha05',
|
||||
'63898dabf7cfe5ec5d7ed8b8c2564c1427be876e1496ead95c2703cf59d3734b'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-extensions:2.1.0',
|
||||
'bd53c64b038585215b4959c1a388437a3ad525608a31c58e4283c3e371727d4d'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-livedata-core:2.2.0-alpha05',
|
||||
'6df2bcbf3be50a5fa29e9aa09d39437f2d61d17c2c46ef618d65bbac4a4a99fc'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-livedata:2.1.0',
|
||||
'242e446bed3db36f0df0aab0cb7f91060bd2dab7adcad1117adf54e724cd1d26'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-process:2.1.0',
|
||||
'8cddd0c7f4927bbf71fb71fca000786df82cc597c99463d6916ccbe4a205a9ac'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-runtime:2.1.0',
|
||||
'e5173897b965e870651e83d9d5af1742d3f532d58863223a390ce3a194c8312b'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-service:2.1.0',
|
||||
'23516745f34f16ff7850bb1eadd55cf193dd789cba428de4bca120433e3bfd69'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05',
|
||||
'f503b53f50c4e6c1f9a3d698c4733df6e7a44049fe477ad0b85cc2f460401fbc'],
|
||||
|
||||
['androidx.lifecycle:lifecycle-viewmodel:2.2.0-alpha05',
|
||||
'7725715491963440ee483e46526cd4f83af1c758e072e97b3eab2115c6f4db35'],
|
||||
|
||||
['androidx.loader:loader:1.0.0',
|
||||
'11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025'],
|
||||
|
||||
['androidx.localbroadcastmanager:localbroadcastmanager:1.0.0',
|
||||
'e71c328ceef5c4a7d76f2d86df1b65d65fe2acf868b1a4efd84a3f34336186d8'],
|
||||
|
||||
['androidx.media:media:1.0.0',
|
||||
'b23b527b2bac870c4a7451e6982d7132e413e88d7f27dbeb1fc7640a720cd9ee'],
|
||||
|
||||
['androidx.multidex:multidex:2.0.1',
|
||||
'42dd32ff9f97f85771b82a20003a8d70f68ab7b4ba328964312ce0732693db09'],
|
||||
|
||||
['androidx.navigation:navigation-common:2.1.0',
|
||||
'f968fcaa2fd94b0d1275ce175ecfb4773678732ead9b4d81993ffd5bc3fe3c7c'],
|
||||
|
||||
['androidx.navigation:navigation-fragment:2.1.0',
|
||||
'776ba1be826f8de7cb262f55ece262c5eb9947758cbd2e902298750521404dd2'],
|
||||
|
||||
['androidx.navigation:navigation-runtime:2.1.0',
|
||||
'499029c016345a2a2130ee7a32670871757e5fc7e6d1b93be8962bb59fa5ce9d'],
|
||||
|
||||
['androidx.navigation:navigation-ui:2.1.0',
|
||||
'1ec0558d692982c5bcfcca6de5b5972723e6b4a9870aa7fc1eddf5e869f116ed'],
|
||||
|
||||
['androidx.preference:preference:1.0.0',
|
||||
'ea9fde25606eb456210ffe9f7e51048abd776b55a34c0cc6608282b5699122d1'],
|
||||
|
||||
['androidx.print:print:1.0.0',
|
||||
'1d5c7f3135a1bba661fc373fd72e11eb0a4adbb3396787826dd8e4190d5d9edd'],
|
||||
|
||||
['androidx.recyclerview:recyclerview:1.0.0',
|
||||
'06956fb1ac014027ca9d2b40469a4b42aa61b4957bb11848e1ff352701ab4548'],
|
||||
|
||||
['androidx.savedstate:savedstate:1.0.0',
|
||||
'2510a5619c37579c9ce1a04574faaf323cd0ffe2fc4e20fa8f8f01e5bb402e83'],
|
||||
|
||||
['androidx.slidingpanelayout:slidingpanelayout:1.0.0',
|
||||
'76bffb7cefbf780794d8817002dad1562f3e27c0a9f746d62401c8edb30aeede'],
|
||||
|
||||
['androidx.swiperefreshlayout:swiperefreshlayout:1.0.0',
|
||||
'9761b3a809c9b093fd06a3c4bbc645756dec0e95b5c9da419bc9f2a3f3026e8d'],
|
||||
|
||||
['androidx.transition:transition:1.0.1',
|
||||
'c374bef04f01580ba76447e759ea560079727779ff882ad55735fd445edca8b4'],
|
||||
|
||||
['androidx.vectordrawable:vectordrawable-animated:1.1.0-beta02',
|
||||
'f1613c47f1e6d2cd02ec9a42925f1a964fa63d1d028d34d884364cc3b9ffcb8f'],
|
||||
|
||||
['androidx.vectordrawable:vectordrawable:1.1.0-beta02',
|
||||
'b632152304edb506bf7eacb329ef41e43b80164bf5be4c7bb132a249a65cbc26'],
|
||||
|
||||
['androidx.versionedparcelable:versionedparcelable:1.1.0',
|
||||
'9a1d77140ac222b7866b5054ee7d159bc1800987ed2d46dd6afdd145abb710c1'],
|
||||
|
||||
['androidx.viewpager:viewpager:1.0.0',
|
||||
'147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682'],
|
||||
|
||||
['cn.carbswang.android:NumberPickerView:1.0.9',
|
||||
'18b3c316d62c7c277978a8d4ed57a5b8f4e943762264960f579a8a549c756729'],
|
||||
|
||||
['com.airbnb.android:lottie:3.0.7',
|
||||
'6819ff968eb768096133c7873d63351705fd4ac424a0917d86c4145f5035097d'],
|
||||
|
||||
['com.amulyakhare:com.amulyakhare.textdrawable:1.0.1',
|
||||
'54c92b5fba38cfd316a07e5a30528068f45ce8515a6890f1297df4c401af5dcb'],
|
||||
|
||||
['com.annimon:stream:1.1.8',
|
||||
'5da6e2e3e0551d61a3ea7014f04312276549e3dd739cf637996e4cf43c5535b9'],
|
||||
|
||||
['com.codewaves.stickyheadergrid:stickyheadergrid:0.9.4',
|
||||
'5b4aa6a52a957cfd55f60f4220c11c0c371385a3cb9786cae03c260dcdef5794'],
|
||||
|
||||
['com.davemorrissey.labs:subsampling-scale-image-view:3.6.0',
|
||||
'550c5baa07e0bb4ff0a18b705e96d34436d22619248bd8c08c08c730b1f55cfe'],
|
||||
|
||||
['com.fasterxml.jackson.core:jackson-annotations:2.9.0',
|
||||
'45d32ac61ef8a744b464c54c2b3414be571016dd46bfc2bec226761cf7ae457a'],
|
||||
|
||||
['com.fasterxml.jackson.core:jackson-core:2.9.9',
|
||||
'3083079be6088db2ed0a0c6ff92204e0aa48fa1de9db5b59c468f35acf882c2c'],
|
||||
|
||||
['com.fasterxml.jackson.core:jackson-databind:2.9.9.2',
|
||||
'fb262d42ea2de98044b62d393950a5aa050435fec38bbcadf2325cf7dc41b848'],
|
||||
|
||||
['com.github.bumptech.glide:annotations:4.9.0',
|
||||
'702a7521cb3f6d7e55edd66e90bda1a1975baf971d25f75b75638579f86bc69b'],
|
||||
|
||||
['com.github.bumptech.glide:disklrucache:4.9.0',
|
||||
'4696a81340eb6beee21ab93f703ed6e7ae49fb4ce3bc2fbc546e5bacd21b96b9'],
|
||||
|
||||
['com.github.bumptech.glide:gifdecoder:4.9.0',
|
||||
'7ee9402ae1c48fac9232b67e81f881c217b907b3252e49ce57bdb97937ebb270'],
|
||||
|
||||
['com.github.bumptech.glide:glide:4.9.0',
|
||||
'1bf482442fce81aa9065a5e97e721039d921cc45f727a987be5f1a69f844d955'],
|
||||
|
||||
['com.github.chrisbanes:PhotoView:2.1.3',
|
||||
'ed06775308da260e1fd86d1d3288988fcd3d80db24ce0d7c9fcfedc39e622292'],
|
||||
|
||||
['com.github.dmytrodanylyk.circular-progress-button:library:1.1.3-S2',
|
||||
'8dc6a29a5a8db7b2ad5a9a7fda1dc9ae0893f4c8f0545732b2c63854ea693e8e'],
|
||||
|
||||
['com.google.android.exoplayer:exoplayer-core:2.9.1',
|
||||
'b6ab34abac36bc2bc6934b7a50008162feca2c0fde91aaf1e8c1c22f2c16e2c0'],
|
||||
|
||||
['com.google.android.exoplayer:exoplayer-ui:2.9.1',
|
||||
'7a942afcc402ff01e9bf48e8d3942850986710f06562d50a1408aaf04a683151'],
|
||||
|
||||
['com.google.android.gms:play-services-auth-api-phone:16.0.0',
|
||||
'19365818b9ceb048ef48db12b5ffadd5eb86dbeb2c7c7b823bfdd89c665f42e5'],
|
||||
|
||||
['com.google.android.gms:play-services-auth-base:16.0.0',
|
||||
'51dc02ad2f8d1d9dff7b5b52c4df2c6c12ef7df55d752e919d5cb4dd6002ecd0'],
|
||||
|
||||
['com.google.android.gms:play-services-auth:16.0.1',
|
||||
'aec9e1c584d442cb9f59481a50b2c66dc191872607c04d97ecb82dd0eb5149ec'],
|
||||
|
||||
['com.google.android.gms:play-services-base:16.0.1',
|
||||
'aca10c780c3219bc50f3db06734f4ab88badd3113c564c0a3156ff8ff674655b'],
|
||||
|
||||
['com.google.android.gms:play-services-basement:16.0.1',
|
||||
'e08bfd1e87c4e50ef76161d7ac76b873aeb975367eeb3afa4abe62ea1887c7c6'],
|
||||
|
||||
['com.google.android.gms:play-services-maps:16.1.0',
|
||||
'ff50cae9e4059416202375597d99cdc8ddefd9cea3f1dc2ff53779a3a12eb480'],
|
||||
|
||||
['com.google.android.gms:play-services-stats:16.0.1',
|
||||
'5b2d8281adbfd6e74d2295c94bab9ea80fc9a84dfbb397995673f5af4d4c6368'],
|
||||
|
||||
['com.google.android.gms:play-services-tasks:16.0.1',
|
||||
'b31c18d8d1cc8d9814f295ee7435471333f370ba5bd904ca14f8f2bec4f35c35'],
|
||||
|
||||
['com.google.android.material:material:1.0.0',
|
||||
'7680e381a3c03798d999b2e441caadd8a56a0a808e108024a67af9fe26c11adc'],
|
||||
|
||||
['com.google.android:flexbox:0.3.0',
|
||||
'a9989fd13ae2ee42765dfc515fe362edf4f326e74925d02a10369df8092a4935'],
|
||||
|
||||
['com.google.auto.value:auto-value-annotations:1.6.3',
|
||||
'0e951fee8c31f60270bc46553a8586001b7b93dbb12aec06373aa99a150392c0'],
|
||||
|
||||
['com.google.firebase:firebase-common:16.0.3',
|
||||
'3db6bfd4c6f758551e5f9acdeada2050577277e6da1aefb2412de23829759bcf'],
|
||||
|
||||
['com.google.firebase:firebase-iid-interop:16.0.1',
|
||||
'2a86322b9346fd4836219206d249e85803311655e96036a8e4b714ce7e79693b'],
|
||||
|
||||
['com.google.firebase:firebase-iid:17.0.4',
|
||||
'bb42774e309d5eac1aa493d19711032bee4f677a409639b6a5cfa93089af93eb'],
|
||||
|
||||
['com.google.firebase:firebase-messaging:17.3.4',
|
||||
'e42288e7950d7d3b033d3395a5ac9365d230da3e439a2794ec13e2ef0fbaf078'],
|
||||
|
||||
['com.google.guava:listenablefuture:1.0',
|
||||
'e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069'],
|
||||
|
||||
['com.google.protobuf:protobuf-javalite:3.10.0',
|
||||
'215a94dbe100130295906b531bb72a26965c7ac8fcd9a75bf8054a8ac2abf4b4'],
|
||||
|
||||
['com.google.zxing:android-integration:3.1.0',
|
||||
'89e56aadf1164bd71e57949163c53abf90af368b51669c0d4a47a163335f95c4'],
|
||||
|
||||
['com.google.zxing:core:3.2.1',
|
||||
'b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259'],
|
||||
|
||||
['com.googlecode.ez-vcard:ez-vcard:0.9.11',
|
||||
'7e24ad50b222d2f70ac91bdccfa3c0f6200b078d797cb784837f75e77bb4210f'],
|
||||
|
||||
['com.googlecode.libphonenumber:libphonenumber:8.11.0',
|
||||
'833ec343e55a6910daca392af76f8e09caaab9c4e3f41ded83f4746e7ef389c7'],
|
||||
|
||||
['com.jpardogo.materialtabstrip:library:1.0.9',
|
||||
'c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa'],
|
||||
|
||||
['com.klinkerapps:android-smsmms:4.0.1',
|
||||
'e7c3328a0f3a8dd44daa8129de4e99996f3057a4546e47891b036b81e0ebf1d1'],
|
||||
|
||||
['com.klinkerapps:logger:1.0.3',
|
||||
'177e325259a8b111ad6745ec10db5861723c99f402222b80629f576f49408541'],
|
||||
|
||||
['com.makeramen:roundedimageview:2.1.0',
|
||||
'1f5a1865796b308c6cdd114acc6e78408b110f0a62fc63553278fbeacd489cd1'],
|
||||
|
||||
['com.melnykov:floatingactionbutton:1.3.0',
|
||||
'15d58d4fac0f7a288d0e5301bbaf501a146f5b3f5921277811bf99bd3b397263'],
|
||||
|
||||
['com.nineoldandroids:library:2.4.0',
|
||||
'68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a'],
|
||||
|
||||
['com.pnikosis:materialish-progress:1.5',
|
||||
'd71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54'],
|
||||
|
||||
['com.squareup.okhttp3:okhttp:3.12.1',
|
||||
'07c3d82ca7eaf4722f00b2da807dc7860f6169ae60cfedcf5d40218f90880a46'],
|
||||
|
||||
['com.squareup.okio:okio:1.17.4',
|
||||
'd78fac588458fc099e6c82e91fe5f0375c67434626451a3a77772c65d9eee85b'],
|
||||
|
||||
['com.takisoft.fix:colorpicker:0.9.1',
|
||||
'f5d0dbabe406a1800498ca9c1faf34db36e021d8488bf10360f29961fe3ab0d1'],
|
||||
|
||||
['com.theartofdev.edmodo:android-image-cropper:2.8.0',
|
||||
'5516ea87672e478b3d0ed5c274a7df27d22c02e66f899388f9b8bee93669e176'],
|
||||
|
||||
['com.tomergoldst.android:tooltips:1.0.6',
|
||||
'4c56697dd1ad64b8066535c61f961a6d901e7ae5d97ae27084ba40ad620349b6'],
|
||||
|
||||
['me.leolin:ShortcutBadger:1.1.16',
|
||||
'e3cb3e7625892129b0c92dd5e4bc649faffdd526d5af26d9c45ee31ff8851774'],
|
||||
|
||||
['mobi.upod:time-duration-picker:1.1.3',
|
||||
'db469ce0f48dd96b892eac424ed76870e54bf00fe0a28cdcddfbe5f2a226a0e1'],
|
||||
|
||||
['org.apache.httpcomponents:httpclient-android:4.3.5',
|
||||
'6f56466a9bd0d42934b90bfbfe9977a8b654c058bf44a12bdc2877c4e1f033f1'],
|
||||
|
||||
['org.conscrypt:conscrypt-android:2.0.0',
|
||||
'400ca559a49b860a82862b22cee0e3110764bdcf7ee7c79e7479895c25cdfc09'],
|
||||
|
||||
['org.greenrobot:eventbus:3.0.0',
|
||||
'180d4212467df06f2fbc9c8d8a2984533ac79c87769ad883bc421612f0b4e17c'],
|
||||
|
||||
['org.jsoup:jsoup:1.8.3',
|
||||
'abeaf34795a4de70f72aed6de5966d2955ec7eb348eeb813324f23c999575473'],
|
||||
|
||||
['org.signal:aesgcmprovider:0.0.3',
|
||||
'6eb4422e8a618b3b76cb2096a3619d251f9e27989dc68307a1e5414c3710f2d1'],
|
||||
|
||||
['org.signal:android-database-sqlcipher:3.5.9-S3',
|
||||
'33d4063336893af00b9d68b418e7b290cace74c20ce8aacffddc0911010d3d73'],
|
||||
|
||||
['org.signal:ringrtc-android:0.2.0',
|
||||
'bce32dfe6c4fe107ccd4b9f155dcfaefe574e7740ef57190614b7e34c914f5f0'],
|
||||
|
||||
['org.signal:signal-metadata-java:0.1.0',
|
||||
'f3faa23b7d9b5096d12979c35679d1e3b5e007522d8bef167a28e456f2a7c7d9'],
|
||||
|
||||
['org.threeten:threetenbp:1.3.6',
|
||||
'f4c23ffaaed717c3b99c003e0ee02d6d66377fd47d866fec7d971bd8644fc1a7'],
|
||||
|
||||
['org.whispersystems:curve25519-java:0.5.0',
|
||||
'0aadd43cf01d11e9b58f867b3c4f25c3194e8b0623d1953d32dfbfbee009e38d'],
|
||||
|
||||
['org.whispersystems:signal-protocol-java:2.8.1',
|
||||
'b19db36839ab008fdccefc7f8c005f2ea43dc7c7298a209bc424e6f9b6d5617b'],
|
||||
|
||||
['pl.tajchert:waitingdots:0.1.0',
|
||||
'2835d49e0787dbcb606c5a60021ced66578503b1e9fddcd7a5ef0cd5f095ba2c'],
|
||||
|
||||
['se.emilsjolander:stickylistheaders:2.7.0',
|
||||
'a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb'],
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 333 KiB |
|
After Width: | Height: | Size: 211 KiB |
|
Before Width: | Height: | Size: 812 KiB |
|
After Width: | Height: | Size: 447 KiB |
|
Before Width: | Height: | Size: 604 KiB |
|
After Width: | Height: | Size: 307 KiB |
|
Before Width: | Height: | Size: 691 KiB |
|
After Width: | Height: | Size: 387 KiB |
|
Before Width: | Height: | Size: 866 KiB |
|
After Width: | Height: | Size: 494 KiB |
|
Before Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 952 KiB |
|
Before Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 862 KiB |
|
Before Width: | Height: | Size: 692 KiB |
|
After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 567 KiB |
|
Before Width: | Height: | Size: 487 KiB |
|
After Width: | Height: | Size: 376 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 6.0 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 7.6 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 13 KiB |