diff --git a/examples/androidapp/src/org/appspot/apprtc/CallActivity.java b/examples/androidapp/src/org/appspot/apprtc/CallActivity.java index 867499c982..8da9dc7dd6 100644 --- a/examples/androidapp/src/org/appspot/apprtc/CallActivity.java +++ b/examples/androidapp/src/org/appspot/apprtc/CallActivity.java @@ -364,8 +364,10 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven new RoomConnectionParameters(roomUri.toString(), roomId, loopback, urlParameters); // Create CPU monitor - cpuMonitor = new CpuMonitor(this); - hudFragment.setCpuMonitor(cpuMonitor); + if (cpuMonitor.isSupported()) { + cpuMonitor = new CpuMonitor(this); + hudFragment.setCpuMonitor(cpuMonitor); + } // Send intent arguments to fragments. callFragment.setArguments(intent.getExtras()); @@ -502,7 +504,9 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven if (peerConnectionClient != null && !screencaptureEnabled) { peerConnectionClient.stopVideoSource(); } - cpuMonitor.pause(); + if (cpuMonitor != null) { + cpuMonitor.pause(); + } } @Override @@ -513,7 +517,9 @@ public class CallActivity extends Activity implements AppRTCClient.SignalingEven if (peerConnectionClient != null && !screencaptureEnabled) { peerConnectionClient.startVideoSource(); } - cpuMonitor.resume(); + if (cpuMonitor != null) { + cpuMonitor.resume(); + } } @Override diff --git a/examples/androidapp/src/org/appspot/apprtc/CpuMonitor.java b/examples/androidapp/src/org/appspot/apprtc/CpuMonitor.java index 48543c5102..4a7ab9ecae 100644 --- a/examples/androidapp/src/org/appspot/apprtc/CpuMonitor.java +++ b/examples/androidapp/src/org/appspot/apprtc/CpuMonitor.java @@ -10,10 +10,12 @@ package org.appspot.apprtc; +import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; +import android.os.Build; import android.os.SystemClock; import android.util.Log; import java.io.BufferedReader; @@ -71,6 +73,7 @@ import java.util.concurrent.TimeUnit; * correct value, and then returns to back to correct reading. Both when * jumping up and back down we might create faulty CPU load readings. */ +@TargetApi(Build.VERSION_CODES.KITKAT) class CpuMonitor { private static final String TAG = "CpuMonitor"; private static final int MOVING_AVERAGE_SAMPLES = 5; @@ -153,7 +156,16 @@ class CpuMonitor { } } + public static boolean isSupported() { + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT + && Build.VERSION.SDK_INT < Build.VERSION_CODES.N; + } + public CpuMonitor(Context context) { + if (!isSupported()) { + throw new RuntimeException("CpuMonitor is not supported on this Android version."); + } + Log.d(TAG, "CpuMonitor ctor."); appContext = context.getApplicationContext(); userCpuUsage = new MovingAverage(MOVING_AVERAGE_SAMPLES); diff --git a/sdk/android/src/java/org/webrtc/EglBase14.java b/sdk/android/src/java/org/webrtc/EglBase14.java index 8f71bd0789..ed5e9543ba 100644 --- a/sdk/android/src/java/org/webrtc/EglBase14.java +++ b/sdk/android/src/java/org/webrtc/EglBase14.java @@ -18,6 +18,7 @@ import android.opengl.EGLContext; import android.opengl.EGLDisplay; import android.opengl.EGLExt; import android.opengl.EGLSurface; +import android.os.Build; import android.view.Surface; /** @@ -49,10 +50,10 @@ class EglBase14 extends EglBase { @Override @SuppressWarnings("deprecation") + @TargetApi(Build.VERSION_CODES.LOLLIPOP) public long getNativeEglContext() { - return CURRENT_SDK_VERSION >= android.os.Build.VERSION_CODES.LOLLIPOP - ? egl14Context.getNativeHandle() - : egl14Context.getHandle(); + return CURRENT_SDK_VERSION >= Build.VERSION_CODES.LOLLIPOP ? egl14Context.getNativeHandle() + : egl14Context.getHandle(); } public Context(android.opengl.EGLContext eglContext) { diff --git a/tools_webrtc/android/suppressions.xml b/tools_webrtc/android/suppressions.xml index d051a56130..452b75510e 100644 --- a/tools_webrtc/android/suppressions.xml +++ b/tools_webrtc/android/suppressions.xml @@ -6,17 +6,12 @@ - - - - -