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

Side by Side Diff: remoting/android/java/src/org/chromium/chromoting/SessionConnector.java

Issue 1537183002: Refactor Chromoting JNI code to use jni/Client (Java changes only). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update some comments Created 4 years, 10 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chromoting; 5 package org.chromium.chromoting;
6 6
7 import org.chromium.chromoting.jni.Client;
7 import org.chromium.chromoting.jni.ConnectionListener; 8 import org.chromium.chromoting.jni.ConnectionListener;
8 import org.chromium.chromoting.jni.JniInterface;
9 9
10 /** 10 /**
11 * This class manages making a connection to a host, with logic for reloading th e host list and 11 * This class manages making a connection to a host, with logic for reloading th e host list and
12 * retrying the connection in the case of a stale host JID. 12 * retrying the connection in the case of a stale host JID.
13 */ 13 */
14 public class SessionConnector implements ConnectionListener, 14 public class SessionConnector implements ConnectionListener, HostListLoader.Call back {
15 HostListLoader.Callback { 15 private Client mClient;
16 private ConnectionListener mConnectionCallback; 16 private ConnectionListener mConnectionCallback;
17 private HostListLoader.Callback mHostListCallback; 17 private HostListLoader.Callback mHostListCallback;
18 private HostListLoader mHostListLoader; 18 private HostListLoader mHostListLoader;
19 private SessionAuthenticator mAuthenticator; 19 private SessionAuthenticator mAuthenticator;
20 20
21 private String mAccountName; 21 private String mAccountName;
22 private String mAuthToken; 22 private String mAuthToken;
23 23
24 /** Used to find the HostInfo from the returned array after the host list is reloaded. */ 24 /** Used to find the HostInfo from the returned array after the host list is reloaded. */
25 private String mHostId; 25 private String mHostId;
26 26
27 private String mHostJabberId; 27 private String mHostJabberId;
28 28
29 /** 29 /**
30 * Tracks whether the connection has been established. Auto-reloading and re connecting should 30 * Tracks whether the connection has been established. Auto-reloading and re connecting should
31 * only happen if connection has not yet occurred. 31 * only happen if connection has not yet occurred.
32 */ 32 */
33 private boolean mConnected; 33 private boolean mConnected;
34 34
35 /** 35 /**
36 * @param connectionCallback Object to be notified on connection success/fai lure. 36 * @param connectionCallback Object to be notified on connection success/fai lure.
37 * @param hostListCallback Object to be notified whenever the host list is r eloaded. 37 * @param hostListCallback Object to be notified whenever the host list is r eloaded.
38 * @param hostListLoader The object used for reloading the host list. 38 * @param hostListLoader The object used for reloading the host list.
39 */ 39 */
40 public SessionConnector(ConnectionListener connectionCallback, 40 public SessionConnector(Client client, ConnectionListener connectionCallback ,
41 HostListLoader.Callback hostListCallback, HostListLoader hostListLoa der) { 41 HostListLoader.Callback hostListCallback, HostListLoader hostListLoa der) {
42 mClient = client;
42 mConnectionCallback = connectionCallback; 43 mConnectionCallback = connectionCallback;
43 mHostListCallback = hostListCallback; 44 mHostListCallback = hostListCallback;
44 mHostListLoader = hostListLoader; 45 mHostListLoader = hostListLoader;
45 } 46 }
46 47
47 /** Initiates a connection to the host. */ 48 /** Initiates a connection to the host. */
48 public void connectToHost(String accountName, String authToken, HostInfo hos t, 49 public void connectToHost(String accountName, String authToken, HostInfo hos t,
49 SessionAuthenticator authenticator) { 50 SessionAuthenticator authenticator) {
50 mAccountName = accountName; 51 mAccountName = accountName;
51 mAuthToken = authToken; 52 mAuthToken = authToken;
52 mHostId = host.id; 53 mHostId = host.id;
53 mHostJabberId = host.jabberId; 54 mHostJabberId = host.jabberId;
54 mAuthenticator = authenticator; 55 mAuthenticator = authenticator;
55 56
56 if (hostIncomplete(host)) { 57 if (hostIncomplete(host)) {
57 // These keys might not be present in a newly-registered host, so tr eat this as a 58 // These keys might not be present in a newly-registered host, so tr eat this as a
58 // connection failure and reload the host list. 59 // connection failure and reload the host list.
59 reloadHostListAndConnect(); 60 reloadHostListAndConnect();
60 return; 61 return;
61 } 62 }
62 63
63 JniInterface.connectToHost(accountName, authToken, host.jabberId, host.i d, host.publicKey, 64 mClient.connectToHost(accountName, authToken, host.jabberId, host.id, ho st.publicKey,
64 this, mAuthenticator); 65 this, mAuthenticator);
65 } 66 }
66 67
67 private static boolean hostIncomplete(HostInfo host) { 68 private static boolean hostIncomplete(HostInfo host) {
68 return host.jabberId.isEmpty() || host.publicKey.isEmpty(); 69 return host.jabberId.isEmpty() || host.publicKey.isEmpty();
69 } 70 }
70 71
71 private void reloadHostListAndConnect() { 72 private void reloadHostListAndConnect() {
72 mHostListLoader.retrieveHostList(mAuthToken, this); 73 mHostListLoader.retrieveHostList(mAuthToken, this);
73 } 74 }
(...skipping 29 matching lines...) Expand all
103 104
104 if (foundHost == null || foundHost.jabberId.equals(mHostJabberId) 105 if (foundHost == null || foundHost.jabberId.equals(mHostJabberId)
105 || hostIncomplete(foundHost)) { 106 || hostIncomplete(foundHost)) {
106 // Cannot reconnect to this host, or there's no point in trying beca use the JID is 107 // Cannot reconnect to this host, or there's no point in trying beca use the JID is
107 // unchanged, so report the original failure to the client. 108 // unchanged, so report the original failure to the client.
108 mConnectionCallback.onConnectionState(ConnectionListener.State.FAILE D, 109 mConnectionCallback.onConnectionState(ConnectionListener.State.FAILE D,
109 ConnectionListener.Error.PEER_IS_OFFLINE); 110 ConnectionListener.Error.PEER_IS_OFFLINE);
110 } else { 111 } else {
111 // Reconnect to the host, but use the original callback directly, in stead of this 112 // Reconnect to the host, but use the original callback directly, in stead of this
112 // wrapper object, so the host list is not loaded again. 113 // wrapper object, so the host list is not loaded again.
113 JniInterface.connectToHost(mAccountName, mAuthToken, foundHost.jabbe rId, 114 mClient.connectToHost(mAccountName, mAuthToken, foundHost.jabberId,
114 foundHost.id, foundHost.publicKey, mConnectionCallback, mAut henticator); 115 foundHost.id, foundHost.publicKey, mConnectionCallback, mAut henticator);
115 } 116 }
116 } 117 }
117 118
118 @Override 119 @Override
119 public void onError(HostListLoader.Error error) { 120 public void onError(HostListLoader.Error error) {
120 // Connection failed and reloading the host list also failed, so report the connection 121 // Connection failed and reloading the host list also failed, so report the connection
121 // error. 122 // error.
122 mConnectionCallback.onConnectionState(ConnectionListener.State.FAILED, 123 mConnectionCallback.onConnectionState(ConnectionListener.State.FAILED,
123 ConnectionListener.Error.PEER_IS_OFFLINE); 124 ConnectionListener.Error.PEER_IS_OFFLINE);
124 125
125 // Notify the caller that the host list failed to load, so the UI is upd ated accordingly. 126 // Notify the caller that the host list failed to load, so the UI is upd ated accordingly.
126 // The currently-displayed host list is not likely to be valid any more. 127 // The currently-displayed host list is not likely to be valid any more.
127 mHostListCallback.onError(error); 128 mHostListCallback.onError(error);
128 } 129 }
129 } 130 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698