Update account tester

- update Theme to use default one
- AccountManager.getAuthTokenByFeatures() can be called thru a button
- code refactoring and cleaning

Change-Id: I1b4cfb340d9ed1506541fb9faf349f50d05df472
This commit is contained in:
Fabrice Di Meglio
2011-01-17 17:37:55 -08:00
parent e8afb7e327
commit ac3b18ffe1
6 changed files with 240 additions and 124 deletions

View File

@@ -46,6 +46,8 @@ public class AccountsTester extends Activity implements OnAccountsUpdateListener
private static final int INVALIDATE_AUTH_TOKEN_DIALOG_ID = 3;
private static final int TEST_HAS_FEATURES_DIALOG_ID = 4;
private static final int MESSAGE_DIALOG_ID = 5;
private static final int GET_AUTH_TOKEN_BY_TYPE_AND_FEATURE_DIALOG_ID = 6;
private EditText mDesiredAuthTokenTypeEditText;
private EditText mDesiredFeaturesEditText;
private volatile CharSequence mDialogMessage;
@@ -66,6 +68,8 @@ public class AccountsTester extends Activity implements OnAccountsUpdateListener
buttonClickListener);
findViewById(R.id.accounts_tester_add_account).setOnClickListener(buttonClickListener);
findViewById(R.id.accounts_tester_edit_properties).setOnClickListener(buttonClickListener);
findViewById(R.id.accounts_tester_get_auth_token_by_type_and_feature).setOnClickListener(
buttonClickListener);
mDesiredAuthTokenTypeEditText =
(EditText) findViewById(R.id.accounts_tester_desired_authtokentype);
mDesiredFeaturesEditText = (EditText) findViewById(R.id.accounts_tester_desired_features);
@@ -119,8 +123,10 @@ public class AccountsTester extends Activity implements OnAccountsUpdateListener
if (desc.type.equals(account.type)) {
final String packageName = desc.packageName;
try {
final Context authContext = getContext().createPackageContext(packageName, 0);
holder.icon.setImageDrawable(authContext.getResources().getDrawable(desc.iconId));
final Context authContext = getContext().createPackageContext(packageName,
0);
holder.icon.setImageDrawable(authContext.getResources().getDrawable(
desc.iconId));
holder.icon.setVisibility(View.VISIBLE);
} catch (PackageManager.NameNotFoundException e) {
Log.d(TAG, "error getting the Package Context for " + packageName, e);
@@ -197,6 +203,8 @@ public class AccountsTester extends Activity implements OnAccountsUpdateListener
AccountsTester.this,
new CallbackToDialog(AccountsTester.this, "edit properties"),
null /* handler */);
} else if (R.id.accounts_tester_get_auth_token_by_type_and_feature == v.getId()) {
showDialog(GET_AUTH_TOKEN_BY_TYPE_AND_FEATURE_DIALOG_ID);
} else {
// unknown button
}
@@ -265,48 +273,92 @@ public class AccountsTester extends Activity implements OnAccountsUpdateListener
@Override
protected Dialog onCreateDialog(final int id) {
if (id == GET_AUTH_TOKEN_DIALOG_ID || id == INVALIDATE_AUTH_TOKEN_DIALOG_ID
|| id == UPDATE_CREDENTIALS_DIALOG_ID || id == TEST_HAS_FEATURES_DIALOG_ID) {
final View view = LayoutInflater.from(this).inflate(R.layout.get_auth_token_view, null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton(R.string.accounts_tester_do_get_auth_token,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
EditText value = (EditText) view.findViewById(
R.id.accounts_tester_auth_token_type);
switch (id) {
case GET_AUTH_TOKEN_DIALOG_ID:
case INVALIDATE_AUTH_TOKEN_DIALOG_ID:
case UPDATE_CREDENTIALS_DIALOG_ID:
case TEST_HAS_FEATURES_DIALOG_ID: {
final View view = LayoutInflater.from(this).inflate(R.layout.get_auth_token_view,
null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton(R.string.accounts_tester_ok_button,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
EditText value = (EditText) view.findViewById(
R.id.accounts_tester_auth_token_type);
String authTokenType = value.getText().toString();
final Account account = mLongPressedAccount;
if (id == GET_AUTH_TOKEN_DIALOG_ID) {
mAccountManager.getAuthToken(account, authTokenType,
null /* loginOptions */, AccountsTester.this,
new CallbackToDialog(AccountsTester.this, "get auth token"),
null /* handler */);
} else if (id == INVALIDATE_AUTH_TOKEN_DIALOG_ID) {
mAccountManager.getAuthToken(account, authTokenType, false,
new GetAndInvalidateAuthTokenCallback(account), null);
} else if (id == TEST_HAS_FEATURES_DIALOG_ID) {
String[] features = TextUtils.split(authTokenType, ",");
mAccountManager.hasFeatures(account, features,
new TestHasFeaturesCallback(), null);
} else {
mAccountManager.updateCredentials(
account,
authTokenType, null /* loginOptions */,
String authTokenType = value.getText().toString();
final Account account = mLongPressedAccount;
if (id == GET_AUTH_TOKEN_DIALOG_ID) {
mAccountManager.getAuthToken(account,
authTokenType,
null /* loginOptions */,
AccountsTester.this,
new CallbackToDialog(AccountsTester.this,
"get auth token"),
null /* handler */);
} else if (id == INVALIDATE_AUTH_TOKEN_DIALOG_ID) {
mAccountManager.getAuthToken(account, authTokenType, false,
new GetAndInvalidateAuthTokenCallback(account), null);
} else if (id == TEST_HAS_FEATURES_DIALOG_ID) {
String[] features = TextUtils.split(authTokenType, ",");
mAccountManager.hasFeatures(account, features,
new TestHasFeaturesCallback(), null);
} else {
mAccountManager.updateCredentials(
account,
authTokenType, null /* loginOptions */,
AccountsTester.this,
new CallbackToDialog(AccountsTester.this, "update"),
null /* handler */);
}
}
});
builder.setView(view);
return builder.create();
}
case GET_AUTH_TOKEN_BY_TYPE_AND_FEATURE_DIALOG_ID: {
final View view = LayoutInflater.from(this).inflate(R.layout.get_features_view,
null);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setPositiveButton(R.string.accounts_tester_ok_button,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
EditText value = (EditText) view.findViewById(
R.id.accounts_tester_auth_token_type);
String authTokenType = value.getText().toString();
value = (EditText) view.findViewById(
R.id.accounts_tester_features);
String features = value.getText().toString();
final Account account = mLongPressedAccount;
mAccountManager.getAuthTokenByFeatures(
getSelectedAuthenticator().type,
authTokenType,
TextUtils.isEmpty(features) ? null : features.split(" "),
AccountsTester.this,
new CallbackToDialog(AccountsTester.this, "update"),
null /* addAccountOptions */,
null /* getAuthTokenOptions */,
new CallbackToDialog(AccountsTester.this,
"get auth token by features"),
null /* handler */);
}
}
});
builder.setView(view);
return builder.create();
}
if (id == MESSAGE_DIALOG_ID) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(mDialogMessage);
return builder.create();
});
builder.setView(view);
return builder.create();
}
case MESSAGE_DIALOG_ID: {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(mDialogMessage);
return builder.create();
}
}
return super.onCreateDialog(id);
}
@@ -344,7 +396,8 @@ public class AccountsTester extends Activity implements OnAccountsUpdateListener
}
}
AccountManagerCallback<Bundle> newAuthTokensCallback(String type, String authTokenType, String[] features) {
AccountManagerCallback<Bundle> newAuthTokensCallback(String type, String authTokenType,
String[] features) {
return new GetAuthTokenCallback(type, authTokenType, features);
}