MdbCreditCardDialog.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. package com.bgy.autosale.payutil;
  2. import android.annotation.SuppressLint;
  3. import android.app.Dialog;
  4. import android.content.Context;
  5. import android.os.CountDownTimer;
  6. import android.support.v4.app.Fragment;
  7. import android.support.v4.app.FragmentTransaction;
  8. import android.text.Html;
  9. import android.util.Log;
  10. import android.view.Gravity;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.view.ViewGroup;
  14. import android.view.animation.Animation;
  15. import android.view.animation.AnimationUtils;
  16. import android.widget.FrameLayout;
  17. import android.widget.TextView;
  18. import com.bgy.autosale.R;
  19. import com.bgy.autosale.entitys.MakeIceCreamBean;
  20. import com.bgy.autosale.helpers.CommunicationHelper;
  21. import com.bgy.autosale.helpers.OrderHelper;
  22. import com.bgy.autosale.ui.consumer.PaySuccessFragment;
  23. import com.bgy.autosale.ui.widget.InfoView;
  24. import com.example.offpay.event.WmdbIctMessageEvent;
  25. import com.example.offpay.nayax.CreditCardMessage;
  26. import com.example.offpay.wmdb.WeaverUtil;
  27. import com.hboxs.base_library.callback.DialogClickListener;
  28. import com.hboxs.base_library.constant.Name;
  29. import com.hboxs.base_library.util.LogUtil;
  30. import com.hboxs.base_library.util.ToastUtil;
  31. import com.hboxs.base_library.util.UiUtil;
  32. import com.orhanobut.hawk.Hawk;
  33. import org.greenrobot.eventbus.EventBus;
  34. import org.greenrobot.eventbus.Subscribe;
  35. import org.greenrobot.eventbus.ThreadMode;
  36. import java.util.LinkedList;
  37. import java.util.Timer;
  38. import java.util.TimerTask;
  39. public class MdbCreditCardDialog extends FrameLayout implements View.OnClickListener {
  40. private static final String TAG = "MdbCreditCardDialog";
  41. private TextView tvTime;
  42. private TextView tvScanNow;
  43. private CountDownTimer countDownTimer;
  44. private static int time = Hawk.get(Name.CARD_TIME_PAYMENT,90);
  45. private View view;
  46. private boolean canTouchOutsideDismiss = true;
  47. private DialogClickListener listener;
  48. public DialogClickListener getListener() {
  49. return listener;
  50. }
  51. public void setListener(DialogClickListener listener) {
  52. this.listener = listener;
  53. }
  54. public MdbCreditCardDialog(Context context) {
  55. super(context);
  56. view = LayoutInflater.from(context).inflate(R.layout.dialog_mdbcredit_card, this, false);
  57. setOnClickListener(this);
  58. view.setOnClickListener(this);
  59. view.findViewById(R.id.btn_cancel).setOnClickListener(this);
  60. view.findViewById(R.id.iv_qr_code).setOnClickListener(this);
  61. tvTime = view.findViewById(R.id.tv_time);
  62. tvScanNow=view.findViewById(R.id.tv_scan_now);
  63. tvScanNow.setText(Html.fromHtml(UiUtil.getStringRes(R.string.credit_card_payment)));
  64. String s = Hawk.get(Name.CREDIT_CARD_PAYMENT_TEXT_DESCRIPTION, "");
  65. if (!"".equals(s)) {
  66. tvScanNow.setText(Html.fromHtml(s));
  67. }
  68. LayoutParams layoutParams = new LayoutParams(getResources().getDimensionPixelOffset(R.dimen.dp_269), ViewGroup.LayoutParams.WRAP_CONTENT);
  69. // layoutParams.width = (int) (outMetrics.widthPixels * 0.4f);
  70. layoutParams.gravity = Gravity.CENTER;
  71. addView(view, layoutParams);
  72. }
  73. public void show(ViewGroup parent) {
  74. if (parent == null) {
  75. return;
  76. }
  77. parent.addView(this, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
  78. Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.scale_in);
  79. view.startAnimation(animation);
  80. countDownTimer = new CountDownTimer(time*1000, 1000) {
  81. @SuppressLint("SetTextI18n")
  82. public void onTick(long millisUntilFinished) {
  83. tvTime.setText(millisUntilFinished / 1000 + "");
  84. Log.d(TAG, "onTick: countDownTimer");
  85. }
  86. public void onFinish() {
  87. Log.d(TAG, "onFinish: countDownTimer");
  88. dismiss();
  89. }
  90. }.start();
  91. }
  92. @Override
  93. public void onClick(View v) {
  94. int id = v.getId();
  95. if (id == R.id.btn_cancel) {
  96. listener.onClickListener(R.id.btn_cancel);
  97. }else if (canTouchOutsideDismiss) {
  98. dismiss();
  99. }
  100. }
  101. public void dismiss() {
  102. if (getParent() == null) {
  103. return;
  104. }
  105. ViewGroup parent = (ViewGroup) getParent();
  106. parent.removeView(this);
  107. countDownTimer.cancel();
  108. if (listener!=null){
  109. listener.onClickListener(1000);
  110. }
  111. }
  112. public MdbCreditCardDialog setCanTouchOutsideDismiss(boolean can) {
  113. this.canTouchOutsideDismiss = can;
  114. return this;
  115. }
  116. @Subscribe(threadMode = ThreadMode.MAIN)
  117. public void event(CreditCardMessage messageEvent) {
  118. switch (messageEvent.getType()) {
  119. case success:
  120. listener.onClickListener(130);
  121. break;
  122. case failure:
  123. listener.onClickListener(131);
  124. break;
  125. case invalid:
  126. ToastUtil.showToast(UiUtil.getStringRes(R.string.credit_card_again));
  127. dismiss();
  128. break;
  129. }
  130. }
  131. }