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 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 167 |
168 @Override | 168 @Override |
169 protected void onNewIntent(Intent intent) { | 169 protected void onNewIntent(Intent intent) { |
170 super.onNewIntent(intent); | 170 super.onNewIntent(intent); |
171 if (mTokenFetcher != null) { | 171 if (mTokenFetcher != null) { |
172 if (mTokenFetcher.handleTokenFetched(intent)) { | 172 if (mTokenFetcher.handleTokenFetched(intent)) { |
173 mTokenFetcher = null; | 173 mTokenFetcher = null; |
174 } | 174 } |
175 } | 175 } |
176 } | 176 } |
| 177 |
177 /** | 178 /** |
178 * Called when the activity becomes visible. This happens on initial launch
and whenever the | 179 * Called when the activity becomes visible. This happens on initial launch
and whenever the |
179 * user switches to the activity, for example, by using the window-switcher
or when coming from | 180 * user switches to the activity, for example, by using the window-switcher
or when coming from |
180 * the device's lock screen. | 181 * the device's lock screen. |
181 */ | 182 */ |
182 @Override | 183 @Override |
183 public void onStart() { | 184 public void onStart() { |
184 super.onStart(); | 185 super.onStart(); |
185 | 186 |
186 mAccounts = AccountManager.get(this).getAccountsByType(ACCOUNT_TYPE); | 187 mAccounts = AccountManager.get(this).getAccountsByType(ACCOUNT_TYPE); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 } | 300 } |
300 | 301 |
301 @Override | 302 @Override |
302 public void run(AccountManagerFuture<Bundle> future) { | 303 public void run(AccountManagerFuture<Bundle> future) { |
303 Log.i("auth", "User finished with auth dialogs"); | 304 Log.i("auth", "User finished with auth dialogs"); |
304 Bundle result = null; | 305 Bundle result = null; |
305 String explanation = null; | 306 String explanation = null; |
306 try { | 307 try { |
307 // Here comes our auth token from the Android system. | 308 // Here comes our auth token from the Android system. |
308 result = future.getResult(); | 309 result = future.getResult(); |
309 String authToken = result.getString(AccountManager.KEY_AUTHTOKEN); | |
310 Log.i("auth", "Received an auth token from system"); | |
311 | |
312 mToken = authToken; | |
313 | |
314 mHostListLoader.retrieveHostList(authToken, this); | |
315 } catch (OperationCanceledException ex) { | 310 } catch (OperationCanceledException ex) { |
316 // User canceled authentication. No need to report an error. | 311 // User canceled authentication. No need to report an error. |
317 } catch (AuthenticatorException ex) { | 312 } catch (AuthenticatorException ex) { |
318 explanation = getString(R.string.error_unexpected); | 313 explanation = getString(R.string.error_unexpected); |
319 } catch (IOException ex) { | 314 } catch (IOException ex) { |
320 explanation = getString(R.string.error_network_error); | 315 explanation = getString(R.string.error_network_error); |
321 } | 316 } |
322 | 317 |
323 if (result == null) { | 318 if (result == null) { |
324 if (explanation != null) { | 319 if (explanation != null) { |
325 Toast.makeText(this, explanation, Toast.LENGTH_LONG).show(); | 320 Toast.makeText(this, explanation, Toast.LENGTH_LONG).show(); |
326 } | 321 } |
327 return; | 322 return; |
328 } | 323 } |
329 | 324 |
330 String authToken = result.getString(AccountManager.KEY_AUTHTOKEN); | 325 mToken = result.getString(AccountManager.KEY_AUTHTOKEN); |
331 Log.i("auth", "Received an auth token from system"); | 326 Log.i("auth", "Received an auth token from system"); |
332 | 327 |
333 mToken = authToken; | 328 mHostListLoader.retrieveHostList(mToken, this); |
334 | |
335 mHostListLoader.retrieveHostList(authToken, this); | |
336 } | 329 } |
337 | 330 |
338 @Override | 331 @Override |
339 public boolean onNavigationItemSelected(int itemPosition, long itemId) { | 332 public boolean onNavigationItemSelected(int itemPosition, long itemId) { |
340 mAccount = mAccounts[itemPosition]; | 333 mAccount = mAccounts[itemPosition]; |
341 | 334 |
342 getPreferences(MODE_PRIVATE).edit().putString("account_name", mAccount.n
ame). | 335 getPreferences(MODE_PRIVATE).edit().putString("account_name", mAccount.n
ame). |
343 putString("account_type", mAccount.type).apply(); | 336 putString("account_type", mAccount.type).apply(); |
344 | 337 |
345 // The current host list is no longer valid for the new account, so clea
r the list. | 338 // The current host list is no longer valid for the new account, so clea
r the list. |
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 } | 471 } |
479 }; | 472 }; |
480 return new ThirdPartyTokenFetcher(this, host.getTokenUrlPatterns(), call
back); | 473 return new ThirdPartyTokenFetcher(this, host.getTokenUrlPatterns(), call
back); |
481 } | 474 } |
482 | 475 |
483 public void fetchThirdPartyToken(String tokenUrl, String clientId, String sc
ope) { | 476 public void fetchThirdPartyToken(String tokenUrl, String clientId, String sc
ope) { |
484 assert mTokenFetcher != null; | 477 assert mTokenFetcher != null; |
485 mTokenFetcher.fetchToken(tokenUrl, clientId, scope); | 478 mTokenFetcher.fetchToken(tokenUrl, clientId, scope); |
486 } | 479 } |
487 } | 480 } |
OLD | NEW |