Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(507)

Unified Diff: remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java

Issue 451973002: Capabilities + Extensions + Cast Host Extension Support for Android client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Minor Fix Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 34bf0df1feac9300ad4b996dc266666c3094ee2d..9304ee34165e6f9a6db6d91c6fb5dbd10e9e43b2 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,7 @@ import android.widget.Toast;
import org.chromium.base.CalledByNative;
import org.chromium.base.JNINamespace;
+import org.chromium.chromoting.CapabilityManager;
import org.chromium.chromoting.Chromoting;
import org.chromium.chromoting.R;
@@ -143,6 +144,9 @@ public class JniInterface {
/** Bitmap holding the cursor shape. Accessed on the graphics thread. */
private static Bitmap sCursorBitmap = null;
+ /** Capability Manager through which capabilities and extensions are handled. */
+ private static CapabilityManager sCapabilityManager = CapabilityManager.getInstance();
+
/**
* To be called once from the main Activity. Any subsequent calls will update the application
* context, but not reload the library. This is useful e.g. when the activity is closed and the
@@ -177,13 +181,15 @@ public class JniInterface {
sConnectionListener = listener;
SharedPreferences prefs = sContext.getPreferences(Activity.MODE_PRIVATE);
nativeConnect(username, authToken, hostJid, hostId, hostPubkey,
- prefs.getString(hostId + "_id", ""), prefs.getString(hostId + "_secret", ""));
+ prefs.getString(hostId + "_id", ""), prefs.getString(hostId + "_secret", ""),
+ sCapabilityManager.getLocalCapabilities());
sConnected = true;
}
/** Performs the native portion of the connection. */
private static native void nativeConnect(String username, String authToken, String hostJid,
- String hostId, String hostPubkey, String pairId, String pairSecret);
+ String hostId, String hostPubkey, String pairId, String pairSecret,
+ String capabilities);
/** Severs the connection and cleans up. Called on the UI thread. */
public static void disconnectFromHost() {
@@ -490,4 +496,35 @@ public class JniInterface {
/** Passes authentication data to the native handling code. */
private static native void nativeOnThirdPartyTokenFetched(String token, String sharedSecret);
+
+ //
+ // Host and Client Capabilities
+ //
+
+ /** Set the list of negotiated capabilities between host and client. Called on the UI thread. */
+ @CalledByNative
+ public static void setCapabilities(String capabilities) {
+ sCapabilityManager.setNegotiatedCapabilities(capabilities);
+ }
+
+ //
+ // Extension Message Handling
+ //
+
+ /** Passes on the deconstructed ExtensionMessage to the app. Called on the UI thread. */
+ @CalledByNative
+ public static void handleExtensionMessage(String type, String data) {
+ sCapabilityManager.onExtensionMessage(type, data);
+ }
+
+ /** Sends an extension message to the Chromoting host. Called on the UI thread. */
+ public static void sendExtensionMessage(String type, String data) {
+ if (!sConnected) {
+ return;
+ }
+
+ nativeSendExtensionMessage(type, data);
+ }
+
+ private static native void nativeSendExtensionMessage(String type, String data);
}

Powered by Google App Engine
This is Rietveld 408576698