Index: remoting/webapp/me2mom/client_screen.js |
diff --git a/remoting/webapp/me2mom/client_screen.js b/remoting/webapp/me2mom/client_screen.js |
index 85cc20b819d3e1655d525bafaa282c1c429e8b91..50d80e8d8be53f540db72edb9e07a832c1dfaecc 100644 |
--- a/remoting/webapp/me2mom/client_screen.js |
+++ b/remoting/webapp/me2mom/client_screen.js |
@@ -47,6 +47,19 @@ remoting.hostPublicKey = ''; |
remoting.supportHostsXhr_ = null; |
/** |
+ * @enum {string} |
+ */ |
+remoting.ConnectionType = { |
+ It2Me: 'It2Me', |
+ Me2Me: 'Me2Me' |
+}; |
+ |
+/** |
+ * @type {remoting.ConnectionType?} |
+ */ |
+remoting.currentConnectionType = null; |
+ |
+/** |
* Entry point for the 'connect' functionality. This function checks for the |
* existence of an OAuth2 token, and either requests one asynchronously, or |
* calls through directly to tryConnectWithAccessToken_. |
@@ -123,7 +136,11 @@ remoting.disconnect = function() { |
remoting.clientSession.disconnect(); |
remoting.clientSession = null; |
remoting.debug.log('Disconnected.'); |
- remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED); |
+ if (remoting.currentConnectionType == remoting.ConnectionType.It2Me) { |
+ remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_IT2ME); |
+ } else { |
+ remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME); |
+ } |
} |
} |
@@ -166,6 +183,7 @@ function tryConnectWithWcs_(success) { |
showConnectError_(remoting.Error.INVALID_ACCESS_CODE); |
} else { |
var supportId = remoting.accessCode.substring(0, kSupportIdLen); |
+ remoting.currentConnectionType = remoting.ConnectionType.It2Me; |
remoting.setMode(remoting.AppMode.CLIENT_CONNECTING); |
resolveSupportId(supportId); |
} |
@@ -214,7 +232,11 @@ function onClientStateChange_(oldState, newState) { |
remoting.clientSession.removePlugin(); |
remoting.clientSession = null; |
remoting.debug.log('Connection closed by host'); |
- remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED); |
+ if (remoting.currentConnectionType == remoting.ConnectionType.It2Me) { |
+ remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_IT2ME); |
+ } else { |
+ remoting.setMode(remoting.AppMode.CLIENT_SESSION_FINISHED_ME2ME); |
+ } |
} else { |
// The transition from CONNECTING to CLOSED state may happen |
// only with older client plugins. Current version should go the |
@@ -289,7 +311,11 @@ function showConnectError_(errorTag) { |
remoting.clientSession.disconnect(); |
remoting.clientSession = null; |
} |
- remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED); |
+ if (remoting.currentConnectionType == remoting.ConnectionType.It2Me) { |
+ remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_IT2ME); |
+ } else { |
+ remoting.setMode(remoting.AppMode.CLIENT_CONNECT_FAILED_ME2ME); |
+ } |
} |
/** |
@@ -388,22 +414,22 @@ function recenterToolbar_() { |
/** |
* Start a connection to the specified host, using the stored details. |
* |
- * @param {string} hostId The Id of the host to connect to. |
+ * @param {string} hostJid The jabber Id of the host. |
+ * @param {string} hostPublicKey The public key of the host. |
+ * @param {string} hostName The name of the host. |
* @return {void} Nothing. |
*/ |
-remoting.connectHost = function(hostId) { |
- var hostTableEntry = remoting.hostList.getHostForId(hostId); |
- if (!hostTableEntry) { |
- console.error('connectHost: Unrecognised hostId: ' + hostId); |
- return; |
- } |
- |
- remoting.hostJid = hostTableEntry.host.jabberId; |
- remoting.hostPublicKey = hostTableEntry.host.publicKey; |
- document.getElementById('connected-to').innerText = |
- hostTableEntry.host.hostName; |
+remoting.connectHost = function(hostJid, hostPublicKey, hostName) { |
+ // TODO(jamiewalch): Instead of passing the jid in the URL, cache it in local |
+ // storage so that host bookmarks can be implemented efficiently. |
+ remoting.hostJid = hostJid; |
+ remoting.hostPublicKey = hostPublicKey; |
+ document.getElementById('connected-to').innerText = hostName; |
+ document.title = document.title + ': ' + hostName; |
remoting.debug.log('Connecting to host...'); |
+ remoting.currentConnectionType = remoting.ConnectionType.Me2Me; |
+ remoting.setMode(remoting.AppMode.CLIENT_CONNECTING); |
if (!remoting.wcsLoader) { |
remoting.wcsLoader = new remoting.WcsLoader(); |
@@ -412,10 +438,7 @@ remoting.connectHost = function(hostId) { |
var callWithToken = function(setToken) { |
remoting.oauth2.callWithToken(setToken); |
}; |
- remoting.wcsLoader.start( |
- remoting.oauth2.getAccessToken(), |
- callWithToken, |
- remoting.connectHostWithWcs); |
+ remoting.wcsLoader.startAsync(callWithToken, remoting.connectHostWithWcs); |
Jamie
2011/11/30 21:23:43
The token might not be valid any more, especially
|
} |
/** |
@@ -424,8 +447,6 @@ remoting.connectHost = function(hostId) { |
* @return {void} Nothing. |
*/ |
remoting.connectHostWithWcs = function() { |
- remoting.setMode(remoting.AppMode.CLIENT_CONNECTING); |
Jamie
2011/11/30 21:23:43
I'm not sure why this was being done so late in th
|
- |
remoting.clientSession = |
new remoting.ClientSession( |
remoting.hostJid, remoting.hostPublicKey, |
@@ -438,7 +459,6 @@ remoting.connectHostWithWcs = function() { |
token); |
}; |
- remoting.setMode(remoting.AppMode.CLIENT_CONNECTING); |
remoting.oauth2.callWithToken(createPluginAndConnect); |
} |