nilupeng
2022-08-12 7cd5e812882e999443220e9c71103b3e3c476c71
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package com.runt.open.mvvm.ui.paypass;
 
import android.app.Instrumentation;
import android.content.Intent;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import androidx.recyclerview.widget.GridLayoutManager;
import com.runt.open.mvvm.base.activities.BaseActivity;
import com.runt.open.mvvm.databinding.ActivityPaypassBinding;
import com.runt.open.mvvm.listener.ResPonse;
import com.runt.open.mvvm.ui.adapter.NumAdapter;
import com.runt.open.mvvm.ui.login.UserBean;
import com.runt.open.mvvm.widgets.PasswordInputView;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * @purpose Created by Runt (qingingrunt2010@qq.com) on 2020-10-30.
 */
public class PaypassActivity extends BaseActivity<ActivityPaypassBinding, PayPassViewModel> {
 
 
    @Override
    public void initViews() {
        int type = getIntent().getIntExtra("type",0);// 0 验证 , 1 修改
        if(type == 0) {
            setTitle("验证支付密码");
        }else{
            setTitle("修改支付密码");
        }
        PasswordInputView password = mBinding.paypassInclude.password;
        mBinding.paypassInclude.view.setOnClickListener(v->{});
        mBinding.paypassInclude.recyclerNum.setLayoutManager(new GridLayoutManager(this,3));
        mBinding.paypassInclude.password.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
 
            }
 
            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
 
            }
 
            @Override
            public void afterTextChanged(Editable editable) {
                if(editable.length() ==6){
 
                    if(type == 0 ){
                        setResult(RESULT_OK,new Intent().putExtra("paypass",editable.toString()));
                        finish();
                    }else if(type == 1){
                        if(password.getTag() == null){
                            password.setText("");
                            password.setTag(editable.toString());
                            mBinding.paypassInclude.txtTip.setText("请再次输入支付密码");
                        } else if(password.getTag().toString().equals(editable.toString())) {
                            mViewModel.getVerifyCode("getPayPassSMS", UserBean.getUser().getPhone());
                        } else if(!password.getTag().toString().equals(editable.toString())) {
                            password.setText("");
                            password.setTag(null);
                            showToast("两次输入不一致");
                            mBinding.paypassInclude.txtTip.setText("两次输入不一致");
                        }
                    }
                }
            }
        });
        mViewModel.getVerifyResult().observe(this, integer -> {
            if(integer == 0){
                showInputDialog("输入验证码", "", "请输入发送到" + UserBean.getUser().getPhone().substring(8)+"的验证码", new ResPonse() {
                    @Override
                    public void doSuccess(Object obj) {
                        mViewModel.updatePass(password.getText().toString(),obj.toString());
                    }
                });
            }
            password.setText("");
            password.setTag(null);
        });
    }
 
    @Override
    public void loadData() {
        List<String> list = new ArrayList<>();
        for(int i = 1 ; i < 10; i ++) {
            list.add(i+"");
        }
        list.add("×");
        list.add("0");
        list.add("←");
        NumAdapter numAdapter = new NumAdapter(list);
        numAdapter.setOnItemClickListener((position, s) -> {
 
            if(s.equals("←")){
                new Thread(() -> {
                    Instrumentation inst = new Instrumentation();
                    inst.sendKeyDownUpSync( KeyEvent.KEYCODE_DEL  );
                }).start();
            }else if(s.equals("×")){
                showDialog("取消操作", "确定取消当前操作?", new ResPonse() {
                    @Override
                    public void doSuccess(Object obj) {
                        finish();
                    }
                });
            } else {
                new Thread(() -> {
                    Instrumentation inst = new Instrumentation();
                    inst.sendKeyDownUpSync( Integer.parseInt(s)+7 );
                }).start();
            }
        });
        mBinding.paypassInclude.recyclerNum.setAdapter(numAdapter);
    }
}