diff --git a/tools-webrtc/android/suppressions.xml b/tools-webrtc/android/suppressions.xml
index b8b9987a3d..d6250e06a8 100644
--- a/tools-webrtc/android/suppressions.xml
+++ b/tools-webrtc/android/suppressions.xml
@@ -7,7 +7,6 @@
to suppress.py. -->
-
@@ -33,4 +32,9 @@
+
+
+
+
+
diff --git a/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java b/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
index 14c2bfe658..9864efba68 100644
--- a/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
+++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
@@ -10,6 +10,7 @@
package org.appspot.apprtc;
+import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.FragmentTransaction;
@@ -20,6 +21,7 @@ import android.content.pm.PackageManager;
import android.media.projection.MediaProjection;
import android.media.projection.MediaProjectionManager;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.util.DisplayMetrics;
@@ -191,8 +193,7 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN | LayoutParams.FLAG_KEEP_SCREEN_ON
| LayoutParams.FLAG_DISMISS_KEYGUARD | LayoutParams.FLAG_SHOW_WHEN_LOCKED
| LayoutParams.FLAG_TURN_SCREEN_ON);
- getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
- | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
+ getWindow().getDecorView().setSystemUiVisibility(getSystemUiVisibility());
setContentView(R.layout.activity_call);
iceConnected = false;
@@ -362,16 +363,30 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven
getApplicationContext(), peerConnectionParameters, CallActivity.this);
if (screencaptureEnabled) {
- MediaProjectionManager mediaProjectionManager =
- (MediaProjectionManager) getApplication().getSystemService(
- Context.MEDIA_PROJECTION_SERVICE);
- startActivityForResult(
- mediaProjectionManager.createScreenCaptureIntent(), CAPTURE_PERMISSION_REQUEST_CODE);
+ startScreenCapture();
} else {
startCall();
}
}
+ @TargetApi(19)
+ private static int getSystemUiVisibility() {
+ int flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+ flags |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
+ }
+ return flags;
+ }
+
+ @TargetApi(21)
+ private void startScreenCapture() {
+ MediaProjectionManager mediaProjectionManager =
+ (MediaProjectionManager) getApplication().getSystemService(
+ Context.MEDIA_PROJECTION_SERVICE);
+ startActivityForResult(
+ mediaProjectionManager.createScreenCaptureIntent(), CAPTURE_PERMISSION_REQUEST_CODE);
+ }
+
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode != CAPTURE_PERMISSION_REQUEST_CODE)
diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java
index eb4702b444..ab17eece1a 100644
--- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java
+++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioManager.java
@@ -10,8 +10,6 @@
package org.webrtc.voiceengine;
-import org.webrtc.Logging;
-
import android.annotation.TargetApi;
import android.content.Context;
import android.content.pm.PackageManager;
@@ -20,9 +18,9 @@ import android.media.AudioManager;
import android.media.AudioRecord;
import android.media.AudioTrack;
import android.os.Build;
-
import java.util.Timer;
import java.util.TimerTask;
+import org.webrtc.Logging;
// WebRtcAudioManager handles tasks that uses android.media.AudioManager.
// At construction, storeAudioParameters() is called and it retrieves
@@ -248,6 +246,7 @@ public class WebRtcAudioManager {
// Returns true if the device has professional audio level of functionality
// and therefore supports the lowest possible round-trip latency.
+ @TargetApi(23)
private boolean isProAudioSupported() {
return WebRtcAudioUtils.runningOnMarshmallowOrHigher()
&& context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUDIO_PRO);
diff --git a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
index 7c3a672576..ca37dfe495 100644
--- a/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
+++ b/webrtc/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
@@ -10,16 +10,15 @@
package org.webrtc.voiceengine;
-import org.webrtc.Logging;
-
+import android.annotation.TargetApi;
import android.content.Context;
import android.media.AudioFormat;
import android.media.AudioManager;
import android.media.AudioTrack;
import android.os.Process;
-
import java.lang.Thread;
import java.nio.ByteBuffer;
+import org.webrtc.Logging;
public class WebRtcAudioTrack {
private static final boolean DEBUG = false;
@@ -130,6 +129,7 @@ public class WebRtcAudioTrack {
audioTrack.flush();
}
+ @TargetApi(21)
private int writeOnLollipop(AudioTrack audioTrack, ByteBuffer byteBuffer, int sizeInBytes) {
return audioTrack.write(byteBuffer, sizeInBytes, AudioTrack.WRITE_BLOCKING);
}
diff --git a/webrtc/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java b/webrtc/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java
index 3046ab20c5..6bd727fd7f 100644
--- a/webrtc/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java
+++ b/webrtc/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java
@@ -10,9 +10,6 @@
package org.webrtc;
-import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
-import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
-
import android.Manifest.permission;
import android.annotation.SuppressLint;
import android.content.BroadcastReceiver;
@@ -31,7 +28,6 @@ import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.telephony.TelephonyManager;
-
import java.util.ArrayList;
import java.util.List;
@@ -327,14 +323,17 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
return false;
}
final NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network);
- return capabilities != null && capabilities.hasCapability(NET_CAPABILITY_INTERNET);
+ return capabilities != null
+ && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
}
/** Only callable on Lollipop and newer releases. */
@SuppressLint("NewApi")
public void registerNetworkCallback(NetworkCallback networkCallback) {
connectivityManager.registerNetworkCallback(
- new NetworkRequest.Builder().addCapability(NET_CAPABILITY_INTERNET).build(),
+ new NetworkRequest.Builder()
+ .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+ .build(),
networkCallback);
}
@@ -342,7 +341,8 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver {
@SuppressLint("NewApi")
public void requestMobileNetwork(NetworkCallback networkCallback) {
NetworkRequest.Builder builder = new NetworkRequest.Builder();
- builder.addCapability(NET_CAPABILITY_INTERNET).addTransportType(TRANSPORT_CELLULAR);
+ builder.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+ .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
connectivityManager.requestNetwork(builder.build(), networkCallback);
}
diff --git a/webrtc/sdk/android/instrumentationtests/AndroidManifest.xml b/webrtc/sdk/android/instrumentationtests/AndroidManifest.xml
index 27a9389d1b..15c9e6779e 100644
--- a/webrtc/sdk/android/instrumentationtests/AndroidManifest.xml
+++ b/webrtc/sdk/android/instrumentationtests/AndroidManifest.xml
@@ -15,7 +15,7 @@
-
+
diff --git a/webrtc/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java b/webrtc/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java
index 86a74c2936..a752cf09bc 100644
--- a/webrtc/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java
+++ b/webrtc/sdk/android/instrumentationtests/src/org/webrtc/Camera2CapturerTest.java
@@ -14,6 +14,7 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
+import android.annotation.TargetApi;
import android.content.Context;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraDevice;
@@ -31,6 +32,7 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+@TargetApi(21)
@RunWith(BaseJUnit4ClassRunner.class)
public class Camera2CapturerTest {
static final String TAG = "Camera2CapturerTest";