Compare commits
105 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4e8511b4c | ||
|
|
13328ca0d0 | ||
|
|
6a188248a7 | ||
|
|
5e493c90f8 | ||
|
|
8e735cd66f | ||
|
|
885fc88aad | ||
|
|
69ee4cbc71 | ||
|
|
2790128e9c | ||
|
|
a4f7b78fd0 | ||
|
|
fc5777e904 | ||
|
|
a0beb7f0e0 | ||
|
|
d58f4d1232 | ||
|
|
473e470883 | ||
|
|
4dce79334d | ||
|
|
e914496216 | ||
|
|
9b3457f0b2 | ||
|
|
d21fe517e4 | ||
|
|
8290970d50 | ||
|
|
2e8841c1d6 | ||
|
|
dc1b420fef | ||
|
|
e41f34729e | ||
|
|
4fe6256967 | ||
|
|
d9467ef3c5 | ||
|
|
d5bf1b6137 | ||
|
|
bfe4ad6c34 | ||
|
|
4e8e8978f4 | ||
|
|
7817c7697e | ||
|
|
06f2908d78 | ||
|
|
61386e9ca9 | ||
|
|
4314a4b42b | ||
|
|
945636ac5c | ||
|
|
ba4ebed59b | ||
|
|
7c0bf0c871 | ||
|
|
02c37e815c | ||
|
|
6a99c6c4ac | ||
|
|
a65ade5366 | ||
|
|
332c722f1d | ||
|
|
7aeb4c96ee | ||
|
|
cd085faecd | ||
|
|
1323b49c57 | ||
|
|
9915fa347f | ||
|
|
bcd08956bd | ||
|
|
25da3525fa | ||
|
|
245c0adeea | ||
|
|
0d06e78d25 | ||
|
|
2ce2a0d5c3 | ||
|
|
040f8c81bf | ||
|
|
ce1c6e2372 | ||
|
|
1d8aef1669 | ||
|
|
cca38ddf3f | ||
|
|
ce617fb7cb | ||
|
|
43ebf829ca | ||
|
|
487f8cbb38 | ||
|
|
36426a74c1 | ||
|
|
04f9187c14 | ||
|
|
8efe6e7286 | ||
|
|
745faa12a7 | ||
|
|
0cd4cc67af | ||
|
|
9201d50f05 | ||
|
|
f82a7fee49 | ||
|
|
66578a2c76 | ||
|
|
c4339813e6 | ||
|
|
927aac2c4a | ||
|
|
5a29c61dac | ||
|
|
149ac9f417 | ||
|
|
6c20a4c08b | ||
|
|
8fc690d8e0 | ||
|
|
dd0a952c83 | ||
|
|
ff123943cb | ||
|
|
493bd9be6b | ||
|
|
028a1ab2b0 | ||
|
|
058bcf1f4a | ||
|
|
ae379cd3dd | ||
|
|
f3a4634d30 | ||
|
|
de3106344a | ||
|
|
fecc5e63e8 | ||
|
|
69f5aacd25 | ||
|
|
2a753c7795 | ||
|
|
c17e24250d | ||
|
|
cb60e08da2 | ||
|
|
21f04605c6 | ||
|
|
0c75e652eb | ||
|
|
d3000f384f | ||
|
|
76b0183e0f | ||
|
|
e51e5cdfd4 | ||
|
|
5b1e5b18f9 | ||
|
|
fb9ba8cb8d | ||
|
|
b136fed6f7 | ||
|
|
fb8d6cb538 | ||
|
|
7bec5efe1a | ||
|
|
5c59c3f423 | ||
|
|
181c7dfd85 | ||
|
|
d05097a6fd | ||
|
|
75483299dc | ||
|
|
5333647794 | ||
|
|
e1f9519235 | ||
|
|
7f0b0803bc | ||
|
|
c867316e6a | ||
|
|
b0137c08cb | ||
|
|
534421eb57 | ||
|
|
b97363e407 | ||
|
|
aaf3f70ce5 | ||
|
|
5fd5b1e1ed | ||
|
|
56a3c99289 | ||
|
|
b5b564cfe1 |
@@ -1,7 +0,0 @@
|
||||
language: android
|
||||
android:
|
||||
components:
|
||||
- platform-tools
|
||||
- build-tools-19.1.0
|
||||
- android-19
|
||||
- extra-android-m2repository
|
||||
@@ -3,7 +3,7 @@ host = https://www.transifex.com
|
||||
lang_map = fr_CA:fr-rCA,pt_BR:pt-rBR,pt_PT:pt,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW,da_DK:da-rDK,de_DE:de,tr_TR:tr,fr_FR:fr,es_ES:es,hu_HU:hu,sv_SE:sv-rSE,bg_BG:bg,el_GR:el,kn_IN:kn-rIN,cs_CZ:cs,sr:sr,he:iw,id:in
|
||||
|
||||
|
||||
[textsecure-official.master]
|
||||
[signal-android.master]
|
||||
file_filter = res/values-<lang>/strings.xml
|
||||
source_file = res/values/strings.xml
|
||||
source_lang = en
|
||||
|
||||
@@ -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="163"
|
||||
android:versionName="3.3.0">
|
||||
android:versionCode="172"
|
||||
android:versionName="3.5.2">
|
||||
|
||||
<uses-sdk tools:overrideLibrary="com.amulyakhare.textdrawable,com.astuetz.pagerslidingtabstrip,pl.tajchert.waitingdots,com.h6ah4i.android.multiselectlistpreferencecompat"/>
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
|
||||
<uses-feature android:name="android.hardware.wifi" android:required="false"/>
|
||||
<uses-feature android:name="android.hardware.portrait" android:required="false"/>
|
||||
<uses-feature android:name="android.hardware.telephony" android:required="false"/>
|
||||
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
|
||||
|
||||
<uses-permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"/>
|
||||
@@ -132,12 +131,6 @@
|
||||
|
||||
<activity android:name=".DeviceProvisioningActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="tsdevice"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name=".preferences.MmsPreferencesActivity"
|
||||
@@ -234,6 +227,7 @@
|
||||
|
||||
<activity android:name=".NewConversationActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:windowSoftInputMode="stateAlwaysVisible"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".PushContactSelectionActivity"
|
||||
@@ -266,7 +260,7 @@
|
||||
<activity android:name=".RegistrationProgressActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".DeviceListActivity"
|
||||
<activity android:name=".DeviceActivity"
|
||||
android:label="@string/AndroidManifest_manage_linked_devices"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
@@ -297,7 +291,7 @@
|
||||
android:finishOnTaskLaunch="true" />
|
||||
|
||||
<activity android:name=".PlayServicesProblemActivity"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar"
|
||||
android:theme="@style/TextSecure.DialogActivity"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
<activity android:name=".SmsSendtoActivity">
|
||||
@@ -318,6 +312,19 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="org.thoughtcrime.redphone.RedPhoneShare"
|
||||
android:theme="@style/NoAnimation.Theme.BlackScreen"
|
||||
android:launchMode="singleTask"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<data android:mimeType="vnd.android.cursor.item/vnd.org.thoughtcrime.securesms.call" />
|
||||
</intent-filter>
|
||||
|
||||
</activity>
|
||||
|
||||
<activity android:name=".RecipientPreferenceActivity"
|
||||
android:theme="@style/TextSecure.LightNoActionBar"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
|
||||
|
||||
38
BUILDING.md
@@ -1,22 +1,22 @@
|
||||
Building TextSecure
|
||||
=====================
|
||||
Building Signal
|
||||
===============
|
||||
|
||||
Basics
|
||||
------
|
||||
|
||||
TextSecure uses [Gradle](http://gradle.org) to build the project and to maintain
|
||||
Signal uses [Gradle](http://gradle.org) to build the project and to maintain
|
||||
dependencies.
|
||||
|
||||
Building TextSecure
|
||||
-------------------
|
||||
Building Signal
|
||||
---------------
|
||||
|
||||
The following steps should help you (re)build TextSecure from the command line.
|
||||
The following steps should help you (re)build Signal from the command line.
|
||||
|
||||
1. Checkout the source somewhere on your filesystem with
|
||||
1. Checkout the Signal-Android project source with the command:
|
||||
|
||||
git clone https://github.com/WhisperSystems/TextSecure.git
|
||||
git clone https://github.com/WhisperSystems/Signal-Android.git
|
||||
|
||||
2. Make sure you have the [Android SDK](https://developer.android.com/sdk/index.html) installed somewhere on your system.
|
||||
2. Make sure you have the [Android SDK](https://developer.android.com/sdk/index.html) installed.
|
||||
3. Ensure that the following packages are installed from the Android SDK manager:
|
||||
* Android SDK Build Tools
|
||||
* SDK Platform
|
||||
@@ -38,8 +38,8 @@ Source assets tend to be large binary blobs, which are best stored outside of gi
|
||||
Sample command for generating our audio placeholder image:
|
||||
|
||||
```bash
|
||||
pngs_from_svg.py ic_audio.svg /path/to/TextSecure/res/ 150 --color #000 --opacity 0.54 --suffix _light
|
||||
pngs_from_svg.py ic_audio.svg /path/to/TextSecure/res/ 150 --color #fff --opacity 1.00 --suffix _light
|
||||
pngs_from_svg.py ic_audio.svg /path/to/Signal/res/ 150 --color #000 --opacity 0.54 --suffix _light
|
||||
pngs_from_svg.py ic_audio.svg /path/to/Signal/res/ 150 --color #fff --opacity 1.00 --suffix _light
|
||||
```
|
||||
|
||||
Setting up a development environment
|
||||
@@ -48,13 +48,14 @@ Setting up a development environment
|
||||
[Android Studio](https://developer.android.com/sdk/installing/studio.html) is the recommended development environment.
|
||||
|
||||
1. Install Android Studio.
|
||||
2. Make sure the "Android Support Repository" is installed in the Android Studio SDK.
|
||||
3. Make sure the latest "Android SDK build-tools" is installed in the Android Studio SDK.
|
||||
4. Create a new Android Studio project. from the Quickstart pannel (use File > Close Project to see it), choose "Checkout from Version Control" then "git".
|
||||
5. Paste the URL for the TextSecure project when prompted (https://github.com/WhisperSystems/TextSecure.git).
|
||||
6. Android studio should detect the presence of a project file and ask you whether to open it. Click "yes".
|
||||
7. Default config options should be good enough.
|
||||
8. Project initialisation and build should proceed.
|
||||
2. Open Android Studio. On a new installation, the Quickstart panel will appear. If you have open projects, close them using "File > Close Project" to see the Quickstart panel.
|
||||
3. From the Quickstart panel, choose "Configure" then "SDK Manager".
|
||||
4. In the SDK Tools tab of the SDK Manager, make sure that the "Android Support Repository" is installed, and that the latest "Android SDK build-tools" are installed. Click "OK" to return to the Quickstart panel.
|
||||
5. From the Quickstart panel, choose "Checkout from Version Control" then "git".
|
||||
6. Paste the URL for the Signal-Android project when prompted (https://github.com/WhisperSystems/Signal-Android.git).
|
||||
7. Android studio should detect the presence of a project file and ask you whether to open it. Click "yes".
|
||||
9. Default config options should be good enough.
|
||||
9. Project initialisation and build should proceed.
|
||||
|
||||
Contributing code
|
||||
-----------------
|
||||
@@ -67,3 +68,4 @@ Mailing list
|
||||
Development discussion happens on the whispersystems mailing list.
|
||||
[To join](https://lists.riseup.net/www/info/whispersystems)
|
||||
Send emails to whispersystems@lists.riseup.net
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ If you're interested in a life of peace and tranquility, stick with the standard
|
||||
## Contributing Translations
|
||||
Interested in helping to translate Signal? Contribute here:
|
||||
|
||||
https://www.transifex.com/projects/p/textsecure-official/
|
||||
https://www.transifex.com/projects/p/signal-android/
|
||||
|
||||
## Contributing Code
|
||||
Instructions on how to setup your development environment and build Signal can be found in [BUILDING.md](https://github.com/WhisperSystems/Signal-Android/blob/master/BUILDING.md).
|
||||
@@ -45,7 +45,7 @@ whispersystems@lists.riseup.net
|
||||
https://lists.riseup.net/www/info/whispersystems
|
||||
|
||||
## Contributing Funds
|
||||
[](https://www.coinbase.com/checkouts/51dac699e660a4d773216b5ad94d6a0b)
|
||||
[](https://www.coinbase.com/checkouts/51dac699e660a4d773216b5ad94d6a0b)
|
||||
|
||||
You can add funds to BitHub to directly help further development efforts.
|
||||
|
||||
|
||||
36
build.gradle
@@ -29,9 +29,6 @@ repositories {
|
||||
maven { // textdrawable
|
||||
url 'https://dl.bintray.com/amulyakhare/maven'
|
||||
}
|
||||
maven { // material-dialogs
|
||||
url "https://jitpack.io"
|
||||
}
|
||||
jcenter()
|
||||
mavenLocal()
|
||||
}
|
||||
@@ -48,16 +45,12 @@ dependencies {
|
||||
compile 'com.makeramen:roundedimageview:2.1.0'
|
||||
compile 'com.pnikosis:materialish-progress:1.5'
|
||||
compile 'de.greenrobot:eventbus:2.4.0'
|
||||
compile ('com.afollestad:material-dialogs:0.7.3.1') {
|
||||
exclude module: 'appcompat-v7'
|
||||
exclude module: 'recyclerview-v7'
|
||||
exclude module: 'support-annotations'
|
||||
}
|
||||
|
||||
compile 'pl.tajchert:waitingdots:0.1.0'
|
||||
compile 'com.soundcloud.android:android-crop:0.9.10@aar'
|
||||
compile 'com.android.support:appcompat-v7:22.1.1'
|
||||
compile 'com.android.support:recyclerview-v7:21.0.3'
|
||||
compile 'com.android.support:appcompat-v7:22.2.1'
|
||||
compile 'com.android.support:recyclerview-v7:22.2.1'
|
||||
compile 'com.android.support:design:22.2.1'
|
||||
compile 'com.android.support:cardview-v7:22.2.1'
|
||||
compile 'com.melnykov:floatingactionbutton:1.3.0'
|
||||
compile 'com.google.zxing:android-integration:3.1.0'
|
||||
compile ('com.android.support:support-v4-preferencefragment:1.0.0@aar'){
|
||||
@@ -77,8 +70,9 @@ dependencies {
|
||||
compile 'org.whispersystems:jobmanager:1.0.2'
|
||||
compile 'org.whispersystems:libpastelog:1.0.6'
|
||||
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
|
||||
compile 'org.whispersystems:textsecure-android:1.8.1'
|
||||
compile 'org.whispersystems:textsecure-android:1.8.3'
|
||||
compile 'com.h6ah4i.android.compat:mulsellistprefcompat:1.0.0'
|
||||
compile 'com.google.zxing:core:3.2.1'
|
||||
|
||||
testCompile 'junit:junit:4.12'
|
||||
testCompile 'org.assertj:assertj-core:1.7.1'
|
||||
@@ -112,11 +106,12 @@ dependencyVerification {
|
||||
'com.makeramen:roundedimageview:1f5a1865796b308c6cdd114acc6e78408b110f0a62fc63553278fbeacd489cd1',
|
||||
'com.pnikosis:materialish-progress:d71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54',
|
||||
'de.greenrobot:eventbus:61d743a748156a372024d083de763b9e91ac2dcb3f6a1cbc74995c7ddab6e968',
|
||||
'com.afollestad:material-dialogs:624dffff240533ca69414464f416c81c88c5c29689bb169093b9a333104f2471',
|
||||
'pl.tajchert:waitingdots:2835d49e0787dbcb606c5a60021ced66578503b1e9fddcd7a5ef0cd5f095ba2c',
|
||||
'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
|
||||
'com.android.support:appcompat-v7:9a2355537c2f01cf0b95523605c18606b8d824017e6e94a05c77b0cfc8f21c96',
|
||||
'com.android.support:recyclerview-v7:e525ad3f33c84bb12b73d2dc975b55364a53f0f2d0697e043efba59ba73e22d2',
|
||||
'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',
|
||||
@@ -127,14 +122,16 @@ dependencyVerification {
|
||||
'org.whispersystems:jobmanager:506f679fc2fcf7bb6d10f00f41d6f6ea0abf75c70dc95b913398661ad538a181',
|
||||
'org.whispersystems:libpastelog:550d33c565380d90f4c671e7b8ed5f3a6da55a9fda468373177106b2eb5220b2',
|
||||
'com.amulyakhare:com.amulyakhare.textdrawable:54c92b5fba38cfd316a07e5a30528068f45ce8515a6890f1297df4c401af5dcb',
|
||||
'org.whispersystems:textsecure-android:66ef91b93a08f0a290ef14c5e66af21113cd4b2c814c231855011ba4763f41cc',
|
||||
'org.whispersystems:textsecure-android:aec5fc59952d9f5482491091091687816f46be1144342a0244f48fd55d6ab393',
|
||||
'com.h6ah4i.android.compat:mulsellistprefcompat:47167c5cb796de1a854788e9ff318358e36c8fb88123baaa6e38fb78511dfabe',
|
||||
'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
|
||||
'com.android.support:support-annotations:104f353b53d5dd8d64b2f77eece4b37f6b961de9732eb6b706395e91033ec70a',
|
||||
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
|
||||
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
|
||||
'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f',
|
||||
'org.whispersystems:textsecure-java:728a549830266cc1472054f400391cd946b25ea03ad76ac4839dd1cab626a247',
|
||||
'org.whispersystems:textsecure-java:b407ca6d1430204dfabf38e27db22d5177409072a9668238bd1877de7676ad3f',
|
||||
'org.whispersystems:axolotl-android:40d3db5004a84749a73f68d2f0d01b2ae35a73c54df96d8c6c6723b96efb6fc0',
|
||||
'com.googlecode.libphonenumber:libphonenumber:eba17eae81dd622ea89a00a3a8c025b2f25d342e0d9644c5b62e16f15687c3ab',
|
||||
'com.googlecode.libphonenumber:libphonenumber:9625de9d2270e9a280ff4e6d9ef3106573fb4828773fd32c9b7614f4e17d2811',
|
||||
'com.google.protobuf:protobuf-java:e0c1c64575c005601725e7c6a02cebf9e1285e888f756b2a1d73ffa8d725cc74',
|
||||
'com.squareup.okhttp:okhttp:89b7f63e2e5b6c410266abc14f50fe52ea8d2d8a57260829e499b1cd9f0e61af',
|
||||
'com.fasterxml.jackson.core:jackson-databind:835097bcdd11f5bc8a08378c70d4c8054dfa4b911691cc2752063c75534d198d',
|
||||
@@ -144,8 +141,7 @@ dependencyVerification {
|
||||
'com.fasterxml.jackson.core:jackson-annotations:0ca408c24202a7626ec8b861e99d85eca5e38b73311dd6dd12e3e9deecc3fe94',
|
||||
'com.fasterxml.jackson.core:jackson-core:cbf4604784b4de226262845447a1ad3bb38a6728cebe86562e2c5afada8be2c0',
|
||||
'org.whispersystems:curve25519-java:9ccef8f5aba05d9942336f023c589d6278b4f9135bdc34a7bade1f4e7ad65fa3',
|
||||
'com.android.support:support-v4:1e2e4d35ac7fd30db5ce3bc177b92e4d5af86acef2ef93e9221599d733346f56',
|
||||
'com.android.support:support-annotations:7bc07519aa613b186001160403bcfd68260fa82c61cc7e83adeedc9b862b94ae',
|
||||
'com.android.support:support-v4:c62f0d025dafa86f423f48df9185b0d89496adbc5f6a9be5a7c394d84cf91423',
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
@@ -28,4 +28,4 @@ Truths which we believe to be self-evident:
|
||||
1. **There is no such thing as time.** Protocol ideas that require synchronized
|
||||
clocks are doomed to failure.
|
||||
|
||||
Before you submit a pull request, please check if your code follows the [Code style Guidelines](https://github.com/WhisperSystems/RedPhone/wiki/Code-style-Guidelines).
|
||||
Before you submit a pull request, please check if your code follows the [Code style Guidelines](https://github.com/WhisperSystems/Signal-Android/wiki/Code-Style-Guidelines).
|
||||
|
||||
@@ -50,9 +50,15 @@ CallAudioManager::~CallAudioManager() {
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "Shutting down...");
|
||||
|
||||
microphoneReader.stop();
|
||||
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "Stopping audio player...");
|
||||
audioPlayer.stop();
|
||||
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "Stopping jitter buffer...");
|
||||
webRtcJitterBuffer.stop();
|
||||
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "Freeing resources...");
|
||||
|
||||
if (sockAddr != NULL) {
|
||||
free(sockAddr);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ class CallAudioManager {
|
||||
|
||||
private:
|
||||
volatile int running;
|
||||
volatile int finished;
|
||||
int finished;
|
||||
SLObjectItf engineObject;
|
||||
SLEngineItf engineEngine;
|
||||
AudioCodec audioCodec;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "WebRtcJitterBuffer.h"
|
||||
#include <time.h>
|
||||
//#include <time.h>
|
||||
|
||||
#define TAG "WebRtcJitterBuffer"
|
||||
|
||||
@@ -15,9 +15,7 @@ int WebRtcJitterBuffer::init() {
|
||||
webrtc::NetEq::Config config;
|
||||
config.sample_rate_hz = 8000;
|
||||
|
||||
pthread_mutex_lock(&lock);
|
||||
neteq = webrtc::NetEq::Create(config);
|
||||
pthread_mutex_unlock(&lock);
|
||||
|
||||
if (neteq == NULL) {
|
||||
__android_log_print(ANDROID_LOG_WARN, TAG, "Failed to construct NetEq!");
|
||||
@@ -29,7 +27,8 @@ int WebRtcJitterBuffer::init() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// pthread_create(&stats, NULL, &WebRtcJitterBuffer::collectStats, this);
|
||||
// pthread_t thread;
|
||||
// pthread_create(&thread, NULL, &WebRtcJitterBuffer::collectStats, this);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -67,21 +66,13 @@ int WebRtcJitterBuffer::getAudio(short *rawData, int maxRawData) {
|
||||
}
|
||||
|
||||
void WebRtcJitterBuffer::stop() {
|
||||
// pthread_mutex_lock(&lock);
|
||||
running = 0;
|
||||
// pthread_cond_signal(&condition);
|
||||
// pthread_mutex_unlock(&lock);
|
||||
|
||||
// pthread_join(stats, NULL);
|
||||
}
|
||||
|
||||
void WebRtcJitterBuffer::collectStats() {
|
||||
while (running) {
|
||||
webrtc::NetEqNetworkStatistics stats;
|
||||
|
||||
pthread_mutex_lock(&lock);
|
||||
neteq->NetworkStatistics(&stats);
|
||||
pthread_mutex_unlock(&lock);
|
||||
|
||||
__android_log_print(ANDROID_LOG_WARN, "WebRtcJitterBuffer",
|
||||
"Jitter Stats:\n{\n" \
|
||||
@@ -107,21 +98,22 @@ void WebRtcJitterBuffer::collectStats() {
|
||||
stats.clockdrift_ppm,
|
||||
stats.added_zero_samples);
|
||||
|
||||
struct timespec timeToWait;
|
||||
struct timeval now;
|
||||
gettimeofday(&now, NULL);
|
||||
|
||||
timeToWait.tv_sec = now.tv_sec;
|
||||
timeToWait.tv_nsec = now.tv_usec * 1000;
|
||||
timeToWait.tv_sec += 30;
|
||||
|
||||
pthread_mutex_lock(&lock);
|
||||
|
||||
if (running) {
|
||||
pthread_cond_timedwait(&condition, &lock, &timeToWait);
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&lock);
|
||||
// struct timespec timeToWait;
|
||||
// struct timeval now;
|
||||
// gettimeofday(&now, NULL);
|
||||
//
|
||||
// timeToWait.tv_sec = now.tv_sec;
|
||||
// timeToWait.tv_nsec = now.tv_usec * 1000;
|
||||
// timeToWait.tv_sec += 30;
|
||||
//
|
||||
// pthread_mutex_lock(&lock);
|
||||
//
|
||||
// if (running) {
|
||||
// pthread_cond_timedwait(&condition, &lock, &timeToWait);
|
||||
// }
|
||||
//
|
||||
// pthread_mutex_unlock(&lock);
|
||||
sleep(30);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,10 +18,6 @@ private:
|
||||
webrtc::NetEq *neteq;
|
||||
WebRtcCodec webRtcCodec;
|
||||
|
||||
pthread_t stats;
|
||||
pthread_mutex_t lock;
|
||||
pthread_cond_t condition;
|
||||
|
||||
public:
|
||||
WebRtcJitterBuffer(AudioCodec &codec);
|
||||
~WebRtcJitterBuffer();
|
||||
|
||||
BIN
res/drawable-hdpi/ic_add_white_original_24dp.png
Normal file
|
After Width: | Height: | Size: 223 B |
BIN
res/drawable-hdpi/ic_call_end_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 425 B |
BIN
res/drawable-hdpi/ic_close_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 256 B |
BIN
res/drawable-hdpi/ic_devices_white.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
res/drawable-hdpi/ic_keyboard_arrow_left_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 307 B |
BIN
res/drawable-hdpi/ic_laptop_black_32dp.png
Normal file
|
After Width: | Height: | Size: 525 B |
BIN
res/drawable-hdpi/ic_laptop_light_32dp.png
Normal file
|
After Width: | Height: | Size: 774 B |
BIN
res/drawable-hdpi/ic_mic_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 460 B |
BIN
res/drawable-hdpi/ic_mic_white_24dp.png
Normal file
|
After Width: | Height: | Size: 487 B |
BIN
res/drawable-hdpi/ic_mic_white_48dp.png
Normal file
|
After Width: | Height: | Size: 767 B |
BIN
res/drawable-hdpi/ic_phone_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 457 B |
BIN
res/drawable-hdpi/ic_signal_grey_24dp.png
Normal file
|
After Width: | Height: | Size: 875 B |
BIN
res/drawable-hdpi/ic_signal_white_48dp.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
res/drawable-hdpi/ic_visibility_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 366 B |
BIN
res/drawable-hdpi/ic_visibility_off_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 560 B |
BIN
res/drawable-hdpi/ic_visibility_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 528 B |
BIN
res/drawable-hdpi/ic_visibility_white_24dp.png
Normal file
|
After Width: | Height: | Size: 472 B |
|
Before Width: | Height: | Size: 444 B |
BIN
res/drawable-mdpi/ic_add_white_original_24dp.png
Normal file
|
After Width: | Height: | Size: 174 B |
BIN
res/drawable-mdpi/ic_call_end_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 313 B |
BIN
res/drawable-mdpi/ic_close_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 197 B |
BIN
res/drawable-mdpi/ic_devices_white.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
res/drawable-mdpi/ic_keyboard_arrow_left_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 255 B |
BIN
res/drawable-mdpi/ic_laptop_black_32dp.png
Normal file
|
After Width: | Height: | Size: 430 B |
BIN
res/drawable-mdpi/ic_laptop_light_32dp.png
Normal file
|
After Width: | Height: | Size: 625 B |
BIN
res/drawable-mdpi/ic_mic_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 336 B |
BIN
res/drawable-mdpi/ic_mic_white_24dp.png
Normal file
|
After Width: | Height: | Size: 333 B |
BIN
res/drawable-mdpi/ic_mic_white_48dp.png
Normal file
|
After Width: | Height: | Size: 557 B |
BIN
res/drawable-mdpi/ic_phone_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 350 B |
BIN
res/drawable-mdpi/ic_signal_grey_24dp.png
Normal file
|
After Width: | Height: | Size: 596 B |
BIN
res/drawable-mdpi/ic_signal_white_48dp.png
Normal file
|
After Width: | Height: | Size: 900 B |
BIN
res/drawable-mdpi/ic_visibility_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 250 B |
BIN
res/drawable-mdpi/ic_visibility_off_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 387 B |
BIN
res/drawable-mdpi/ic_visibility_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 356 B |
BIN
res/drawable-mdpi/ic_visibility_white_24dp.png
Normal file
|
After Width: | Height: | Size: 310 B |
|
Before Width: | Height: | Size: 346 B |
9
res/drawable-v12/recycler_view_fast_scroller_bubble.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<corners android:topLeftRadius="44dp"
|
||||
android:topRightRadius="44dp"
|
||||
android:bottomLeftRadius="44dp"
|
||||
android:bottomRightRadius="0dp"/>
|
||||
<solid android:color="#FF0288D1" />
|
||||
<size android:height="88dp" android:width="88dp" />
|
||||
</shape>
|
||||
BIN
res/drawable-xhdpi/ic_add_white_original_24dp.png
Normal file
|
After Width: | Height: | Size: 198 B |
BIN
res/drawable-xhdpi/ic_call_end_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 557 B |
BIN
res/drawable-xhdpi/ic_close_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 307 B |
BIN
res/drawable-xhdpi/ic_devices_white.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
res/drawable-xhdpi/ic_keyboard_arrow_left_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 328 B |
BIN
res/drawable-xhdpi/ic_laptop_black_32dp.png
Normal file
|
After Width: | Height: | Size: 727 B |
BIN
res/drawable-xhdpi/ic_laptop_light_32dp.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
res/drawable-xhdpi/ic_mic_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 601 B |
BIN
res/drawable-xhdpi/ic_mic_white_24dp.png
Normal file
|
After Width: | Height: | Size: 557 B |
BIN
res/drawable-xhdpi/ic_mic_white_48dp.png
Normal file
|
After Width: | Height: | Size: 1013 B |
BIN
res/drawable-xhdpi/ic_phone_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 612 B |
BIN
res/drawable-xhdpi/ic_signal_grey_24dp.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
res/drawable-xhdpi/ic_signal_white_48dp.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
res/drawable-xhdpi/ic_visibility_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 458 B |
BIN
res/drawable-xhdpi/ic_visibility_off_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 706 B |
BIN
res/drawable-xhdpi/ic_visibility_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 652 B |
BIN
res/drawable-xhdpi/ic_visibility_white_24dp.png
Normal file
|
After Width: | Height: | Size: 581 B |
|
Before Width: | Height: | Size: 536 B |
BIN
res/drawable-xxhdpi/ic_add_white_original_24dp.png
Normal file
|
After Width: | Height: | Size: 222 B |
BIN
res/drawable-xxhdpi/ic_call_end_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 773 B |
BIN
res/drawable-xxhdpi/ic_close_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 411 B |
BIN
res/drawable-xxhdpi/ic_devices_white.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
res/drawable-xxhdpi/ic_keyboard_arrow_left_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 381 B |
BIN
res/drawable-xxhdpi/ic_laptop_black_32dp.png
Normal file
|
After Width: | Height: | Size: 397 B |
BIN
res/drawable-xxhdpi/ic_laptop_light_32dp.png
Normal file
|
After Width: | Height: | Size: 379 B |
BIN
res/drawable-xxhdpi/ic_mic_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 739 B |
BIN
res/drawable-xxhdpi/ic_mic_white_24dp.png
Normal file
|
After Width: | Height: | Size: 767 B |
BIN
res/drawable-xxhdpi/ic_mic_white_48dp.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
res/drawable-xxhdpi/ic_phone_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 863 B |
BIN
res/drawable-xxhdpi/ic_signal_grey_24dp.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
res/drawable-xxhdpi/ic_signal_white_48dp.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
res/drawable-xxhdpi/ic_visibility_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 650 B |
BIN
res/drawable-xxhdpi/ic_visibility_off_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 1019 B |
BIN
res/drawable-xxhdpi/ic_visibility_off_white_24dp.png
Normal file
|
After Width: | Height: | Size: 919 B |
BIN
res/drawable-xxhdpi/ic_visibility_white_24dp.png
Normal file
|
After Width: | Height: | Size: 846 B |
|
Before Width: | Height: | Size: 739 B |
BIN
res/drawable-xxxhdpi/ic_add_white_original_24dp.png
Normal file
|
After Width: | Height: | Size: 269 B |
BIN
res/drawable-xxxhdpi/ic_call_end_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 996 B |
BIN
res/drawable-xxxhdpi/ic_close_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 460 B |
BIN
res/drawable-xxxhdpi/ic_devices_white.png
Normal file
|
After Width: | Height: | Size: 9.0 KiB |
BIN
res/drawable-xxxhdpi/ic_keyboard_arrow_left_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 502 B |
BIN
res/drawable-xxxhdpi/ic_mic_grey600_24dp.png
Normal file
|
After Width: | Height: | Size: 964 B |
BIN
res/drawable-xxxhdpi/ic_mic_white_24dp.png
Normal file
|
After Width: | Height: | Size: 1013 B |
BIN
res/drawable-xxxhdpi/ic_mic_white_48dp.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
res/drawable-xxxhdpi/ic_phone_grey600_32dp.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
res/drawable-xxxhdpi/ic_signal_grey_24dp.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
res/drawable-xxxhdpi/ic_signal_white_48dp.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
9
res/drawable/recycler_view_fast_scroller_bubble.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<corners android:topLeftRadius="44dp"
|
||||
android:topRightRadius="44dp"
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:bottomRightRadius="44dp"/>
|
||||
<solid android:color="#FF0288D1" />
|
||||
<size android:height="88dp" android:width="88dp" />
|
||||
</shape>
|
||||
17
res/drawable/recycler_view_fast_scroller_handle.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_selected="true">
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<corners android:radius="2dp"/>
|
||||
<solid android:color="#FF0288D1"/>
|
||||
<size android:height="32dp" android:width="4dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
|
||||
<corners android:radius="2dp"/>
|
||||
<solid android:color="#FF737373"/>
|
||||
<size android:height="32dp" android:width="4dp"/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||