首页 > 其他 > 详细

第二阶段冲刺02

时间:2020-06-07 16:00:52      阅读:38      评论:0      收藏:0      [点我收藏+]

添加密码、修改、删除密码的具体操作相关内容

代码:

 public static void requestPassword (final Activity mActivity, final PasswordValidator mPasswordValidator) {
    LayoutInflater inflater = mActivity.getLayoutInflater();
    final View v = inflater.inflate(R.layout.password_request_dialog_layout, null);
    final EditText passwordEditText = v.findViewById(R.id.password_request);

    MaterialDialog dialog = new MaterialDialog.Builder(mActivity)
        .autoDismiss(false)
        .title(R.string.insert_security_password)
        .customView(v, false)
        .positiveText(R.string.ok)
        .positiveColorRes(R.color.colorPrimary)
        .onPositive((dialog12, which) -> {
          String oldPassword = mActivity.getSharedPreferences(PREFS_NAME, MODE_MULTI_PROCESS).getString(PREF_PASSWORD, "");
          String password = passwordEditText.getText().toString();
         
          boolean result = Security.md5(password).equals(oldPassword);

          if (result) {
            KeyboardUtils.hideKeyboard(passwordEditText);
            dialog12.dismiss();
            mPasswordValidator.onPasswordValidated(PasswordValidator.Result.SUCCEED);
          } else {
            passwordEditText.setError(mActivity.getString(R.string.wrong_password));
          }
        })
        .neutralText(mActivity.getResources().getString(R.string.password_forgot))
        .onNeutral((dialog13, which) -> {
          PasswordHelper.resetPassword(mActivity);
          mPasswordValidator.onPasswordValidated(PasswordValidator.Result.RESTORE);
          dialog13.dismiss();
        })
        .build();

    dialog.setOnCancelListener(dialog1 -> {
      KeyboardUtils.hideKeyboard(passwordEditText);
      dialog1.dismiss();
      mPasswordValidator.onPasswordValidated(PasswordValidator.Result.FAIL);
    });

    passwordEditText.setOnEditorActionListener((textView, actionId, keyEvent) -> {
      if (actionId == EditorInfo.IME_ACTION_DONE) {
        dialog.getActionButton(DialogAction.POSITIVE).callOnClick();
        return true;
      }
      return false;
    });

    dialog.show();

    new Handler().postDelayed(() -> KeyboardUtils.showKeyboard(passwordEditText), 100);
  } 
 public static void resetPassword (final Activity mActivity) {
    View layout = mActivity.getLayoutInflater().inflate(R.layout.password_reset_dialog_layout, null);
    final EditText answerEditText = layout.findViewById(R.id.reset_password_answer);

    MaterialDialog dialog = new MaterialDialog.Builder(mActivity)
        .title(OmniNotes.getSharedPreferences().getString(PREF_PASSWORD_QUESTION, ""))
        .customView(layout, false)
        .autoDismiss(false)
        .contentColorRes(R.color.text_color)
        .positiveText(R.string.ok)
        .onPositive((dialogElement, which) -> {
          String oldAnswer = OmniNotes.getSharedPreferences().getString(PREF_PASSWORD_ANSWER, "");
          String answer1 = answerEditText.getText().toString();
          boolean result = Security.md5(answer1).equals(oldAnswer);
          if (result) {
            dialogElement.dismiss();
            removePassword();
          } else {
            answerEditText.setError(mActivity.getString(R.string.wrong_answer));
          }
        }).build();
    dialog.show();

    answerEditText.setOnEditorActionListener((textView, actionId, keyEvent) -> {
      if (actionId == EditorInfo.IME_ACTION_DONE) {
        dialog.getActionButton(DialogAction.POSITIVE).callOnClick();
        return true;
      }
      return false;
    });

    new Handler().postDelayed(() -> KeyboardUtils.showKeyboard(answerEditText), 100);
  }


  public static void removePassword () {
    Observable
        .from(DbHelper.getInstance().getNotesWithLock(true))
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread())
        .doOnNext(note -> {
          note.setLocked(false);
          DbHelper.getInstance().updateNote(note, false);
        })
        .doOnCompleted(() -> {
          OmniNotes.getSharedPreferences().edit()
                   .remove(PREF_PASSWORD)
                   .remove(PREF_PASSWORD_QUESTION)
                   .remove(PREF_PASSWORD_ANSWER)
                   .remove("settings_password_access")
                   .apply();
          EventBus.getDefault().post(new PasswordRemovedEvent());
        })
        .subscribe();
  }

 

第二阶段冲刺02

原文:https://www.cnblogs.com/xjmm/p/13060770.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!