| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package com.datarecovery.master.dialog;
- import android.content.Context;
- import androidx.annotation.NonNull;
- import com.atmob.app.lib.base.BaseDialog;
- import com.datarecovery.master.R;
- import com.datarecovery.master.databinding.DialogWechatPayQrCodeBinding;
- import com.datarecovery.master.module.member.MemberViewModel;
- import com.datarecovery.master.utils.QrCodeUtil;
- import atmob.reactivex.rxjava3.disposables.Disposable;
- import atmob.rxjava.utils.RxJavaUtil;
- @BaseDialog.FullScreen
- public class WechatPayQrCodeDialog extends BaseDialog<DialogWechatPayQrCodeBinding> {
- private Disposable generateQRDisposable;
- private @atmob.reactivex.rxjava3.annotations.NonNull Disposable queryOrderDisposable;
- private String orderId;
- private MemberViewModel memberViewModel;
- public WechatPayQrCodeDialog(@NonNull Context context) {
- super(context, R.style.Theme_Common_Dialog);
- binding.setOnCloseClickListener(v -> dismiss());
- }
- @Override
- protected void onDismiss() {
- super.onDismiss();
- binding.wechatPayQrCode.setImageBitmap(null);
- if (queryOrderDisposable != null && !queryOrderDisposable.isDisposed()) {
- queryOrderDisposable.dispose();
- memberViewModel.queryOrderStatus(orderId, true);
- }
- if (generateQRDisposable != null && !generateQRDisposable.isDisposed()) {
- generateQRDisposable.dispose();
- }
- }
- public void show(String qrCodeData, String orderId, MemberViewModel memberViewModel) {
- this.memberViewModel = memberViewModel;
- this.orderId = orderId;
- this.queryOrderDisposable = memberViewModel.queryOrderStatus(orderId, false);
- if (generateQRDisposable != null && !generateQRDisposable.isDisposed()) {
- generateQRDisposable.dispose();
- }
- generateQRDisposable = RxJavaUtil.doInBackground(() -> QrCodeUtil.generateQrCode(qrCodeData, 300, R.drawable.icon_wechat_payment),
- bitmap -> binding.wechatPayQrCode.setImageBitmap(bitmap), throwable -> {
- // TODO: 24/8/2023 show error
- });
- super.show();
- }
- public String getCurrentOrderId() {
- return orderId;
- }
- }
|