package com.community.pocket.ui.resetpwd; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.widget.Button; import android.widget.EditText; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.community.pocket.R; import com.community.pocket.ui.BaseFragment; import com.community.pocket.ui.listener.MyTextChange; import com.community.pocket.ui.login.LoginActivity; import com.community.pocket.ui.main.ui.share.Response; import com.community.pocket.util.Param; import com.community.pocket.util.PropertiesUtil; import org.xutils.view.annotation.ContentView; import org.xutils.view.annotation.Event; import org.xutils.view.annotation.ViewInject; import java.util.Objects; /** * 重置密码第三步,输入密码 */ @ContentView(R.layout.step3) public class ResetPwdStep3 extends BaseFragment { //密码 @ViewInject(R.id.password) private EditText password; //确认密码 @ViewInject(R.id.confirmPwd) private EditText confirmPassword; //重置密码按钮 @ViewInject(R.id.reset_pwd) private Button resetpwdButton; private ResetPwdViewModel resetPwdViewModel; @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); resetPwdViewModel = new ViewModelProvider(this, new ViewModelProvider.NewInstanceFactory()).get(ResetPwdViewModel.class); //监听表单校验状态 resetPwdViewModel.getResetPwdFormStep3().observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(ResetPwdFormState.Step3 step3) { if (step3 == null) { return; } if (step3.getPasswordError() != null) { password.setError(getString(step3.getPasswordError(), PropertiesUtil.getIntValue("password.length"))); } if (step3.getConfirmPasswordError() != null) { confirmPassword.setError(getString(step3.getConfirmPasswordError(), PropertiesUtil.getIntValue("password.length"))); } resetpwdButton.setEnabled(step3.isDataValid()); } }); TextWatcher textWatcher = new MyTextChange() { @Override public void afterTextChanged(Editable s) { resetPwdViewModel.resetpwdStep3Changed(password.getText().toString(), confirmPassword.getText().toString()); } }; password.addTextChangedListener(textWatcher); confirmPassword.addTextChangedListener(textWatcher); resetPwdViewModel.getResetPwdResultStep3().observe(getViewLifecycleOwner(), new Observer() { @Override public void onChanged(ResetPwdResponse resetPwdResponse) { if (resetPwdResponse == null) { return; } resetPwdResponse.toast(getContext()); if (resetPwdResponse.getResult() == Response.Result.OK) { startActivity(new Intent(getContext(), LoginActivity.class)); } } }); } @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Event(value = R.id.reset_pwd) private void resetPwd(View v) { resetPwdViewModel.resetPwd(Objects.requireNonNull(getArguments()).getString(Param.username.name()), password.getText().toString()); } @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Event(value = R.id.back) private void back(View v) { startActivity(new Intent(getContext(), LoginActivity.class)); Objects.requireNonNull(getActivity()).finish(); } }