ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

团队冲刺07

2022-06-14 08:02:00  阅读:160  来源: 互联网

标签:passwordEditText password false 07 冲刺 团队 dialog layout mActivity


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

代码:

复制代码
 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();
  }
复制代码

标签:passwordEditText,password,false,07,冲刺,团队,dialog,layout,mActivity
来源: https://www.cnblogs.com/9d629/p/16373007.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有