diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c73f6db33..20df6d651 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -118,6 +118,14 @@ android:launchMode="singleTask"> + + + + @@ -349,7 +357,7 @@ - + diff --git a/build.gradle b/build.gradle index 11b56065f..ca6cf2526 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,8 @@ dependencies { compile 'org.whispersystems:jobmanager:1.0.2' compile 'org.whispersystems:libpastelog:1.0.7' - compile 'org.whispersystems:signal-service-android:2.4.7' + compile 'org.whispersystems:signal-service-android:2.5.0' + compile 'org.whispersystems:webrtc-android:M56' compile "me.leolin:ShortcutBadger:1.10-WS1" compile 'se.emilsjolander:stickylistheaders:2.7.0' @@ -123,7 +124,8 @@ dependencyVerification { 'com.google.android.gms:play-services-places:abf3a4a3b146ec7e6e753be62775e512868cf37d6f88ffe2d81167b33b57132b', 'org.whispersystems:jobmanager:506f679fc2fcf7bb6d10f00f41d6f6ea0abf75c70dc95b913398661ad538a181', 'org.whispersystems:libpastelog:bb331d9a98240fc139101128ba836c1edec3c40e000597cdbb29ebf4cbf34d88', - 'org.whispersystems:signal-service-android:0b5e607c1ffdbc90f8b1117c43ceaba62e3e19c01c8d29b3e1bf57cffce07f2b', + 'org.whispersystems:signal-service-android:f207fcf8f17b5a1f04053151cad518f9520f8fbfb2e5563a19828f6b2c2b7b6d', + 'org.whispersystems:webrtc-android:1eaaf2c8b48e135834de74733dd5ffcf9585402ad4d568f5167bc3ba6f11d569', 'me.leolin:ShortcutBadger:e8e39df8a59d8211a30f40b1eeab21b3fa57b3f3e0f03abb995f82d66588778c', 'se.emilsjolander:stickylistheaders:a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb', 'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa', @@ -157,7 +159,7 @@ dependencyVerification { 'com.google.android.gms:play-services-basement:95dd882c5ffba15b9a99de3fefb05d3a01946623af67454ca00055d222f85a8d', 'com.google.android.gms:play-services-iid:54e919f9957b8b7820da7ee9b83471d00d0cac1cf08ddea8b5b41aea80bb1a70', 'org.whispersystems:signal-protocol-android:1b4b9d557c8eaf861797ff683990d482d4aa8e9f23d9b17ff0cc67a02f38cb19', - 'org.whispersystems:signal-service-java:9738c26c17069a2f1eff47a46da5df62efa875bd66321933bed78f2584b7cc70', + 'org.whispersystems:signal-service-java:910ed96e928355d118454e1dff6c11b9f95daa801f3b4022e5c8999bff47a888', 'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a', 'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f', @@ -178,6 +180,7 @@ dependencyVerification { ] } + android { compileSdkVersion 25 buildToolsVersion '23.0.3' @@ -239,6 +242,7 @@ android { 'proguard-glide.pro', 'proguard-shortcutbadger.pro', 'proguard-retrofit.pro', + 'proguard-webrtc.pro', 'proguard.cfg' testProguardFiles 'proguard-automation.pro', 'proguard.cfg' diff --git a/proguard-webrtc.pro b/proguard-webrtc.pro new file mode 100644 index 000000000..7a1e3dea5 --- /dev/null +++ b/proguard-webrtc.pro @@ -0,0 +1,3 @@ +-dontwarn org.webrtc.NetworkMonitorAutoDetect +-dontwarn android.net.Network +-keep class org.webrtc.** { *; } diff --git a/protobuf/Makefile b/protobuf/Makefile new file mode 100644 index 000000000..241899855 --- /dev/null +++ b/protobuf/Makefile @@ -0,0 +1,3 @@ + +all: + protoc --java_out=../src/ WebRtcData.proto diff --git a/protobuf/WebRtcData.proto b/protobuf/WebRtcData.proto new file mode 100644 index 000000000..3e6c3fd71 --- /dev/null +++ b/protobuf/WebRtcData.proto @@ -0,0 +1,31 @@ +/** + * Copyright (C) 2014-2016 Open Whisper Systems + * + * Licensed according to the LICENSE file in this repository. + */ + +package signal; + +option java_package = "org.thoughtcrime.securesms.webrtc"; +option java_outer_classname = "WebRtcDataProtos"; + +message Connected { + optional uint64 id = 1; +} + +message Hangup { + optional uint64 id = 1; +} + +message VideoStreamingStatus { + optional uint64 id = 1; + optional bool enabled = 2; +} + +message Data { + + optional Connected connected = 1; + optional Hangup hangup = 2; + optional VideoStreamingStatus videoStreamingStatus = 3; + +} \ No newline at end of file diff --git a/res/drawable-hdpi/ic_call_end_white_48dp.png b/res/drawable-hdpi/ic_call_end_white_48dp.png new file mode 100644 index 000000000..e1831d7af Binary files /dev/null and b/res/drawable-hdpi/ic_call_end_white_48dp.png differ diff --git a/res/drawable-hdpi/ic_mic_off_white_24dp.png b/res/drawable-hdpi/ic_mic_off_white_24dp.png new file mode 100644 index 000000000..6fccf5d09 Binary files /dev/null and b/res/drawable-hdpi/ic_mic_off_white_24dp.png differ diff --git a/res/drawable-hdpi/ic_phone_bluetooth_speaker_white_24dp.png b/res/drawable-hdpi/ic_phone_bluetooth_speaker_white_24dp.png new file mode 100644 index 000000000..69f28f8a2 Binary files /dev/null and b/res/drawable-hdpi/ic_phone_bluetooth_speaker_white_24dp.png differ diff --git a/res/drawable-hdpi/ic_phone_in_talk_white_24dp.png b/res/drawable-hdpi/ic_phone_in_talk_white_24dp.png new file mode 100644 index 000000000..f2c89424e Binary files /dev/null and b/res/drawable-hdpi/ic_phone_in_talk_white_24dp.png differ diff --git a/res/drawable-hdpi/ic_videocam_white_24dp.png b/res/drawable-hdpi/ic_videocam_white_24dp.png new file mode 100644 index 000000000..d83e0d50c Binary files /dev/null and b/res/drawable-hdpi/ic_videocam_white_24dp.png differ diff --git a/res/drawable-hdpi/ic_volume_mute_white_24dp.png b/res/drawable-hdpi/ic_volume_mute_white_24dp.png new file mode 100644 index 000000000..11ee56132 Binary files /dev/null and b/res/drawable-hdpi/ic_volume_mute_white_24dp.png differ diff --git a/res/drawable-hdpi/ic_volume_up_white_24dp.png b/res/drawable-hdpi/ic_volume_up_white_24dp.png new file mode 100644 index 000000000..57d787163 Binary files /dev/null and b/res/drawable-hdpi/ic_volume_up_white_24dp.png differ diff --git a/res/drawable-mdpi/ic_call_end_white_48dp.png b/res/drawable-mdpi/ic_call_end_white_48dp.png new file mode 100644 index 000000000..a4fe6889d Binary files /dev/null and b/res/drawable-mdpi/ic_call_end_white_48dp.png differ diff --git a/res/drawable-mdpi/ic_mic_off_white_24dp.png b/res/drawable-mdpi/ic_mic_off_white_24dp.png new file mode 100644 index 000000000..15094d884 Binary files /dev/null and b/res/drawable-mdpi/ic_mic_off_white_24dp.png differ diff --git a/res/drawable-mdpi/ic_phone_bluetooth_speaker_white_24dp.png b/res/drawable-mdpi/ic_phone_bluetooth_speaker_white_24dp.png new file mode 100644 index 000000000..18068083a Binary files /dev/null and b/res/drawable-mdpi/ic_phone_bluetooth_speaker_white_24dp.png differ diff --git a/res/drawable-mdpi/ic_phone_in_talk_white_24dp.png b/res/drawable-mdpi/ic_phone_in_talk_white_24dp.png new file mode 100644 index 000000000..e6f98af95 Binary files /dev/null and b/res/drawable-mdpi/ic_phone_in_talk_white_24dp.png differ diff --git a/res/drawable-mdpi/ic_videocam_white_24dp.png b/res/drawable-mdpi/ic_videocam_white_24dp.png new file mode 100644 index 000000000..d146209a5 Binary files /dev/null and b/res/drawable-mdpi/ic_videocam_white_24dp.png differ diff --git a/res/drawable-mdpi/ic_volume_mute_white_24dp.png b/res/drawable-mdpi/ic_volume_mute_white_24dp.png new file mode 100644 index 000000000..9685c872c Binary files /dev/null and b/res/drawable-mdpi/ic_volume_mute_white_24dp.png differ diff --git a/res/drawable-mdpi/ic_volume_up_white_24dp.png b/res/drawable-mdpi/ic_volume_up_white_24dp.png new file mode 100644 index 000000000..7cfd4c7b8 Binary files /dev/null and b/res/drawable-mdpi/ic_volume_up_white_24dp.png differ diff --git a/res/drawable-xhdpi/ic_call_end_white_48dp.png b/res/drawable-xhdpi/ic_call_end_white_48dp.png new file mode 100644 index 000000000..8801d0ded Binary files /dev/null and b/res/drawable-xhdpi/ic_call_end_white_48dp.png differ diff --git a/res/drawable-xhdpi/ic_mic_off_white_24dp.png b/res/drawable-xhdpi/ic_mic_off_white_24dp.png new file mode 100644 index 000000000..bb7915f33 Binary files /dev/null and b/res/drawable-xhdpi/ic_mic_off_white_24dp.png differ diff --git a/res/drawable-xhdpi/ic_phone_bluetooth_speaker_white_24dp.png b/res/drawable-xhdpi/ic_phone_bluetooth_speaker_white_24dp.png new file mode 100644 index 000000000..20ff3500a Binary files /dev/null and b/res/drawable-xhdpi/ic_phone_bluetooth_speaker_white_24dp.png differ diff --git a/res/drawable-xhdpi/ic_phone_in_talk_white_24dp.png b/res/drawable-xhdpi/ic_phone_in_talk_white_24dp.png new file mode 100644 index 000000000..a2d78b221 Binary files /dev/null and b/res/drawable-xhdpi/ic_phone_in_talk_white_24dp.png differ diff --git a/res/drawable-xhdpi/ic_videocam_white_24dp.png b/res/drawable-xhdpi/ic_videocam_white_24dp.png new file mode 100644 index 000000000..1b2583d34 Binary files /dev/null and b/res/drawable-xhdpi/ic_videocam_white_24dp.png differ diff --git a/res/drawable-xhdpi/ic_volume_mute_white_24dp.png b/res/drawable-xhdpi/ic_volume_mute_white_24dp.png new file mode 100644 index 000000000..4121c2cb4 Binary files /dev/null and b/res/drawable-xhdpi/ic_volume_mute_white_24dp.png differ diff --git a/res/drawable-xhdpi/ic_volume_up_white_24dp.png b/res/drawable-xhdpi/ic_volume_up_white_24dp.png new file mode 100644 index 000000000..2ed00343b Binary files /dev/null and b/res/drawable-xhdpi/ic_volume_up_white_24dp.png differ diff --git a/res/drawable-xxhdpi/ic_call_end_white_48dp.png b/res/drawable-xxhdpi/ic_call_end_white_48dp.png new file mode 100644 index 000000000..c8099a1a1 Binary files /dev/null and b/res/drawable-xxhdpi/ic_call_end_white_48dp.png differ diff --git a/res/drawable-xxhdpi/ic_mic_off_white_24dp.png b/res/drawable-xxhdpi/ic_mic_off_white_24dp.png new file mode 100644 index 000000000..7a15a9ea9 Binary files /dev/null and b/res/drawable-xxhdpi/ic_mic_off_white_24dp.png differ diff --git a/res/drawable-xxhdpi/ic_phone_bluetooth_speaker_white_24dp.png b/res/drawable-xxhdpi/ic_phone_bluetooth_speaker_white_24dp.png new file mode 100644 index 000000000..61b5bc6df Binary files /dev/null and b/res/drawable-xxhdpi/ic_phone_bluetooth_speaker_white_24dp.png differ diff --git a/res/drawable-xxhdpi/ic_phone_in_talk_white_24dp.png b/res/drawable-xxhdpi/ic_phone_in_talk_white_24dp.png new file mode 100644 index 000000000..9c002da0a Binary files /dev/null and b/res/drawable-xxhdpi/ic_phone_in_talk_white_24dp.png differ diff --git a/res/drawable-xxhdpi/ic_videocam_white_24dp.png b/res/drawable-xxhdpi/ic_videocam_white_24dp.png new file mode 100644 index 000000000..44c28e2f2 Binary files /dev/null and b/res/drawable-xxhdpi/ic_videocam_white_24dp.png differ diff --git a/res/drawable-xxhdpi/ic_volume_mute_white_24dp.png b/res/drawable-xxhdpi/ic_volume_mute_white_24dp.png new file mode 100644 index 000000000..2c539c7ac Binary files /dev/null and b/res/drawable-xxhdpi/ic_volume_mute_white_24dp.png differ diff --git a/res/drawable-xxhdpi/ic_volume_up_white_24dp.png b/res/drawable-xxhdpi/ic_volume_up_white_24dp.png new file mode 100644 index 000000000..2e751a40f Binary files /dev/null and b/res/drawable-xxhdpi/ic_volume_up_white_24dp.png differ diff --git a/res/drawable-xxxhdpi/ic_call_end_white_48dp.png b/res/drawable-xxxhdpi/ic_call_end_white_48dp.png new file mode 100644 index 000000000..a09ec6862 Binary files /dev/null and b/res/drawable-xxxhdpi/ic_call_end_white_48dp.png differ diff --git a/res/drawable-xxxhdpi/ic_mic_off_white_24dp.png b/res/drawable-xxxhdpi/ic_mic_off_white_24dp.png new file mode 100644 index 000000000..22ca19ae4 Binary files /dev/null and b/res/drawable-xxxhdpi/ic_mic_off_white_24dp.png differ diff --git a/res/drawable-xxxhdpi/ic_phone_bluetooth_speaker_white_24dp.png b/res/drawable-xxxhdpi/ic_phone_bluetooth_speaker_white_24dp.png new file mode 100644 index 000000000..c935d9638 Binary files /dev/null and b/res/drawable-xxxhdpi/ic_phone_bluetooth_speaker_white_24dp.png differ diff --git a/res/drawable-xxxhdpi/ic_phone_in_talk_white_24dp.png b/res/drawable-xxxhdpi/ic_phone_in_talk_white_24dp.png new file mode 100644 index 000000000..36be1da99 Binary files /dev/null and b/res/drawable-xxxhdpi/ic_phone_in_talk_white_24dp.png differ diff --git a/res/drawable-xxxhdpi/ic_videocam_white_24dp.png b/res/drawable-xxxhdpi/ic_videocam_white_24dp.png new file mode 100644 index 000000000..ed20c0706 Binary files /dev/null and b/res/drawable-xxxhdpi/ic_videocam_white_24dp.png differ diff --git a/res/drawable-xxxhdpi/ic_volume_mute_white_24dp.png b/res/drawable-xxxhdpi/ic_volume_mute_white_24dp.png new file mode 100644 index 000000000..1379bb444 Binary files /dev/null and b/res/drawable-xxxhdpi/ic_volume_mute_white_24dp.png differ diff --git a/res/drawable-xxxhdpi/ic_volume_up_white_24dp.png b/res/drawable-xxxhdpi/ic_volume_up_white_24dp.png new file mode 100644 index 000000000..82972b4e5 Binary files /dev/null and b/res/drawable-xxxhdpi/ic_volume_up_white_24dp.png differ diff --git a/res/drawable/circle_alpha.xml b/res/drawable/circle_alpha.xml new file mode 100644 index 000000000..f38e68224 --- /dev/null +++ b/res/drawable/circle_alpha.xml @@ -0,0 +1,5 @@ + + + + diff --git a/res/drawable/webrtc_audio_button.xml b/res/drawable/webrtc_audio_button.xml new file mode 100644 index 000000000..462a8898b --- /dev/null +++ b/res/drawable/webrtc_audio_button.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/drawable/webrtc_control_background.xml b/res/drawable/webrtc_control_background.xml new file mode 100644 index 000000000..1675990f7 --- /dev/null +++ b/res/drawable/webrtc_control_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/webrtc_mute_button.xml b/res/drawable/webrtc_mute_button.xml new file mode 100644 index 000000000..1132b7a8d --- /dev/null +++ b/res/drawable/webrtc_mute_button.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/webrtc_video_mute_button.xml b/res/drawable/webrtc_video_mute_button.xml new file mode 100644 index 000000000..5cc40e123 --- /dev/null +++ b/res/drawable/webrtc_video_mute_button.xml @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/res/layout/webrtc_call_activity.xml b/res/layout/webrtc_call_activity.xml new file mode 100644 index 000000000..6611afd96 --- /dev/null +++ b/res/layout/webrtc_call_activity.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/res/layout/webrtc_call_controls.xml b/res/layout/webrtc_call_controls.xml new file mode 100644 index 000000000..ed9bb0cf8 --- /dev/null +++ b/res/layout/webrtc_call_controls.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + diff --git a/res/layout/webrtc_call_screen.xml b/res/layout/webrtc_call_screen.xml new file mode 100644 index 000000000..f2ed40328 --- /dev/null +++ b/res/layout/webrtc_call_screen.xml @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + +