Index: remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java |
diff --git a/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java b/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java |
index fb9110d4830776ae0143aeb86f07e6f521f8daf9..d8ca6a75dcd643d2154a5834a9814d9189de07cc 100644 |
--- a/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java |
+++ b/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java |
@@ -22,6 +22,8 @@ import android.widget.CheckBox; |
import android.widget.TextView; |
import android.widget.Toast; |
+import org.chromium.base.CalledByNative; |
+import org.chromium.base.JNINamespace; |
import org.chromium.chromoting.R; |
import java.nio.ByteBuffer; |
@@ -31,6 +33,7 @@ import java.nio.ByteOrder; |
* Initializes the Chromium remoting library, and provides JNI calls into it. |
* All interaction with the native code is centralized in this class. |
*/ |
+@JNINamespace("remoting") |
public class JniInterface { |
/** The status code indicating successful connection. */ |
private static final int SUCCESSFUL_CONNECTION = 3; |
@@ -57,19 +60,20 @@ public class JniInterface { |
} |
System.loadLibrary("remoting_client_jni"); |
- loadNative(context); |
+ |
+ nativeLoadNative(context); |
sLoaded = true; |
} |
/** Performs the native portion of the initialization. */ |
- private static native void loadNative(Context context); |
+ private static native void nativeLoadNative(Context context); |
/* |
* API/OAuth2 keys access. |
*/ |
- public static native String getApiKey(); |
- public static native String getClientId(); |
- public static native String getClientSecret(); |
+ public static native String nativeGetApiKey(); |
+ public static native String nativeGetClientId(); |
+ public static native String nativeGetClientSecret(); |
/* |
* Connection-initiating state machine. |
@@ -96,7 +100,7 @@ public class JniInterface { |
sSuccessCallback = successCallback; |
SharedPreferences prefs = sContext.getPreferences(Activity.MODE_PRIVATE); |
- connectNative(username, authToken, hostJid, hostId, hostPubkey, |
+ nativeConnect(username, authToken, hostJid, hostId, hostPubkey, |
prefs.getString(hostId + "_id", ""), prefs.getString(hostId + "_secret", "")); |
sConnected = true; |
} |
@@ -112,7 +116,7 @@ public class JniInterface { |
} |
} |
- disconnectNative(); |
+ nativeDisconnect(); |
sSuccessCallback = null; |
sConnected = false; |
@@ -123,11 +127,11 @@ public class JniInterface { |
} |
/** Performs the native portion of the connection. */ |
- private static native void connectNative(String username, String authToken, String hostJid, |
+ private static native void nativeConnect(String username, String authToken, String hostJid, |
String hostId, String hostPubkey, String pairId, String pairSecret); |
/** Performs the native portion of the cleanup. */ |
- private static native void disconnectNative(); |
+ private static native void nativeDisconnect(); |
/** Position of cursor hotspot within cursor image. */ |
public static Point getCursorHotspot() { return sCursorHotspot; } |
@@ -154,6 +158,7 @@ public class JniInterface { |
private static Bitmap sCursorBitmap = null; |
/** Reports whenever the connection status changes. */ |
+ @CalledByNative |
private static void reportConnectionStatus(int state, int error) { |
if (state < SUCCESSFUL_CONNECTION && error == 0) { |
// The connection is still being established, so we'll report the current progress. |
@@ -201,6 +206,7 @@ public class JniInterface { |
} |
/** Prompts the user to enter a PIN. */ |
+ @CalledByNative |
private static void displayAuthenticationPrompt(boolean pairingSupported) { |
AlertDialog.Builder pinPrompt = new AlertDialog.Builder(sContext); |
pinPrompt.setTitle(sContext.getString(R.string.pin_entry_title)); |
@@ -223,8 +229,8 @@ public class JniInterface { |
@Override |
public void onClick(DialogInterface dialog, int which) { |
Log.i("jniiface", "User provided a PIN code"); |
- authenticationResponse(String.valueOf(pinTextView.getText()), |
- pinCheckBox.isChecked()); |
+ nativeAuthenticationResponse(String.valueOf(pinTextView.getText()), |
+ pinCheckBox.isChecked()); |
} |
}); |
@@ -266,6 +272,7 @@ public class JniInterface { |
} |
/** Saves newly-received pairing credentials to permanent storage. */ |
+ @CalledByNative |
private static void commitPairingCredentials(String host, byte[] id, byte[] secret) { |
synchronized (sContext) { |
sContext.getPreferences(Activity.MODE_PRIVATE).edit(). |
@@ -289,14 +296,16 @@ public class JniInterface { |
if (!sConnected || sRedrawCallback == null) return false; |
} |
- scheduleRedrawNative(); |
+ nativeScheduleRedraw(); |
return true; |
} |
/** Performs the redrawing callback. This is a no-op if the window isn't visible. */ |
+ @CalledByNative |
private static void redrawGraphicsInternal() { |
- if (sRedrawCallback != null) |
+ if (sRedrawCallback != null) { |
sRedrawCallback.run(); |
+ } |
} |
/** |
@@ -318,9 +327,9 @@ public class JniInterface { |
} |
/** |
- * Sets a new video frame. Called from native code on the native graphics thread when a new |
- * frame is allocated. |
+ * Sets a new video frame. Called on the native graphics thread when a new frame is allocated. |
*/ |
+ @CalledByNative |
private static void setVideoFrame(Bitmap bitmap) { |
if (Looper.myLooper() == Looper.getMainLooper()) { |
Log.w("jniiface", "Video frame updated on UI thread"); |
@@ -335,14 +344,16 @@ public class JniInterface { |
* Creates a new Bitmap to hold video frame pixels. Called by native code which stores a global |
* reference to the Bitmap and writes the decoded frame pixels to it. |
*/ |
+ @CalledByNative |
private static Bitmap newBitmap(int width, int height) { |
return Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); |
} |
/** |
- * Updates the cursor shape. This is called from native code on the graphics thread when |
- * receiving a new cursor shape from the host. |
+ * Updates the cursor shape. This is called on the graphics thread when receiving a new cursor |
+ * shape from the host. |
*/ |
+ @CalledByNative |
public static void updateCursorShape(int width, int height, int hotspotX, int hotspotY, |
ByteBuffer buffer) { |
sCursorHotspot = new Point(hotspotX, hotspotY); |
@@ -359,7 +370,7 @@ public class JniInterface { |
return; |
} |
- mouseActionNative(x, y, whichButton, buttonDown); |
+ nativeMouseAction(x, y, whichButton, buttonDown); |
} |
/** Presses and releases the specified (nonnegative) key. */ |
@@ -368,18 +379,18 @@ public class JniInterface { |
return; |
} |
- keyboardActionNative(keyCode, keyDown); |
+ nativeKeyboardAction(keyCode, keyDown); |
} |
/** Performs the native response to the user's PIN. */ |
- private static native void authenticationResponse(String pin, boolean createPair); |
+ private static native void nativeAuthenticationResponse(String pin, boolean createPair); |
/** Schedules a redraw on the native graphics thread. */ |
- private static native void scheduleRedrawNative(); |
+ private static native void nativeScheduleRedraw(); |
/** Passes mouse information to the native handling code. */ |
- private static native void mouseActionNative(int x, int y, int whichButton, boolean buttonDown); |
+ private static native void nativeMouseAction(int x, int y, int whichButton, boolean buttonDown); |
/** Passes key press information to the native handling code. */ |
- private static native void keyboardActionNative(int keyCode, boolean keyDown); |
+ private static native void nativeKeyboardAction(int keyCode, boolean keyDown); |
} |