Chromium Code Reviews| 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) { |
|
Lambros
2016/06/29 00:18:39
I think you could use Display instead of Object he
Yuwei
2016/06/29 00:40:09
As discussed offline,
* The point of passing and
|
| + 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() { |
|
Lambros
2016/06/29 00:18:39
Even if you needed the instanceof checking, you co
|
| 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); |