MdbCreditCardDialog.java 4.6 KB

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