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

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

Issue 105943010: Android Chromoting - Close the Desktop view on disconnection (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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
« no previous file with comments | « remoting/android/java/src/org/chromium/chromoting/Chromoting.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 ada724882f5fa49b461fc66f0da63628e06d701a..1b535cd288b3a79d31314ad54841b4c9baca3ced 100644
--- a/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java
+++ b/remoting/android/java/src/org/chromium/chromoting/jni/JniInterface.java
@@ -45,14 +45,26 @@ public class JniInterface {
/** The application context. Accessed on the UI thread. */
private static Activity sContext = null;
+ /** Interface used for connection state notifications. */
+ public interface ConnectionListener {
+ /** Notified on successful connection. */
+ void onConnected();
+
+ /**
+ * Notified when the connection is disconnected due to host or network error. This is not
+ * called if disconnection is initiated by the client.
+ */
+ void onDisconnected();
Sergey Ulanov 2013/12/28 02:51:49 I think it's not enough to have just these two met
Lambros 2013/12/31 00:05:05 Done.
+ }
+
/*
* Connection-initiating state machine.
*/
/** Whether the native code is attempting a connection. Accessed on the UI thread. */
private static boolean sConnected = false;
- /** Callback to signal upon successful connection. Accessed on the UI thread. */
- private static Runnable sSuccessCallback = null;
+ /** Notified upon successful connection or disconnection. Accessed on the UI thread. */
+ private static ConnectionListener sConnectionListener = null;
/** Dialog for reporting connection progress. Accessed on the UI thread. */
private static ProgressDialog sProgressIndicator = null;
@@ -108,10 +120,10 @@ public class JniInterface {
/** Attempts to form a connection to the user-selected host. Called on the UI thread. */
public static void connectToHost(String username, String authToken,
- String hostJid, String hostId, String hostPubkey, Runnable successCallback) {
+ String hostJid, String hostId, String hostPubkey, ConnectionListener listener) {
disconnectFromHost();
- sSuccessCallback = successCallback;
+ sConnectionListener = listener;
SharedPreferences prefs = sContext.getPreferences(Activity.MODE_PRIVATE);
nativeConnect(username, authToken, hostJid, hostId, hostPubkey,
prefs.getString(hostId + "_id", ""), prefs.getString(hostId + "_secret", ""));
@@ -134,7 +146,7 @@ public class JniInterface {
}
nativeDisconnect();
- sSuccessCallback = null;
+ sConnectionListener = null;
sConnected = false;
// Drop the reference to free the Bitmap for GC.
@@ -182,12 +194,13 @@ public class JniInterface {
getStringArray(R.array.protoc_states)[state], Toast.LENGTH_SHORT).show();
// Actually display the remote desktop.
- sSuccessCallback.run();
+ sConnectionListener.onConnected();
} else {
Toast.makeText(sContext, sContext.getResources().getStringArray(
Sergey Ulanov 2013/12/28 02:51:49 Same here. JNI layer shouldn't handle UI. Let's mo
Lambros 2013/12/31 00:05:05 Done.
R.array.protoc_states)[state] + (error == 0 ? "" : ": " +
sContext.getResources().getStringArray(R.array.protoc_errors)[error]),
Toast.LENGTH_LONG).show();
+ sConnectionListener.onDisconnected();
}
}
}
« no previous file with comments | « remoting/android/java/src/org/chromium/chromoting/Chromoting.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698