Android: Generate JNI code for RtpReceiver and PeerConnection.Observer

Bug: webrtc:8278
Change-Id: Ief62c37dd6820c2eb1ce94e37e0a61dd8726caae
Reviewed-on: https://webrtc-review.googlesource.com/28621
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21035}
diff --git a/sdk/android/api/org/webrtc/RtpReceiver.java b/sdk/android/api/org/webrtc/RtpReceiver.java
index 69dfd92..ac29695 100644
--- a/sdk/android/api/org/webrtc/RtpReceiver.java
+++ b/sdk/android/api/org/webrtc/RtpReceiver.java
@@ -10,11 +10,14 @@
 
 package org.webrtc;
 
+import org.webrtc.MediaStreamTrack;
+
 /** Java wrapper for a C++ RtpReceiverInterface. */
 public class RtpReceiver {
   /** Java wrapper for a C++ RtpReceiverObserverInterface*/
   public static interface Observer {
     // Called when the first audio or video packet is received.
+    @CalledByNative("Observer")
     public void onFirstPacketReceived(MediaStreamTrack.MediaType media_type);
   }
 
@@ -23,9 +26,10 @@
 
   private MediaStreamTrack cachedTrack;
 
+  @CalledByNative
   public RtpReceiver(long nativeRtpReceiver) {
     this.nativeRtpReceiver = nativeRtpReceiver;
-    long track = nativeGetTrack(nativeRtpReceiver);
+    long track = getNativeTrack(nativeRtpReceiver);
     // We can assume that an RtpReceiver always has an associated track.
     cachedTrack = new MediaStreamTrack(track);
   }
@@ -35,21 +39,22 @@
   }
 
   public boolean setParameters(RtpParameters parameters) {
-    return nativeSetParameters(nativeRtpReceiver, parameters);
+    return parameters == null ? false : setNativeParameters(nativeRtpReceiver, parameters);
   }
 
   public RtpParameters getParameters() {
-    return nativeGetParameters(nativeRtpReceiver);
+    return getNativeParameters(nativeRtpReceiver);
   }
 
   public String id() {
-    return nativeId(nativeRtpReceiver);
+    return getNativeId(nativeRtpReceiver);
   }
 
+  @CalledByNative
   public void dispose() {
     cachedTrack.dispose();
     if (nativeObserver != 0) {
-      nativeUnsetObserver(nativeRtpReceiver, nativeObserver);
+      unsetNativeObserver(nativeRtpReceiver, nativeObserver);
       nativeObserver = 0;
     }
     JniCommon.nativeReleaseRef(nativeRtpReceiver);
@@ -58,23 +63,23 @@
   public void SetObserver(Observer observer) {
     // Unset the existing one before setting a new one.
     if (nativeObserver != 0) {
-      nativeUnsetObserver(nativeRtpReceiver, nativeObserver);
+      unsetNativeObserver(nativeRtpReceiver, nativeObserver);
     }
-    nativeObserver = nativeSetObserver(nativeRtpReceiver, observer);
+    nativeObserver = setNativeObserver(nativeRtpReceiver, observer);
   }
 
   // This should increment the reference count of the track.
   // Will be released in dispose().
-  private static native long nativeGetTrack(long nativeRtpReceiver);
+  private static native long getNativeTrack(long nativeRtpReceiver);
 
-  private static native boolean nativeSetParameters(
+  private static native boolean setNativeParameters(
       long nativeRtpReceiver, RtpParameters parameters);
 
-  private static native RtpParameters nativeGetParameters(long nativeRtpReceiver);
+  private static native RtpParameters getNativeParameters(long nativeRtpReceiver);
 
-  private static native String nativeId(long nativeRtpReceiver);
+  private static native String getNativeId(long nativeRtpReceiver);
 
-  private static native long nativeSetObserver(long nativeRtpReceiver, Observer observer);
+  private static native long setNativeObserver(long nativeRtpReceiver, Observer observer);
 
-  private static native long nativeUnsetObserver(long nativeRtpReceiver, long nativeObserver);
+  private static native void unsetNativeObserver(long nativeRtpReceiver, long nativeObserver);
 };