@Override public void onCreate(Bundle savedInstanceState) { final Intent intent = getIntent(); mSetOfAllowableAccounts = getAllowableAccountSet(intent); mSetOfRelevantAccountTypes = getReleventAccountTypes(intent); mDescriptionOverride = intent.getStringExtra(EXTRA_DESCRIPTION_TEXT_OVERRIDE); mAccounts = getAcceptableAccountChoices(VAccountManager.get()); setNonLabelThemeAndCallSuperCreate(savedInstanceState); if (mSetOfRelevantAccountTypes.size() == 1) { runAddAccountForAuthenticator(mSetOfRelevantAccountTypes.iterator().next()); } else { startChooseAccountTypeActivity(); String[] listItems = getListOfDisplayableOptions(mAccounts); mSelectedItemIndex = getItemIndexToSelect( mAccounts, mSelectedAccountName, mSelectedAddNewAccount); setContentView(R.layout.choose_type_and_account); overrideDescriptionIfSupplied(mDescriptionOverride); populateUIAccountList(listItems); mOkButton = (Button) findViewById(android.R.id.button2); mOkButton.setEnabled(mSelectedItemIndex != SELECTED_ITEM_NONE);
setResult(Activity.RESULT_CANCELED); finish(); String accountType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE); if (accountType != null) { runAddAccountForAuthenticator(accountType); return; setResultAndFinish(accountName, accountType); return; Log.v(TAG, "ChooseTypeAndAccountActivity.onActivityResult: canceled"); setResult(Activity.RESULT_CANCELED); finish();
private String[] getListOfDisplayableOptions(ArrayList<Account> accounts) { // List of options includes all accounts found together with "Add new account" as the // last item in the list. String[] listItems = new String[accounts.size() + 1]; for (int i = 0; i < accounts.size(); i++) { listItems[i] = accounts.get(i).name; } listItems[accounts.size()] = getResources().getString( R.string.add_account_button_label); return listItems; }
public void onOkButtonClicked(View view) { if (mSelectedItemIndex == mAccounts.size()) { // Selected "Add New Account" option startChooseAccountTypeActivity(); } else if (mSelectedItemIndex != SELECTED_ITEM_NONE) { onAccountSelected(mAccounts.get(mSelectedItemIndex)); } }
private void setResultAndFinish(final String accountName, final String accountType) { Bundle bundle = new Bundle(); bundle.putString(AccountManager.KEY_ACCOUNT_NAME, accountName); bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, accountType); setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); VLog.v(TAG, "ChooseTypeAndAccountActivity.setResultAndFinish: " + "selected account " + accountName + ", " + accountType); finish(); }
private void startChooseAccountTypeActivity() { VLog.v(TAG, "ChooseAccountTypeActivity.startChooseAccountTypeActivity()"); final Intent intent = new Intent(this, ChooseAccountTypeActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.putExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_STRING_ARRAY, getIntent().getStringArrayExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_STRING_ARRAY)); intent.putExtra(EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE, getIntent().getBundleExtra(EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE)); intent.putExtra(EXTRA_ADD_ACCOUNT_REQUIRED_FEATURES_STRING_ARRAY, getIntent().getStringArrayExtra(EXTRA_ADD_ACCOUNT_REQUIRED_FEATURES_STRING_ARRAY)); intent.putExtra(EXTRA_ADD_ACCOUNT_AUTH_TOKEN_TYPE_STRING, getIntent().getStringExtra(EXTRA_ADD_ACCOUNT_AUTH_TOKEN_TYPE_STRING)); startActivityForResult(intent, REQUEST_CHOOSE_TYPE); mPendingRequest = REQUEST_CHOOSE_TYPE; }
@Override public void run(final AccountManagerFuture<Bundle> accountManagerFuture) { try { final Bundle accountManagerResult = accountManagerFuture.getResult(); final Intent intent = accountManagerResult.getParcelable( AccountManager.KEY_INTENT); if (intent != null) { mPendingRequest = REQUEST_ADD_ACCOUNT; mExistingAccounts = VAccountManager.get().getAccounts(mCallingUserId, null); intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); startActivityForResult(intent, REQUEST_ADD_ACCOUNT); return; } } catch (OperationCanceledException e) { setResult(Activity.RESULT_CANCELED); finish(); return; } catch (IOException e) { } catch (AuthenticatorException e) { } Bundle bundle = new Bundle(); bundle.putString(AccountManager.KEY_ERROR_MESSAGE, "error communicating with server"); setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); finish(); }
/** * Overrides the description text view for the picker activity if specified by the intent. * If not specified then makes the description invisible. */ private void overrideDescriptionIfSupplied(String descriptionOverride) { TextView descriptionView = (TextView) findViewById(R.id.description); if (!TextUtils.isEmpty(descriptionOverride)) { descriptionView.setText(descriptionOverride); } else { descriptionView.setVisibility(View.GONE); } }
protected void runAddAccountForAuthenticator(String type) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "runAddAccountForAuthenticator: " + type); } final Bundle options = getIntent().getBundleExtra( ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE); final String[] requiredFeatures = getIntent().getStringArrayExtra( ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_REQUIRED_FEATURES_STRING_ARRAY); final String authTokenType = getIntent().getStringExtra( ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_AUTH_TOKEN_TYPE_STRING); VAccountManager.get().addAccount(mCallingUserId, type, authTokenType, requiredFeatures, options, null /* activity */, this /* callback */, null /* Handler */); }
@Override public void run(final AccountManagerFuture<Bundle> accountManagerFuture) { try { final Bundle accountManagerResult = accountManagerFuture.getResult(); final Intent intent = accountManagerResult.getParcelable( AccountManager.KEY_INTENT); if (intent != null) { mPendingRequest = REQUEST_ADD_ACCOUNT; mExistingAccounts = VAccountManager.get().getAccounts(mCallingUserId, null); intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); startActivityForResult(intent, REQUEST_ADD_ACCOUNT); return; } } catch (OperationCanceledException e) { setResult(Activity.RESULT_CANCELED); finish(); return; } catch (IOException e) { } catch (AuthenticatorException e) { } Bundle bundle = new Bundle(); bundle.putString(AccountManager.KEY_ERROR_MESSAGE, "error communicating with server"); setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); finish(); }
public void onOkButtonClicked(View view) { if (mSelectedItemIndex == mAccounts.size()) { // Selected "Add New Account" option startChooseAccountTypeActivity(); } else if (mSelectedItemIndex != SELECTED_ITEM_NONE) { onAccountSelected(mAccounts.get(mSelectedItemIndex)); } }
private void setResultAndFinish(final String accountName, final String accountType) { Bundle bundle = new Bundle(); bundle.putString(AccountManager.KEY_ACCOUNT_NAME, accountName); bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, accountType); setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); VLog.v(TAG, "ChooseTypeAndAccountActivity.setResultAndFinish: " + "selected account " + accountName + ", " + accountType); finish(); }
private void startChooseAccountTypeActivity() { VLog.v(TAG, "ChooseAccountTypeActivity.startChooseAccountTypeActivity()"); final Intent intent = new Intent(this, ChooseAccountTypeActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.putExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_STRING_ARRAY, getIntent().getStringArrayExtra(EXTRA_ALLOWABLE_ACCOUNT_TYPES_STRING_ARRAY)); intent.putExtra(EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE, getIntent().getBundleExtra(EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE)); intent.putExtra(EXTRA_ADD_ACCOUNT_REQUIRED_FEATURES_STRING_ARRAY, getIntent().getStringArrayExtra(EXTRA_ADD_ACCOUNT_REQUIRED_FEATURES_STRING_ARRAY)); intent.putExtra(EXTRA_ADD_ACCOUNT_AUTH_TOKEN_TYPE_STRING, getIntent().getStringExtra(EXTRA_ADD_ACCOUNT_AUTH_TOKEN_TYPE_STRING)); startActivityForResult(intent, REQUEST_CHOOSE_TYPE); mPendingRequest = REQUEST_CHOOSE_TYPE; }
/** * Populates the UI ListView with the given list of items and selects an item * based on {@code mSelectedItemIndex} member variable. */ private void populateUIAccountList(String[] listItems) { ListView list = (ListView) findViewById(android.R.id.list); list.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_single_choice, listItems)); list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); list.setItemsCanFocus(false); list.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { mSelectedItemIndex = position; mOkButton.setEnabled(true); } }); if (mSelectedItemIndex != SELECTED_ITEM_NONE) { list.setItemChecked(mSelectedItemIndex, true); VLog.v(TAG, "List item " + mSelectedItemIndex + " should be selected"); } } }
protected void runAddAccountForAuthenticator(String type) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "runAddAccountForAuthenticator: " + type); } final Bundle options = getIntent().getBundleExtra( ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_OPTIONS_BUNDLE); final String[] requiredFeatures = getIntent().getStringArrayExtra( ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_REQUIRED_FEATURES_STRING_ARRAY); final String authTokenType = getIntent().getStringExtra( ChooseTypeAndAccountActivity.EXTRA_ADD_ACCOUNT_AUTH_TOKEN_TYPE_STRING); VAccountManager.get().addAccount(mCallingUserId, type, authTokenType, requiredFeatures, options, null /* activity */, this /* callback */, null /* Handler */); }
@Override public void onCreate(Bundle savedInstanceState) { final Intent intent = getIntent(); mSetOfAllowableAccounts = getAllowableAccountSet(intent); mSetOfRelevantAccountTypes = getReleventAccountTypes(intent); mDescriptionOverride = intent.getStringExtra(EXTRA_DESCRIPTION_TEXT_OVERRIDE); mAccounts = getAcceptableAccountChoices(VAccountManager.get()); setNonLabelThemeAndCallSuperCreate(savedInstanceState); if (mSetOfRelevantAccountTypes.size() == 1) { runAddAccountForAuthenticator(mSetOfRelevantAccountTypes.iterator().next()); } else { startChooseAccountTypeActivity(); String[] listItems = getListOfDisplayableOptions(mAccounts); mSelectedItemIndex = getItemIndexToSelect( mAccounts, mSelectedAccountName, mSelectedAddNewAccount); setContentView(R.layout.choose_type_and_account); overrideDescriptionIfSupplied(mDescriptionOverride); populateUIAccountList(listItems); mOkButton = (Button) findViewById(android.R.id.button2); mOkButton.setEnabled(mSelectedItemIndex != SELECTED_ITEM_NONE);
setResult(Activity.RESULT_CANCELED); finish(); String accountType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE); if (accountType != null) { runAddAccountForAuthenticator(accountType); return; setResultAndFinish(accountName, accountType); return; Log.v(TAG, "ChooseTypeAndAccountActivity.onActivityResult: canceled"); setResult(Activity.RESULT_CANCELED); finish();
@Override public void run(final AccountManagerFuture<Bundle> accountManagerFuture) { try { final Bundle accountManagerResult = accountManagerFuture.getResult(); final Intent intent = accountManagerResult.getParcelable( AccountManager.KEY_INTENT); if (intent != null) { mPendingRequest = REQUEST_ADD_ACCOUNT; mExistingAccounts = VAccountManager.get().getAccounts(mCallingUserId, null); intent.setFlags(intent.getFlags() & ~Intent.FLAG_ACTIVITY_NEW_TASK); startActivityForResult(intent, REQUEST_ADD_ACCOUNT); return; } } catch (OperationCanceledException e) { setResult(Activity.RESULT_CANCELED); finish(); return; } catch (IOException e) { } catch (AuthenticatorException e) { } Bundle bundle = new Bundle(); bundle.putString(AccountManager.KEY_ERROR_MESSAGE, "error communicating with server"); setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); finish(); }
public void onOkButtonClicked(View view) { if (mSelectedItemIndex == mAccounts.size()) { // Selected "Add New Account" option startChooseAccountTypeActivity(); } else if (mSelectedItemIndex != SELECTED_ITEM_NONE) { onAccountSelected(mAccounts.get(mSelectedItemIndex)); } }
private void setResultAndFinish(final String accountName, final String accountType) { Bundle bundle = new Bundle(); bundle.putString(AccountManager.KEY_ACCOUNT_NAME, accountName); bundle.putString(AccountManager.KEY_ACCOUNT_TYPE, accountType); setResult(Activity.RESULT_OK, new Intent().putExtras(bundle)); VLog.v(TAG, "ChooseTypeAndAccountActivity.setResultAndFinish: " + "selected account " + accountName + ", " + accountType); finish(); }