@Override
  @SuppressWarnings("unchecked")
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    LogUtils.logd(TAG, "[onActivityCreated]");

    mSession = JRSession.getInstance();

    if (savedInstanceState != null) {
      mManagedDialogs = (HashMap) savedInstanceState.get(KEY_MANAGED_DIALOGS);
      Parcelable[] p = savedInstanceState.getParcelableArray(KEY_MANAGED_DIALOG_OPTIONS);
      if (mManagedDialogs != null && p != null) {
        for (Parcelable p_ : p) {
          Bundle b = (Bundle) p_;
          mManagedDialogs.get(b.getInt(KEY_DIALOG_ID)).mOptions = b;
        }
      } else {
        mManagedDialogs = new HashMap<Integer, ManagedDialog>();
      }
    }

    for (ManagedDialog d : mManagedDialogs.values()) {
      d.mDialog = onCreateDialog(d.mId, d.mOptions);
      if (d.mShowing) d.mDialog.show();
    }
  }
  /*package*/ ManagedDialog showDialog(int dialogId, Bundle options) {
    ManagedDialog d = mManagedDialogs.get(dialogId);
    if (d == null) {
      d = new ManagedDialog();
      d.mDialog = onCreateDialog(dialogId, options);
      d.mId = dialogId;
      mManagedDialogs.put(dialogId, d);
    }

    d.mOptions = options;
    onPrepareDialog(dialogId, d.mDialog, options);
    d.mDialog.show();
    // d.mShowing = true; // See also dismissDialog comment

    return d;
  }
 @Override
 public void onAccept() {
   super.onAccept();
   AccountManager.getInstance()
       .setPassword(account, storePasswordView.isChecked(), passwordView.getText().toString());
   finish();
 }
  /* May be called at any time before onDestroy() */
  @Override
  public void onSaveInstanceState(Bundle outState) {

    Bundle[] dialogOptions = new Bundle[mManagedDialogs.size()];
    int x = 0;
    for (ManagedDialog d : mManagedDialogs.values()) {
      d.mShowing = d.mDialog.isShowing();
      dialogOptions[x++] = d.mOptions;
      d.mOptions.putInt(KEY_DIALOG_ID, d.mId);
    }
    outState.putSerializable(KEY_MANAGED_DIALOGS, mManagedDialogs);
    outState.putParcelableArray(KEY_MANAGED_DIALOG_OPTIONS, dialogOptions);

    if (mCustomInterfaceConfiguration != null) {
      mCustomInterfaceConfiguration.onSaveInstanceState(outState);
    }

    super.onSaveInstanceState(outState);
  }
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   findViewById(android.R.id.button3).setVisibility(View.GONE);
   View layout = getLayoutInflater().inflate(R.layout.password_request, null);
   passwordView = (EditText) layout.findViewById(R.id.account_password);
   storePasswordView = (CheckBox) layout.findViewById(R.id.store_password);
   account = getAccount(getIntent());
   if (AccountManager.getInstance().getAccount(account) == null) {
     Application.getInstance().onError(R.string.NO_SUCH_ACCOUNT);
     finish();
     return;
   }
   setDialogTitle(AccountManager.getInstance().getVerboseName(account));
   setCustomView(layout, true);
 }