123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- package com.bgy.autosale.payutil;
- import android.app.Activity;
- import android.app.Dialog;
- import android.content.Context;
- import android.os.Handler;
- import android.os.Message;
- import android.text.Html;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.TextView;
- import com.bgy.autosale.R;
- import com.example.offpay.nayax.CreditCardMessage;
- import com.hboxs.base_library.callback.DialogClickListener;
- import com.hboxs.base_library.constant.Name;
- import com.hboxs.base_library.util.LogUtil;
- import com.hboxs.base_library.util.UiUtil;
- import com.hboxs.base_library.widget.BaseDialogNoDatabinding;
- import com.orhanobut.hawk.Hawk;
- import com.orhanobut.logger.Logger;
- import org.greenrobot.eventbus.EventBus;
- import org.greenrobot.eventbus.Subscribe;
- import org.greenrobot.eventbus.ThreadMode;
- import java.lang.ref.WeakReference;
- import java.util.Timer;
- import java.util.TimerTask;
- // todo
- // 信用卡的逻辑
- public class CreditCardDialog extends BaseDialogNoDatabinding implements View.OnClickListener {
- private String TAG = this.getClass().getSimpleName();
- private Button btnCancel;
- private TextView tvTime;
- private ImageView ivQrCode;
- private MyHandler mHandler;
- private static int time = Hawk.get(Name.NAYAX_CARD_TIME_PAYMENT,120);
- private boolean isLoop = true;
- private DialogClickListener listener;
- private TextView tvScanTip;
- private TextView tvScanNow;
- public CreditCardDialog(Context context, Activity activity) {
- super(context, activity);
- }
- @Override
- protected void initView() {
- mHandler = new MyHandler(this);
- btnCancel = findViewById(R.id.btn_cancel);
- tvTime = findViewById(R.id.tv_time);
- tvScanTip = findViewById(R.id.tv_scan_tip);
- tvScanTip.setText(Html.fromHtml(UiUtil.getStringRes(R.string.dont_coin1)));
- tvScanNow = findViewById(R.id.tv_scan_now);
- ivQrCode = findViewById(R.id.iv_qr_code);
- if (Hawk.get("isScan",false)){
- ivQrCode.setImageResource(R.drawable.icon_scan);
- tvScanNow.setText(Html.fromHtml(UiUtil.getStringRes(R.string.scan_now)));
- Log.d(TAG, "initView: isScan");
- }else {
- tvScanNow.setText(Html.fromHtml(UiUtil.getStringRes(R.string.credit_card_payment)));
- ivQrCode.setImageResource(R.drawable.icon_xinyongka_pay);
- }
- String s = Hawk.get(Name.CREDIT_CARD_PAYMENT_TEXT_DESCRIPTION, "");
- if (!"".equals(s)) {
- tvScanNow.setText(Html.fromHtml(s));
- }
- isLoop = true;
- btnCancel.setOnClickListener(this);
- ivQrCode.setOnClickListener(this);
- }
- @Override
- protected int getLayout() {
- return R.layout.dialog_credit_card;
- }
- @Override
- protected int getAnimType() {
- return 0;
- }
- public void setListener(DialogClickListener listener) {
- this.listener = listener;
- }
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.btn_cancel:
- listener.onClickListener(125);
- dismiss();
- break;
- case R.id.iv_qr_code:
- listener.onClickListener(R.id.iv_qr_code);
- break;
- }
- }
- /**
- * 对话框显示
- */
- @Override
- public void show() {
- super.show();
- time = Hawk.get(Name.NAYAX_CARD_TIME_PAYMENT,120);
- tvTime.setText(String.valueOf(time));
- startTimeDown();
- EventBus.getDefault().register(this);
- Logger.d("倒计时show:");
- }
- private Timer countDownTimer;
- private TimerTask timerTask;
- /**
- * 开始倒计时
- */
- public void startTimeDown() {
- time = Hawk.get(Name.NAYAX_CARD_TIME_PAYMENT,120);
- TimerUtil.stopTimerAndTimerTask(countDownTimer, timerTask);
- LogUtil.d(TAG, "startFinishTimer: 开始倒计时 ");
- countDownTimer = new Timer();
- timerTask = new TimerTask() {
- @Override
- public void run() {
- Logger.d("倒计时run2:" + isLoop);
- Message message = new Message();
- message.what = 1;
- mHandler.sendMessage(message);
- time--;
- LogUtil.d(TAG, "thread: 倒计时:" + time);
- }
- };
- countDownTimer.schedule(timerTask, 0, 1000);
- }
- public void stopTimerDown() {
- // LogUtil.d(TAG, "stopTimerDown: 停止倒计时");
- mHandler.removeCallbacksAndMessages(null);
- TimerUtil.stopTimerAndTimerTask(countDownTimer, timerTask);
- time = Hawk.get(Name.NAYAX_CARD_TIME_PAYMENT,120);
- }
- @Override
- public void dismiss() {
- super.dismiss();
- isLoop = false;
- // listener.onClickListener(125);
- stopTimerDown();
- EventBus.getDefault().unregister(this);
- if (listener!=null){
- listener.onClickListener(1000);
- }
- Logger.d("倒计时dismiss:");
- }
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void event(CreditCardMessage messageEvent) {
- switch (messageEvent.getType()){
- case success:
- listener.onClickListener(130);
- break;
- case failure:
- listener.onClickListener(131);
- break;
- case invalid:
- listener.onClickListener(132);
- dismiss();
- break;
- }
- }
- static class MyHandler extends Handler {
- WeakReference<Dialog> mWeakReference;
- public MyHandler(Dialog activity) {
- mWeakReference = new WeakReference<Dialog>(activity);
- }
- @Override
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- final CreditCardDialog dialog = (CreditCardDialog) mWeakReference.get();
- switch (msg.what) {
- case 1:
- if (dialog != null) {
- if (time <= -1) {
- dialog.isLoop = false;
- dialog.listener.onClickListener(125);
- dialog.dismiss();
- return;
- }
- dialog.tvTime.setText(String.valueOf(time));
- }
- break;
- }
- }
- }
- }
|