summaryrefslogtreecommitdiffstats
path: root/sync/android/java
diff options
context:
space:
mode:
authornyquist@chromium.org <nyquist@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-13 21:53:44 +0000
committernyquist@chromium.org <nyquist@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-13 21:53:44 +0000
commit83942e8f3ea49c9c4e184fd3ef1cd0e4eae3eaad (patch)
tree77ca3a06d3aed8a4c5f7da2aa16f209ff23839dd /sync/android/java
parentaca7e2959c89941a790469f1b6d091a65791976e (diff)
downloadchromium_src-83942e8f3ea49c9c4e184fd3ef1cd0e4eae3eaad.zip
chromium_src-83942e8f3ea49c9c4e184fd3ef1cd0e4eae3eaad.tar.gz
chromium_src-83942e8f3ea49c9c4e184fd3ef1cd0e4eae3eaad.tar.bz2
Fix a bug that caused AuthToken permission not to be shown on Android
BUG=179188,181579,179844,180259 Review URL: https://codereview.chromium.org/12447017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187955 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/android/java')
-rw-r--r--sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java37
1 files changed, 20 insertions, 17 deletions
diff --git a/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java b/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java
index 5c1ec826..882f90d 100644
--- a/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java
+++ b/sync/android/java/src/org/chromium/sync/signin/AccountManagerHelper.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.List;
+import javax.annotation.Nullable;
/**
* AccountManagerHelper wraps our access of AccountManager in Android.
@@ -153,18 +154,12 @@ public class AccountManagerHelper {
*
* - Assumes that the account is a valid account.
*/
- public void getAuthTokenFromForeground(Account account, String authTokenType,
+ public void getAuthTokenFromForeground(Activity activity, Account account, String authTokenType,
GetAuthTokenCallback callback) {
AtomicInteger numTries = new AtomicInteger(0);
AtomicBoolean errorEncountered = new AtomicBoolean(false);
- getAuthTokenAsynchronously(account, authTokenType, callback, numTries, errorEncountered,
- null);
- }
-
- @Deprecated
- public void getAuthTokenFromForeground(Activity activity, Account account,
- String authTokenType, GetAuthTokenCallback callback) {
- getAuthTokenFromForeground(account, authTokenType, callback);
+ getAuthTokenAsynchronously(activity, account, authTokenType, callback, numTries,
+ errorEncountered, null);
}
private class ConnectionRetry implements NetworkChangeNotifier.ConnectionTypeObserver {
@@ -192,7 +187,7 @@ public class AccountManagerHelper {
}
if (NetworkChangeNotifier.isOnline()) {
NetworkChangeNotifier.removeConnectionTypeObserver(this);
- getAuthTokenAsynchronously(mAccount, mAuthTokenType, mCallback, mNumTries,
+ getAuthTokenAsynchronously(null, mAccount, mAuthTokenType, mCallback, mNumTries,
mErrorEncountered, this);
}
}
@@ -229,16 +224,24 @@ public class AccountManagerHelper {
return null;
}
- private void getAuthTokenAsynchronously(final Account account, final String authTokenType,
- final GetAuthTokenCallback callback, final AtomicInteger numTries,
- final AtomicBoolean errorEncountered, final ConnectionRetry retry) {
- final AccountManagerFuture<Bundle> future = mAccountManager.getAuthToken(account,
- authTokenType, false, null, null);
+ private void getAuthTokenAsynchronously(@Nullable Activity activity, final Account account,
+ final String authTokenType, final GetAuthTokenCallback callback,
+ final AtomicInteger numTries, final AtomicBoolean errorEncountered,
+ final ConnectionRetry retry) {
+ AccountManagerFuture<Bundle> future;
+ if (numTries.get() == 0 && activity != null) {
+ future = mAccountManager.getAuthToken(
+ account, authTokenType, null, activity, null, null);
+ } else {
+ future = mAccountManager.getAuthToken(
+ account, authTokenType, false, null, null);
+ }
+ final AccountManagerFuture<Bundle> finalFuture = future;
errorEncountered.set(false);
new AsyncTask<Void, Void, String>() {
@Override
public String doInBackground(Void... params) {
- return getAuthTokenInner(future, errorEncountered);
+ return getAuthTokenInner(finalFuture, errorEncountered);
}
@Override
public void onPostExecute(String authToken) {
@@ -301,6 +304,6 @@ public class AccountManagerHelper {
AtomicInteger numTries = new AtomicInteger(0);
AtomicBoolean errorEncountered = new AtomicBoolean(false);
getAuthTokenAsynchronously(
- account, authTokenType, callback, numTries, errorEncountered, null);
+ null, account, authTokenType, callback, numTries, errorEncountered, null);
}
}