| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- package com.datarecovery.master.module.member;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Pair;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.recyclerview.widget.GridLayoutManager;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import com.atmob.app.lib.base.BaseActivity;
- import com.datarecovery.master.databinding.ActivityMemberBinding;
- import com.datarecovery.master.dialog.AlipayQrCodeDialog;
- import com.datarecovery.master.dialog.ChoosePaymentWayDialog;
- import com.datarecovery.master.dialog.CommonLoadingDialog;
- import com.datarecovery.master.dialog.MemberRetentionDialog;
- import com.datarecovery.master.dialog.WechatPayQrCodeDialog;
- import com.datarecovery.master.module.audiorecover.AudioRecoverActivity;
- import com.datarecovery.master.module.filerecover.FileRecoverActivity;
- import com.datarecovery.master.module.imgrecover.ImageRecoverActivity;
- import com.datarecovery.master.module.videorecover.VideoRecoverActivity;
- import com.datarecovery.master.module.wxrecover.WeChatRecoverActivity;
- import com.datarecovery.master.utils.BoxingUtil;
- import com.datarecovery.master.utils.GridLayoutItemDecoration;
- import com.gyf.immersionbar.ImmersionBar;
- import java.util.Objects;
- import dagger.hilt.android.AndroidEntryPoint;
- @AndroidEntryPoint
- public class MemberActivity extends BaseActivity<ActivityMemberBinding> {
- private static final String MEMBER_TYPE = "member_type";
- private MemberViewModel memberViewModel;
- private GoodsItemAdapter goodsItemAdapter;
- private NormalScenesAdapter normalScenesAdapter;
- private SuperScenesAdapter superScenesAdapter;
- private GridLayoutManager gridLayoutManager;
- private GridLayoutItemDecoration gridLayoutItemDecoration;
- private MemberEvaluateAdapter memberEvaluateAdapter;
- private MemberRetentionDialog memberRetentionDialog;
- private ChoosePaymentWayDialog choosePaymentWayDialog;
- private CommonLoadingDialog commonLoadingDialog;
- private AlipayQrCodeDialog alipayQrCodeDialog;
- private WechatPayQrCodeDialog wechatPayQrCodeDialog;
- public static void start(Context context, @MemberType String type) {
- Intent intent = new Intent(context, MemberActivity.class);
- if (!(context instanceof Activity)) {
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- }
- intent.putExtra(MEMBER_TYPE, type);
- context.startActivity(intent);
- }
- @Override
- protected void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- initView();
- initObserver();
- initData();
- }
- private void initData() {
- Intent intent = getIntent();
- if (intent != null) {
- memberViewModel.setMemberType(intent.getStringExtra(MEMBER_TYPE));
- }
- }
- private void initView() {
- addTopStatusBarHeight(binding.toolbar);
- goodsItemAdapter = new GoodsItemAdapter(this);
- binding.memberDetailList.setAdapter(goodsItemAdapter);
- binding.memberDetailList.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
- goodsItemAdapter.setOnItemSelectListener(goodsBean -> memberViewModel.setSelectBean(goodsBean));
- normalScenesAdapter = new NormalScenesAdapter();
- superScenesAdapter = new SuperScenesAdapter();
- gridLayoutManager = new GridLayoutManager(this, 4);
- binding.scenesRyView.setLayoutManager(gridLayoutManager);
- gridLayoutItemDecoration = new GridLayoutItemDecoration();
- binding.scenesRyView.addItemDecoration(gridLayoutItemDecoration);
- memberEvaluateAdapter = new MemberEvaluateAdapter();
- binding.userEvaluateRyView.setLayoutManager(new LinearLayoutManager(this));
- binding.userEvaluateRyView.setAdapter(memberEvaluateAdapter);
- binding.iconBack.setOnClickListener(v -> onBackPressed());
- }
- private void initObserver() {
- memberViewModel.getOnSubscribeSuccessEvent().observe(this, orderId -> {
- dismissQrCodeDialog(orderId);
- setPaySuccessGo();
- finish();
- });
- memberViewModel.getShowAliQRPaymentEvent().observe(this, this::showAlipayQrCodeDialog);
- memberViewModel.getShowWxQRPaymentEvent().observe(this, this::showWxQrCodeDialog);
- memberViewModel.getShowLoadingEvent().observe(this, this::showLoading);
- memberViewModel.getMemberGoodsList().observe(this, goodsItemAdapter::submit);
- memberViewModel.getSelectBean().observe(this, bean -> {
- if (bean == null) {
- return;
- }
- if (Objects.equals(bean.getAuths(), MemberType.APP_SUPER_RECOVER)) {
- gridLayoutManager.setSpanCount(4);
- gridLayoutItemDecoration.setParam(4, 0, 0.0361111111111111f);
- superScenesAdapter.setData(memberViewModel.getSuperScenesBeans());
- binding.scenesRyView.setAdapter(superScenesAdapter);
- } else {
- gridLayoutManager.setSpanCount(2);
- gridLayoutItemDecoration.setParam(2, 0, 0.0166666666666667f);
- normalScenesAdapter.setData(bean.getScenesArray());
- binding.scenesRyView.setAdapter(normalScenesAdapter);
- }
- });
- memberViewModel.getEvaluateList().observe(this, evaluateBeans -> memberEvaluateAdapter.submit(evaluateBeans));
- memberViewModel.getShowChoicePayWayDialog().observe(this, o -> showChoosePaymentWayDialog());
- }
- private void setPaySuccessGo() {
- switch (memberViewModel.getMemberType()) {
- case MemberType.APP_WX_MESSAGE_RECOVER:
- case MemberType.APP_WX_FRIEND_RECOVER:
- WeChatRecoverActivity.start(this);
- break;
- case MemberType.APP_IMAGE_RECOVER:
- ImageRecoverActivity.start(this, ImageRecoverActivity.Type.RECOVER);
- break;
- case MemberType.APP_FILE_RECOVER:
- FileRecoverActivity.start(this);
- break;
- case MemberType.APP_VIDEO_RECOVER:
- VideoRecoverActivity.start(this);
- break;
- case MemberType.APP_AUDIO_RECOVER:
- AudioRecoverActivity.start(this);
- break;
- case MemberType.APP_IMAGE_CLEAN:
- ImageRecoverActivity.start(this, ImageRecoverActivity.Type.DELETE);
- break;
- }
- }
- private void showWxQrCodeDialog(Pair<String, String> params) {
- if (params == null || params.first == null || params.second == null) {
- return;
- }
- if (wechatPayQrCodeDialog == null) {
- wechatPayQrCodeDialog = new WechatPayQrCodeDialog(this);
- }
- wechatPayQrCodeDialog.show(params.first, params.second, memberViewModel);
- }
- private void showAlipayQrCodeDialog(Pair<String, String> params) {
- if (params == null || params.first == null || params.second == null) {
- return;
- }
- if (alipayQrCodeDialog == null) {
- alipayQrCodeDialog = new AlipayQrCodeDialog(this);
- }
- alipayQrCodeDialog.show(params.first, params.second, memberViewModel);
- }
- private void dismissQrCodeDialog(String orderId) {
- if (alipayQrCodeDialog != null) {
- if (Objects.equals(orderId, alipayQrCodeDialog.getCurrentOrderId())) {
- alipayQrCodeDialog.dismiss();
- }
- }
- if (wechatPayQrCodeDialog != null) {
- if (Objects.equals(orderId, wechatPayQrCodeDialog.getCurrentOrderId())) {
- wechatPayQrCodeDialog.dismiss();
- }
- }
- }
- private void showLoading(Boolean show) {
- if (BoxingUtil.boxing(show)) {
- if (commonLoadingDialog == null) {
- commonLoadingDialog = new CommonLoadingDialog(this);
- commonLoadingDialog.setMessageGone();
- }
- commonLoadingDialog.show();
- } else {
- if (commonLoadingDialog != null) {
- commonLoadingDialog.dismiss();
- }
- }
- }
- private void showChoosePaymentWayDialog() {
- if (choosePaymentWayDialog == null) {
- choosePaymentWayDialog = new ChoosePaymentWayDialog(this, this, memberViewModel.getSubscribeTxt(), memberViewModel.getPayWayList().getValue());
- }
- choosePaymentWayDialog.setActionHandler((payPlatform, payMethod) -> memberViewModel.submitOrder(payPlatform, payMethod));
- choosePaymentWayDialog.paymentShow();
- }
- private void showMemberRetentionDialog() {
- if (memberRetentionDialog == null) {
- memberRetentionDialog = new MemberRetentionDialog(this)
- .setActionHandler(new MemberRetentionDialog.ActionHandler() {
- @Override
- public void onCloseClick() {
- finish();
- }
- @Override
- public void onContinueClick() {
- memberViewModel.onRetainMemberSubscribeClick();
- }
- });
- }
- memberRetentionDialog.show();
- }
- @Override
- public void onBackPressed() {
- if (Objects.equals(memberViewModel.getMemberType(), MemberType.APP_IMAGE_CLEAN)) {
- super.onBackPressed();
- return;
- }
- if (!memberViewModel.isMember()) {
- showMemberRetentionDialog();
- } else {
- super.onBackPressed();
- }
- }
- @Override
- protected void configImmersion(@NonNull ImmersionBar immersionBar) {
- immersionBar.statusBarDarkFont(true);
- }
- @Override
- protected void initViewModel() {
- super.initViewModel();
- memberViewModel = getViewModelProvider().get(MemberViewModel.class);
- binding.setMemberViewModel(memberViewModel);
- }
- @Override
- protected boolean shouldImmersion() {
- return true;
- }
- }
|