package com.dayu.qihealonelibrary.activity; 
 | 
  
 | 
import android.os.Bundle; 
 | 
import android.text.Editable; 
 | 
import android.text.InputFilter; 
 | 
import android.text.Spanned; 
 | 
import android.text.TextUtils; 
 | 
import android.text.TextWatcher; 
 | 
import android.view.LayoutInflater; 
 | 
import android.view.View; 
 | 
  
 | 
import com.dayu.baselibrary.utils.TipUtil; 
 | 
import com.dayu.qihealonelibrary.databinding.ActivityPasswordCardQhaBinding; 
 | 
import com.dayu.qihealonelibrary.dbBean.PassWordCardBean; 
 | 
  
 | 
/** 
 | 
 * author: zuo 
 | 
 * Date: 2024-03-01 
 | 
 * Time: 16:21 
 | 
 * 备注:密码卡设置界面 
 | 
 */ 
 | 
public class PasswordCardActivity extends BaseActivity { 
 | 
  
 | 
    ActivityPasswordCardQhaBinding binding; 
 | 
  
 | 
    PassWordCardBean cardBean; 
 | 
  
 | 
    @Override 
 | 
    protected void onCreate(Bundle savedInstanceState) { 
 | 
        super.onCreate(savedInstanceState); 
 | 
        binding = ActivityPasswordCardQhaBinding.inflate(LayoutInflater.from(this)); 
 | 
        setContentView(binding.getRoot()); 
 | 
        initView(); 
 | 
        initData(); 
 | 
    } 
 | 
  
 | 
  
 | 
    private void initData() { 
 | 
        PassWordCardBean powerBean = baseDao.passWordCardDao().findFirst(); 
 | 
        if (powerBean != null) { 
 | 
            this.cardBean = powerBean; 
 | 
            binding.villageOldNumber.setText(powerBean.getPassWord()); 
 | 
        } else { 
 | 
            cardBean = new PassWordCardBean(); 
 | 
            binding.villageOldNumber.setText("当前还未设置"); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    private void initView() { 
 | 
        binding.villageOk.setOnClickListener(new View.OnClickListener() { 
 | 
            @Override 
 | 
            public void onClick(View v) { 
 | 
                String data = binding.villageNewNum.getText().toString(); 
 | 
                if (!TextUtils.isEmpty(data)) { 
 | 
                    if (data.length() == 12) { 
 | 
                        cardBean.setPassWord(data); 
 | 
                        baseDao.passWordCardDao().insert(cardBean); 
 | 
                        TipUtil.show(PasswordCardActivity.this, "保存成功"); 
 | 
                        initData(); 
 | 
                    } else { 
 | 
                        TipUtil.show("请输入正确的12位字符的16进制卡密码"); 
 | 
                    } 
 | 
  
 | 
                } else { 
 | 
                    TipUtil.show("请输入要设置的卡密码"); 
 | 
                } 
 | 
            } 
 | 
        }); 
 | 
        // 设置输入过滤器 
 | 
        binding.villageNewNum.addTextChangedListener(new TextWatcher() { 
 | 
            @Override 
 | 
            public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
 | 
  
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void onTextChanged(CharSequence s, int start, int before, int count) { 
 | 
            } 
 | 
  
 | 
            @Override 
 | 
            public void afterTextChanged(Editable s) { 
 | 
                if (!isValidInput(s.toString())) { 
 | 
                    // 如果输入的字符不符合要求,则将 EditText 的内容设置为最后一次合法的输入 
 | 
                    binding.villageNewNum.setText(s.subSequence(0, s.length() - 1).toString().toUpperCase()); 
 | 
                    binding.villageNewNum.setSelection(binding.villageNewNum.getText().length()); // 将光标移动到末尾 
 | 
                } 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    // 检查输入的字符是否符合要求 
 | 
    private boolean isValidInput(String input) { 
 | 
        return input.matches("[0-9a-fA-F]*"); // 包含 0-9 和 a-f 的字符 
 | 
    } 
 | 
} 
 |