| | |
| | | import android.os.Bundle; |
| | | import android.text.TextUtils; |
| | | import android.util.Log; |
| | | import android.view.KeyEvent; |
| | | import android.view.LayoutInflater; |
| | | import android.view.View; |
| | | import android.widget.Toast; |
| | | |
| | | import com.dayu.recharge.MyApplication; |
| | |
| | | import com.dayu.recharge.utils.MyCommon; |
| | | import com.dayu.recharge.utils.SocketUtil; |
| | | import com.dayu.recharge.utils.TipUtil; |
| | | import com.dayu.recharge.view.ConfirmDialog; |
| | | import com.dayu.recharge.view.ProgressDialog; |
| | | import com.dayu.recharge.view.TitleBar; |
| | | import com.tencent.bugly.crashreport.CrashReport; |
| | | |
| | | import java.util.Arrays; |
| | |
| | | * Description: nfc写卡界面 |
| | | */ |
| | | public class NFCWreatActivity extends BaseNfcActivity { |
| | | |
| | | public static String TAG = "NFCWreatActivity"; |
| | | |
| | | boolean cleanFlag = false; |
| | | boolean userFlag = false; |
| | |
| | | boolean configDeviceRegiestFlag = false; |
| | | |
| | | boolean configPowerFlag = false; |
| | | |
| | | /** |
| | | * 是否不再验证用户直接写卡 |
| | | */ |
| | | boolean isAgainWrite = false; |
| | | |
| | | UserCardBean userCardBean; |
| | | |
| | |
| | | //充值通信是否完成 |
| | | boolean rechargeIsOk = false; |
| | | ActivityWriteTextBinding binding; |
| | | ConfirmDialog confirmDialog; |
| | | |
| | | @Override |
| | | protected void onCreate(Bundle savedInstanceState) { |
| | |
| | | binding = ActivityWriteTextBinding.inflate(LayoutInflater.from(this)); |
| | | setContentView(binding.getRoot()); |
| | | nfcWreatActivity = this; |
| | | setData(); |
| | | getData(); |
| | | baseApp = (MyApplication) getApplication(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | CrashReport.postCatchedException(e); |
| | | } |
| | | } |
| | | |
| | | |
| | | private void setData() { |
| | | titleBar.setOnItemclickListner(TitleBar.ClickType_LEFT_IMAGE, v -> { |
| | | //处理因用户误操作返回导致不能写卡的问题,添加二次确认 |
| | | back(); |
| | | }); |
| | | } |
| | | |
| | | private void back() { |
| | | if (isUser) { |
| | | confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> { |
| | | confirmDialog.dismiss(); |
| | | myFinish(); |
| | | }); |
| | | confirmDialog.show(); |
| | | } else if (!TextUtils.isEmpty(morny)) { |
| | | confirmDialog = new ConfirmDialog(NFCWreatActivity.this, v -> { |
| | | confirmDialog.dismiss(); |
| | | myFinish(); |
| | | }); |
| | | confirmDialog.show(); |
| | | } else { |
| | | finish(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private void myFinish() { |
| | | if (NewCardActivity.newCardActivity != null) { |
| | | NewCardActivity.newCardActivity.finish(); |
| | | } |
| | | if (RechargeActivity.rechargeActivity != null) { |
| | | RechargeActivity.rechargeActivity.finish(); |
| | | } |
| | | NFCWreatActivity.nfcWreatActivity.finish(); |
| | | } |
| | | |
| | | |
| | | //点击两次退出程序 有时间间隔 间隔内点击则退出程序 否则 则提示 |
| | | @Override |
| | | public boolean onKeyDown(int keyCode, KeyEvent event) { |
| | | if (keyCode == KeyEvent.KEYCODE_BACK) { |
| | | back(); |
| | | return true; |
| | | } |
| | | return super.onKeyDown(keyCode, event); |
| | | } |
| | | |
| | | |
| | |
| | | binding.textView.setTextColor(getResources().getColor(R.color.red)); |
| | | } else if (cardType.equals("-1")) { |
| | | TipUtil.show(NFCWreatActivity.this, "请勿移动卡片,读卡失败请重试!!"); |
| | | } else if (cardType.equals("-2")) { |
| | | TipUtil.show(NFCWreatActivity.this, "读卡失败,请检查卡是否是用户卡"); |
| | | } else { |
| | | Log.i("NFCWreatActivity", "olduserCard!=null saveData"); |
| | | saveData(); |
| | |
| | | || configureDeviceRegistrationCrad != null |
| | | || configurationPowerCard != null) { |
| | | if (userCard != null && TextUtils.isEmpty(morny)) { |
| | | |
| | | userFlag = WriteCardUtils.setUser(intent, userCard, this); |
| | | } |
| | | if (cleanCard != null) { |
| | |
| | | } |
| | | |
| | | void startAnim() { |
| | | binding.avi.setVisibility(View.VISIBLE); |
| | | binding.avi.show(); |
| | | // or avi.smoothToShow(); |
| | | } |
| | |
| | | rechargeRequestBean.setBalance(morny); |
| | | |
| | | rechargeRequestBean.setOrderId(SocketUtil.getOrderId(NFCWreatActivity.this)); |
| | | SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(), new SocketCallBack() { |
| | | SocketNet.getInstance().sendTestMessage(rechargeRequestBean.pack(),"95", new SocketCallBack() { |
| | | |
| | | @Override |
| | | public void onSocketResponse(SocketData readData) { |
| | |
| | | //00启用01禁用02隶属信息不符03无此卡信息04其它 |
| | | if ("00".equalsIgnoreCase(state)) { |
| | | rechargeIsOk = true; |
| | | binding.cardData.setText("充值通信完成,请帖卡充值"); |
| | | binding.cardData.setText("充值"+morny+"元通信完成,请帖卡写卡"); |
| | | rechargeBean = new RechargeBean(); |
| | | rechargeBean.setDate(System.currentTimeMillis()); |
| | | rechargeBean.setMorny(morny); |
| | |
| | | |
| | | rechargeBean.setSerial(adminData.getSerial()); |
| | | userCard.setRechargeDate(Calendar.getInstance()); |
| | | userCard.setBalance(balance); |
| | | rechargeBean.setBalance(MornyUtil.changeF2Y(balance)); |
| | | rechargeBean.setInitPeasantCode(initPeasantCode); |
| | | rechargeBean.setOrderID(orderId); |
| | |
| | | |
| | | @Override |
| | | public void onSocketError(int code, String msg) { |
| | | stopAnim(); |
| | | TipUtil.show(NFCWreatActivity.this, msg); |
| | | runOnUiThread(() -> { |
| | | stopAnim(); |
| | | TipUtil.show(NFCWreatActivity.this, msg); |
| | | }); |
| | | |
| | | } |
| | | }); |
| | | } catch (Exception e) { |
| | |
| | | UserCard userCardold = NfcReadHelper.getInstence(intent, this).getUserCardData(); |
| | | if (userCardold != null) { |
| | | //判断是否充值的是一个卡 |
| | | if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode())) { |
| | | if (userCard.getInitPeasantCode().equals(userCardold.getInitPeasantCode()) || isAgainWrite) { |
| | | userCard.setState("00"); |
| | | userFlag = WriteCardUtils.setUser(intent, userCard, this); |
| | | // 打印相关 |
| | |
| | | setPrinterData(rechargeBean); |
| | | startDetailActivity(userName, "启用"); |
| | | } else { |
| | | TipUtil.show(NFCWreatActivity.this, "写卡失败,请重新再试"); |
| | | isAgainWrite = true; |
| | | TipUtil.show(NFCWreatActivity.this, "写卡失败,请重新贴卡"); |
| | | } |
| | | } else { |
| | | TipUtil.show(NFCWreatActivity.this, "读取的卡和充值的卡不一致"); |
| | | } |
| | | } |
| | | stopAnim(); |
| | | } |
| | | |
| | | private void setmanageCard(Intent intent, final ManageCard manageCard) { |
| | |
| | | detail.putExtra("morny", morny); |
| | | } |
| | | startActivity(detail); |
| | | if (NewCardActivity.newCardActivity != null) { |
| | | NewCardActivity.newCardActivity.finish(); |
| | | } |
| | | if (RechargeActivity.rechargeActivity != null) { |
| | | RechargeActivity.rechargeActivity.finish(); |
| | | } |
| | | NFCWreatActivity.nfcWreatActivity.finish(); |
| | | myFinish(); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param initPeasantCode 农户注册编号 |
| | | */ |
| | | private void selectBalance(String initPeasantCode) { |
| | | |
| | | Log.i(TAG, "补卡查询余额:农户注册编号 " + initPeasantCode); |
| | | try { |
| | | startAnim(); |
| | | BalanceSelecteRequestBean requestBean = new BalanceSelecteRequestBean(); |
| | | requestBean.setAFN("94"); |
| | | requestBean.setControl("01"); |
| | |
| | | requestBean.setInitCode(initCode); |
| | | requestBean.setInitPeasantCode(initPeasantCode); |
| | | requestBean.setXuLie(SocketUtil.getXuLie(this)); |
| | | SocketNet.getInstance().sendTestMessage(requestBean.pack(), new SocketCallBack() { |
| | | SocketNet.getInstance().sendTestMessage(requestBean.pack(), "94",new SocketCallBack() { |
| | | @Override |
| | | public void onSocketResponse(SocketData readData) { |
| | | if (CRC8.isCRC8(readData.getOriginDataBytes())) { |
| | |
| | | //补卡逻辑 |
| | | userFlag = WriteCardUtils.setUser(intent, userCard, NFCWreatActivity.this); |
| | | if (userFlag) { |
| | | TipUtil.show(NFCWreatActivity.this, "补卡成功", new TipUtil.TipListener() { |
| | | @Override |
| | | public void onCancle() { |
| | | NFCWreatActivity.this.finish(); |
| | | } |
| | | }); |
| | | TipUtil.show(NFCWreatActivity.this, "补卡成功", () -> NFCWreatActivity.this.finish()); |
| | | } |
| | | return; |
| | | } else if ("01".equals(state)) { |
| | |
| | | //校验CRC错误 |
| | | TipUtil.show(NFCWreatActivity.this, "开卡报文校验CRC错误"); |
| | | } |
| | | stopAnim(); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onSocketError(int code, String msg) { |
| | | stopAnim(); |
| | | TipUtil.show(NFCWreatActivity.this, msg); |
| | | runOnUiThread(() -> { |
| | | stopAnim(); |
| | | TipUtil.show(NFCWreatActivity.this, msg); |
| | | }); |
| | | |
| | | } |
| | | }); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | CrashReport.postCatchedException(e); |
| | | stopAnim(); |
| | | ProgressDialog.dismiss(); |
| | | } |
| | | |
| | | } |
| | | |
| | | protected void onDestroy() { |
| | | super.onDestroy(); |
| | | ProgressDialog.dismiss(); |
| | | nfcWreatActivity = null; |
| | | } |
| | | } |