Compare commits
118 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0396494d57 | ||
|
|
971bcb8213 | ||
|
|
4bf3632b40 | ||
|
|
469f41b955 | ||
|
|
80a96aa83c | ||
|
|
0e5d71e1a5 | ||
|
|
9d3b764fec | ||
|
|
16f277761e | ||
|
|
9170020141 | ||
|
|
1ef5e5eb52 | ||
|
|
11dbb82bf1 | ||
|
|
2bcbbb0601 | ||
|
|
ab00ce7455 | ||
|
|
b54a271a75 | ||
|
|
23544fae8a | ||
|
|
0a72f6b32e | ||
|
|
b8d938a020 | ||
|
|
2c7fcbed60 | ||
|
|
69d0242574 | ||
|
|
8e9e3847b6 | ||
|
|
66bc5e9f5b | ||
|
|
8d44a145f0 | ||
|
|
8e1970c398 | ||
|
|
38ec5647dd | ||
|
|
ff2cb6935d | ||
|
|
c4fd050b09 | ||
|
|
f85ff090f5 | ||
|
|
21258f244c | ||
|
|
338c0d82e1 | ||
|
|
6708193938 | ||
|
|
e3da0ac908 | ||
|
|
383a266400 | ||
|
|
dbc59bc682 | ||
|
|
4365d7c029 | ||
|
|
c64966c0fb | ||
|
|
6422178baf | ||
|
|
7d1c5a0d40 | ||
|
|
2f9bf27ed7 | ||
|
|
954d795bb5 | ||
|
|
d36d000dc5 | ||
|
|
e6dd5db860 | ||
|
|
18897ffccc | ||
|
|
65b482c7b0 | ||
|
|
da029ebc24 | ||
|
|
549e45e2d6 | ||
|
|
5ed1c9c72b | ||
|
|
314dd9181c | ||
|
|
68b48ebe00 | ||
|
|
8b9e0b7ab8 | ||
|
|
14d73d82c3 | ||
|
|
2b4d41de03 | ||
|
|
4cb4a76e33 | ||
|
|
d00441e20d | ||
|
|
8fe96fc1b7 | ||
|
|
33a79dde06 | ||
|
|
442a8b5c7d | ||
|
|
48d6d1c21d | ||
|
|
666cdb39a4 | ||
|
|
848a25664b | ||
|
|
852634b294 | ||
|
|
0619a4d3cd | ||
|
|
cbbe25c852 | ||
|
|
3ede281e5e | ||
|
|
751830d38f | ||
|
|
bd2fc82360 | ||
|
|
e1b24ab878 | ||
|
|
224ef9785e | ||
|
|
8f256fa285 | ||
|
|
85ea7e1bf4 | ||
|
|
24c99c322c | ||
|
|
677f80b8ef | ||
|
|
3432db37d9 | ||
|
|
32f5bd5336 | ||
|
|
0a569676f7 | ||
|
|
893f106189 | ||
|
|
530b93c318 | ||
|
|
df19cdd4fb | ||
|
|
29548f4019 | ||
|
|
54fc3c5690 | ||
|
|
f961c0574a | ||
|
|
1d8276d148 | ||
|
|
8266730551 | ||
|
|
a23abda5fc | ||
|
|
17c28da2ac | ||
|
|
792d4a5939 | ||
|
|
e6347a38a2 | ||
|
|
53e9b2ad1b | ||
|
|
40332f57ad | ||
|
|
1b04e38377 | ||
|
|
4b3d422443 | ||
|
|
a698477e10 | ||
|
|
e4fccbe26e | ||
|
|
4242ae1b70 | ||
|
|
9a671783c9 | ||
|
|
a370f086c0 | ||
|
|
e7ad77398f | ||
|
|
5bf1707d60 | ||
|
|
db10e5fec6 | ||
|
|
63f7faf5bb | ||
|
|
059ff3e2e1 | ||
|
|
d7e4928f22 | ||
|
|
f03a086191 | ||
|
|
8c631ad765 | ||
|
|
716ed251bc | ||
|
|
643da569ec | ||
|
|
975ae735dc | ||
|
|
474920280c | ||
|
|
263b0921c3 | ||
|
|
7292d08272 | ||
|
|
49a539a985 | ||
|
|
31970c4644 | ||
|
|
209d8148ab | ||
|
|
3aa024e553 | ||
|
|
2a23b53988 | ||
|
|
a8a8ec1d40 | ||
|
|
b94c72ea7f | ||
|
|
a307ff350c | ||
|
|
f2b81d88ba |
5
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -12,12 +12,13 @@
|
||||
* Device B, Android Z.Y
|
||||
* Virtual device W, Android Y.Y.Z
|
||||
- [ ] My contribution is fully baked and ready to be merged as is
|
||||
- [ ] I have made the choice whether I want the [BitHub reward](https://github.com/WhisperSystems/Signal-Android/wiki/BitHub-Rewards) or not by omitting or adding the word `FREEBIE` in my commit message
|
||||
- [ ] I ensure that all the open issues my contribution fixes are mentioned in the commit message of my first commit using the `Fixes #1234` [syntax](https://help.github.com/articles/closing-issues-via-commit-messages/)
|
||||
- [ ] I have made the choice whether I want the [BitHub reward](https://github.com/WhisperSystems/Signal-Android/wiki/BitHub-Rewards) or not by omitting or adding the word `FREEBIE` in the commit message of my first commit
|
||||
|
||||
----------
|
||||
|
||||
### Description
|
||||
<!--
|
||||
Describe briefly what your pull request proposes to fix. Especially if you have more than one commit, it is helpful to give a summary of what your contribution as a whole is trying to solve. You can also use the `fixes #1234` syntax to refer to specific issues either here or in your commit message.
|
||||
Describe briefly what your pull request proposes to fix. Especially if you have more than one commit, it is helpful to give a summary of what your contribution as a whole is trying to solve.
|
||||
Also, please describe shortly how you tested that your fix actually works.
|
||||
-->
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.thoughtcrime.securesms"
|
||||
android:versionCode="192"
|
||||
android:versionName="3.15.1">
|
||||
android:versionCode="211"
|
||||
android:versionName="3.21.3">
|
||||
|
||||
<uses-sdk tools:overrideLibrary="com.amulyakhare.textdrawable,com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat"/>
|
||||
|
||||
@@ -179,9 +179,13 @@
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
|
||||
</intent-filter>
|
||||
|
||||
|
||||
<meta-data android:name="com.sec.minimode.icon.portrait.normal"
|
||||
android:resource="@drawable/icon" />
|
||||
<meta-data android:name="com.sec.minimode.icon.landscape.normal"
|
||||
android:resource="@drawable/icon" />
|
||||
|
||||
</activity-alias>
|
||||
|
||||
@@ -262,11 +266,9 @@
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ViewIdentityActivity"
|
||||
android:label="@string/AndroidManifest__public_identity_key"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ViewLocalIdentityActivity"
|
||||
<activity android:name=".giph.ui.GiphyActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".PassphraseChangeActivity"
|
||||
@@ -274,7 +276,6 @@
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".VerifyIdentityActivity"
|
||||
android:label="@string/AndroidManifest__verify_identity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".ApplicationPreferencesActivity"
|
||||
@@ -497,5 +498,20 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".service.PanicResponderListener"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="info.guardianproject.panic.action.TRIGGER" />
|
||||
</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" />
|
||||
<meta-data android:name="com.sec.android.multiwindow.DEFAULT_SIZE_H" android:value="598.0dip" />
|
||||
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_W" android:value="632.0dip" />
|
||||
<meta-data android:name="com.sec.android.multiwindow.MINIMUM_SIZE_H" android:value="598.0dip" />
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
@@ -13,7 +13,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-22
|
||||
ENV ANDROID_BUILD_TOOLS_VERSION 22.0.1
|
||||
ENV ANDROID_BUILD_TOOLS_VERSION 23.0.2
|
||||
ENV ANDROID_HOME /usr/local/android-sdk-linux
|
||||
ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
|
||||
RUN cd /usr/local/ && \
|
||||
|
||||
@@ -61,7 +61,7 @@ class ApkDiff:
|
||||
sourceChunk = sourceFile.read(1024)
|
||||
destinationChunk = destinationFile.read(1024)
|
||||
|
||||
while sourceChunk != "" and destinationChunk != "":
|
||||
while sourceChunk != "" or destinationChunk != "":
|
||||
if sourceChunk != destinationChunk:
|
||||
return False
|
||||
|
||||
|
||||
117
build.gradle
@@ -2,10 +2,11 @@ buildscript {
|
||||
repositories {
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2"
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:1.2.3'
|
||||
classpath 'com.android.tools.build:gradle:2.1.3'
|
||||
classpath files('libs/gradle-witness.jar')
|
||||
}
|
||||
}
|
||||
@@ -72,10 +73,14 @@ dependencies {
|
||||
compile 'org.whispersystems:jobmanager:1.0.2'
|
||||
compile 'org.whispersystems:libpastelog:1.0.7'
|
||||
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
||||
compile 'org.whispersystems:signal-service-android:2.1.1'
|
||||
compile 'org.whispersystems:signal-service-android:2.3.1'
|
||||
compile 'com.h6ah4i.android.compat:mulsellistprefcompat:1.0.0'
|
||||
compile 'com.google.zxing:core:3.2.1'
|
||||
|
||||
compile ('cn.carbswang.android:NumberPickerView:1.0.9') {
|
||||
exclude group: 'com.android.support', module: 'appcompat-v7'
|
||||
}
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.assertj:assertj-core:1.7.1'
|
||||
testCompile 'org.mockito:mockito-core:1.9.5'
|
||||
@@ -97,63 +102,65 @@ dependencies {
|
||||
|
||||
dependencyVerification {
|
||||
verify = [
|
||||
'me.leolin:ShortcutBadger:3142d017234bfa0cdd69ccded7cc5ea63f13b97574803c8c616c9bbeaad33ad9',
|
||||
'se.emilsjolander:stickylistheaders:a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb',
|
||||
'com.google.android.gms:play-services-gcm:757ecd2c837ac81c98f4cc7dc783e7454c6d0506f6cc66b10417126b675248c9',
|
||||
'com.google.android.gms:play-services-maps:c58a9d98a98889fb0b27f78100f2d9341ed7722db24ccf832df62b6e8ce1b42e',
|
||||
'com.google.android.gms:play-services-location:8226f778aa86bd15b9143f62425262cc53d64021990f62eb1aaec108d4e25f35',
|
||||
'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa',
|
||||
'org.w3c:smil:085dc40f2bb249651578bfa07499fd08b16ad0886dbe2c4078586a408da62f9b',
|
||||
'org.apache.httpcomponents:httpclient-android:6f56466a9bd0d42934b90bfbfe9977a8b654c058bf44a12bdc2877c4e1f033f1',
|
||||
'com.github.chrisbanes.photoview:library:8b5344e206f125e7ba9d684008f36c4992d03853c57e5814125f88496126e3cc',
|
||||
'com.github.bumptech.glide:glide:76ef123957b5fbaebb05fcbe6606dd58c3bc3fcdadb257f99811d0ac9ea9b88b',
|
||||
'com.makeramen:roundedimageview:1f5a1865796b308c6cdd114acc6e78408b110f0a62fc63553278fbeacd489cd1',
|
||||
'com.pnikosis:materialish-progress:d71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54',
|
||||
'de.greenrobot:eventbus:61d743a748156a372024d083de763b9e91ac2dcb3f6a1cbc74995c7ddab6e968',
|
||||
'pl.tajchert:waitingdots:2835d49e0787dbcb606c5a60021ced66578503b1e9fddcd7a5ef0cd5f095ba2c',
|
||||
'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
|
||||
'com.android.support:appcompat-v7:4b5ccba8c4557ef04f99aa0a80f8aa7d50f05f926a709010a54afd5c878d3618',
|
||||
'com.android.support:recyclerview-v7:b0f530a5b14334d56ce0de85527ffe93ac419bc928e2884287ce1dddfedfb505',
|
||||
'com.android.support:design:58be3ca6a73789615f7ece0937d2f683b98b594bb90aa10565fa760fb10b07ee',
|
||||
'com.android.support:cardview-v7:2c2354761a4e20ba451ae903ab808f15c9acc8343b1e74001869c2d0a672c1fc',
|
||||
'com.melnykov:floatingactionbutton:15d58d4fac0f7a288d0e5301bbaf501a146f5b3f5921277811bf99bd3b397263',
|
||||
'com.google.zxing:android-integration:89e56aadf1164bd71e57949163c53abf90af368b51669c0d4a47a163335f95c4',
|
||||
'com.android.support:support-v4-preferencefragment:5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad',
|
||||
'com.android.support:gridlayout-v7:a9b770cffca2c7c5cd83cba4dd12503365de5e8d9c79c479165adf18ab3bc25b',
|
||||
'com.squareup.dagger:dagger:789aca24537022e49f91fc6444078d9de8f1dd99e1bfb090f18491b186967883',
|
||||
'com.doomonafireball.betterpickers:library:132ecd685c95a99e7377c4e27bfadbb2d7ed0bea995944060cd62d4369fdaf3d',
|
||||
'com.madgag.spongycastle:prov:b8c3fec3a59aac1aa04ccf4dad7179351e54ef7672f53f508151b614c131398a',
|
||||
'org.whispersystems:jobmanager:506f679fc2fcf7bb6d10f00f41d6f6ea0abf75c70dc95b913398661ad538a181',
|
||||
'org.whispersystems:libpastelog:bb331d9a98240fc139101128ba836c1edec3c40e000597cdbb29ebf4cbf34d88',
|
||||
'com.amulyakhare:com.amulyakhare.textdrawable:54c92b5fba38cfd316a07e5a30528068f45ce8515a6890f1297df4c401af5dcb',
|
||||
'org.whispersystems:signal-service-android:1c89623336505f6511e6f68ea126c85eae7f28f6c72beb6b362e5743bc5e5126',
|
||||
'com.h6ah4i.android.compat:mulsellistprefcompat:47167c5cb796de1a854788e9ff318358e36c8fb88123baaa6e38fb78511dfabe',
|
||||
'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
|
||||
'com.google.android.gms:play-services-base:ef36e50fa5c0415ed41f74dd399a889efd2fa327c449036e140c7c3786aa0e1f',
|
||||
'com.android.support:support-annotations:104f353b53d5dd8d64b2f77eece4b37f6b961de9732eb6b706395e91033ec70a',
|
||||
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
|
||||
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
||||
'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f',
|
||||
'org.whispersystems:signal-service-java:48db52056aa3510deb8c4ccd2dfb35033ae115bc4176048820c6dff73290ba6e',
|
||||
'org.whispersystems:signal-protocol-android:d83cb3d15b667fc2543fa18ce80791c72c053e8ac54fc2941f0429a5944ca691',
|
||||
'com.google.android.gms:play-services-basement:e1d29b21e02fd2a63e5a31807415cbb17a59568e27e3254181c01ffae10659bf',
|
||||
'com.googlecode.libphonenumber:libphonenumber:9625de9d2270e9a280ff4e6d9ef3106573fb4828773fd32c9b7614f4e17d2811',
|
||||
'com.google.protobuf:protobuf-java:e0c1c64575c005601725e7c6a02cebf9e1285e888f756b2a1d73ffa8d725cc74',
|
||||
'com.squareup.okhttp:okhttp:89b7f63e2e5b6c410266abc14f50fe52ea8d2d8a57260829e499b1cd9f0e61af',
|
||||
'com.fasterxml.jackson.core:jackson-databind:835097bcdd11f5bc8a08378c70d4c8054dfa4b911691cc2752063c75534d198d',
|
||||
'org.whispersystems:curve25519-android:d6a3ef3a70622af4c728b7fe5f8fdfc9e6cd39b1d39b2c77e7a2add9d876bc23',
|
||||
'org.whispersystems:signal-protocol-java:d518d52eeb3c44210e0b6c687360848a87afbaee0bdf42e2a8dd9974d54fdb3a',
|
||||
'com.squareup.okio:okio:5e1098bd3fdee4c3347f5ab815b40ba851e4ab1b348c5e49a5b0362f0ce6e978',
|
||||
'com.fasterxml.jackson.core:jackson-annotations:0ca408c24202a7626ec8b861e99d85eca5e38b73311dd6dd12e3e9deecc3fe94',
|
||||
'com.fasterxml.jackson.core:jackson-core:cbf4604784b4de226262845447a1ad3bb38a6728cebe86562e2c5afada8be2c0',
|
||||
'org.whispersystems:curve25519-java:08cc3be52723e0fc4148e5e7002d51d6d7e495b2130022237f2d47b90af6ae0b',
|
||||
'com.android.support:support-v4:c62f0d025dafa86f423f48df9185b0d89496adbc5f6a9be5a7c394d84cf91423',
|
||||
'me.leolin:ShortcutBadger:3142d017234bfa0cdd69ccded7cc5ea63f13b97574803c8c616c9bbeaad33ad9',
|
||||
'se.emilsjolander:stickylistheaders:a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb',
|
||||
'com.google.android.gms:play-services-gcm:757ecd2c837ac81c98f4cc7dc783e7454c6d0506f6cc66b10417126b675248c9',
|
||||
'com.google.android.gms:play-services-maps:c58a9d98a98889fb0b27f78100f2d9341ed7722db24ccf832df62b6e8ce1b42e',
|
||||
'com.google.android.gms:play-services-location:8226f778aa86bd15b9143f62425262cc53d64021990f62eb1aaec108d4e25f35',
|
||||
'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa',
|
||||
'org.w3c:smil:085dc40f2bb249651578bfa07499fd08b16ad0886dbe2c4078586a408da62f9b',
|
||||
'org.apache.httpcomponents:httpclient-android:6f56466a9bd0d42934b90bfbfe9977a8b654c058bf44a12bdc2877c4e1f033f1',
|
||||
'com.github.chrisbanes.photoview:library:8b5344e206f125e7ba9d684008f36c4992d03853c57e5814125f88496126e3cc',
|
||||
'com.github.bumptech.glide:glide:76ef123957b5fbaebb05fcbe6606dd58c3bc3fcdadb257f99811d0ac9ea9b88b',
|
||||
'com.makeramen:roundedimageview:1f5a1865796b308c6cdd114acc6e78408b110f0a62fc63553278fbeacd489cd1',
|
||||
'com.pnikosis:materialish-progress:d71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54',
|
||||
'de.greenrobot:eventbus:61d743a748156a372024d083de763b9e91ac2dcb3f6a1cbc74995c7ddab6e968',
|
||||
'pl.tajchert:waitingdots:2835d49e0787dbcb606c5a60021ced66578503b1e9fddcd7a5ef0cd5f095ba2c',
|
||||
'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
|
||||
'com.android.support:appcompat-v7:4b5ccba8c4557ef04f99aa0a80f8aa7d50f05f926a709010a54afd5c878d3618',
|
||||
'com.android.support:recyclerview-v7:b0f530a5b14334d56ce0de85527ffe93ac419bc928e2884287ce1dddfedfb505',
|
||||
'com.android.support:design:58be3ca6a73789615f7ece0937d2f683b98b594bb90aa10565fa760fb10b07ee',
|
||||
'com.android.support:cardview-v7:2c2354761a4e20ba451ae903ab808f15c9acc8343b1e74001869c2d0a672c1fc',
|
||||
'com.melnykov:floatingactionbutton:15d58d4fac0f7a288d0e5301bbaf501a146f5b3f5921277811bf99bd3b397263',
|
||||
'com.google.zxing:android-integration:89e56aadf1164bd71e57949163c53abf90af368b51669c0d4a47a163335f95c4',
|
||||
'com.android.support:support-v4-preferencefragment:5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad',
|
||||
'com.android.support:gridlayout-v7:a9b770cffca2c7c5cd83cba4dd12503365de5e8d9c79c479165adf18ab3bc25b',
|
||||
'com.squareup.dagger:dagger:789aca24537022e49f91fc6444078d9de8f1dd99e1bfb090f18491b186967883',
|
||||
'com.doomonafireball.betterpickers:library:132ecd685c95a99e7377c4e27bfadbb2d7ed0bea995944060cd62d4369fdaf3d',
|
||||
'com.madgag.spongycastle:prov:b8c3fec3a59aac1aa04ccf4dad7179351e54ef7672f53f508151b614c131398a',
|
||||
'org.whispersystems:jobmanager:506f679fc2fcf7bb6d10f00f41d6f6ea0abf75c70dc95b913398661ad538a181',
|
||||
'org.whispersystems:libpastelog:bb331d9a98240fc139101128ba836c1edec3c40e000597cdbb29ebf4cbf34d88',
|
||||
'com.amulyakhare:com.amulyakhare.textdrawable:54c92b5fba38cfd316a07e5a30528068f45ce8515a6890f1297df4c401af5dcb',
|
||||
'org.whispersystems:signal-service-android:8e6517280a2ad4417a48a47c5c4c99d7d3d142c9568d81ce3af9fb704b1ecf50',
|
||||
'com.h6ah4i.android.compat:mulsellistprefcompat:47167c5cb796de1a854788e9ff318358e36c8fb88123baaa6e38fb78511dfabe',
|
||||
'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
|
||||
'cn.carbswang.android:NumberPickerView:18b3c316d62c7c277978a8d4ed57a5b8f4e943762264960f579a8a549c756729',
|
||||
'com.google.android.gms:play-services-base:ef36e50fa5c0415ed41f74dd399a889efd2fa327c449036e140c7c3786aa0e1f',
|
||||
'com.android.support:support-annotations:104f353b53d5dd8d64b2f77eece4b37f6b961de9732eb6b706395e91033ec70a',
|
||||
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
|
||||
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
||||
'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f',
|
||||
'org.whispersystems:signal-service-java:1f268ea089d82c3a13e6cad3f4da10d63d3789f750894f9e50dae2bf7999aa71',
|
||||
'org.whispersystems:signal-protocol-android:d83cb3d15b667fc2543fa18ce80791c72c053e8ac54fc2941f0429a5944ca691',
|
||||
'com.google.android.gms:play-services-basement:e1d29b21e02fd2a63e5a31807415cbb17a59568e27e3254181c01ffae10659bf',
|
||||
'com.googlecode.libphonenumber:libphonenumber:9625de9d2270e9a280ff4e6d9ef3106573fb4828773fd32c9b7614f4e17d2811',
|
||||
'com.google.protobuf:protobuf-java:e0c1c64575c005601725e7c6a02cebf9e1285e888f756b2a1d73ffa8d725cc74',
|
||||
'com.squareup.okhttp:okhttp:89b7f63e2e5b6c410266abc14f50fe52ea8d2d8a57260829e499b1cd9f0e61af',
|
||||
'com.fasterxml.jackson.core:jackson-databind:835097bcdd11f5bc8a08378c70d4c8054dfa4b911691cc2752063c75534d198d',
|
||||
'org.whispersystems:curve25519-android:d6a3ef3a70622af4c728b7fe5f8fdfc9e6cd39b1d39b2c77e7a2add9d876bc23',
|
||||
'org.whispersystems:signal-protocol-java:d518d52eeb3c44210e0b6c687360848a87afbaee0bdf42e2a8dd9974d54fdb3a',
|
||||
'com.squareup.okio:okio:5e1098bd3fdee4c3347f5ab815b40ba851e4ab1b348c5e49a5b0362f0ce6e978',
|
||||
'com.fasterxml.jackson.core:jackson-annotations:0ca408c24202a7626ec8b861e99d85eca5e38b73311dd6dd12e3e9deecc3fe94',
|
||||
'com.fasterxml.jackson.core:jackson-core:cbf4604784b4de226262845447a1ad3bb38a6728cebe86562e2c5afada8be2c0',
|
||||
'org.whispersystems:curve25519-java:08cc3be52723e0fc4148e5e7002d51d6d7e495b2130022237f2d47b90af6ae0b',
|
||||
'com.android.support:support-v4:c62f0d025dafa86f423f48df9185b0d89496adbc5f6a9be5a7c394d84cf91423',
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
android {
|
||||
compileSdkVersion 22
|
||||
buildToolsVersion '22.0.1'
|
||||
buildToolsVersion '23.0.2'
|
||||
|
||||
dexOptions {
|
||||
javaMaxHeapSize "4g"
|
||||
@@ -165,6 +172,8 @@ android {
|
||||
|
||||
buildConfigField "long", "BUILD_TIMESTAMP", getLastCommitTimestamp() + "L"
|
||||
buildConfigField "String", "TEXTSECURE_URL", "\"https://textsecure-service.whispersystems.org\""
|
||||
buildConfigField "String", "GIPHY_PROXY_HOST", "\"giphy-proxy-production.whispersystems.org\""
|
||||
buildConfigField "int", "GIPHY_PROXY_PORT", "80"
|
||||
buildConfigField "String", "USER_AGENT", "\"OWA\""
|
||||
buildConfigField "String", "REDPHONE_MASTER_URL", "\"https://redphone-master.whispersystems.org\""
|
||||
buildConfigField "String", "REDPHONE_RELAY_HOST", "\"relay.whispersystems.org\""
|
||||
|
||||
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
||||
#Wed Jul 22 14:31:11 PDT 2015
|
||||
#Sun Aug 28 20:14:40 PDT 2016
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
|
||||
|
||||
@@ -53,6 +53,14 @@ libwebrtc_spl \
|
||||
libwebrtc_vad \
|
||||
libcrypto_static
|
||||
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_MODULE := native-utils
|
||||
LOCAL_C_INCLUDES := $(JNI_DIR)/utils/
|
||||
LOCAL_CFLAGS += -Wall
|
||||
|
||||
LOCAL_SRC_FILES := $(JNI_DIR)/utils/org_thoughtcrime_securesms_util_FileUtils.cpp
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
@@ -26,6 +26,11 @@ RtpPacket* RtpAudioReceiver::receive(char* encodedData, int encodedDataLen) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (received < RtpPacket::getMinimumSize()) {
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "recveived malformed packet!");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
RtpPacket *packet = new RtpPacket(encodedData, received);
|
||||
|
||||
if (srtpStream.decrypt(*packet, sequenceCounter.convertNext(packet->getSequenceNumber())) != 0) {
|
||||
|
||||
@@ -21,6 +21,10 @@ public:
|
||||
RtpPacket(char *payload, int payloadLen, int sequenceNumber, int timestamp);
|
||||
~RtpPacket();
|
||||
|
||||
static int getMinimumSize() {
|
||||
return sizeof(RtpHeader);
|
||||
}
|
||||
|
||||
uint16_t getSequenceNumber();
|
||||
int getPayloadType();
|
||||
uint32_t getTimestamp();
|
||||
|
||||
31
jni/utils/org_thoughtcrime_securesms_util_FileUtils.cpp
Normal file
@@ -0,0 +1,31 @@
|
||||
#include "org_thoughtcrime_securesms_util_FileUtils.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
jint JNICALL Java_org_thoughtcrime_securesms_util_FileUtils_getFileDescriptorOwner
|
||||
(JNIEnv *env, jclass clazz, jobject fileDescriptor)
|
||||
{
|
||||
jclass fdClass = env->GetObjectClass(fileDescriptor);
|
||||
|
||||
if (fdClass == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
jfieldID fdFieldId = env->GetFieldID(fdClass, "descriptor", "I");
|
||||
|
||||
if (fdFieldId == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
int fd = env->GetIntField(fileDescriptor, fdFieldId);
|
||||
|
||||
struct stat stat_struct;
|
||||
|
||||
if (fstat(fd, &stat_struct) != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return stat_struct.st_uid;
|
||||
}
|
||||
21
jni/utils/org_thoughtcrime_securesms_util_FileUtils.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||
#include <jni.h>
|
||||
/* Header for class org_thoughtcrime_securesms_util_FileUtils */
|
||||
|
||||
#ifndef _Included_org_thoughtcrime_securesms_util_FileUtils
|
||||
#define _Included_org_thoughtcrime_securesms_util_FileUtils
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
/*
|
||||
* Class: org_thoughtcrime_securesms_util_FileUtils
|
||||
* Method: getFileDescriptorOwner
|
||||
* Signature: (Ljava/io/FileDescriptor;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_thoughtcrime_securesms_util_FileUtils_getFileDescriptorOwner
|
||||
(JNIEnv *, jclass, jobject);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
BIN
libs/armeabi-v7a/libnative-utils.so
Executable file
BIN
libs/armeabi/libnative-utils.so
Executable file
BIN
libs/x86/libnative-utils.so
Executable file
@@ -7,3 +7,7 @@
|
||||
-keep public class * extends android.support.v4.view.ActionProvider {
|
||||
public <init>(android.content.Context);
|
||||
}
|
||||
|
||||
-keepattributes *Annotation*
|
||||
-keep public class * extends android.support.design.widget.CoordinatorLayout.Behavior { *; }
|
||||
-keep public class * extends android.support.design.widget.ViewOffsetBehavior { *; }
|
||||
|
||||
BIN
res/drawable-hdpi/ic_check_white_48dp.png
Normal file
|
After Width: | Height: | Size: 276 B |
BIN
res/drawable-hdpi/ic_close_white_48dp.png
Normal file
|
After Width: | Height: | Size: 347 B |
BIN
res/drawable-hdpi/ic_dashboard_white_24dp.png
Normal file
|
After Width: | Height: | Size: 130 B |
BIN
res/drawable-hdpi/ic_gif_white_36dp.png
Normal file
|
After Width: | Height: | Size: 243 B |
BIN
res/drawable-hdpi/ic_hourglass_empty_white_18dp.png
Normal file
|
After Width: | Height: | Size: 298 B |
BIN
res/drawable-hdpi/ic_hourglass_full_white_18dp.png
Normal file
|
After Width: | Height: | Size: 230 B |
BIN
res/drawable-hdpi/ic_security_white_24dp.png
Normal file
|
After Width: | Height: | Size: 428 B |
BIN
res/drawable-hdpi/ic_timer_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 555 B |
BIN
res/drawable-hdpi/ic_timer_white_24dp.png
Normal file
|
After Width: | Height: | Size: 499 B |
BIN
res/drawable-hdpi/ic_view_stream_white_24dp.png
Normal file
|
After Width: | Height: | Size: 105 B |
BIN
res/drawable-hdpi/poweredby_giphy.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
res/drawable-mdpi/ic_check_white_48dp.png
Normal file
|
After Width: | Height: | Size: 199 B |
BIN
res/drawable-mdpi/ic_close_white_48dp.png
Normal file
|
After Width: | Height: | Size: 257 B |
BIN
res/drawable-mdpi/ic_dashboard_white_24dp.png
Normal file
|
After Width: | Height: | Size: 94 B |
BIN
res/drawable-mdpi/ic_gif_white_36dp.png
Normal file
|
After Width: | Height: | Size: 196 B |
BIN
res/drawable-mdpi/ic_hourglass_empty_white_18dp.png
Normal file
|
After Width: | Height: | Size: 224 B |
BIN
res/drawable-mdpi/ic_hourglass_full_white_18dp.png
Normal file
|
After Width: | Height: | Size: 195 B |
BIN
res/drawable-mdpi/ic_security_white_24dp.png
Normal file
|
After Width: | Height: | Size: 288 B |
BIN
res/drawable-mdpi/ic_timer_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 361 B |
BIN
res/drawable-mdpi/ic_timer_white_24dp.png
Normal file
|
After Width: | Height: | Size: 329 B |
BIN
res/drawable-mdpi/ic_view_stream_white_24dp.png
Normal file
|
After Width: | Height: | Size: 82 B |
BIN
res/drawable-mdpi/poweredby_giphy.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
res/drawable-xhdpi/ic_check_white_48dp.png
Normal file
|
After Width: | Height: | Size: 308 B |
BIN
res/drawable-xhdpi/ic_close_white_48dp.png
Normal file
|
After Width: | Height: | Size: 436 B |
BIN
res/drawable-xhdpi/ic_dashboard_white_24dp.png
Normal file
|
After Width: | Height: | Size: 104 B |
BIN
res/drawable-xhdpi/ic_gif_white_36dp.png
Normal file
|
After Width: | Height: | Size: 213 B |
BIN
res/drawable-xhdpi/ic_hourglass_empty_white_18dp.png
Normal file
|
After Width: | Height: | Size: 273 B |
BIN
res/drawable-xhdpi/ic_hourglass_full_white_18dp.png
Normal file
|
After Width: | Height: | Size: 197 B |
BIN
res/drawable-xhdpi/ic_security_white_24dp.png
Normal file
|
After Width: | Height: | Size: 507 B |
BIN
res/drawable-xhdpi/ic_timer_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 641 B |
BIN
res/drawable-xhdpi/ic_timer_white_24dp.png
Normal file
|
After Width: | Height: | Size: 628 B |
BIN
res/drawable-xhdpi/ic_view_stream_white_24dp.png
Normal file
|
After Width: | Height: | Size: 92 B |
BIN
res/drawable-xhdpi/poweredby_giphy.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
res/drawable-xxhdpi/ic_check_white_48dp.png
Normal file
|
After Width: | Height: | Size: 386 B |
BIN
res/drawable-xxhdpi/ic_close_white_48dp.png
Normal file
|
After Width: | Height: | Size: 524 B |
BIN
res/drawable-xxhdpi/ic_dashboard_white_24dp.png
Normal file
|
After Width: | Height: | Size: 109 B |
BIN
res/drawable-xxhdpi/ic_gif_white_36dp.png
Normal file
|
After Width: | Height: | Size: 312 B |
BIN
res/drawable-xxhdpi/ic_hourglass_empty_white_18dp.png
Normal file
|
After Width: | Height: | Size: 509 B |
BIN
res/drawable-xxhdpi/ic_hourglass_full_white_18dp.png
Normal file
|
After Width: | Height: | Size: 349 B |
BIN
res/drawable-xxhdpi/ic_security_white_24dp.png
Normal file
|
After Width: | Height: | Size: 702 B |
BIN
res/drawable-xxhdpi/ic_timer_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 986 B |
BIN
res/drawable-xxhdpi/ic_timer_white_24dp.png
Normal file
|
After Width: | Height: | Size: 901 B |
BIN
res/drawable-xxhdpi/ic_view_stream_white_24dp.png
Normal file
|
After Width: | Height: | Size: 94 B |
BIN
res/drawable-xxhdpi/poweredby_giphy.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
res/drawable-xxxhdpi/ic_check_white_48dp.png
Normal file
|
After Width: | Height: | Size: 466 B |
BIN
res/drawable-xxxhdpi/ic_close_white_48dp.png
Normal file
|
After Width: | Height: | Size: 707 B |
BIN
res/drawable-xxxhdpi/ic_dashboard_white_24dp.png
Normal file
|
After Width: | Height: | Size: 110 B |
BIN
res/drawable-xxxhdpi/ic_gif_white_36dp.png
Normal file
|
After Width: | Height: | Size: 308 B |
BIN
res/drawable-xxxhdpi/ic_hourglass_empty_white_18dp.png
Normal file
|
After Width: | Height: | Size: 417 B |
BIN
res/drawable-xxxhdpi/ic_hourglass_full_white_18dp.png
Normal file
|
After Width: | Height: | Size: 279 B |
BIN
res/drawable-xxxhdpi/ic_security_white_24dp.png
Normal file
|
After Width: | Height: | Size: 913 B |
BIN
res/drawable-xxxhdpi/ic_timer_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
res/drawable-xxxhdpi/ic_timer_white_24dp.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
res/drawable-xxxhdpi/ic_view_stream_white_24dp.png
Normal file
|
After Width: | Height: | Size: 98 B |
BIN
res/drawable-xxxhdpi/poweredby_giphy.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
@@ -6,5 +6,11 @@
|
||||
</shape>
|
||||
<layer-list android:src="@drawable/import_export_item_background_dark" />
|
||||
</item>
|
||||
<item android:state_focused="true">
|
||||
<shape>
|
||||
<solid android:color="@color/import_export_touch_highlight_dark" />
|
||||
</shape>
|
||||
<layer-list android:src="@drawable/import_export_item_background_dark" />
|
||||
</item>
|
||||
<item android:drawable="@drawable/import_export_item_background_dark" />
|
||||
</selector>
|
||||
|
||||
@@ -6,5 +6,11 @@
|
||||
</shape>
|
||||
<layer-list android:src="@drawable/import_export_item_background_light" />
|
||||
</item>
|
||||
<item android:state_focused="true">
|
||||
<shape>
|
||||
<solid android:color="@color/import_export_touch_highlight_light" />
|
||||
</shape>
|
||||
<layer-list android:src="@drawable/import_export_item_background_light" />
|
||||
</item>
|
||||
<item android:drawable="@drawable/import_export_item_background_light" />
|
||||
</selector>
|
||||
|
||||
8
res/drawable/compose_divider_background.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:dither="true"
|
||||
android:endColor="@android:color/transparent"
|
||||
android:startColor="@color/conversation_compose_divider" />
|
||||
</shape>
|
||||
@@ -1,4 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
</selector>
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
</selector>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/conversation_list_item_background_read_light" />
|
||||
</selector>
|
||||
</selector>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/conversation_list_item_background_read_dark" />
|
||||
</selector>
|
||||
</selector>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/conversation_list_item_background_unread_light" />
|
||||
</selector>
|
||||
</selector>
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_selected="true" />
|
||||
<item android:drawable="@color/textsecure_primary_alpha33" android:state_pressed="true" />
|
||||
<item android:drawable="@color/signal_primary_alpha_focus" android:state_focused="true" />
|
||||
<item android:drawable="@color/conversation_list_item_background_unread_dark" />
|
||||
</selector>
|
||||
</selector>
|
||||
|
||||
5
res/drawable/qr_code_background.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<solid android:color="@color/white"/>
|
||||
</shape>
|
||||
6
res/drawable/reminder_background.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true" android:drawable="@color/signal_primary" />
|
||||
<item android:state_focused="true" android:drawable="@color/signal_primary" />
|
||||
<item android:drawable="@color/signal_primary_dark" />
|
||||
</selector>
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true" android:drawable="@color/touch_highlight" />
|
||||
<item android:state_focused="true" android:drawable="@color/signal_primary" />
|
||||
<item android:drawable="@android:color/transparent" />
|
||||
</selector>
|
||||
</selector>
|
||||
|
||||
@@ -169,6 +169,21 @@
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<org.thoughtcrime.securesms.components.CircleColorImageView
|
||||
android:id="@+id/giphy_button"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:src="@drawable/ic_gif_white_36dp"
|
||||
android:scaleType="center"
|
||||
android:elevation="4dp"
|
||||
app:circleColor="@color/cyan_400"/>
|
||||
|
||||
<TextView android:layout_marginTop="10dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/AttachmentTypeLabel"
|
||||
android:text="GIF"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:layout_width="match_parent"
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/circle_touch_highlight_background"
|
||||
android:src="@drawable/ic_dialpad_white_24dp" />
|
||||
|
||||
@@ -57,6 +58,7 @@
|
||||
android:gravity="center_vertical"
|
||||
android:clickable="true"
|
||||
android:visibility="gone"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/circle_touch_highlight_background"
|
||||
android:src="@drawable/ic_keyboard_white_24dp" />
|
||||
|
||||
@@ -67,6 +69,7 @@
|
||||
android:gravity="center_vertical"
|
||||
android:clickable="true"
|
||||
android:visibility="gone"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/circle_touch_highlight_background"
|
||||
android:src="@drawable/ic_clear_white_24dp" />
|
||||
|
||||
@@ -76,4 +79,4 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</merge>
|
||||
</merge>
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical" />
|
||||
|
||||
<TextView android:id="@android:id/empty"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
android:layout_height="?android:attr/listPreferredItemHeight"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/conversation_item_background"
|
||||
android:paddingLeft="48dp"
|
||||
android:paddingRight="20dp">
|
||||
|
||||
|
||||
@@ -1,16 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@android:id/list"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1.0"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical"
|
||||
android:cacheColorHint="?conversation_background" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<!--suppress AndroidLintUnusedAttribute-->
|
||||
<View android:id="@+id/compose_divider"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:background="@drawable/compose_divider_background"
|
||||
android:alpha="0"
|
||||
android:visibility="invisible" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
android:paddingRight="10dip"
|
||||
android:orientation="vertical"
|
||||
android:background="@drawable/conversation_item_background"
|
||||
android:focusable="true"
|
||||
android:nextFocusLeft="@+id/container"
|
||||
android:nextFocusRight="@+id/embedded_text_editor"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
@@ -43,7 +46,8 @@
|
||||
android:layout_toRightOf="@id/contact_photo"
|
||||
android:layout_marginRight="35dp"
|
||||
android:background="@drawable/received_bubble"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
tools:backgroundTint="@color/blue_900">
|
||||
|
||||
<org.thoughtcrime.securesms.components.ThumbnailView
|
||||
android:id="@+id/image_view"
|
||||
@@ -112,14 +116,28 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:paddingTop="2dp"
|
||||
android:paddingRight="4dp"
|
||||
android:paddingRight="2dp"
|
||||
android:paddingEnd="4dp"
|
||||
android:src="?menu_lock_icon_small"
|
||||
android:contentDescription="@string/conversation_item__secure_message_description"
|
||||
android:visibility="gone"
|
||||
android:tint="?conversation_item_received_text_secondary_color"
|
||||
android:tintMode="multiply"/>
|
||||
android:tintMode="multiply"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<org.thoughtcrime.securesms.components.ExpirationTimerView
|
||||
android:id="@+id/expiration_indicator"
|
||||
app:empty="@drawable/ic_hourglass_empty_white_18dp"
|
||||
app:full="@drawable/ic_hourglass_full_white_18dp"
|
||||
app:tint="?conversation_item_received_text_secondary_color"
|
||||
app:percentage="0"
|
||||
app:offset="0"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:alpha=".65"
|
||||
android:layout_width="10dp"
|
||||
android:layout_height="11dp"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<org.thoughtcrime.securesms.components.DeliveryStatusView
|
||||
android:id="@+id/delivery_status"
|
||||
@@ -138,7 +156,8 @@
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:autoLink="none"
|
||||
android:linksClickable="false"
|
||||
tools:text="Now"/>
|
||||
tools:text="Now"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<TextView android:id="@+id/sim_info"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:focusable="true"
|
||||
android:nextFocusLeft="@id/container"
|
||||
android:nextFocusRight="@id/embedded_text_editor"
|
||||
android:background="@drawable/conversation_item_background">
|
||||
|
||||
<RelativeLayout android:layout_width="match_parent"
|
||||
@@ -117,7 +120,7 @@
|
||||
android:minWidth="15sp"
|
||||
android:linksClickable="false"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:layout_gravity="right"
|
||||
android:layout_gravity="right|bottom"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:textColor="?conversation_item_sent_text_secondary_color"
|
||||
android:textSize="@dimen/conversation_item_date_text_size"
|
||||
@@ -132,7 +135,7 @@
|
||||
android:minWidth="15sp"
|
||||
android:linksClickable="false"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:layout_gravity="right"
|
||||
android:layout_gravity="right|bottom"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:textColor="?conversation_item_sent_text_secondary_color"
|
||||
android:textSize="@dimen/conversation_item_date_text_size"
|
||||
@@ -148,8 +151,24 @@
|
||||
android:id="@+id/delivery_status"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:alpha=".7"
|
||||
app:iconColor="?conversation_item_sent_text_secondary_color"/>
|
||||
|
||||
<org.thoughtcrime.securesms.components.ExpirationTimerView
|
||||
android:id="@+id/expiration_indicator"
|
||||
app:empty="@drawable/ic_hourglass_empty_white_18dp"
|
||||
app:full="@drawable/ic_hourglass_full_white_18dp"
|
||||
app:tint="@color/black"
|
||||
app:percentage="0"
|
||||
app:offset="0"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:alpha=".6"
|
||||
android:layout_marginLeft="3dp"
|
||||
android:layout_width="10dp"
|
||||
android:layout_height="11dp"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<ImageView android:id="@+id/secure_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@@ -157,10 +176,10 @@
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
android:paddingLeft="2dp"
|
||||
android:paddingBottom="3dp"
|
||||
android:tint="?conversation_item_sent_text_secondary_color"
|
||||
android:tintMode="multiply"
|
||||
android:contentDescription="@string/conversation_item__secure_message_description" />
|
||||
android:contentDescription="@string/conversation_item__secure_message_description"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
android:id="@+id/conversation_update_item"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/conversation_item_background"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center"
|
||||
android:padding="20dp">
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:focusable="true"
|
||||
android:nextFocusRight="@+id/fab"
|
||||
android:nextFocusLeft="@+id/container"
|
||||
android:layout_height="70dp">
|
||||
|
||||
<org.thoughtcrime.securesms.components.AvatarImageView
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<FrameLayout android:id="@+id/pending_indicator_stub"
|
||||
android:layout_width="wrap_content"
|
||||
android:paddingRight="2dp"
|
||||
android:layout_height="wrap_content" />
|
||||
android:layout_height="wrap_content"
|
||||
tools:visibility="gone"/>
|
||||
|
||||
<ImageView android:id="@+id/sent_indicator"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -24,6 +26,7 @@
|
||||
android:paddingLeft="2dp"
|
||||
android:paddingBottom="2dp"
|
||||
android:visibility="gone"
|
||||
android:contentDescription="@string/conversation_item_sent__delivered_description" />
|
||||
android:contentDescription="@string/conversation_item_sent__delivered_description"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
</merge>
|
||||
34
res/layout/expiration_dialog.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center">
|
||||
|
||||
<cn.carbswang.android.numberpickerview.library.NumberPickerView
|
||||
android:id="@+id/expiration_number_picker"
|
||||
android:layout_alignParentTop="true"
|
||||
app:npv_WrapSelectorWheel="false"
|
||||
app:npv_DividerColor="#cbc8ea"
|
||||
app:npv_TextColorNormal="?conversation_number_picker_text_color_normal"
|
||||
app:npv_TextColorSelected="?conversation_number_picker_text_color_selected"
|
||||
app:npv_ItemPaddingVertical="20dp"
|
||||
app:npv_TextColorHint="@color/grey_600"
|
||||
app:npv_TextSizeNormal="16sp"
|
||||
app:npv_TextSizeSelected="16sp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<TextView android:id="@+id/expiration_details"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/expiration_number_picker"
|
||||
android:minLines="3"
|
||||
android:padding="20dp"
|
||||
tools:text="Your messages will not expire."/>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
26
res/layout/expiration_timer_menu.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
style="?android:attr/actionButtonStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/menu_badge_icon"
|
||||
android:src="@drawable/ic_timer_white_24dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/expiration_badge"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:gravity="center_horizontal|bottom"
|
||||
android:paddingBottom="3dp"
|
||||
android:paddingTop="1dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="10sp" />
|
||||
</FrameLayout>
|
||||
@@ -60,7 +60,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dip"
|
||||
android:background="?import_export_item_card_background"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
android:focusable="true">
|
||||
|
||||
<LinearLayout android:orientation="horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
52
res/layout/giphy_activity.xml
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@+id/giphy_logo"
|
||||
android:orientation="vertical">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="?attr/actionBarStyle"
|
||||
android:background="?attr/colorPrimary">
|
||||
|
||||
<org.thoughtcrime.securesms.giph.ui.GiphyActivityToolbar
|
||||
android:id="@+id/giphy_toolbar"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:background="?attr/colorPrimary"
|
||||
android:theme="?attr/actionBarStyle"
|
||||
app:layout_scrollFlags="scroll|enterAlways"/>
|
||||
|
||||
<android.support.design.widget.TabLayout
|
||||
android:id="@+id/tab_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scrollbars="horizontal"/>
|
||||
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/giphy_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
||||
<ImageView android:id="@+id/giphy_logo"
|
||||
android:src="@drawable/poweredby_giphy"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:padding="10dp"
|
||||
android:background="@color/black"/>
|
||||
|
||||
</RelativeLayout>
|
||||
88
res/layout/giphy_activity_toolbar.xml
Normal file
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<LinearLayout android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView android:id="@+id/action_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:clickable="true"
|
||||
android:background="@drawable/circle_touch_highlight_background"
|
||||
android:src="@drawable/ic_search_white_24dp" />
|
||||
|
||||
<LinearLayout android:id="@+id/toggle_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<EditText android:id="@+id/search_view"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="0px"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginStart="5dp"
|
||||
android:hint="@string/giphy_activity_toolbar__search_gifs_and_stickers"
|
||||
android:textColor="@color/white"
|
||||
android:textColorHint="@color/white"
|
||||
android:textCursorDrawable="@null"
|
||||
android:maxLines="1"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
android:imeOptions="actionSearch"
|
||||
android:background="@android:color/transparent"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"/>
|
||||
|
||||
<ImageView android:id="@+id/search_clear"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:visibility="invisible"
|
||||
android:background="@drawable/circle_touch_highlight_background"
|
||||
android:src="@drawable/ic_clear_white_24dp" />
|
||||
|
||||
<org.thoughtcrime.securesms.components.AnimatingToggle
|
||||
android:id="@+id/button_toggle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:gravity="center">
|
||||
|
||||
<ImageView android:id="@+id/view_grid"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:clickable="true"
|
||||
android:visibility="visible"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/circle_touch_highlight_background"
|
||||
android:src="@drawable/ic_dashboard_white_24dp" />
|
||||
|
||||
<ImageView android:id="@+id/view_stream"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:gravity="center_vertical"
|
||||
android:visibility="gone"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="@drawable/circle_touch_highlight_background"
|
||||
android:src="@drawable/ic_view_stream_white_24dp" />
|
||||
|
||||
</org.thoughtcrime.securesms.components.AnimatingToggle>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</merge>
|
||||