package com.bgy.autosale.payutil; import android.annotation.SuppressLint; import android.app.Dialog; import android.content.Context; import android.os.CountDownTimer; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.FrameLayout; import android.widget.TextView; import com.bgy.autosale.R; import com.bgy.autosale.entitys.MakeIceCreamBean; import com.bgy.autosale.helpers.CommunicationHelper; import com.bgy.autosale.helpers.OrderHelper; import com.bgy.autosale.ui.consumer.PaySuccessFragment; import com.bgy.autosale.ui.widget.InfoView; import com.example.offpay.event.WmdbIctMessageEvent; import com.example.offpay.nayax.CreditCardMessage; import com.example.offpay.wmdb.WeaverUtil; 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.ToastUtil; import com.hboxs.base_library.util.UiUtil; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.LinkedList; import java.util.Timer; import java.util.TimerTask; public class MdbCreditCardDialog extends FrameLayout implements View.OnClickListener { private static final String TAG = "MdbCreditCardDialog"; private TextView tvTime; private CountDownTimer countDownTimer; private static int time = 90; private View view; private boolean canTouchOutsideDismiss = true; private DialogClickListener listener; public DialogClickListener getListener() { return listener; } public void setListener(DialogClickListener listener) { this.listener = listener; } public MdbCreditCardDialog(Context context) { super(context); view = LayoutInflater.from(context).inflate(R.layout.dialog_mdbcredit_card, this, false); setOnClickListener(this); view.setOnClickListener(this); view.findViewById(R.id.btn_cancel).setOnClickListener(this); view.findViewById(R.id.iv_qr_code).setOnClickListener(this); tvTime = view.findViewById(R.id.tv_time); LayoutParams layoutParams = new LayoutParams(getResources().getDimensionPixelOffset(R.dimen.dp_269), ViewGroup.LayoutParams.WRAP_CONTENT); // layoutParams.width = (int) (outMetrics.widthPixels * 0.4f); layoutParams.gravity = Gravity.CENTER; addView(view, layoutParams); } public void show(ViewGroup parent) { if (parent == null) { return; } parent.addView(this, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); Animation animation = AnimationUtils.loadAnimation(getContext(), R.anim.scale_in); view.startAnimation(animation); countDownTimer = new CountDownTimer(time*1000, 1000) { @SuppressLint("SetTextI18n") public void onTick(long millisUntilFinished) { tvTime.setText(millisUntilFinished / 1000 + ""); Log.d(TAG, "onTick: countDownTimer"); } public void onFinish() { Log.d(TAG, "onFinish: countDownTimer"); dismiss(); } }.start(); } @Override public void onClick(View v) { int id = v.getId(); if (id == R.id.btn_cancel) { listener.onClickListener(R.id.btn_cancel); }else if (canTouchOutsideDismiss) { dismiss(); } } public void dismiss() { if (getParent() == null) { return; } ViewGroup parent = (ViewGroup) getParent(); parent.removeView(this); countDownTimer.cancel(); } public MdbCreditCardDialog setCanTouchOutsideDismiss(boolean can) { this.canTouchOutsideDismiss = can; return this; } @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: ToastUtil.showToast(UiUtil.getStringRes(R.string.credit_card_again)); dismiss(); break; } } }