Index: remoting/android/java/src/org/chromium/chromoting/jni/Client.java |
diff --git a/remoting/android/java/src/org/chromium/chromoting/jni/Client.java b/remoting/android/java/src/org/chromium/chromoting/jni/Client.java |
index 628573a0162934586f2d3f5d58396c918c06eba8..058fcac32a59ec182ff9210b3a1d1118df470ce2 100644 |
--- a/remoting/android/java/src/org/chromium/chromoting/jni/Client.java |
+++ b/remoting/android/java/src/org/chromium/chromoting/jni/Client.java |
@@ -23,9 +23,8 @@ public class Client implements InputStub { |
// Pointer to the C++ object, cast to a |long|. |
private long mNativeJniClient; |
- // Reference has to be kept until the lifecycle of Client ends. Code are currently using |
- // getDisplay() without doing a null check. |
- private Display mDisplay; |
+ // Implementation-dependent display object used by the desktop view. |
+ private Object mDisplay; |
// The global Client instance (may be null). This needs to be a global singleton so that the |
// Client can be passed between Activities. |
@@ -41,11 +40,20 @@ public class Client implements InputStub { |
} |
/** |
- * Returns the display object. It will be null before calling connectToHost() but won't be null |
- * after calling disconnectFromHost(). |
+ * Sets the display object. Called by the native code when the connection starts. |
+ * @param display the implementation-dependent object used by the desktop view. |
+ */ |
+ @CalledByNative |
+ private void setDisplay(Object display) { |
+ mDisplay = display; |
+ } |
+ |
+ /** |
+ * Returns the display object. It will be null before calling connectToHost() or after calling |
+ * disconnectFromHost(). |
* @return the display object. |
*/ |
- public Display getDisplay() { |
+ public Object getDisplay() { |
return mDisplay; |
} |
@@ -93,8 +101,7 @@ public class Client implements InputStub { |
mConnectionListener = listener; |
mAuthenticator = authenticator; |
- mDisplay = new Display(); |
- nativeConnect(mNativeJniClient, mDisplay.getNativePointer(), username, authToken, hostJid, |
+ nativeConnect(mNativeJniClient, username, authToken, hostJid, |
hostId, hostPubkey, mAuthenticator.getPairingId(hostId), |
mAuthenticator.getPairingSecret(hostId), mCapabilityManager.getLocalCapabilities(), |
flags); |
@@ -124,7 +131,7 @@ public class Client implements InputStub { |
mConnected = false; |
mCapabilityManager.onHostDisconnect(); |
- mDisplay.destroy(); |
+ mDisplay = null; |
} |
/** Called whenever the connection status changes. */ |
@@ -296,7 +303,7 @@ public class Client implements InputStub { |
private native void nativeDestroy(long nativeJniClient); |
/** Performs the native portion of the connection. */ |
- private native void nativeConnect(long nativeJniClient, long nativeJniDisplayHandler, |
+ private native void nativeConnect(long nativeJniClient, |
String username, String authToken, String hostJid, String hostId, String hostPubkey, |
String pairId, String pairSecret, String capabilities, String flags); |