OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 android.accounts.Account; | 7 import android.accounts.Account; |
8 import android.accounts.AccountManager; | 8 import android.accounts.AccountManager; |
9 import android.accounts.AccountManagerCallback; | 9 import android.accounts.AccountManagerCallback; |
10 import android.accounts.AccountManagerFuture; | 10 import android.accounts.AccountManagerFuture; |
(...skipping 20 matching lines...) Expand all Loading... |
31 | 31 |
32 import java.io.IOException; | 32 import java.io.IOException; |
33 import java.net.URL; | 33 import java.net.URL; |
34 import java.net.URLConnection; | 34 import java.net.URLConnection; |
35 import java.util.Scanner; | 35 import java.util.Scanner; |
36 | 36 |
37 /** | 37 /** |
38 * The user interface for querying and displaying a user's host list from the di
rectory server. It | 38 * The user interface for querying and displaying a user's host list from the di
rectory server. It |
39 * also requests and renews authentication tokens using the system account manag
er. | 39 * also requests and renews authentication tokens using the system account manag
er. |
40 */ | 40 */ |
41 public class Chromoting extends Activity { | 41 public class Chromoting extends Activity implements JniInterface.ConnectionListe
ner { |
42 /** Only accounts of this type will be selectable for authentication. */ | 42 /** Only accounts of this type will be selectable for authentication. */ |
43 private static final String ACCOUNT_TYPE = "com.google"; | 43 private static final String ACCOUNT_TYPE = "com.google"; |
44 | 44 |
45 /** Scopes at which the authentication token we request will be valid. */ | 45 /** Scopes at which the authentication token we request will be valid. */ |
46 private static final String TOKEN_SCOPE = "oauth2:https://www.googleapis.com
/auth/chromoting " + | 46 private static final String TOKEN_SCOPE = "oauth2:https://www.googleapis.com
/auth/chromoting " + |
47 "https://www.googleapis.com/auth/googletalk"; | 47 "https://www.googleapis.com/auth/googletalk"; |
48 | 48 |
49 /** Path from which to download a user's host list JSON object. */ | 49 /** Path from which to download a user's host list JSON object. */ |
50 private static final String HOST_LIST_PATH = | 50 private static final String HOST_LIST_PATH = |
51 "https://www.googleapis.com/chromoting/v1/@me/hosts?key="; | 51 "https://www.googleapis.com/chromoting/v1/@me/hosts?key="; |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 } | 180 } |
181 | 181 |
182 return true; | 182 return true; |
183 } | 183 } |
184 | 184 |
185 /** Called when the user taps on a host entry. */ | 185 /** Called when the user taps on a host entry. */ |
186 public void connectToHost(JSONObject host) { | 186 public void connectToHost(JSONObject host) { |
187 try { | 187 try { |
188 synchronized (mLock) { | 188 synchronized (mLock) { |
189 JniInterface.connectToHost(mAccount.name, mToken, host.getString
("jabberId"), | 189 JniInterface.connectToHost(mAccount.name, mToken, host.getString
("jabberId"), |
190 host.getString("hostId"), host.getString("publicKey"), | 190 host.getString("hostId"), host.getString("publicKey"), t
his); |
191 new Runnable() { | |
192 @Override | |
193 public void run() { | |
194 startActivity(new Intent(Chromoting.this, De
sktop.class)); | |
195 } | |
196 }); | |
197 } | 191 } |
198 } catch (JSONException ex) { | 192 } catch (JSONException ex) { |
199 Log.w("host", ex); | 193 Log.w("host", ex); |
200 Toast.makeText(this, getString(R.string.error_reading_host), | 194 Toast.makeText(this, getString(R.string.error_reading_host), |
201 Toast.LENGTH_LONG).show(); | 195 Toast.LENGTH_LONG).show(); |
202 // Close the application. | 196 // Close the application. |
203 finish(); | 197 finish(); |
204 } | 198 } |
205 } | 199 } |
206 | 200 |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 mList.setAdapter(displayer); | 347 mList.setAdapter(displayer); |
354 } catch (JSONException ex) { | 348 } catch (JSONException ex) { |
355 Log.w("hostlist", ex); | 349 Log.w("hostlist", ex); |
356 Toast.makeText(this, getString(R.string.error_cataloging_hosts), | 350 Toast.makeText(this, getString(R.string.error_cataloging_hosts), |
357 Toast.LENGTH_LONG).show(); | 351 Toast.LENGTH_LONG).show(); |
358 | 352 |
359 // Close the application. | 353 // Close the application. |
360 finish(); | 354 finish(); |
361 } | 355 } |
362 } | 356 } |
| 357 |
| 358 @Override |
| 359 public void onConnected() { |
| 360 startActivityForResult(new Intent(Chromoting.this, Desktop.class), 0); |
| 361 } |
| 362 |
| 363 @Override |
| 364 public void onDisconnected() { |
| 365 finishActivity(0); |
| 366 } |
363 } | 367 } |
OLD | NEW |