Fix some lint warnings on Android.
Bug: webrtc:6597
Change-Id: I215b319b3129949d12b74b11e6ec35eb123a1e5a
Reviewed-on: https://webrtc-review.googlesource.com/6781
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20182}
diff --git a/examples/androidapp/src/org/appspot/apprtc/CallActivity.java b/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
index 45bc26b..8208088 100644
--- a/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
+++ b/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
@@ -139,9 +139,8 @@
// Peer connection statistics callback period in ms.
private static final int STAT_CALLBACK_PERIOD = 1000;
- private class ProxyRenderer<T extends VideoRenderer.Callbacks & VideoSink>
- implements VideoRenderer.Callbacks, VideoSink {
- private T target;
+ private static class ProxyRenderer implements VideoRenderer.Callbacks {
+ private VideoRenderer.Callbacks target;
@Override
synchronized public void renderFrame(VideoRenderer.I420Frame frame) {
@@ -154,6 +153,14 @@
target.renderFrame(frame);
}
+ synchronized public void setTarget(VideoRenderer.Callbacks target) {
+ this.target = target;
+ }
+ }
+
+ private static class ProxyVideoSink implements VideoSink {
+ private VideoSink target;
+
@Override
synchronized public void onFrame(VideoFrame frame) {
if (target == null) {
@@ -164,13 +171,13 @@
target.onFrame(frame);
}
- synchronized public void setTarget(T target) {
+ synchronized public void setTarget(VideoSink target) {
this.target = target;
}
}
private final ProxyRenderer remoteProxyRenderer = new ProxyRenderer();
- private final ProxyRenderer localProxyRenderer = new ProxyRenderer();
+ private final ProxyVideoSink localProxyVideoSink = new ProxyVideoSink();
private PeerConnectionClient peerConnectionClient = null;
private AppRTCClient appRtcClient;
private SignalingParameters signalingParameters;
@@ -211,8 +218,7 @@
// adding content.
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(LayoutParams.FLAG_FULLSCREEN | LayoutParams.FLAG_KEEP_SCREEN_ON
- | LayoutParams.FLAG_DISMISS_KEYGUARD | LayoutParams.FLAG_SHOW_WHEN_LOCKED
- | LayoutParams.FLAG_TURN_SCREEN_ON);
+ | LayoutParams.FLAG_SHOW_WHEN_LOCKED | LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().getDecorView().setSystemUiVisibility(getSystemUiVisibility());
setContentView(R.layout.activity_call);
@@ -630,7 +636,7 @@
private void disconnect() {
activityRunning = false;
remoteProxyRenderer.setTarget(null);
- localProxyRenderer.setTarget(null);
+ localProxyVideoSink.setTarget(null);
if (appRtcClient != null) {
appRtcClient.disconnectFromRoom();
appRtcClient = null;
@@ -741,7 +747,7 @@
private void setSwappedFeeds(boolean isSwappedFeeds) {
Logging.d(TAG, "setSwappedFeeds: " + isSwappedFeeds);
this.isSwappedFeeds = isSwappedFeeds;
- localProxyRenderer.setTarget(isSwappedFeeds ? fullscreenRenderer : pipRenderer);
+ localProxyVideoSink.setTarget(isSwappedFeeds ? fullscreenRenderer : pipRenderer);
remoteProxyRenderer.setTarget(isSwappedFeeds ? pipRenderer : fullscreenRenderer);
fullscreenRenderer.setMirror(isSwappedFeeds);
pipRenderer.setMirror(!isSwappedFeeds);
@@ -760,7 +766,7 @@
videoCapturer = createVideoCapturer();
}
peerConnectionClient.createPeerConnection(
- localProxyRenderer, remoteRenderers, videoCapturer, signalingParameters);
+ localProxyVideoSink, remoteRenderers, videoCapturer, signalingParameters);
if (signalingParameters.initiator) {
logAndToast("Creating OFFER...");
diff --git a/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java b/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java
index 1556a69..606987d 100644
--- a/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java
+++ b/examples/androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java
@@ -10,25 +10,22 @@
package org.appspot.apprtc;
-import org.appspot.apprtc.AppRTCClient.SignalingParameters;
-import org.appspot.apprtc.util.AsyncHttpURLConnection;
-import org.appspot.apprtc.util.AsyncHttpURLConnection.AsyncHttpEvents;
-
import android.util.Log;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-import org.webrtc.IceCandidate;
-import org.webrtc.PeerConnection;
-import org.webrtc.SessionDescription;
-
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.LinkedList;
import java.util.Scanner;
+import org.appspot.apprtc.AppRTCClient.SignalingParameters;
+import org.appspot.apprtc.util.AsyncHttpURLConnection;
+import org.appspot.apprtc.util.AsyncHttpURLConnection.AsyncHttpEvents;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import org.webrtc.IceCandidate;
+import org.webrtc.PeerConnection;
+import org.webrtc.SessionDescription;
/**
* AsyncTask that converts an AppRTC room URL into the set of signaling
@@ -133,9 +130,11 @@
boolean isTurnPresent = false;
for (PeerConnection.IceServer server : iceServers) {
Log.d(TAG, "IceServer: " + server);
- if (server.uri.startsWith("turn:")) {
- isTurnPresent = true;
- break;
+ for (String uri : server.urls) {
+ if (uri.startsWith("turn:")) {
+ isTurnPresent = true;
+ break;
+ }
}
}
// Request TURN servers.
diff --git a/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java b/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
index 148632b..26d8310 100644
--- a/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
+++ b/modules/audio_device/android/java/src/org/webrtc/voiceengine/WebRtcAudioTrack.java
@@ -267,9 +267,8 @@
sampleRate, channelConfig, minBufferSizeInBytes);
} else {
// Use default constructor for API levels below 21.
- // Note that, this constructor will be deprecated in API level O (25).
- audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, sampleRate, channelConfig,
- AudioFormat.ENCODING_PCM_16BIT, minBufferSizeInBytes, AudioTrack.MODE_STREAM);
+ audioTrack =
+ createAudioTrackOnLowerThanLollipop(sampleRate, channelConfig, minBufferSizeInBytes);
}
} catch (IllegalArgumentException e) {
reportWebRtcAudioTrackInitError(e.getMessage());
@@ -369,8 +368,8 @@
// It allows certain platforms or routing policies to use this information for more
// refined volume or routing decisions.
@TargetApi(21)
- private AudioTrack createAudioTrackOnLollipopOrHigher(
- int sampleRateInHz, int channelConfig, int bufferSizeInBytes) {
+ private static AudioTrack createAudioTrackOnLollipopOrHigher(
+ int sampleRateInHz, int channelConfig, int bufferSizeInBytes) {
Logging.d(TAG, "createAudioTrackOnLollipopOrHigher");
// TODO(henrika): use setPerformanceMode(int) with PERFORMANCE_MODE_LOW_LATENCY to control
// performance when Android O is supported. Add some logging in the mean time.
@@ -399,6 +398,13 @@
AudioManager.AUDIO_SESSION_ID_GENERATE);
}
+ @SuppressWarnings("deprecation") // Deprecated in API level 25.
+ private static AudioTrack createAudioTrackOnLowerThanLollipop(
+ int sampleRateInHz, int channelConfig, int bufferSizeInBytes) {
+ return new AudioTrack(AudioManager.STREAM_VOICE_CALL, sampleRateInHz, channelConfig,
+ AudioFormat.ENCODING_PCM_16BIT, bufferSizeInBytes, AudioTrack.MODE_STREAM);
+ }
+
@TargetApi(24)
private void logMainParametersExtended() {
if (WebRtcAudioUtils.runningOnMarshmallowOrHigher()) {
diff --git a/sdk/android/src/java/org/webrtc/MediaCodecUtils.java b/sdk/android/src/java/org/webrtc/MediaCodecUtils.java
index c313423..8c829b8 100644
--- a/sdk/android/src/java/org/webrtc/MediaCodecUtils.java
+++ b/sdk/android/src/java/org/webrtc/MediaCodecUtils.java
@@ -17,6 +17,8 @@
/** Container class for static constants and helpers used with MediaCodec. */
@TargetApi(18)
+// We are forced to use the old API because we want to support API level < 21.
+@SuppressWarnings("deprecation")
class MediaCodecUtils {
private static final String TAG = "MediaCodecUtils";