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";