Compare commits
211 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff1531b836 | ||
|
|
1675c8a79a | ||
|
|
bb90987e7c | ||
|
|
ecea6abeb6 | ||
|
|
4a2f3136c6 | ||
|
|
d12b02fac5 | ||
|
|
1e564b6ad1 | ||
|
|
c77daa8226 | ||
|
|
fa35814344 | ||
|
|
48efcaa785 | ||
|
|
f3f6cc87d9 | ||
|
|
29cdb5290b | ||
|
|
77524ae1f2 | ||
|
|
30ba9d7e27 | ||
|
|
9652fd2844 | ||
|
|
d2ece1c1f2 | ||
|
|
8bdc257963 | ||
|
|
88f9ec313f | ||
|
|
8ad5126408 | ||
|
|
1e27847015 | ||
|
|
e67eca77ff | ||
|
|
ba46a9d81a | ||
|
|
49cccc6927 | ||
|
|
5977e9141d | ||
|
|
c0982293bf | ||
|
|
ae6ef62160 | ||
|
|
d95b08d4fd | ||
|
|
128da6db04 | ||
|
|
2701607810 | ||
|
|
4055fe183b | ||
|
|
1c47812877 | ||
|
|
060bed8559 | ||
|
|
4a3c173adb | ||
|
|
8cf3ba424a | ||
|
|
9c40de5bf1 | ||
|
|
11a2ed0743 | ||
|
|
01a9931d92 | ||
|
|
38bcc6c293 | ||
|
|
bceb9b4972 | ||
|
|
ecdc285378 | ||
|
|
6d111e5f68 | ||
|
|
9aed2343c1 | ||
|
|
733d54e339 | ||
|
|
267bc32e23 | ||
|
|
7acb4973d8 | ||
|
|
39ba8c2ad3 | ||
|
|
621ac62c7e | ||
|
|
652306edd0 | ||
|
|
b9b4dccff4 | ||
|
|
ce6d2d9c69 | ||
|
|
e842f78457 | ||
|
|
cab3657ab0 | ||
|
|
a7aa980e58 | ||
|
|
6a0a419f0c | ||
|
|
94e8303022 | ||
|
|
ccfcfa71df | ||
|
|
cfdcd61e51 | ||
|
|
b89c20ff40 | ||
|
|
8caaf057e8 | ||
|
|
a52c295a38 | ||
|
|
8aa185070b | ||
|
|
de60d4d37f | ||
|
|
6e5658431b | ||
|
|
6df5457305 | ||
|
|
fd50b38630 | ||
|
|
d41b24f9ae | ||
|
|
aa5e32f0ee | ||
|
|
749d096931 | ||
|
|
8e86c7d81a | ||
|
|
148cfd1b53 | ||
|
|
93c1277fd0 | ||
|
|
23e069ffa8 | ||
|
|
6e7fab40ac | ||
|
|
8a7cac7c03 | ||
|
|
932e7b4af5 | ||
|
|
2f8a7fa296 | ||
|
|
5e6f71cd32 | ||
|
|
ce0058864f | ||
|
|
5a8753de85 | ||
|
|
c646316a97 | ||
|
|
6df8988f54 | ||
|
|
5b534c8b1a | ||
|
|
ab2e85f6c7 | ||
|
|
975a121c55 | ||
|
|
64cf032181 | ||
|
|
d8a56be5e8 | ||
|
|
286b64274c | ||
|
|
0cb2404735 | ||
|
|
0a8bbf14a6 | ||
|
|
eb1dd58a0b | ||
|
|
a79df7d815 | ||
|
|
e0c11998c3 | ||
|
|
de72eceecf | ||
|
|
c46e53ab24 | ||
|
|
2c28fa6a57 | ||
|
|
f010a3ec0d | ||
|
|
e390fb4fc5 | ||
|
|
a4ce77cbcc | ||
|
|
18613e3b6f | ||
|
|
278fdebf43 | ||
|
|
a122bb4899 | ||
|
|
22ed8caed3 | ||
|
|
8b6ecd1d2e | ||
|
|
f2703f0b7b | ||
|
|
1efb92b913 | ||
|
|
5ccf84f7a2 | ||
|
|
c3368f6de6 | ||
|
|
77e971cb9b | ||
|
|
003fa1b059 | ||
|
|
03aa9e9712 | ||
|
|
55699e27bc | ||
|
|
bf28e109d3 | ||
|
|
6b476876d9 | ||
|
|
fd862e575b | ||
|
|
7fd6f5b3ff | ||
|
|
42e94d8f92 | ||
|
|
b572fce658 | ||
|
|
276e867f9a | ||
|
|
b2d4608cdb | ||
|
|
9d21c36ddf | ||
|
|
983290aa5b | ||
|
|
88b9fc25d2 | ||
|
|
60c7fb0056 | ||
|
|
fa6da1902f | ||
|
|
5cc3ac00c7 | ||
|
|
33daa21ad9 | ||
|
|
c4d1bdc44d | ||
|
|
ca99c732f8 | ||
|
|
1f79808cf0 | ||
|
|
5c0e1100ed | ||
|
|
d0b763c16e | ||
|
|
b962751c96 | ||
|
|
94e8553b73 | ||
|
|
351b625975 | ||
|
|
a2b6dbda14 | ||
|
|
a6564f8f84 | ||
|
|
4dbe165c18 | ||
|
|
f29a42411e | ||
|
|
02b0800b22 | ||
|
|
2cfa431cad | ||
|
|
fe4068afce | ||
|
|
1c23603c25 | ||
|
|
c2a86fcc74 | ||
|
|
d42c9b5dbc | ||
|
|
3b6429c163 | ||
|
|
6896f8ea15 | ||
|
|
a3768c7d74 | ||
|
|
c9a0a66f18 | ||
|
|
db1ad39c6b | ||
|
|
9f04c28bfd | ||
|
|
10631d7e71 | ||
|
|
cfff10622a | ||
|
|
b769c7d9b6 | ||
|
|
1e0f691a56 | ||
|
|
f0852d1d39 | ||
|
|
1ee422a012 | ||
|
|
ca87820dd5 | ||
|
|
45ddb7e1ad | ||
|
|
fd46777f04 | ||
|
|
5bb36c15d5 | ||
|
|
c5571e8a8d | ||
|
|
b8ab1bc3b2 | ||
|
|
3683e6a9e2 | ||
|
|
c364345e1d | ||
|
|
7da73bbc30 | ||
|
|
177322eca4 | ||
|
|
506491d13d | ||
|
|
e884911b60 | ||
|
|
7b20fca1ac | ||
|
|
e2c2e59442 | ||
|
|
be66db898c | ||
|
|
5d9d6ac12b | ||
|
|
c6d3bed8da | ||
|
|
e74c429695 | ||
|
|
90a37852cc | ||
|
|
1763be2956 | ||
|
|
9797c54a4d | ||
|
|
c5114e2cb3 | ||
|
|
e3b22dabce | ||
|
|
ba67796992 | ||
|
|
d482c60a98 | ||
|
|
ebe8d38a91 | ||
|
|
c76081d99c | ||
|
|
bef9beff16 | ||
|
|
25e82ff5e4 | ||
|
|
13ffba1c99 | ||
|
|
a0c1446e9f | ||
|
|
657b520908 | ||
|
|
51e8e8c2c8 | ||
|
|
1e534a2a10 | ||
|
|
9fe30524b2 | ||
|
|
e6b4249cf3 | ||
|
|
57ef0e9024 | ||
|
|
9ed290b8f6 | ||
|
|
d2be554e1b | ||
|
|
e7a807ab5b | ||
|
|
9ff8f8587b | ||
|
|
a6f31c60bd | ||
|
|
4643dea2ad | ||
|
|
f70bf9c5bd | ||
|
|
557e6a800f | ||
|
|
17a391d3cf | ||
|
|
fc989f3820 | ||
|
|
2be382afab | ||
|
|
b08f81a8dc | ||
|
|
535e00c6d0 | ||
|
|
db1abf3746 | ||
|
|
66dde4415d | ||
|
|
ce3deb4057 | ||
|
|
2209ff2272 | ||
|
|
1502b0ae3e |
@@ -1,6 +1,6 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
lang_map = da_DK:da-rDK,he:iw,hi_IN:hi-rIN,id:in,kn_IN:kn-rIN,pt_BR:pt-rBR,pt_PT:pt,qu_EC:qu-rEC,sv_SE:sv-rSE,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW
|
||||
lang_map = da_DK:da-rDK,he:iw,id:in,kn_IN:kn-rIN,pt_BR:pt-rBR,pt_PT:pt,qu_EC:qu-rEC,sv_SE:sv-rSE,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW
|
||||
|
||||
[signal-android.master]
|
||||
file_filter = res/values-<lang>/strings.xml
|
||||
|
||||
@@ -87,10 +87,6 @@
|
||||
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
|
||||
|
||||
<permission android:name="org.thoughtcrime.securesms.permission.C2D_MESSAGE"
|
||||
android:protectionLevel="signature" />
|
||||
<uses-permission android:name="org.thoughtcrime.securesms.permission.C2D_MESSAGE" />
|
||||
|
||||
<application android:name=".ApplicationContext"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
@@ -110,6 +106,10 @@
|
||||
<meta-data android:name="com.google.android.gms.car.application"
|
||||
android:resource="@xml/automotive_app_desc" />
|
||||
|
||||
<meta-data android:name="firebase_analytics_collection_deactivated" android:value="true" />
|
||||
<meta-data android:name="google_analytics_adid_collection_enabled" android:value="false" />
|
||||
<meta-data android:name="firebase_messaging_auto_init_enabled" android:value="false" />
|
||||
|
||||
<activity android:name="org.thoughtcrime.securesms.WebRtcCallActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -208,7 +208,7 @@
|
||||
android:value="org.thoughtcrime.securesms.ConversationListActivity" />
|
||||
</activity>
|
||||
|
||||
<activity android:name=".ConversationActivity"
|
||||
<activity android:name=".conversation.ConversationActivity"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
@@ -218,7 +218,9 @@
|
||||
android:value="org.thoughtcrime.securesms.ConversationListActivity" />
|
||||
</activity>
|
||||
|
||||
<activity android:name=".ConversationPopupActivity"
|
||||
<activity android:name=".longmessage.LongMessageActivity" />
|
||||
|
||||
<activity android:name=".conversation.ConversationPopupActivity"
|
||||
android:windowSoftInputMode="stateVisible"
|
||||
android:launchMode="singleTask"
|
||||
android:taskAffinity=""
|
||||
@@ -279,7 +281,7 @@
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".mediasend.MediaSendActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:theme="@style/TextSecure.DarkNoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
@@ -298,7 +300,19 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".registration.WelcomeActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/TextSecure.LightRegistrationTheme"
|
||||
android:windowSoftInputMode="stateUnchanged"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".RegistrationActivity"
|
||||
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"
|
||||
@@ -380,19 +394,15 @@
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".scribbles.ScribbleActivity"
|
||||
android:theme="@style/TextSecure.ScribbleTheme"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".scribbles.StickerSelectActivity"
|
||||
android:theme="@style/TextSecure.ScribbleTheme"
|
||||
android:theme="@style/TextSecure.DarkTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name="com.soundcloud.android.crop.CropImageActivity" />
|
||||
<activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
|
||||
android:theme="@style/TextSecure.DarkTheme"/>
|
||||
|
||||
<activity android:name=".CreateProfileActivity"
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:theme="@style/TextSecure.LightRegistrationTheme"
|
||||
android:windowSoftInputMode="stateVisible"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
@@ -425,11 +435,6 @@
|
||||
android:exported="true"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".camera.CameraActivity"
|
||||
android:theme="@style/TextSecure.ScribbleTheme"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
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"/>
|
||||
@@ -472,12 +477,11 @@
|
||||
|
||||
<service android:name=".service.GenericForegroundService"/>
|
||||
|
||||
<receiver android:name=".gcm.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
|
||||
<service android:name=".gcm.FcmService">
|
||||
<intent-filter>
|
||||
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
|
||||
<category android:name="org.thoughtcrime.securesms" />
|
||||
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</service>
|
||||
|
||||
<receiver android:name=".service.SmsListener"
|
||||
android:permission="android.permission.BROADCAST_SMS"
|
||||
@@ -655,6 +659,29 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<service
|
||||
android:name=".jobmanager.JobSchedulerScheduler$SystemService"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"
|
||||
android:enabled="@bool/enable_job_service"
|
||||
tools:targetApi="26" />
|
||||
|
||||
<service
|
||||
android:name=".jobmanager.KeepAliveService"
|
||||
android:enabled="@bool/enable_alarm_manager" />
|
||||
|
||||
<receiver
|
||||
android:name=".jobmanager.AlarmManagerScheduler$RetryReceiver"
|
||||
android:enabled="@bool/enable_alarm_manager" />
|
||||
|
||||
<!-- Probably don't need this one -->
|
||||
<receiver
|
||||
android:name=".jobmanager.BootReceiver"
|
||||
android:enabled="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<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" />
|
||||
|
||||
@@ -12,7 +12,7 @@ RUN dpkg --add-architecture i386 && \
|
||||
ENV ANDROID_SDK_FILENAME android-sdk_r24.4.1-linux.tgz
|
||||
ENV ANDROID_SDK_URL https://dl.google.com/android/${ANDROID_SDK_FILENAME}
|
||||
ENV ANDROID_API_LEVELS android-28
|
||||
ENV ANDROID_BUILD_TOOLS_VERSION 27.0.3
|
||||
ENV ANDROID_BUILD_TOOLS_VERSION 28.0.3
|
||||
ENV ANDROID_HOME /usr/local/android-sdk-linux
|
||||
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
|
||||
RUN cd /usr/local/ && \
|
||||
|
||||
221
build.gradle
@@ -4,17 +4,13 @@ import java.security.MessageDigest
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
maven {
|
||||
url 'https://maven.google.com/'
|
||||
name 'Google'
|
||||
}
|
||||
google()
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2"
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.0.1'
|
||||
classpath 'com.android.tools.build:gradle:3.3.2'
|
||||
classpath files('libs/gradle-witness.jar')
|
||||
}
|
||||
}
|
||||
@@ -23,35 +19,35 @@ apply plugin: 'com.android.application'
|
||||
apply plugin: 'witness'
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2/"
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/preferencefragment/releases/"
|
||||
}
|
||||
maven {
|
||||
url "https://raw.github.com/signalapp/maven/master/smil/releases/"
|
||||
}
|
||||
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/"
|
||||
}
|
||||
maven {
|
||||
url "https://maven.google.com"
|
||||
content {
|
||||
includeGroupByRegex "org\\.signal.*"
|
||||
}
|
||||
}
|
||||
maven { // textdrawable
|
||||
url 'https://dl.bintray.com/amulyakhare/maven'
|
||||
}
|
||||
maven {
|
||||
url 'https://dl.bintray.com/google/flexbox-layout/'
|
||||
content {
|
||||
includeGroupByRegex "com\\.amulyakhare.*"
|
||||
}
|
||||
}
|
||||
google()
|
||||
jcenter()
|
||||
@@ -70,12 +66,17 @@ dependencies {
|
||||
compile "com.android.support:preference-v14:$supportVersion"
|
||||
compile "com.android.support:gridlayout-v7:$supportVersion"
|
||||
compile "com.android.support:exifinterface:$supportVersion"
|
||||
compile 'com.android.support.constraint:constraint-layout:1.1.3'
|
||||
compile 'com.android.support:multidex:1.0.3'
|
||||
compile 'android.arch.lifecycle:extensions:1.1.1'
|
||||
compile 'android.arch.lifecycle:common-java8:1.1.1'
|
||||
compile 'android.arch.work:work-runtime:1.0.0-beta01'
|
||||
|
||||
compile 'com.google.android.gms:play-services-gcm:16.0.0'
|
||||
compile('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'
|
||||
}
|
||||
|
||||
compile 'com.google.android.gms:play-services-maps:16.0.0'
|
||||
compile 'com.google.android.gms:play-services-places:16.0.0'
|
||||
compile 'com.google.android.gms:play-services-auth:16.0.1'
|
||||
@@ -83,8 +84,8 @@ dependencies {
|
||||
compile 'com.google.android.exoplayer:exoplayer-core:2.9.1'
|
||||
compile 'com.google.android.exoplayer:exoplayer-ui:2.9.1'
|
||||
|
||||
compile 'org.whispersystems:signal-service-android:2.12.5'
|
||||
compile 'org.whispersystems:webrtc-android:M69'
|
||||
compile 'org.whispersystems:signal-service-android:2.12.8'
|
||||
compile 'org.whispersystems:webrtc-android:M73-S1'
|
||||
|
||||
compile "me.leolin:ShortcutBadger:1.1.16"
|
||||
compile 'se.emilsjolander:stickylistheaders:2.7.0'
|
||||
@@ -97,13 +98,13 @@ dependencies {
|
||||
compile 'com.pnikosis:materialish-progress:1.5'
|
||||
compile 'org.greenrobot:eventbus:3.0.0'
|
||||
compile 'pl.tajchert:waitingdots:0.1.0'
|
||||
compile 'com.soundcloud.android:android-crop:0.9.10@aar'
|
||||
compile 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
|
||||
compile 'com.melnykov:floatingactionbutton:1.3.0'
|
||||
compile 'com.google.zxing:android-integration:3.1.0'
|
||||
compile 'com.squareup.dagger:dagger:1.2.2'
|
||||
annotationProcessor 'com.squareup.dagger:dagger-compiler:1.2.2'
|
||||
compile 'mobi.upod:time-duration-picker:1.1.3'
|
||||
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
|
||||
compileOnly 'com.squareup.dagger:dagger-compiler:1.2.2'
|
||||
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
||||
compile 'com.google.zxing:core:3.2.1'
|
||||
compile ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') {
|
||||
@@ -132,25 +133,28 @@ dependencies {
|
||||
exclude group: 'org.freemarker'
|
||||
}
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.assertj:assertj-core:1.7.1'
|
||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||
testCompile 'org.powermock:powermock-api-mockito:1.6.1'
|
||||
testCompile 'org.powermock:powermock-module-junit4:1.6.1'
|
||||
testCompile 'org.powermock:powermock-module-junit4-rule:1.6.1'
|
||||
testCompile 'org.powermock:powermock-classloading-xstream:1.6.1'
|
||||
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'
|
||||
|
||||
androidTestCompile 'com.android.support:multidex:1.0.3'
|
||||
androidTestCompile 'com.android.support:multidex-instrumentation:1.0.3'
|
||||
androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
|
||||
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
|
||||
androidTestCompile ('org.assertj:assertj-core:1.7.1') {
|
||||
testImplementation 'androidx.test:core:1.1.1-alpha02'
|
||||
androidTestImplementation 'com.android.support:multidex:1.0.3'
|
||||
androidTestImplementation 'com.android.support:multidex-instrumentation:1.0.3'
|
||||
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'
|
||||
}
|
||||
androidTestCompile ('com.squareup.assertj:assertj-android:1.1.1') {
|
||||
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 {
|
||||
@@ -160,6 +164,7 @@ dependencyVerification {
|
||||
'com.android.support:preference-v7:75eabe936d1fc3b178450a554c4d433466036f2be6d6dccdf971eac9590fdbf5',
|
||||
'com.pnikosis:materialish-progress:d71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54',
|
||||
'pl.tajchert:waitingdots:2835d49e0787dbcb606c5a60021ced66578503b1e9fddcd7a5ef0cd5f095ba2c',
|
||||
'com.theartofdev.edmodo:android-image-cropper:72a1b03c5642fe8489061c732e43b10558c850129b576970e4f77a5d4c25317a',
|
||||
'mobi.upod:time-duration-picker:db469ce0f48dd96b892eac424ed76870e54bf00fe0a28cdcddfbe5f2a226a0e1',
|
||||
'com.codewaves.stickyheadergrid:stickyheadergrid:5b4aa6a52a957cfd55f60f4220c11c0c371385a3cb9786cae03c260dcdef5794',
|
||||
'com.android.support:appcompat-v7:a3a8e5230359746ed91801579b5fbe4668e3b1c4e6a14c7d67c8f58cb0311752',
|
||||
@@ -169,18 +174,18 @@ dependencyVerification {
|
||||
'com.android.support:cardview-v7:bc9e6b0e06ce1205f1db34f0e6193019613d19cfeb54cdccea722340d1c60f26',
|
||||
'com.android.support:gridlayout-v7:5029529f7db66f8773426bf7318645f0840fc50d74f66355cd60c5e58d2da087',
|
||||
'com.android.support:exifinterface:bbf44e519edd6333a24a3285aa21fd00181b920b81ca8aa89a8899f03ab4d6b0',
|
||||
'com.android.support.constraint:constraint-layout:27b4e5c0b80d3ff8b92f4c93b3b4d3ecf16c01589f4cdf70ca7cf64cb42d8122',
|
||||
'com.android.support:multidex:ecf6098572e23b5155bab3b9a82b2fd1530eda6c6c157745e0f5287c66eec60c',
|
||||
'android.arch.work:work-runtime:810fba0ee8fc58560664b58c6dba532eae05e3d196e9ee5ae78c1f22bdb292bb',
|
||||
'android.arch.lifecycle:extensions:429426b2feec2245ffc5e75b3b5309bedb36159cf06dc71843ae43526ac289b6',
|
||||
'android.arch.lifecycle:common-java8:7078b5c8ccb94203df9cc2a463c69cf0021596e6cf966d78fbfd697aaafe0630',
|
||||
'com.google.android.gms:play-services-gcm:921b4651a2f4d108753f8b4c5d3844b5f8c1f3c31b740c80f69765082713d004',
|
||||
'com.google.firebase:firebase-messaging:e42288e7950d7d3b033d3395a5ac9365d230da3e439a2794ec13e2ef0fbaf078',
|
||||
'com.google.android.gms:play-services-places:2d5c4e4ac3ee5be21b4ec544411bc51d11457b5ae2fa2a5d4539019f87c233c6',
|
||||
'com.google.android.gms:play-services-maps:07f59c5955b759ce7b80ceaeb8261643c5b79acc9f180df2b7c3987658eed2e8',
|
||||
'com.google.android.gms:play-services-auth:aec9e1c584d442cb9f59481a50b2c66dc191872607c04d97ecb82dd0eb5149ec',
|
||||
'com.google.android.exoplayer:exoplayer-ui:7a942afcc402ff01e9bf48e8d3942850986710f06562d50a1408aaf04a683151',
|
||||
'com.google.android.exoplayer:exoplayer-core:b6ab34abac36bc2bc6934b7a50008162feca2c0fde91aaf1e8c1c22f2c16e2c0',
|
||||
'org.whispersystems:signal-service-android:d48244f9e19a4300b0baf65c2cef8c76082d55f11d331b00d098c686729cde2e',
|
||||
'org.whispersystems:webrtc-android:5493c92141ce884fc5ce8240d783232f4fe14bd17a8d0d7d1bd4944d0bd1682f',
|
||||
'org.whispersystems:signal-service-android:68a349a9e05089f33ab5a9b9fc330526f59d31e8385ff9f5b70bc4a88bd0e297',
|
||||
'org.whispersystems:webrtc-android:1ae3716728f2581724f982f5b4ded92d7aa33edf19d0daa35529d9529f8eb3a2',
|
||||
'me.leolin:ShortcutBadger:e3cb3e7625892129b0c92dd5e4bc649faffdd526d5af26d9c45ee31ff8851774',
|
||||
'se.emilsjolander:stickylistheaders:a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb',
|
||||
'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa',
|
||||
@@ -189,7 +194,6 @@ dependencyVerification {
|
||||
'com.github.bumptech.glide:glide:997de7ac95be6c944d3b8cbe13de11307736ea45451c1b09a6cec7c328ead59f',
|
||||
'com.makeramen:roundedimageview:1f5a1865796b308c6cdd114acc6e78408b110f0a62fc63553278fbeacd489cd1',
|
||||
'org.greenrobot:eventbus:180d4212467df06f2fbc9c8d8a2984533ac79c87769ad883bc421612f0b4e17c',
|
||||
'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
|
||||
'com.google.zxing:android-integration:89e56aadf1164bd71e57949163c53abf90af368b51669c0d4a47a163335f95c4',
|
||||
'com.squareup.dagger:dagger:789aca24537022e49f91fc6444078d9de8f1dd99e1bfb090f18491b186967883',
|
||||
'com.amulyakhare:com.amulyakhare.textdrawable:54c92b5fba38cfd316a07e5a30528068f45ce8515a6890f1297df4c401af5dcb',
|
||||
@@ -203,19 +207,24 @@ dependencyVerification {
|
||||
'com.github.dmytrodanylyk.circular-progress-button:library:8dc6a29a5a8db7b2ad5a9a7fda1dc9ae0893f4c8f0545732b2c63854ea693e8e',
|
||||
'org.signal:android-database-sqlcipher:33d4063336893af00b9d68b418e7b290cace74c20ce8aacffddc0911010d3d73',
|
||||
'com.googlecode.ez-vcard:ez-vcard:7e24ad50b222d2f70ac91bdccfa3c0f6200b078d797cb784837f75e77bb4210f',
|
||||
'com.google.android.gms:play-services-iid:62aa9d8fbfb66ab68d5afdfe78db3d5da1f6adcc19abac142cee25fb23d3391f',
|
||||
'com.google.firebase:firebase-iid:bb42774e309d5eac1aa493d19711032bee4f677a409639b6a5cfa93089af93eb',
|
||||
'com.google.firebase:firebase-common:3db6bfd4c6f758551e5f9acdeada2050577277e6da1aefb2412de23829759bcf',
|
||||
'com.google.android.gms:play-services-auth-api-phone:19365818b9ceb048ef48db12b5ffadd5eb86dbeb2c7c7b823bfdd89c665f42e5',
|
||||
'com.google.android.gms:play-services-auth-base:51dc02ad2f8d1d9dff7b5b52c4df2c6c12ef7df55d752e919d5cb4dd6002ecd0',
|
||||
'com.google.firebase:firebase-iid-interop:2a86322b9346fd4836219206d249e85803311655e96036a8e4b714ce7e79693b',
|
||||
'com.google.android.gms:play-services-base:aca10c780c3219bc50f3db06734f4ab88badd3113c564c0a3156ff8ff674655b',
|
||||
'com.google.android.gms:play-services-stats:5b2d8281adbfd6e74d2295c94bab9ea80fc9a84dfbb397995673f5af4d4c6368',
|
||||
'com.google.android.gms:play-services-places-placereport:04f8baeb1f8f8a734c7d4b1701a3974281b45591affa7e963b59dd019b8abc6e',
|
||||
'com.google.android.gms:play-services-tasks:b31c18d8d1cc8d9814f295ee7435471333f370ba5bd904ca14f8f2bec4f35c35',
|
||||
'com.google.android.gms:play-services-places-placereport:04f8baeb1f8f8a734c7d4b1701a3974281b45591affa7e963b59dd019b8abc6e',
|
||||
'com.google.android.gms:play-services-stats:5b2d8281adbfd6e74d2295c94bab9ea80fc9a84dfbb397995673f5af4d4c6368',
|
||||
'com.google.android.gms:play-services-basement:e08bfd1e87c4e50ef76161d7ac76b873aeb975367eeb3afa4abe62ea1887c7c6',
|
||||
'com.android.support:support-v4:8b9031381c678d628c9e47b566ae1d161e1c9710f7855c759beeac7596cecf30',
|
||||
'com.android.support:support-fragment:3772fc738ada86824ba1a4b3f197c3dbd67b7ddcfe2c9db1de95ef2e3487a915',
|
||||
'com.android.support:animated-vector-drawable:271ecbc906cda8dcd9e655ba0473129c3408a4189c806f616c378e6fd18fb3b7',
|
||||
'com.android.support:support-core-ui:bbc7f65fc95649464733af373361532ab5f9f3b749c3badaa2bbf27e574b6c6f',
|
||||
'com.android.support:support-core-utils:c81e1e98ca3cb2edae002c69cf35b22aec364b8cb2f1042c97e206eb5790ac41',
|
||||
'com.android.support:support-vector-drawable:f658986d968172bccfed28578471c96050780fe5e133861e4d331069cc373f4d',
|
||||
'com.android.support:transition:45d09fc51284c17bbab300f5122512ac7d7348a6d23bda2051648bbe76cc9aa5',
|
||||
'com.android.support:loader:920b85efd72dc33e915b0f88a883fe73b88483c6df8751a741e17611f2460341',
|
||||
'com.android.support:viewpager:013c4c53058758ec104dbae970be58159f75dfe342ba8b937d15ff5282e35ffc',
|
||||
'com.android.support:coordinatorlayout:9dfacd80423dc979048fbaed83c0ee543c46259feb2417377e79a656888d3892',
|
||||
'com.android.support:drawerlayout:8f6809afae4793550c37461c9810e954ae6a23dbb4d23e5333bf18148df1150a',
|
||||
@@ -223,34 +232,27 @@ dependencyVerification {
|
||||
'com.android.support:customview:98db03845f994e08248bf701c1ff0ccaa12e70f94251ec9272900f0f694e072b',
|
||||
'com.android.support:swiperefreshlayout:a3b41f7f6730866b49865e86e49f988d4858699765f534300fb2ff5f9325e712',
|
||||
'com.android.support:asynclayoutinflater:115bde87721f7334579b0c735f60dd7c98af1bb7f34010c5b0553b95dc351aa2',
|
||||
'android.arch.persistence.room:runtime:c21810eaafce370f1c9df1365393f55f962370a0d8b0b38b4771052c7021b737',
|
||||
'com.android.support:support-core-utils:c81e1e98ca3cb2edae002c69cf35b22aec364b8cb2f1042c97e206eb5790ac41',
|
||||
'com.android.support:loader:920b85efd72dc33e915b0f88a883fe73b88483c6df8751a741e17611f2460341',
|
||||
'com.android.support:support-vector-drawable:f658986d968172bccfed28578471c96050780fe5e133861e4d331069cc373f4d',
|
||||
'com.android.support:support-media-compat:266eff9605f515013eee1ebdbd8818a9270696dc807f34bbcc5fc11fb61a22c7',
|
||||
'com.android.support:support-compat:e17e3b01dbea3f9ea1c86943292f903ca93d2231c6242e456e0b6a9c5817118a',
|
||||
'com.android.support:versionedparcelable:60eb1cb08f71b65c3f6123135e03ebeb5930b5e126e1e5b2ac91b386908c9d02',
|
||||
'com.android.support:collections:93c258c8a09f531a267653829742c0f8f6da0e348b11cb8655b0855628f2d4f0',
|
||||
'com.android.support:cursoradapter:87feffe742b8d62ca8a9833abe564838bf6a672e31c7ad1306ec4006adf90d21',
|
||||
'android.arch.lifecycle:runtime:c4e4be66c1b2f0abec593571454e1de14013f7e0f96bf2a9f212931a48cae550',
|
||||
'android.arch.lifecycle:livedata:50ab0490c1ff1a7cfb4e554032998b080888946d0dd424f39900efc4a1bcd750',
|
||||
'android.arch.lifecycle:livedata-core:d6fdd8b985d6178d7ea2f16986a24e83f1bee936b74d43167c69e08d3cc12c50',
|
||||
'android.arch.lifecycle:runtime:c4e4be66c1b2f0abec593571454e1de14013f7e0f96bf2a9f212931a48cae550',
|
||||
'android.arch.lifecycle:common:8d378e88ebd5189e09eef623414812c868fd90aa519d6160e2311fb8b81cff56',
|
||||
'com.github.bumptech.glide:gifdecoder:59ccf3bb0cec11dab4b857382cbe0b171111b6fc62bf141adce4e1180889af15',
|
||||
'com.android.support:interpolator:7bc7ee86a0db39a4b51956f3e89842d2bd962118d57d779eb6ed6b34ba0677ea',
|
||||
'com.android.support:cursoradapter:87feffe742b8d62ca8a9833abe564838bf6a672e31c7ad1306ec4006adf90d21',
|
||||
'android.arch.persistence.room:common:7cf36bcd5f59ddc4876f887e36511bfd7b111f1eb717c0e9b6e2bcc710305ae6',
|
||||
'android.arch.persistence:db-framework:bd665448330acb90a6f551a87b0ba69169da2b8ec168b92f387997339cc14311',
|
||||
'android.arch.persistence:db:504e8c4307bfd53084924776ba3d49fed11b6f76d82dd80d5121c2d907fdfef6',
|
||||
'android.arch.core:runtime:c3215aa5873311b3f88a6f4e4a3c25ad89971bc127de8c3e1291c57f93a05c39',
|
||||
'android.arch.core:common:3a616a32f433e9e23f556b38575c31b013613d3ae85206263b7625fe1f4c151a',
|
||||
'android.arch.lifecycle:common:8d378e88ebd5189e09eef623414812c868fd90aa519d6160e2311fb8b81cff56',
|
||||
'android.arch.lifecycle:viewmodel:7de29cfaba77d6b5d5be234c57f6812d0150d087e63941af22ba1d1f8e2bc96a',
|
||||
'com.github.bumptech.glide:gifdecoder:59ccf3bb0cec11dab4b857382cbe0b171111b6fc62bf141adce4e1180889af15',
|
||||
'com.android.support:documentfile:47cdcd3e9302b7b064923f05487a5c03babbd9bbda4726b71e97791fab5d4779',
|
||||
'com.android.support:localbroadcastmanager:d287c823af5fdde72c099fcfc5f630efe9687af7a914343ae6fd92de32c8a806',
|
||||
'com.android.support:print:4be8a812d73e4a80e35b91ceae127def3f0bb9726bf3bc439aa0cc81503f5728',
|
||||
'com.android.support:interpolator:7bc7ee86a0db39a4b51956f3e89842d2bd962118d57d779eb6ed6b34ba0677ea',
|
||||
'com.android.support:support-annotations:5d5b9414f02d3fa0ee7526b8d5ddae0da67c8ecc8c4d63ffa6cf91488a93b927',
|
||||
'com.google.guava:listenablefuture:e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069',
|
||||
'com.android.support.constraint:constraint-layout-solver:2cafbe356f71c208013d021f32943904798cd6459e5107f9fe27000eb5bc2aef',
|
||||
'org.signal:signal-metadata-android:d9d798aab7ee7200373ecff8718baf8aaeb632c123604e8a41b7b4c0c97eeee1',
|
||||
'org.whispersystems:signal-service-java:746b0334a2c11e978b50f6474bd67ba1aa7bc76fa96b0f3658411436238d1c79',
|
||||
'org.whispersystems:signal-service-java:fde1a008fe42ebbf1cd35018b363135cd8fec9e690304f8917b5ffb7080fa2a5',
|
||||
'com.github.bumptech.glide:disklrucache:c1b1b6f5bbd01e2fcdc9d7f60913c8d338bdb65ed4a93bfa02b56f19daaade4b',
|
||||
'com.github.bumptech.glide:annotations:bede99ef9f71517a4274bac18fd3e483e9f2b6108d7d6fe8f4949be4aa4d9512',
|
||||
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
|
||||
@@ -280,7 +282,7 @@ dependencyVerification {
|
||||
android {
|
||||
flavorDimensions "none"
|
||||
compileSdkVersion 28
|
||||
buildToolsVersion '27.0.3'
|
||||
buildToolsVersion '28.0.3'
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
dexOptions {
|
||||
@@ -288,10 +290,10 @@ android {
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
versionCode 441
|
||||
versionName "4.32.1"
|
||||
versionCode 479
|
||||
versionName "4.39.1"
|
||||
|
||||
minSdkVersion 14
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 26
|
||||
multiDexEnabled true
|
||||
|
||||
@@ -303,15 +305,27 @@ android {
|
||||
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", "GIPHY_PROXY_HOST", "\"giphy-proxy-production.whispersystems.org\""
|
||||
buildConfigField "int", "GIPHY_PROXY_PORT", "80"
|
||||
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", "UNIDENTIFIED_SENDER_TRUST_ROOT", "\"BXu6QIKVz5MA8gstzfOgRQGqyLqOwNKHL6INkv3IHWMF\""
|
||||
buildConfigField "String[]", "LANGUAGES", "new String[]{\"" + autoResConfig().collect { s -> s.replace('-r', '_') }.join('", "') + '"}'
|
||||
|
||||
ndk {
|
||||
abiFilters "armeabi", "armeabi-v7a", "x86"
|
||||
abiFilters 'armeabi-v7a', 'x86'
|
||||
}
|
||||
|
||||
resConfigs autoResConfig()
|
||||
|
||||
splits {
|
||||
abi {
|
||||
enable true
|
||||
reset()
|
||||
include 'armeabi-v7a', 'x86'
|
||||
universalApk true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -334,6 +348,7 @@ android {
|
||||
debug {
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'),
|
||||
'proguard-firebase-messaging.pro',
|
||||
'proguard-google-play-services.pro',
|
||||
'proguard-dagger.pro',
|
||||
'proguard-jackson.pro',
|
||||
@@ -351,7 +366,6 @@ android {
|
||||
'proguard-retrolambda.pro',
|
||||
'proguard-okhttp.pro',
|
||||
'proguard-ez-vcard.pro',
|
||||
'proguard-workmanager.pro',
|
||||
'proguard.cfg'
|
||||
testProguardFiles 'proguard-automation.pro',
|
||||
'proguard.cfg'
|
||||
@@ -400,6 +414,7 @@ android {
|
||||
}
|
||||
test {
|
||||
java.srcDirs = ['test/unitTest/java']
|
||||
resources.srcDirs = ['test/unitTest/resources']
|
||||
}
|
||||
|
||||
website.manifest.srcFile 'website/AndroidManifest.xml'
|
||||
@@ -408,6 +423,12 @@ android {
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
testOptions {
|
||||
unitTests {
|
||||
includeAndroidResources = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
def assembleWebsiteDescriptor = { variant, file ->
|
||||
@@ -435,35 +456,37 @@ def assembleWebsiteDescriptor = { variant, file ->
|
||||
}
|
||||
|
||||
def signProductionRelease = { variant ->
|
||||
String apkName = variant.outputs[0].outputFile.name
|
||||
File inputFile = new File(variant.outputs[0].outputFile.path);
|
||||
File outputFile = new File(variant.outputs[0].outputFile.parent, apkName.replace("-unsigned", ""));
|
||||
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());
|
||||
new ApkSignerUtil('sun.security.pkcs11.SunPKCS11',
|
||||
'pkcs11.config',
|
||||
'PKCS11',
|
||||
'file:pkcs11.password').calculateSignature(inputFile.getAbsolutePath(),
|
||||
outputFile.getAbsolutePath())
|
||||
|
||||
inputFile.delete();
|
||||
return outputFile
|
||||
inputFile.delete()
|
||||
outputFile
|
||||
}
|
||||
}
|
||||
|
||||
task signProductionPlayRelease << {
|
||||
signProductionRelease(android.applicationVariants.find({ it.name.equals("playRelease") }))
|
||||
task signProductionPlayRelease {
|
||||
doLast {
|
||||
signProductionRelease(android.applicationVariants.find { (it.name == 'playRelease') })
|
||||
}
|
||||
}
|
||||
|
||||
task signProductionWebsiteRelease << {
|
||||
def variant = android.applicationVariants.find({ it.name.equals("websiteRelease") })
|
||||
File signedRelease = signProductionRelease(variant)
|
||||
assembleWebsiteDescriptor(variant, signedRelease);
|
||||
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("lint")) {
|
||||
task.enabled = false
|
||||
}
|
||||
|
||||
if (task.name.equals("assemblePlayRelease")) {
|
||||
task.finalizedBy signProductionPlayRelease
|
||||
}
|
||||
@@ -485,3 +508,21 @@ def getLastCommitTimestamp() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Discovers supported languages listed as under the res/values- directory.
|
||||
*/
|
||||
static def autoResConfig() {
|
||||
def files = new ArrayList<String>()
|
||||
def root = new File('res')
|
||||
root.eachFile { f -> files.add(f.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 qa {
|
||||
group 'Verification'
|
||||
description 'Quality Assurance. Run before pushing.'
|
||||
dependsOn ':testPlayReleaseUnitTest', ':assemblePlayDebug'
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
apply plugin: 'java-gradle-plugin'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
google()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile group: 'com.android.tools.build', name: 'apksig', version: '2.3.0'
|
||||
compile 'com.android.tools.build:apksig:3.3.2'
|
||||
}
|
||||
|
||||
1
gradle.properties
Normal file
@@ -0,0 +1 @@
|
||||
org.gradle.jvmargs=-Xmx2048m
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
3
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,5 @@
|
||||
#Mon Nov 06 08:48:17 PST 2017
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
|
||||
|
||||
8
gradlew
vendored
@@ -28,16 +28,16 @@ APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
@@ -155,7 +155,7 @@ if $cygwin ; then
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save ( ) {
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
|
||||
2
gradlew.bat
vendored
@@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
APP_ABI := armeabi armeabi-v7a x86
|
||||
APP_PLATFORM := android-9
|
||||
APP_STL := stlport_static
|
||||
# Built with NDK 19.2.5345600
|
||||
APP_ABI := armeabi-v7a x86 arm64-v8a x86_64
|
||||
APP_PLATFORM := android-19
|
||||
APP_STL := c++_static
|
||||
APP_CPPFLAGS += -fexceptions
|
||||
APP_OPTIM := debug
|
||||
APP_OPTIM := debug
|
||||
|
||||
BIN
libs/arm64-v8a/libnative-utils.so
Executable file
BIN
libs/x86_64/libnative-utils.so
Executable file
1
proguard-firebase-messaging.pro
Normal file
@@ -0,0 +1 @@
|
||||
-dontwarn com.google.firebase.analytics.connector.AnalyticsConnector
|
||||
@@ -1,2 +0,0 @@
|
||||
-dontwarn sun.misc.Unsafe
|
||||
-dontwarn com.google.common.util.concurrent.ListenableFuture
|
||||
9
res/anim/slide_from_left.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:anim/decelerate_interpolator">
|
||||
<translate
|
||||
android:duration="250"
|
||||
android:fromXDelta="-100%"
|
||||
android:toXDelta="0%" />
|
||||
</set>
|
||||
@@ -3,7 +3,7 @@
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:anim/decelerate_interpolator">
|
||||
<translate
|
||||
android:duration="150"
|
||||
android:duration="250"
|
||||
android:fromXDelta="100%"
|
||||
android:toXDelta="0%" />
|
||||
</set>
|
||||
9
res/anim/slide_to_left.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:anim/decelerate_interpolator">
|
||||
<translate
|
||||
android:duration="250"
|
||||
android:fromXDelta="0%"
|
||||
android:toXDelta="-100%" />
|
||||
</set>
|
||||
@@ -3,7 +3,7 @@
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:interpolator="@android:anim/decelerate_interpolator">
|
||||
<translate
|
||||
android:duration="150"
|
||||
android:duration="250"
|
||||
android:fromXDelta="0%"
|
||||
android:toXDelta="100%" />
|
||||
</set>
|
||||
BIN
res/drawable-hdpi/empty_inbox_1.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
res/drawable-hdpi/empty_inbox_2.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
res/drawable-hdpi/empty_inbox_3.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
res/drawable-hdpi/empty_inbox_4.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
res/drawable-hdpi/empty_inbox_5.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 221 B |
BIN
res/drawable-hdpi/ic_add_caption_36.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
res/drawable-hdpi/ic_arrow_right.png
Normal file
|
After Width: | Height: | Size: 260 B |
BIN
res/drawable-hdpi/ic_camera_emoji_36.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
res/drawable-hdpi/ic_camera_filled_24.png
Normal file
|
After Width: | Height: | Size: 591 B |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 661 B |
BIN
res/drawable-hdpi/ic_caption_28.png
Normal file
|
After Width: | Height: | Size: 662 B |
BIN
res/drawable-hdpi/ic_check_circle_filled_36.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
res/drawable-hdpi/ic_create_album_filled_32.png
Normal file
|
After Width: | Height: | Size: 547 B |
BIN
res/drawable-hdpi/ic_create_album_outline_32.png
Normal file
|
After Width: | Height: | Size: 595 B |
BIN
res/drawable-hdpi/ic_highlighter_36.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
res/drawable-hdpi/ic_marker_36.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
res/drawable-hdpi/ic_note_to_self.png
Normal file
|
After Width: | Height: | Size: 274 B |
BIN
res/drawable-hdpi/ic_plus_28.png
Normal file
|
After Width: | Height: | Size: 761 B |
BIN
res/drawable-hdpi/ic_profile_camera.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 982 B |
|
Before Width: | Height: | Size: 721 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 926 B |
|
Before Width: | Height: | Size: 1.4 KiB |
BIN
res/drawable-hdpi/ic_select_off.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
res/drawable-hdpi/ic_select_on.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
res/drawable-hdpi/ic_switch_camera_36.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
res/drawable-hdpi/ic_text_36.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
res/drawable-hdpi/ic_trash_outline_36.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
res/drawable-hdpi/ic_undo_36.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
res/drawable-hdpi/ic_x_28.png
Normal file
|
After Width: | Height: | Size: 847 B |
BIN
res/drawable-hdpi/link_preview_splash.png
Normal file
|
After Width: | Height: | Size: 193 KiB |
BIN
res/drawable-hdpi/welcome.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
res/drawable-mdpi/empty_inbox_1.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
res/drawable-mdpi/empty_inbox_2.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
res/drawable-mdpi/empty_inbox_3.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
res/drawable-mdpi/empty_inbox_4.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
res/drawable-mdpi/empty_inbox_5.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 165 B |
BIN
res/drawable-mdpi/ic_add_caption_36.png
Normal file
|
After Width: | Height: | Size: 719 B |
BIN
res/drawable-mdpi/ic_arrow_right.png
Normal file
|
After Width: | Height: | Size: 238 B |
BIN
res/drawable-mdpi/ic_camera_emoji_36.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
res/drawable-mdpi/ic_camera_filled_24.png
Normal file
|
After Width: | Height: | Size: 389 B |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 336 B |
BIN
res/drawable-mdpi/ic_caption_28.png
Normal file
|
After Width: | Height: | Size: 329 B |
BIN
res/drawable-mdpi/ic_check_circle_filled_36.png
Normal file
|
After Width: | Height: | Size: 949 B |
BIN
res/drawable-mdpi/ic_create_album_filled_32.png
Normal file
|
After Width: | Height: | Size: 384 B |
BIN
res/drawable-mdpi/ic_create_album_outline_32.png
Normal file
|
After Width: | Height: | Size: 442 B |
BIN
res/drawable-mdpi/ic_highlighter_36.png
Normal file
|
After Width: | Height: | Size: 782 B |
BIN
res/drawable-mdpi/ic_marker_36.png
Normal file
|
After Width: | Height: | Size: 830 B |
BIN
res/drawable-mdpi/ic_note_to_self.png
Normal file
|
After Width: | Height: | Size: 191 B |
BIN
res/drawable-mdpi/ic_plus_28.png
Normal file
|
After Width: | Height: | Size: 463 B |
BIN
res/drawable-mdpi/ic_profile_camera.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 537 B |
|
Before Width: | Height: | Size: 399 B |
|
Before Width: | Height: | Size: 609 B |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 503 B |
|
Before Width: | Height: | Size: 788 B |
BIN
res/drawable-mdpi/ic_select_off.png
Normal file
|
After Width: | Height: | Size: 923 B |
BIN
res/drawable-mdpi/ic_select_on.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
res/drawable-mdpi/ic_switch_camera_36.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
res/drawable-mdpi/ic_text_36.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
res/drawable-mdpi/ic_trash_outline_36.png
Normal file
|
After Width: | Height: | Size: 993 B |
BIN
res/drawable-mdpi/ic_undo_36.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
res/drawable-mdpi/ic_x_28.png
Normal file
|
After Width: | Height: | Size: 442 B |
BIN
res/drawable-mdpi/link_preview_splash.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
res/drawable-mdpi/welcome.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
16
res/drawable-v21/media_camera_button_background.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/core_grey_45">
|
||||
<item android:id="@+id/mask">
|
||||
<shape>
|
||||
<corners android:radius="1000dp" />
|
||||
<solid android:color="@color/white" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape android:shape="oval">
|
||||
<solid android:color="@color/core_white" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
12
res/drawable-v21/media_count_button_background.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/transparent_white_40">
|
||||
<item android:id="@+id/mask">
|
||||
<shape>
|
||||
<corners android:radius="1000dp" />
|
||||
<solid android:color="@color/white" />
|
||||
</shape>
|
||||
</item>
|
||||
<item android:drawable="@drawable/pill" />
|
||||
</ripple>
|
||||
19
res/drawable-v21/mediarail_button_background.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@color/transparent_white_40">
|
||||
|
||||
<item android:id="@+id/mask">
|
||||
<shape>
|
||||
<corners android:radius="5dp" />
|
||||
<solid android:color="@color/transparent_black" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
|
||||
<corners android:radius="5dp" />
|
||||
<solid android:color="@color/transparent_black_70"/>
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||