package com.dayu.qiheonlinelibrary.activity; 
 | 
  
 | 
import android.content.Intent; 
 | 
import android.nfc.NfcAdapter; 
 | 
import android.os.Bundle; 
 | 
import android.view.KeyEvent; 
 | 
import android.view.LayoutInflater; 
 | 
import android.view.View; 
 | 
  
 | 
import com.dayu.baselibrary.tools.HexUtil; 
 | 
import com.dayu.baselibrary.utils.BaseCommon; 
 | 
import com.dayu.baselibrary.utils.TipUtil; 
 | 
import com.dayu.baselibrary.view.ConfirmDialog; 
 | 
import com.dayu.qiheonlinelibrary.QHOnLineApplication; 
 | 
import com.dayu.qiheonlinelibrary.card.ManageCard; 
 | 
import com.dayu.qiheonlinelibrary.databinding.ActivityManagerWriteQhlBinding; 
 | 
import com.dayu.qiheonlinelibrary.tools.NFCWriteHelper; 
 | 
import com.dayu.qiheonlinelibrary.tools.NfcReadHelper; 
 | 
import com.dayu.qiheonlinelibrary.view.ProgressDialog; 
 | 
  
 | 
  
 | 
/** 
 | 
 * author: zuo 
 | 
 * Date: 2024-05-09 
 | 
 * Time: 11:05 
 | 
 * 备注:制作管理卡 
 | 
 */ 
 | 
public class ManagerWriteActivityQHOline extends QHOlineBaseNfcActivity { 
 | 
  
 | 
    ActivityManagerWriteQhlBinding binding; 
 | 
    Intent intent; 
 | 
  
 | 
    String oldCardNumber; 
 | 
    String cardNumber; 
 | 
    boolean isCreatManagerCard; 
 | 
    String iccardInfoId; 
 | 
  
 | 
    //当前步骤 
 | 
    int number = 1; 
 | 
  
 | 
    int type; 
 | 
    ConfirmDialog confirmDialog; 
 | 
  
 | 
    @Override 
 | 
    protected void onCreate(Bundle savedInstanceState) { 
 | 
        super.onCreate(savedInstanceState); 
 | 
        binding = ActivityManagerWriteQhlBinding.inflate(LayoutInflater.from(this)); 
 | 
        setContentView(binding.getRoot()); 
 | 
        oldCardNumber = this.getIntent().getStringExtra("oldCardNumber"); 
 | 
        iccardInfoId = this.getIntent().getStringExtra("iccardInfoId"); 
 | 
        type = this.getIntent().getIntExtra("replaceType", 0); 
 | 
        binding.managerNext.setOnClickListener(v -> { 
 | 
            //已完成第二步 
 | 
            if (number == 2) { 
 | 
                if (type == BaseCommon.REPLACE_NO_CARD) { 
 | 
                    Intent intent = new Intent(ManagerWriteActivityQHOline.this, NFCWreatActivityQHOline.class); 
 | 
                    intent.putExtra("iccardInfoId", iccardInfoId); 
 | 
                    intent.putExtra("replaceType", type); 
 | 
                    startActivity(intent); 
 | 
                    ManagerWriteActivityQHOline.this.finish(); 
 | 
                } else { 
 | 
                    TipUtil.show(this, "请在控制器端刷卡后在首页点击补卡再点击泵未关写卡后继续补卡!", () -> { 
 | 
                        ManagerWriteActivityQHOline.this.finish(); 
 | 
                        if (UserSearchActivityQHOline.userSearchActivity != null) { 
 | 
                            UserSearchActivityQHOline.userSearchActivity.finish(); 
 | 
                            UserSearchActivityQHOline.userSearchActivity = null; 
 | 
                        } 
 | 
  
 | 
                    }); 
 | 
                } 
 | 
  
 | 
            } else { 
 | 
                TipUtil.show("请先制作管理卡"); 
 | 
            } 
 | 
        }); 
 | 
    } 
 | 
  
 | 
  
 | 
    @Override 
 | 
    public void onNfcBack(Intent intent) { 
 | 
        this.intent = intent; 
 | 
        ProgressDialog.show(this); 
 | 
        if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { 
 | 
            getCardNumber(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    private void getCardNumber() { 
 | 
  
 | 
        String cardType = NfcReadHelper.getInstence(intent, this).getCradTypeAndCardNumber(); 
 | 
  
 | 
        String[] cardTypes = cardType.split(","); 
 | 
        if (cardTypes != null && cardTypes.length == 2) { 
 | 
            cardNumber = cardType.split(",")[0]; 
 | 
            cardType = cardType.split(",")[1]; 
 | 
        } 
 | 
        ManageCard manageCard = new ManageCard(); 
 | 
        manageCard.setArerNumber(Integer.valueOf(QHOnLineApplication.getInstance().arerNumber)); 
 | 
        oldCardNumber = HexUtil.spaceHex(oldCardNumber); 
 | 
        oldCardNumber = HexUtil.HighLowHex(oldCardNumber); 
 | 
        manageCard.setUserCard(oldCardNumber); 
 | 
        manageCard.setCardWriteState((byte) 0); 
 | 
        if (NFCWriteHelper.getInstence(intent, this).writeData(manageCard.toByte(baseDao), 1, 0)) { 
 | 
            isCreatManagerCard = true; 
 | 
            number = 2; 
 | 
            binding.number2.setVisibility(View.VISIBLE); 
 | 
            TipUtil.show(this, "管理卡制卡成功,请在控制器端刷卡"); 
 | 
            ProgressDialog.dismiss(); 
 | 
        } else { 
 | 
            isCreatManagerCard = false; 
 | 
        } 
 | 
  
 | 
  
 | 
  
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 点击返回时提示用户还未写卡 
 | 
     * 
 | 
     * @param keyCode 
 | 
     * @param event 
 | 
     * @return 
 | 
     */ 
 | 
    @Override 
 | 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
 | 
        if (keyCode == KeyEvent.KEYCODE_BACK) { 
 | 
            back(); 
 | 
            return true; 
 | 
        } 
 | 
        return super.onKeyDown(keyCode, event); 
 | 
    } 
 | 
  
 | 
    private void back() { 
 | 
        confirmDialog = new ConfirmDialog(ManagerWriteActivityQHOline.this, "正在补卡,确定退出吗?", v -> { 
 | 
            confirmDialog.dismiss(); 
 | 
            ManagerWriteActivityQHOline.this.finish(); 
 | 
        }); 
 | 
        confirmDialog.show(); 
 | 
    } 
 | 
} 
 |