summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorAmith Yamasani <yamasani@google.com>2012-10-11 17:17:57 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-10-11 17:17:57 -0700
commit8d7148c4d5094f38f86199610a49a8769eace1cd (patch)
tree74d372b8c19fb506479950e2a81383de96b2f2ea /src/com/android
parent59fde8ef9d20f109ae52717f92e6c151c12be819 (diff)
parent33e8e04d844713f59ca0193bb93f8ae9bedbe72c (diff)
downloadpackages_apps_Settings-8d7148c4d5094f38f86199610a49a8769eace1cd.zip
packages_apps_Settings-8d7148c4d5094f38f86199610a49a8769eace1cd.tar.gz
packages_apps_Settings-8d7148c4d5094f38f86199610a49a8769eace1cd.tar.bz2
am 33e8e04d: am 552bebe0: am 35bbbc6c: Merge "Launch account addition activity from Settings instead of from AccountManager" into jb-mr1-dev
* commit '33e8e04d844713f59ca0193bb93f8ae9bedbe72c': Launch account addition activity from Settings instead of from AccountManager
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/settings/accounts/AddAccountSettings.java37
1 files changed, 30 insertions, 7 deletions
diff --git a/src/com/android/settings/accounts/AddAccountSettings.java b/src/com/android/settings/accounts/AddAccountSettings.java
index e0fe629..6f7e29a 100644
--- a/src/com/android/settings/accounts/AddAccountSettings.java
+++ b/src/com/android/settings/accounts/AddAccountSettings.java
@@ -67,18 +67,31 @@ public class AddAccountSettings extends Activity {
static final String EXTRA_HAS_MULTIPLE_USERS = "hasMultipleUsers";
private static final int CHOOSE_ACCOUNT_REQUEST = 1;
+ private static final int ADD_ACCOUNT_REQUEST = 2;
private PendingIntent mPendingIntent;
private AccountManagerCallback<Bundle> mCallback = new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> future) {
+ boolean done = true;
try {
Bundle bundle = future.getResult();
- bundle.keySet();
- setResult(RESULT_OK);
-
- if (mPendingIntent != null) {
- mPendingIntent.cancel();
+ //bundle.keySet();
+ Intent intent = (Intent) bundle.get(AccountManager.KEY_INTENT);
+ if (intent != null) {
+ done = false;
+ Bundle addAccountOptions = new Bundle();
+ addAccountOptions.putParcelable(KEY_CALLER_IDENTITY, mPendingIntent);
+ addAccountOptions.putBoolean(EXTRA_HAS_MULTIPLE_USERS,
+ Utils.hasMultipleUsers(AddAccountSettings.this));
+ intent.putExtras(addAccountOptions);
+ startActivityForResult(intent, ADD_ACCOUNT_REQUEST);
+ } else {
+ setResult(RESULT_OK);
+ if (mPendingIntent != null) {
+ mPendingIntent.cancel();
+ mPendingIntent = null;
+ }
}
if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "account added: " + bundle);
@@ -89,7 +102,9 @@ public class AddAccountSettings extends Activity {
} catch (AuthenticatorException e) {
if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "addAccount failed: " + e);
} finally {
- finish();
+ if (done) {
+ finish();
+ }
}
}
};
@@ -136,6 +151,14 @@ public class AddAccountSettings extends Activity {
// Go to account setup screen. finish() is called inside mCallback.
addAccount(data.getStringExtra(EXTRA_SELECTED_ACCOUNT));
break;
+ case ADD_ACCOUNT_REQUEST:
+ setResult(resultCode);
+ if (mPendingIntent != null) {
+ mPendingIntent.cancel();
+ mPendingIntent = null;
+ }
+ finish();
+ break;
}
}
@@ -155,7 +178,7 @@ public class AddAccountSettings extends Activity {
null, /* authTokenType */
null, /* requiredFeatures */
addAccountOptions,
- this,
+ null,
mCallback,
null /* handler */);
mAddAccountCalled = true;