Browse Source

[Modify]移除支付、会员、登录相关代码

litchi98 1 month ago
parent
commit
9625a9b2d8
39 changed files with 34 additions and 4323 deletions
  1. 13 10
      app/build.gradle
  2. 0 25
      app/src/main/AndroidManifest.xml
  3. 1 4
      app/src/main/java/com/datarecovery/master/App.java
  4. 0 248
      app/src/main/java/com/datarecovery/master/data/repositories/MemberRepository.java
  5. 0 32
      app/src/main/java/com/datarecovery/master/module/audiorecover/AudioRecoverActivity.java
  6. 1 38
      app/src/main/java/com/datarecovery/master/module/audiorecover/AudioRecoverViewModel.java
  7. 0 28
      app/src/main/java/com/datarecovery/master/module/filerecover/FileRecoverActivity.java
  8. 0 35
      app/src/main/java/com/datarecovery/master/module/filerecover/FileRecoverViewModel.java
  9. 0 28
      app/src/main/java/com/datarecovery/master/module/imgrecover/ImageRecoverActivity.java
  10. 6 36
      app/src/main/java/com/datarecovery/master/module/imgrecover/ImageRecoverViewModel.java
  11. 0 78
      app/src/main/java/com/datarecovery/master/module/login/LoginActivity.java
  12. 0 284
      app/src/main/java/com/datarecovery/master/module/login/LoginViewModel.java
  13. 0 2
      app/src/main/java/com/datarecovery/master/module/main/MainActivity.java
  14. 1 5
      app/src/main/java/com/datarecovery/master/module/main/MainViewModel.java
  15. 0 267
      app/src/main/java/com/datarecovery/master/module/member/MemberActivity.java
  16. 0 511
      app/src/main/java/com/datarecovery/master/module/member/MemberViewModel.java
  17. 0 55
      app/src/main/java/com/datarecovery/master/module/mine/MineViewModel.java
  18. 0 144
      app/src/main/java/com/datarecovery/master/module/order/OrderFragment.java
  19. 0 148
      app/src/main/java/com/datarecovery/master/module/order/OrderItemAdapter.java
  20. 0 176
      app/src/main/java/com/datarecovery/master/module/order/OrderViewModel.java
  21. 1 42
      app/src/main/java/com/datarecovery/master/module/preview/PreviewActivity.java
  22. 0 43
      app/src/main/java/com/datarecovery/master/module/preview/PreviewViewModel.java
  23. 0 30
      app/src/main/java/com/datarecovery/master/module/videorecover/VideoRecoverActivity.java
  24. 0 32
      app/src/main/java/com/datarecovery/master/module/videorecover/VideoRecoverViewModel.java
  25. 0 51
      app/src/main/java/com/datarecovery/master/module/wechat/WechatEntryActivity.java
  26. 0 106
      app/src/main/java/com/datarecovery/master/module/wxrecover/WeChatRecoverActivity.java
  27. 0 125
      app/src/main/java/com/datarecovery/master/module/wxrecover/WeChatViewModel.java
  28. 0 122
      app/src/main/java/com/datarecovery/master/sdk/quicklogin/QuickLoginHelper.java
  29. 0 75
      app/src/main/java/com/datarecovery/master/sdk/wechat/WechatHelper.java
  30. 0 138
      app/src/main/java/com/datarecovery/master/utils/OrderReportHelper.java
  31. 2 66
      app/src/main/res/layout/activity_audio_recover.xml
  32. 1 69
      app/src/main/res/layout/activity_file_recover.xml
  33. 1 65
      app/src/main/res/layout/activity_image_recover.xml
  34. 0 276
      app/src/main/res/layout/activity_login.xml
  35. 0 365
      app/src/main/res/layout/activity_member.xml
  36. 2 110
      app/src/main/res/layout/activity_video_recover.xml
  37. 0 302
      app/src/main/res/layout/activity_wx_recover.xml
  38. 0 149
      app/src/main/res/layout/fragment_order.xml
  39. 5 3
      build.gradle

+ 13 - 10
app/build.gradle

@@ -3,6 +3,7 @@ plugins {
     id 'dagger.hilt.android.plugin'
     id 'stringfog'
     id 'com.didi.dokit'
+    id 'com.atmob.protect'
 }
 
 def LOCAL = "local", TEST = "test", PROD = "prod"
@@ -153,6 +154,15 @@ stringfog {
     mode base64
 }
 
+atmobProtect {
+    enable = true
+    packageNames = ['com.atmob.central', 'com.datarecovery.master']
+    abiFilters = ['arm64-v8a']
+    androidSdkPath = "$sdk_path"
+    cmakePath = "$cmake_path"
+    ndkPath = "$ndk_path"
+}
+
 dependencies {
     //jar or aar
     implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
@@ -163,10 +173,6 @@ dependencies {
     implementation "extra.common:core:2.0.4-SNAPSHOT" //base utils
     implementation "extra.common:network:1.1.0-SNAPSHOT"
     implementation "extra.common:rxjava:1.1.0-SNAPSHOT"
-    implementation("plus.pay:pay:1.1.0-SNAPSHOT") {
-        exclude group: 'third.pay', module: 'ali'
-    }
-    api 'com.alipay.sdk:alipaysdk-android:15.8.16@aar'
 
     //中台sdk
     implementation "atmob.central:core:1.0.8-SNAPSHOT"
@@ -229,9 +235,9 @@ dependencies {
     //Umeng
     dependencies {
         // 友盟基础组件库(所有友盟业务SDK都依赖基础组件库)
-        implementation 'com.umeng.umsdk:common:9.6.7'
-        implementation 'com.umeng.umsdk:asms:1.8.0'
-        implementation 'com.umeng.umsdk:apm:1.9.4'
+        implementation 'com.umeng.umsdk:common:9.8.8'
+        implementation 'com.umeng.umsdk:asms:1.8.7.2'
+        implementation 'com.umeng.umsdk:apm:2.0.6'
     }
 
     //Bugly
@@ -247,9 +253,6 @@ dependencies {
             }
     releaseImplementation("io.github.didi.dokit:dokitx-no-op:$rootProject.dokit_version")
 
-    //网易一键登录
-    implementation 'io.github.yidun:quicklogin:3.5.4'
-
     // Atmob Ad
     implementation "plus.ad:mediation:3.0.11.0-SNAPSHOT" //广告聚合模块
     implementation("plus.ad:mediation-gromore:6.8.4.0.1-SNAPSHOT") {

+ 0 - 25
app/src/main/AndroidManifest.xml

@@ -38,21 +38,6 @@
         tools:targetApi="32">
 
         <activity
-            android:name=".module.wechat.WechatEntryActivity"
-            android:exported="true"
-            android:launchMode="singleTask"
-
-            android:screenOrientation="portrait"
-            android:taskAffinity="${applicationId}"
-            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
-
-
-        <activity-alias
-            android:name="${applicationId}.wxapi.WXEntryActivity"
-            android:exported="true"
-            android:targetActivity=".module.wechat.WechatEntryActivity" />
-
-        <activity
             android:name=".module.splash.SplashActivity"
             android:exported="true"
             android:screenOrientation="portrait"
@@ -77,9 +62,6 @@
             android:name=".module.feedback.UserFeedbackActivity"
             android:screenOrientation="portrait" />
         <activity
-            android:name=".module.login.LoginActivity"
-            android:screenOrientation="portrait" />
-        <activity
             android:name=".module.imgrecover.ImageRecoverActivity"
             android:screenOrientation="portrait" />
         <activity
@@ -94,13 +76,6 @@
         <activity
             android:name=".module.audiorecover.AudioRecoverActivity"
             android:screenOrientation="portrait" />
-
-        <activity
-            android:name=".module.member.MemberActivity"
-            android:screenOrientation="portrait" />
-        <activity
-            android:name=".module.wxrecover.WeChatRecoverActivity"
-            android:screenOrientation="portrait" />
         <activity
             android:name=".module.member.ServiceDescriptionActivity"
             android:screenOrientation="portrait" />

+ 1 - 4
app/src/main/java/com/datarecovery/master/App.java

@@ -13,7 +13,6 @@ import com.datarecovery.master.data.consts.Constants;
 import com.datarecovery.master.sdk.ad.AtmobAdHelper;
 import com.datarecovery.master.sdk.bugly.BuglyHelper;
 import com.datarecovery.master.sdk.central.AtmobCentralHelper;
-import com.datarecovery.master.sdk.quicklogin.QuickLoginHelper;
 import com.datarecovery.master.sdk.umeng.UmengHelper;
 import com.datarecovery.master.utils.SplashHandler;
 import com.datarecovery.master.utils.ToastUtil;
@@ -106,9 +105,7 @@ public class App extends BaseApplication {
 
     @Override
     public void initAfterGrant(boolean isMainProcess) {
-        if (isMainProcess) {
-            QuickLoginHelper.init(this);
-        }
+
     }
 
     private void initCentral() {

+ 0 - 248
app/src/main/java/com/datarecovery/master/data/repositories/MemberRepository.java

@@ -1,248 +0,0 @@
-package com.datarecovery.master.data.repositories;
-
-
-import android.util.Pair;
-
-import com.atmob.common.runtime.ActivityUtil;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.AtmobApi;
-import com.datarecovery.master.data.api.bean.PayOptions;
-import com.datarecovery.master.data.api.bean.WechatPaymentSignBean;
-import com.datarecovery.master.data.api.request.MemberDetailRequest;
-import com.datarecovery.master.data.api.request.MemberPayRequest;
-import com.datarecovery.master.data.api.request.PaymentStatusRequest;
-import com.datarecovery.master.data.api.response.MemberDetailResponse;
-import com.datarecovery.master.data.api.response.MemberPayResponse;
-import com.datarecovery.master.data.api.response.PaymentStatusResponse;
-import com.datarecovery.master.data.consts.Constants;
-import com.datarecovery.master.data.consts.ErrorCode;
-import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.login.LoginActivity;
-import com.datarecovery.master.module.member.MemberType;
-import com.datarecovery.master.utils.BoxingUtil;
-import com.datarecovery.master.utils.OrderReportHelper;
-import com.datarecovery.master.utils.ReportUtil;
-import com.datarecovery.master.utils.RxHttpHandler;
-import com.datarecovery.master.utils.ToastUtil;
-import com.google.gson.Gson;
-
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import atmob.reactivex.rxjava3.annotations.NonNull;
-import atmob.reactivex.rxjava3.core.Single;
-import atmob.reactivex.rxjava3.core.SingleObserver;
-import atmob.reactivex.rxjava3.disposables.Disposable;
-import atmob.rxjava.utils.RxJavaUtil;
-import plus.pay.AgilePay;
-import plus.pay.alipay.AlipayInfo;
-import plus.pay.listener.AgilePayState;
-import plus.pay.wxpay.WXpayInfo;
-
-@Singleton
-public class MemberRepository {
-
-
-    private final AtmobApi atmobApi;
-    private final DeviceFuncRepository deviceFuncRepository;
-    private final Gson gson;
-    private final PayRepository payRepository;
-
-    @Inject
-    public MemberRepository(AtmobApi atmobApi, DeviceFuncRepository deviceFuncRepository, PayRepository payRepository, Gson gson) {
-        this.atmobApi = atmobApi;
-        this.deviceFuncRepository = deviceFuncRepository;
-        this.payRepository = payRepository;
-        this.gson = gson;
-    }
-
-    public void payOrder(@NonNull PayOptions payOptions) {
-        if (payOptions == null) {
-            throw new NullPointerException("payOptions is null");
-        }
-        requestPayOrder(payOptions.getGoodsId(), payOptions.getPayPlatform(), payOptions.getPayMethod()).subscribe(new SingleObserver<MemberPayResponse>() {
-            @Override
-            public void onSubscribe(@NonNull Disposable d) {
-                payOptions.addDisposable(d);
-                payOptions.setShowLoadingEvent(true);
-            }
-
-            @Override
-            public void onSuccess(@NonNull MemberPayResponse memberPayResponse) {
-                payOptions.setShowLoadingEvent(false);
-                if (payOptions.getPayPlatform() == 1 && payOptions.getPayMethod() == 2) {
-                    onWeChatPay(memberPayResponse.getWechatPayPrepayJson(), memberPayResponse.getOutTradeNo(), payOptions);
-                } else if (payOptions.getPayPlatform() == 4 && payOptions.getPayMethod() == 2) {
-                    onWeChatScanPay(memberPayResponse.getWechatPayPrepayJson(), memberPayResponse.getOutTradeNo(), payOptions);
-                } else if (payOptions.getPayPlatform() == 1 && payOptions.getPayMethod() == 1) {
-                    onAliPay(memberPayResponse.getAlipayOrderString(), memberPayResponse.getOutTradeNo(), payOptions);
-                } else if (payOptions.getPayPlatform() == 4 && payOptions.getPayMethod() == 1) {
-                    onAliPayScan(memberPayResponse.getAlipayQrcodeHtml(), memberPayResponse.getOutTradeNo(), payOptions);
-                }
-            }
-
-            @Override
-            public void onError(@NonNull Throwable throwable) {
-                throwable.printStackTrace();
-                payOptions.setShowLoadingEvent(false);
-                if (throwable instanceof RxHttpHandler.ServerErrorException) {
-                    RxHttpHandler.ServerErrorException serverErrorException = (RxHttpHandler.ServerErrorException) throwable;
-                    if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_NO_LOGIN_ERROR) {
-                        ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
-                        LoginActivity.start(ActivityUtil.getTopActivity(), ReportUtil.getReportId(payOptions.getMemberType()));
-                    } else if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_HAS_PERMISSION_ERROR) {
-                        ToastUtil.show(R.string.member_has_this_permission, ToastUtil.LENGTH_SHORT);
-                        deviceFuncRepository.refreshFuncAuths();
-                        payRepository.refreshOrderPageList();
-                    } else {
-                        ToastUtil.show(serverErrorException.getMsg(), ToastUtil.LENGTH_SHORT);
-                    }
-                } else {
-                    ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
-                }
-            }
-        });
-    }
-
-    private void onAliPayScan(String s, String orderId, @NonNull PayOptions payOptions) {
-        payOptions.setShowAlQRPaymentEvent(new Pair<>(s, orderId));
-    }
-
-    private void onAliPay(String s, String orderId, @NonNull PayOptions payOptions) {
-        AlipayInfo alipayInfo = new AlipayInfo();
-        alipayInfo.setContent(s);
-        requestSdkPay(alipayInfo, orderId, payOptions, Constants.PAYMENT_WAY_ALIPAY);
-    }
-
-    private void onWeChatScanPay(String s, String orderId, @NonNull PayOptions payOptions) {
-        payOptions.setShowWxQRPaymentEvent(new Pair<>(s, orderId));
-    }
-
-
-    private void onWeChatPay(String s, String orderId, @NonNull PayOptions payOptions) {
-        try {
-            WechatPaymentSignBean wechatPaymentSignBean = gson.fromJson(s, WechatPaymentSignBean.class);
-            WXpayInfo wXpayInfo = new WXpayInfo();
-            wXpayInfo.setAppid(wechatPaymentSignBean.getAppId());
-            wXpayInfo.setPartnerid(wechatPaymentSignBean.getPartnerId());
-            wXpayInfo.setPrepayid(wechatPaymentSignBean.getPrePayId());
-            wXpayInfo.set_package(wechatPaymentSignBean.getPackageName());
-            wXpayInfo.setNoncestr(wechatPaymentSignBean.getRandomStr());
-            wXpayInfo.setTimestamp(wechatPaymentSignBean.getTimeStamp());
-            wXpayInfo.setSign(wechatPaymentSignBean.getSign());
-            requestSdkPay(wXpayInfo, orderId, payOptions, Constants.PAYMENT_WAY_WECHAT);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void requestSdkPay(Object payInfo, String orderId, @NonNull PayOptions payOptions, int payWay) {
-        AgilePay.pay(payInfo, ActivityUtil.getTopActivity(), new AgilePayState() {
-            @Override
-            public void error(int errno, String error) {
-                if (errno == 6001) {
-                    //用户取消支付
-                    return;
-                }
-                ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
-            }
-
-            @Override
-            public void payError(int errno, String error) {
-                if (errno == 6001) {
-                    //用户取消支付
-                    return;
-                }
-                ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
-            }
-
-            @Override
-            public void paySuccess(String result) {
-                EventHelper.reportPay(payOptions.getAmount(), orderId, payWay, payOptions.getGoodsName());
-                payOptions.addDisposable(queryOrderStatus(orderId, payWay, payOptions, true, false));
-            }
-
-            @Override
-            public void payBefore() {
-
-            }
-        });
-    }
-
-    public @NonNull Disposable queryOrderStatus(String orderId, int payWay, @NonNull PayOptions payOptions, boolean showLoading, boolean isReportPay) {
-        if (isReportPay) {
-            OrderReportHelper.recordOrderId(payOptions.getAmount(), orderId, payWay, payOptions.getGoodsName());
-        }
-        return getPayStatus(orderId, 100, 3)
-                .doOnSubscribe(disposable -> {
-                    if (showLoading) {
-                        payOptions.setShowLoadingEvent(true);
-                        payOptions.addDisposable(RxJavaUtil.timer(10, TimeUnit.SECONDS, () -> payOptions.setShowLoadingEvent(false)));
-                    }
-                })
-                .doOnSuccess(success -> {
-                    if (isReportPay) {
-                        if (BoxingUtil.boxing(success)) {
-                            EventHelper.reportPay(payOptions.getAmount(), orderId, payWay, payOptions.getGoodsName());
-                        }
-                    }
-                })
-                .subscribe(aBoolean -> {
-                    payOptions.setShowLoadingEvent(false);
-                    if (BoxingUtil.boxing(aBoolean)) {
-                        payRepository.refreshOrderPageList();
-                        payOptions.setOnSubscribeSuccessEvent(orderId);
-                    }
-                }, throwable -> {
-                    throwable.printStackTrace();
-                    payOptions.setShowLoadingEvent(false);
-                });
-    }
-
-
-    public Single<MemberDetailResponse> memberDetail(@MemberType String type) {
-        return atmobApi.memberDetail(new MemberDetailRequest(type))
-                .compose(RxHttpHandler.handle(false))
-                .compose(RxJavaUtil.SingleSchedule.io2Main());
-    }
-
-    public Single<MemberPayResponse> requestPayOrder(int itemId, int payPlatform, int payMethod) {
-        return atmobApi.requestPayOrder(new MemberPayRequest(itemId, payPlatform, payMethod))
-                .compose(RxHttpHandler.handle(false))
-                .compose(RxJavaUtil.SingleSchedule.io2Main());
-    }
-
-
-    /**
-     * 0-查询失败,继续轮询
-     * 1-未支付,继续轮询
-     * 2-支付成功
-     * 3-支付关闭
-     * 4-已退款
-     */
-    public Single<Boolean> getPayStatus(String orderId, int maxReyTimes, long retryInterval) {
-        return atmobApi.getPayStatus(new PaymentStatusRequest(orderId))
-                .compose(RxHttpHandler.handle(false))
-                .map(PaymentStatusResponse::getStatus)
-                .doOnSuccess(status -> {
-                    if (status != 0 && status != 1) {
-                        OrderReportHelper.removeOderId(orderId);
-                    }
-                })
-                .map(integer -> {
-                    if (BoxingUtil.boxing(integer) == 0 || BoxingUtil.boxing(integer) == 1) {
-                        throw new Exception("支付未完成, status ==> " + integer);
-                    }
-                    return integer;
-                })
-                .retryWhen(RxJavaUtil.retryWhen(null, maxReyTimes, retryInterval, TimeUnit.SECONDS))
-                .onErrorReturnItem(0)
-                .map(integer -> integer == 2)
-                .compose(RxJavaUtil.SingleSchedule.io2Main())
-                .doOnTerminate(deviceFuncRepository::refreshFuncAuths);
-    }
-
-
-}

+ 0 - 32
app/src/main/java/com/datarecovery/master/module/audiorecover/AudioRecoverActivity.java

@@ -60,12 +60,8 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
 
     private PopupWindow filterPopup;
 
-    private int popupHeight;
-    private CommonSureDialog showTrialExportFailDialog;
-    private CommonSureDialog showTrialFinishDialog;
     private UnlockFunctionDialog unlockFunctionDialog;
 
-
     public static void start(Context context) {
         Intent intent = new Intent(context, AudioRecoverActivity.class);
         if (!(context instanceof Activity)) {
@@ -125,8 +121,6 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
     @SuppressLint("NotifyDataSetChanged")
     private void initObserver() {
         audioRecoverViewModel.getScrollTop().observe(this, o -> binding.ryAudioRecover.scrollToPosition(0));
-        audioRecoverViewModel.getShowTrialFinishDialog().observe(this, o -> showTrialFinishDialog());
-        audioRecoverViewModel.getShowTrialExportFailDialog().observe(this, o -> showTrialExportFailDialog());
         audioRecoverViewModel.getShowLoadingEvent().observe(this, this::showLoadingDialog);
         audioRecoverViewModel.getNotifyAudioData().observe(this, o -> audioItemAdapter.notifyDataSetChanged());
         audioRecoverViewModel.getDetectedVideoList().observe(this, list -> audioItemAdapter.submit(list));
@@ -176,31 +170,6 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
         unlockFunctionDialog.show();
     }
 
-    private void showTrialFinishDialog() {
-        if (showTrialFinishDialog == null) {
-            showTrialFinishDialog = new CommonSureDialog(this);
-            showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 7))
-                    .setDialogContent(getString(R.string.trial_scanning_finish_content, 7)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> audioRecoverViewModel.onTrialRecoverClick());
-        }
-        if (!showTrialFinishDialog.isShowing()) {
-            showTrialFinishDialog.show();
-        }
-    }
-
-    private void showTrialExportFailDialog() {
-        if (showTrialExportFailDialog == null) {
-            showTrialExportFailDialog = new CommonSureDialog(this);
-            showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
-                    .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> audioRecoverViewModel.onTrialRecoverClick());
-
-        }
-        if (!showTrialExportFailDialog.isShowing()) {
-            showTrialExportFailDialog.show();
-        }
-    }
-
     public void showLoadingDialog(Boolean show) {
         if (BoxingUtil.boxing(show)) {
             if (loadingDialog == null) {
@@ -245,7 +214,6 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
             if (isFinishing() || isDestroyed()) {
                 return;
             }
-            popupHeight = SizeUtil.getScreenHeight() - binding.vFilter.getBottom();
             filterPopup.showAsDropDown(binding.vFilter, 0, 0);
         });
     }

+ 1 - 38
app/src/main/java/com/datarecovery/master/module/audiorecover/AudioRecoverViewModel.java

@@ -8,18 +8,14 @@ import androidx.lifecycle.Transformations;
 
 import com.atmob.app.lib.base.BaseViewModel;
 import com.atmob.app.lib.livedata.SingleLiveEvent;
-import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.data.repositories.DeviceFuncRepository;
 import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.member.MemberActivity;
-import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.sdk.ad.AtmobAdHelper;
 import com.datarecovery.master.sdk.bugly.BuglyHelper;
-import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FileUtil;
 import com.datarecovery.master.utils.FilesSearch;
 import com.datarecovery.master.utils.MediaStoreHelper;
@@ -29,7 +25,6 @@ import org.reactivestreams.Subscriber;
 import org.reactivestreams.Subscription;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
@@ -55,10 +50,7 @@ public class AudioRecoverViewModel extends BaseViewModel {
     private final List<FilesSearch.DocumentFile> originalDetectedList = new ArrayList<>();
     private final MutableLiveData<List<FilesSearch.DocumentFile>> detectedVideoList = new MutableLiveData<>(new ArrayList<>());
     private final MutableLiveData<List<FilesSearch.DocumentFile>> selectedList = new MutableLiveData<>(new ArrayList<>());
-    private final MutableLiveData<Boolean> showTrialView = new MutableLiveData<>();
     private final SingleLiveEvent<?> scrollTop = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showTrialFinishDialog = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showTrialExportFailDialog = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> showFilterPopup = new SingleLiveEvent<>();
     private final SingleLiveEvent<Boolean> showScanDialogEvent = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> notifyAudioData = new SingleLiveEvent<>();
@@ -97,18 +89,6 @@ public class AudioRecoverViewModel extends BaseViewModel {
         return scrollTop;
     }
 
-    public LiveData<?> getShowTrialFinishDialog() {
-        return showTrialFinishDialog;
-    }
-
-    public LiveData<?> getShowTrialExportFailDialog() {
-        return showTrialExportFailDialog;
-    }
-
-    public LiveData<Boolean> getShowTrialView() {
-        return showTrialView;
-    }
-
     public LiveData<String> getDetectedLastFileName() {
         return detectedLastFileName;
     }
@@ -324,7 +304,7 @@ public class AudioRecoverViewModel extends BaseViewModel {
 
     public void onSizeSortClick(boolean isUp) {
         List<FilesSearch.DocumentFile> list = getList(detectedVideoList);
-        Collections.sort(list, (o1, o2) -> {
+        list.sort((o1, o2) -> {
             if (o1.getSize() > o2.getSize()) {
                 return (isUp) ? 1 : -1;
             } else if (o1.getSize() < o2.getSize()) {
@@ -422,21 +402,4 @@ public class AudioRecoverViewModel extends BaseViewModel {
     protected void onCleared() {
         super.onCleared();
     }
-
-    public void onTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_AUDIO_RECOVER);
-    }
-
-    public void onViewTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_AUDIO_RECOVER);
-    }
-
-    public void scrollPosition(int firstCompletePosition, int lastCompletelyItemPosition, int itemCount) {
-        if (scanDisposable == null || !scanDisposable.isDisposed()) {
-            return;
-        }
-        if (lastCompletelyItemPosition == itemCount - 1 && firstCompletePosition > 0 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialFinishDialog.call();
-        }
-    }
 }

+ 0 - 28
app/src/main/java/com/datarecovery/master/module/filerecover/FileRecoverActivity.java

@@ -51,8 +51,6 @@ public class FileRecoverActivity extends BaseActivity<ActivityFileRecoverBinding
     private CommonSureDialog backDialog;
     private ScanFileDialog scanProgressDialog;
     private ViewPager2.OnPageChangeCallback onPageChangeCallback;
-    private CommonSureDialog showTrialExportFailDialog;
-    private CommonSureDialog showTrialFinishDialog;
     private UnlockFunctionDialog unlockFunctionDialog;
 
     public static void start(Context context) {
@@ -87,8 +85,6 @@ public class FileRecoverActivity extends BaseActivity<ActivityFileRecoverBinding
     }
 
     private void initObserver() {
-        fileRecoverViewModel.getShowTrialFinishDialog().observe(this, o -> showTrialFinishDialog());
-        fileRecoverViewModel.getShowTrialExportFailDialog().observe(this, o -> showTrialExportFailDialog());
         fileRecoverViewModel.getShowLoadingEvent().observe(this, this::showLoadingDialog);
         fileRecoverViewModel.getShowScanDialogEvent().observe(this, this::showScanProgressDialog);
         fileRecoverViewModel.getShowUnlockEvent().observe(this, this::showUnlockDialog);
@@ -137,30 +133,6 @@ public class FileRecoverActivity extends BaseActivity<ActivityFileRecoverBinding
         initTabLayout();
     }
 
-    private void showTrialFinishDialog() {
-        if (showTrialFinishDialog == null) {
-            showTrialFinishDialog = new CommonSureDialog(this);
-            showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 10))
-                    .setDialogContent(getString(R.string.trial_scanning_finish_content, 10)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> fileRecoverViewModel.onTrialRecoverClick());
-        }
-        if (!showTrialFinishDialog.isShowing()) {
-            showTrialFinishDialog.show();
-        }
-    }
-
-    private void showTrialExportFailDialog() {
-        if (showTrialExportFailDialog == null) {
-            showTrialExportFailDialog = new CommonSureDialog(this);
-            showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
-                    .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> fileRecoverViewModel.onTrialRecoverClick());
-        }
-        if (!showTrialExportFailDialog.isShowing()) {
-            showTrialExportFailDialog.show();
-        }
-    }
-
     public void showLoadingDialog(Boolean show) {
         if (BoxingUtil.boxing(show)) {
             if (loadingDialog == null) {

+ 0 - 35
app/src/main/java/com/datarecovery/master/module/filerecover/FileRecoverViewModel.java

@@ -8,15 +8,12 @@ import androidx.lifecycle.Transformations;
 
 import com.atmob.app.lib.base.BaseViewModel;
 import com.atmob.app.lib.livedata.SingleLiveEvent;
-import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.data.repositories.DeviceFuncRepository;
 import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.member.MemberActivity;
-import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.sdk.ad.AtmobAdHelper;
 import com.datarecovery.master.sdk.bugly.BuglyHelper;
 import com.datarecovery.master.utils.BoxingUtil;
@@ -72,8 +69,6 @@ public class FileRecoverViewModel extends BaseViewModel {
     private final MutableLiveData<Boolean> showTrialView = new MutableLiveData<>();
     private final MutableLiveData<String> detectedLastFileName = new MutableLiveData<>();
     private final MutableLiveData<Integer> checkPosition = new MutableLiveData<>();
-    private final SingleLiveEvent<?> showTrialFinishDialog = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showTrialExportFailDialog = new SingleLiveEvent<>();
     private final SingleLiveEvent<Boolean> showLoadingEvent = new SingleLiveEvent<>();
     private final SingleLiveEvent<Boolean> showScanDialogEvent = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> showUnlockEvent = new SingleLiveEvent<>();
@@ -97,15 +92,6 @@ public class FileRecoverViewModel extends BaseViewModel {
         return scrollTop;
     }
 
-    public LiveData<?> getShowTrialFinishDialog() {
-        return showTrialFinishDialog;
-    }
-
-    public LiveData<?> getShowTrialExportFailDialog() {
-        return showTrialExportFailDialog;
-    }
-
-
     public LiveData<Boolean> getShowTrialView() {
         return showTrialView;
     }
@@ -346,25 +332,4 @@ public class FileRecoverViewModel extends BaseViewModel {
         }
         this.selectedList.setValue(selectList);
     }
-
-    public void onTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_FILE_RECOVER);
-    }
-
-    public void onViewTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_FILE_RECOVER);
-    }
-
-    public void scrollPosition(int lastCompletelyItemPosition, int itemCount) {
-        if (scanDisposable == null || !scanDisposable.isDisposed()) {
-            return;
-        }
-        if (lastCompletelyItemPosition == itemCount - 1 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialFinishDialog.call();
-        }
-    }
-
-    public void showTrialFinishDialog() {
-        showTrialFinishDialog.call();
-    }
 }

+ 0 - 28
app/src/main/java/com/datarecovery/master/module/imgrecover/ImageRecoverActivity.java

@@ -65,8 +65,6 @@ public class ImageRecoverActivity extends BaseActivity<ActivityImageRecoverBindi
     private CommonSureDialog backDialog;
     private CommonSureDialog clearDialog;
 
-    private CommonSureDialog showTrialExportFailDialog;
-    private CommonSureDialog showTrialFinishDialog;
     private CommonLoadingDialog loadingDialog;
     private ScanFileDialog scanFileDialog;
     private ImageItemAdapter photoAdapter;
@@ -321,8 +319,6 @@ public class ImageRecoverActivity extends BaseActivity<ActivityImageRecoverBindi
             }
         });
         imageRecoverViewModel.getScrollTop().observe(this, o -> binding.ryImageRecover.scrollToPosition(0));
-        imageRecoverViewModel.getShowTrialFinishDialog().observe(this, o -> showTrialFinishDialog());
-        imageRecoverViewModel.getShowTrialExportFailDialog().observe(this, o -> showTrialExportFailDialog());
         imageRecoverViewModel.getDeleteUriListSdk11().observe(this, list -> {
             if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) {
                 PendingIntent pi = MediaStore.createDeleteRequest(getBaseContext().getContentResolver(), list);
@@ -421,30 +417,6 @@ public class ImageRecoverActivity extends BaseActivity<ActivityImageRecoverBindi
         unlockFunctionDialog.show();
     }
 
-    private void showTrialExportFailDialog() {
-        if (showTrialExportFailDialog == null) {
-            showTrialExportFailDialog = new CommonSureDialog(this);
-            showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
-                    .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> imageRecoverViewModel.onTrialRecoverClick());
-        }
-        if (!showTrialExportFailDialog.isShowing()) {
-            showTrialExportFailDialog.show();
-        }
-    }
-
-    private void showTrialFinishDialog() {
-        if (showTrialFinishDialog == null) {
-            showTrialFinishDialog = new CommonSureDialog(this);
-            showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 13))
-                    .setDialogContent(getString(R.string.trial_scanning_finish_content, 13)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> imageRecoverViewModel.onTrialRecoverClick());
-        }
-        if (!showTrialFinishDialog.isShowing()) {
-            showTrialFinishDialog.show();
-        }
-    }
-
     private void showClearDialog() {
         if (clearDialog == null) {
             clearDialog = new CommonSureDialog(this);

+ 6 - 36
app/src/main/java/com/datarecovery/master/module/imgrecover/ImageRecoverViewModel.java

@@ -19,13 +19,11 @@ import androidx.lifecycle.Transformations;
 import com.atmob.app.lib.base.BaseViewModel;
 import com.atmob.app.lib.livedata.SingleLiveEvent;
 import com.atmob.common.logging.AtmobLog;
-import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.member.MemberActivity;
 import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.sdk.ad.AtmobAdHelper;
 import com.datarecovery.master.sdk.bugly.BuglyHelper;
@@ -80,8 +78,6 @@ public class ImageRecoverViewModel extends BaseViewModel {
     private final MutableLiveData<List<ImageDeepDetector.ImageFile>> selectedList = new MutableLiveData<>(selectList);
 
     private final SingleLiveEvent<List<Uri>> deleteUriListSdk11 = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showTrialFinishDialog = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showTrialExportFailDialog = new SingleLiveEvent<>();
     private final SingleLiveEvent<ImageDeepDetector.ImageFile> failScrollPosition = new SingleLiveEvent<>();
     private final MutableLiveData<Boolean> showTrialView = new MutableLiveData<>();
     private final SingleLiveEvent<Pair<List<ImageDeepDetector.ImageFile>, Integer>> previewEvent = new SingleLiveEvent<>();
@@ -121,14 +117,6 @@ public class ImageRecoverViewModel extends BaseViewModel {
         return scrollTop;
     }
 
-    public LiveData<?> getShowTrialFinishDialog() {
-        return showTrialFinishDialog;
-    }
-
-    public LiveData<?> getShowTrialExportFailDialog() {
-        return showTrialExportFailDialog;
-    }
-
     public LiveData<String> getDetectedLastFileName() {
         return detectedLastFileName;
     }
@@ -552,14 +540,13 @@ public class ImageRecoverViewModel extends BaseViewModel {
         String selection = MediaStore.Audio.Media.DATA;
         String[] selectionArgs = {songPath};
         String[] projection = {MediaStore.Audio.Media._ID};
-        String sortOrder = MediaStore.Audio.Media.TITLE + " ASC";
 
-        Cursor cursor = cr.query(uri, projection, selection + "=?", selectionArgs, null);
-
-        if (cursor != null) {
-            while (cursor.moveToNext()) {
-                int idIndex = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
-                id = Long.parseLong(cursor.getString(idIndex));
+        try (Cursor cursor = cr.query(uri, projection, selection + "=?", selectionArgs, null)) {
+            if (cursor != null) {
+                while (cursor.moveToNext()) {
+                    int idIndex = cursor.getColumnIndex(MediaStore.Audio.Media._ID);
+                    id = Long.parseLong(cursor.getString(idIndex));
+                }
             }
         }
 
@@ -644,23 +631,6 @@ public class ImageRecoverViewModel extends BaseViewModel {
         }
     }
 
-    public void onTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), type);
-    }
-
-    public void onViewTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), type);
-    }
-
-    public void scrollPosition(int lastCompletelyItemPosition, int itemCount) {
-        if (scanDisposable == null || !scanDisposable.isDisposed()) {
-            return;
-        }
-        if (lastCompletelyItemPosition == itemCount - 1 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialFinishDialog.call();
-        }
-    }
-
     private static class CancelDeleteException extends Exception {
     }
 }

+ 0 - 78
app/src/main/java/com/datarecovery/master/module/login/LoginActivity.java

@@ -1,78 +0,0 @@
-package com.datarecovery.master.module.login;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.atmob.app.lib.base.BaseActivity;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.consts.Constants;
-import com.datarecovery.master.databinding.ActivityLoginBinding;
-import com.datarecovery.master.module.browser.BrowserActivity;
-import com.datarecovery.master.utils.SpannableUtil;
-import com.gyf.immersionbar.ImmersionBar;
-
-import dagger.hilt.android.AndroidEntryPoint;
-
-@AndroidEntryPoint
-public class LoginActivity extends BaseActivity<ActivityLoginBinding> {
-
-
-    private static final String REPORT_ID = "reportId";
-    private LoginViewModel loginViewModel;
-
-
-    public static void start(Context context, String reportId) {
-        Intent intent = new Intent(context, LoginActivity.class);
-        if (!(context instanceof Activity)) {
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        }
-        intent.putExtra(REPORT_ID, reportId);
-        context.startActivity(intent);
-    }
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        initView();
-        initObserver();
-    }
-
-    private void initView() {
-        String agreeText = getString(R.string.login_agree_text);
-        String userTermsText = getString(R.string.login_agree_user_terms_text);
-        String privacyPolicyText = getString(R.string.login_agree_privacy_policy_text);
-        SpannableUtil.getAgreementSpannableStringBuilder(binding.loginAgreeText, agreeText, new String[]{userTermsText, privacyPolicyText}, getResources().getColor(R.color.colorPrimary), false,
-                v -> BrowserActivity.start(getBaseContext(), Constants.PRIVACY_POLICY), v -> BrowserActivity.start(getBaseContext(), Constants.USER_AGREEMENT));
-    }
-
-    private void initObserver() {
-        loginViewModel.getFinishEvent().observe(this, o -> finish());
-    }
-
-    @Override
-    protected boolean shouldImmersion() {
-        return true;
-    }
-
-    @Override
-    protected void initViewModel() {
-        super.initViewModel();
-        loginViewModel = getViewModelProvider().get(LoginViewModel.class);
-        binding.setLoginViewModel(loginViewModel);
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-    }
-
-    @Override
-    protected void configImmersion(@NonNull ImmersionBar immersionBar) {
-        immersionBar.statusBarDarkFont(true);
-    }
-}

+ 0 - 284
app/src/main/java/com/datarecovery/master/module/login/LoginViewModel.java

@@ -1,284 +0,0 @@
-package com.datarecovery.master.module.login;
-
-import android.accounts.NetworkErrorException;
-import android.text.TextUtils;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.atmob.app.lib.base.BaseViewModel;
-import com.atmob.app.lib.livedata.SingleLiveEvent;
-import com.atmob.common.logging.AtmobLog;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.response.LoginResponse;
-import com.datarecovery.master.data.consts.ErrorCode;
-import com.datarecovery.master.data.repositories.AccountRepository;
-import com.datarecovery.master.sdk.quicklogin.QuickLoginHelper;
-import com.datarecovery.master.utils.BoxingUtil;
-import com.datarecovery.master.utils.RxHttpHandler;
-import com.datarecovery.master.utils.ToastUtil;
-
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.inject.Inject;
-
-import atmob.reactivex.rxjava3.core.SingleObserver;
-import atmob.reactivex.rxjava3.disposables.Disposable;
-import atmob.rxjava.utils.RxJavaUtil;
-import dagger.hilt.android.lifecycle.HiltViewModel;
-
-
-@HiltViewModel
-public class LoginViewModel extends BaseViewModel {
-
-    private final String TAG = "LoginViewModel";
-
-    private final SingleLiveEvent<Boolean> showLoading = new SingleLiveEvent<>();
-    private final MutableLiveData<String> phoneNum = new MutableLiveData<>();
-    private final MutableLiveData<Boolean> isRequestCodeCountdown = new MutableLiveData<>(false);
-    private final MutableLiveData<Boolean> isCheckedAgreement = new MutableLiveData<>(false);
-    private final MutableLiveData<String> requestCodeCountdown = new MutableLiveData<>();
-    private final MutableLiveData<String> verificationCode = new MutableLiveData<>();
-    private final MutableLiveData<CharSequence> agreeText = new MutableLiveData<>();
-    private final SingleLiveEvent<?> finishEvent = new SingleLiveEvent<>();
-    private final AccountRepository accountRepository;
-    private Disposable getCodeCountdownDisposable;
-
-    @Inject
-    public LoginViewModel(AccountRepository accountRepository) {
-        this.accountRepository = accountRepository;
-        init();
-    }
-
-
-    public LiveData<Boolean> getShowLoading() {
-        return showLoading;
-    }
-
-    public MutableLiveData<String> getPhoneNum() {
-        return phoneNum;
-    }
-
-    public MutableLiveData<String> getVerificationCode() {
-        return verificationCode;
-    }
-
-    public MutableLiveData<Boolean> getIsCheckedAgreement() {
-        return isCheckedAgreement;
-    }
-
-    public LiveData<Boolean> getIsRequestCodeCountdown() {
-        return isRequestCodeCountdown;
-    }
-
-    public LiveData<?> getFinishEvent() {
-        return finishEvent;
-    }
-
-    public LiveData<String> getRequestCodeCountdown() {
-        return requestCodeCountdown;
-    }
-
-    public LiveData<CharSequence> getAgreeText() {
-        return agreeText;
-    }
-
-    public void onBackClick() {
-        finishEvent.call();
-    }
-
-
-    private void init() {
-        getPreMobileNumber();
-    }
-
-    private void getPreMobileNumber() {
-        QuickLoginHelper.openQuickLoginActivity(new QuickLoginHelper.QuickLoginListener() {
-
-            @Override
-            public void onGetTokenSuccess(String YDToken, String accessToken) {
-                quickLogin(YDToken, accessToken);
-            }
-
-            @Override
-            public void onGetTokenError(String msg) {
-                ToastUtil.show(R.string.quick_login_fail, ToastUtil.LENGTH_SHORT);
-            }
-
-            @Override
-            public void onOpenQuickLoginActivity() {
-
-            }
-        });
-    }
-
-    private void quickLogin(String YDToken, String accessToken) {
-        accountRepository.quickLogin(YDToken, accessToken)
-                .subscribe(new SingleObserver<LoginResponse>() {
-                    @Override
-                    public void onSubscribe(@atmob.reactivex.rxjava3.annotations.NonNull Disposable d) {
-                        addDisposable(d);
-                    }
-
-                    @Override
-                    public void onSuccess(@atmob.reactivex.rxjava3.annotations.NonNull LoginResponse loginResponse) {
-                        ToastUtil.show(R.string.login_success, ToastUtil.LENGTH_SHORT);
-                        finishEvent.call();
-                    }
-
-                    @Override
-                    public void onError(@atmob.reactivex.rxjava3.annotations.NonNull Throwable e) {
-                        if (e instanceof NetworkErrorException) {
-                            ToastUtil.show(R.string.net_error, ToastUtil.LENGTH_SHORT);
-                            return;
-                        }
-                        if (e instanceof RxHttpHandler.ServerErrorException) {
-                            RxHttpHandler.ServerErrorException serverErrorException = (RxHttpHandler.ServerErrorException) e;
-                            ToastUtil.show(serverErrorException.getMsg(), ToastUtil.LENGTH_SHORT);
-                        } else {
-                            AtmobLog.e(TAG, "QuickLogin Error: " + e.getMessage());
-                            ToastUtil.show(R.string.quick_login_fail, ToastUtil.LENGTH_SHORT);
-                        }
-                    }
-                });
-    }
-
-
-    public void onGetCodeClick() {
-        String phoneNumText = phoneNum.getValue();
-        if (isPhone(phoneNumText)) {
-            doRequestVerificationCode(phoneNumText);
-        } else {
-            ToastUtil.show(R.string.login_phone_num_11, ToastUtil.LENGTH_SHORT);
-        }
-    }
-
-    private void doRequestVerificationCode(String phoneNumText) {
-        if (BoxingUtil.boxing(isRequestCodeCountdown.getValue())) {
-            ToastUtil.show(R.string.login_request_code_frequently_toast, ToastUtil.LENGTH_SHORT);
-            return;
-        }
-        accountRepository.requestUserCode(phoneNumText)
-                .subscribe(new SingleObserver<Object>() {
-                    @Override
-                    public void onSubscribe(@NonNull Disposable d) {
-                        addDisposable(d);
-                        showLoading.setValue(true);
-                    }
-
-                    @Override
-                    public void onSuccess(@NonNull Object o) {
-                        startGetCodeCountdown();
-                        showLoading.setValue(false);
-                        ToastUtil.show(R.string.login_verification_code_request_success_toast, ToastUtil.LENGTH_SHORT);
-                    }
-
-                    @Override
-                    public void onError(@NonNull Throwable e) {
-                        showLoading.setValue(false);
-                        if (e instanceof AccountRepository.RequestCodeTooOftenException) {
-                            ToastUtil.show(R.string.login_request_code_frequently_toast, ToastUtil.LENGTH_SHORT);
-                            return;
-                        }
-                        e.printStackTrace();
-                        stopGetCodeCountdown();
-                        ToastUtil.show(R.string.login_verification_code_request_failed_toast, ToastUtil.LENGTH_SHORT);
-                    }
-                });
-    }
-
-    private void stopGetCodeCountdown() {
-        if (getCodeCountdownDisposable != null && !getCodeCountdownDisposable.isDisposed()) {
-            getCodeCountdownDisposable.dispose();
-        }
-        isRequestCodeCountdown.setValue(false);
-    }
-
-    private void startGetCodeCountdown() {
-        if (getCodeCountdownDisposable != null && !getCodeCountdownDisposable.isDisposed()) {
-            getCodeCountdownDisposable.dispose();
-        }
-        isRequestCodeCountdown.setValue(true);
-        getCodeCountdownDisposable = RxJavaUtil.interval(0, 1, 60, TimeUnit.SECONDS,
-                index -> requestCodeCountdown.setValue(String.valueOf(60 - index)), () -> isRequestCodeCountdown.setValue(false));
-
-        addDisposable(getCodeCountdownDisposable);
-    }
-
-    public void onLoginClick() {
-        String phoneNumText = phoneNum.getValue();
-        if (!isPhone(phoneNumText)) {
-            ToastUtil.show(R.string.login_phone_num_11, ToastUtil.LENGTH_SHORT);
-            return;
-        }
-        String code = verificationCode.getValue();
-        if (TextUtils.isEmpty(code)) {
-            ToastUtil.show(R.string.login_code_hint, ToastUtil.LENGTH_SHORT);
-            return;
-        }
-        if (!BoxingUtil.boxing(isCheckedAgreement.getValue())) {
-            ToastUtil.show(R.string.login_please_agree, ToastUtil.LENGTH_SHORT);
-            return;
-        }
-        accountRepository.login(phoneNum.getValue(), verificationCode.getValue())
-                .subscribe(new SingleObserver<Object>() {
-                    @Override
-                    public void onSubscribe(@NonNull Disposable d) {
-                        addDisposable(d);
-                        showLoading.setValue(true);
-                    }
-
-                    @Override
-                    public void onSuccess(@NonNull Object o) {
-                        showLoading.setValue(false);
-                        ToastUtil.show(R.string.login_success, ToastUtil.LENGTH_SHORT);
-                        finishEvent.call();
-                    }
-
-                    @Override
-                    public void onError(@NonNull Throwable e) {
-                        showLoading.setValue(false);
-                        if (e instanceof AccountRepository.LoginTooOftenException) {
-                            ToastUtil.show(R.string.login_too_often_toast, ToastUtil.LENGTH_SHORT);
-                            return;
-                        }
-                        if (e instanceof NetworkErrorException) {
-                            ToastUtil.show(R.string.net_error, ToastUtil.LENGTH_SHORT);
-                            return;
-                        }
-                        RxHttpHandler.ServerErrorException serverErrorException
-                                = e instanceof RxHttpHandler.ServerErrorException ? ((RxHttpHandler.ServerErrorException) e) : null;
-                        if (serverErrorException != null) {
-                            if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_VERIFICATION_CODE_ERROR) {
-                                ToastUtil.show(R.string.login_verification_code_error_toast, ToastUtil.LENGTH_SHORT);
-                            } else {
-                                ToastUtil.show(serverErrorException.getMsg(), ToastUtil.LENGTH_SHORT);
-                            }
-                        } else {
-                            ToastUtil.show(R.string.login_failed_toast, ToastUtil.LENGTH_SHORT);
-                        }
-                    }
-                });
-    }
-
-
-    public boolean isCanLogin(String phoneNum, String verificationCode) {
-        return isPhone(phoneNum) && verificationCode != null && verificationCode.length() > 0;
-    }
-
-    private boolean isPhone(String phoneNumText) {
-        Pattern phonePattern = Pattern.compile("^1\\d{10}$");
-        if (phoneNumText == null) {
-            return false;
-        }
-        phoneNumText = phoneNumText.trim();
-        if (TextUtils.isEmpty(phoneNumText)) {
-            return false;
-        }
-        Matcher matcher = phonePattern.matcher(phoneNumText);
-        return matcher.matches();
-    }
-}

+ 0 - 2
app/src/main/java/com/datarecovery/master/module/main/MainActivity.java

@@ -23,7 +23,6 @@ import com.datarecovery.master.module.homepage.HomePageFragment;
 import com.datarecovery.master.module.imgrecover.ImageRecoverActivity;
 import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.module.mine.MineFragment;
-import com.datarecovery.master.module.order.OrderFragment;
 import com.datarecovery.master.module.videorecover.VideoRecoverActivity;
 import com.datarecovery.master.sdk.ad.AtmobAdHelper;
 import com.datarecovery.master.utils.ToastUtil;
@@ -131,7 +130,6 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
                     if (!isInitial) {
                         EventHelper.report(EventId.EVENT_3010000);
                     }
-                } else if (pagerClass.equals(OrderFragment.class)) {
                 } else if (pagerClass.equals(MineFragment.class)) {
                     AtmobAdHelper.showInterstitial(AdFuncId.INTERSTITIAL_MINE, null);
                     if (!isInitial) {

+ 1 - 5
app/src/main/java/com/datarecovery/master/module/main/MainViewModel.java

@@ -3,9 +3,7 @@ package com.datarecovery.master.module.main;
 import com.atmob.app.lib.base.BaseViewModel;
 import com.datarecovery.master.data.repositories.ConfigRepository;
 import com.datarecovery.master.data.repositories.FileScanRepository;
-import com.datarecovery.master.data.repositories.MemberRepository;
 import com.datarecovery.master.utils.GalleryBackupManager;
-import com.datarecovery.master.utils.OrderReportHelper;
 import com.google.gson.Gson;
 
 import javax.inject.Inject;
@@ -16,9 +14,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel;
 public class MainViewModel extends BaseViewModel {
 
     @Inject
-    public MainViewModel(Gson gson, MemberRepository memberRepository, ConfigRepository configRepository, FileScanRepository fileScanRepository) {
-        OrderReportHelper.init(gson, memberRepository);
-
+    public MainViewModel() {
         GalleryBackupManager.getInstance().init();
     }
 }

+ 0 - 267
app/src/main/java/com/datarecovery/master/module/member/MemberActivity.java

@@ -1,267 +0,0 @@
-package com.datarecovery.master.module.member;
-
-import android.annotation.SuppressLint;
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Color;
-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.R;
-import com.datarecovery.master.data.consts.EventId;
-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.handler.EventHelper;
-import com.datarecovery.master.module.main.MainActivity;
-import com.datarecovery.master.module.wxrecover.WeChatRecoverActivity;
-import com.datarecovery.master.utils.BoxingUtil;
-import com.datarecovery.master.utils.GridRecoverItemDecoration;
-import com.datarecovery.master.utils.Maps;
-import com.datarecovery.master.utils.ReportUtil;
-import com.datarecovery.master.utils.SpannableUtil;
-import com.datarecovery.master.widget.InformationSwitchBanner;
-import com.gyf.immersionbar.ImmersionBar;
-
-import java.util.Objects;
-
-import dagger.hilt.android.AndroidEntryPoint;
-
-@AndroidEntryPoint
-public class MemberActivity extends BaseActivity<ActivityMemberBinding> {
-
-
-    public static final String MEMBER_TYPE = "member_type";
-    private MemberViewModel memberViewModel;
-
-    private GoodsItemAdapter goodsItemAdapter;
-
-    private NormalScenesAdapter normalScenesAdapter;
-    private GridLayoutManager gridLayoutManager;
-    private GridRecoverItemDecoration 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));
-        }
-        initTextViewBanner();
-    }
-
-    @SuppressLint("UseCompatLoadingForDrawables")
-    private void initTextViewBanner() {
-        InformationSwitchBanner mTextSwitchBanner = new InformationSwitchBanner(this, binding.viewSwitcher);
-        mTextSwitchBanner.setTextColor(getResources().getDrawable(R.drawable.icon_memeber_buy_avatar), 6, getResources().getColor(com.atmob.app.base.R.color.white), getResources().getColor(com.atmob.app.base.R.color.white));
-        mTextSwitchBanner.update(memberViewModel.getInformationList());
-    }
-
-    private void initView() {
-        addTopStatusBarHeight(binding.toolBar);
-
-        goodsItemAdapter = new GoodsItemAdapter(this);
-        binding.memberDetailList.setAdapter(goodsItemAdapter);
-        binding.memberDetailList.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
-        goodsItemAdapter.setOnItemSelectListener(goodsBean -> memberViewModel.setSelectBean(goodsBean));
-
-        normalScenesAdapter = new NormalScenesAdapter();
-        gridLayoutManager = new GridLayoutManager(this, 2);
-        gridLayoutItemDecoration = new GridRecoverItemDecoration(2, 0, 0.232926829268293f, false);
-        binding.scenesRyView.addItemDecoration(gridLayoutItemDecoration);
-        binding.scenesRyView.setLayoutManager(gridLayoutManager);
-        binding.scenesRyView.setAdapter(normalScenesAdapter);
-
-        memberEvaluateAdapter = new MemberEvaluateAdapter();
-        binding.userEvaluateRyView.setLayoutManager(new LinearLayoutManager(this));
-        binding.userEvaluateRyView.setAdapter(memberEvaluateAdapter);
-
-        binding.toolBar.setNavigationOnClickListener(v -> onBackPressed());
-
-        SpannableUtil.getAgreementSpannableStringBuilder(binding.tvBuyMemberDesc,
-                getResources().getString(R.string.member_service_description_all),
-                new String[]{getResources().getString(R.string.member_service_description)},
-                Color.parseColor("#FCEAC7"),
-                false,
-                v -> ServiceDescriptionActivity.start(this, memberViewModel.getServiceContentTxt())
-        );
-    }
-
-    private void initObserver() {
-        memberViewModel.getOnSubscribeSuccessEvent().observe(this, orderId -> {
-            dismissQrCodeDialog(orderId);
-            setPaySuccessGo();
-        });
-        memberViewModel.getScenesDataList().observe(this, strings -> normalScenesAdapter.setData(strings));
-        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.getEvaluateList().observe(this, evaluateBeans -> memberEvaluateAdapter.submit(evaluateBeans));
-        memberViewModel.getShowChoicePayWayDialog().observe(this, o -> showChoosePaymentWayDialog());
-    }
-
-    private void setPaySuccessGo() {
-        finish();
-        switch (memberViewModel.getMemberType()) {
-            case MemberType.APP_WX_MESSAGE_RECOVER:
-                WeChatRecoverActivity.start(this, MemberType.APP_WX_MESSAGE_RECOVER);
-                break;
-            case MemberType.APP_WX_FRIEND_RECOVER:
-                WeChatRecoverActivity.start(this, MemberType.APP_WX_FRIEND_RECOVER);
-                break;
-            case MemberType.APP_IMAGE_RECOVER:
-                MainActivity.startToTargetActivity(this, MemberType.APP_IMAGE_RECOVER);
-                break;
-            case MemberType.APP_FILE_RECOVER:
-                MainActivity.startToTargetActivity(this, MemberType.APP_FILE_RECOVER);
-                break;
-            case MemberType.APP_VIDEO_RECOVER:
-                MainActivity.startToTargetActivity(this, MemberType.APP_VIDEO_RECOVER);
-                break;
-            case MemberType.APP_AUDIO_RECOVER:
-                MainActivity.startToTargetActivity(this, MemberType.APP_AUDIO_RECOVER);
-                break;
-            case MemberType.APP_IMAGE_CLEAN:
-                MainActivity.startToTargetActivity(this, MemberType.APP_IMAGE_CLEAN);
-                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, (orderId, payWay, showLoading, isReportPay) -> memberViewModel.queryOrderStatus(orderId, payWay, showLoading, isReportPay));
-    }
-
-    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, (orderId, payWay, showLoading, isReportPay) -> memberViewModel.queryOrderStatus(orderId, payWay, showLoading, isReportPay));
-    }
-
-    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;
-    }
-}

+ 0 - 511
app/src/main/java/com/datarecovery/master/module/member/MemberViewModel.java

@@ -1,511 +0,0 @@
-package com.datarecovery.master.module.member;
-
-import android.graphics.Color;
-import android.text.SpannableStringBuilder;
-import android.text.Spanned;
-import android.text.TextUtils;
-import android.text.style.ForegroundColorSpan;
-import android.util.Pair;
-
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.atmob.app.lib.base.BaseViewModel;
-import com.atmob.app.lib.livedata.SingleLiveEvent;
-import com.atmob.common.runtime.ActivityUtil;
-import com.atmob.common.runtime.ContextUtil;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.bean.MemberGoodsBean;
-import com.datarecovery.master.data.api.bean.PayOptionsBean;
-import com.datarecovery.master.data.api.bean.WechatPaymentSignBean;
-import com.datarecovery.master.data.api.response.MemberDetailResponse;
-import com.datarecovery.master.data.api.response.MemberPayResponse;
-import com.datarecovery.master.data.consts.ChannelHelper;
-import com.datarecovery.master.data.consts.ChannelId;
-import com.datarecovery.master.data.consts.Constants;
-import com.datarecovery.master.data.consts.ErrorCode;
-import com.datarecovery.master.data.consts.EventId;
-import com.datarecovery.master.data.repositories.AccountRepository;
-import com.datarecovery.master.data.repositories.ConfigRepository;
-import com.datarecovery.master.data.repositories.DeviceFuncRepository;
-import com.datarecovery.master.data.repositories.MemberRepository;
-import com.datarecovery.master.data.repositories.PayRepository;
-import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.imgrecover.ImageRecoverActivity;
-import com.datarecovery.master.module.login.LoginActivity;
-import com.datarecovery.master.module.main.MainActivity;
-import com.datarecovery.master.module.member.bean.EvaluateBean;
-import com.datarecovery.master.module.member.bean.SuperScenesBean;
-import com.datarecovery.master.module.wxrecover.WeChatRecoverActivity;
-import com.datarecovery.master.utils.BoxingUtil;
-import com.datarecovery.master.utils.Maps;
-import com.datarecovery.master.utils.OrderReportHelper;
-import com.datarecovery.master.utils.ReportUtil;
-import com.datarecovery.master.utils.RxHttpHandler;
-import com.datarecovery.master.utils.ToastUtil;
-import com.google.gson.Gson;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Inject;
-
-import atmob.reactivex.rxjava3.annotations.NonNull;
-import atmob.reactivex.rxjava3.core.SingleObserver;
-import atmob.reactivex.rxjava3.disposables.Disposable;
-import atmob.rxjava.utils.RxJavaUtil;
-import dagger.hilt.android.lifecycle.HiltViewModel;
-import plus.pay.AgilePay;
-import plus.pay.alipay.AlipayInfo;
-import plus.pay.listener.AgilePayState;
-import plus.pay.wxpay.WXpayInfo;
-
-
-@HiltViewModel
-public class MemberViewModel extends BaseViewModel {
-
-
-    private final MemberRepository memberRepository;
-    private final MutableLiveData<String> subscribeTxt = new MutableLiveData<>();
-
-    private final MutableLiveData<List<MemberGoodsBean>> memberGoodsList = new MutableLiveData<>();
-    private final MutableLiveData<List<PayOptionsBean>> payWayList = new MutableLiveData<>();
-    private final MutableLiveData<MemberGoodsBean> selectBean = new MutableLiveData<>();
-    private String serviceContentTxt;
-    private final MutableLiveData<List<EvaluateBean>> evaluateList = new MutableLiveData<>();
-
-    private final SingleLiveEvent<String> onSubscribeSuccessEvent = new SingleLiveEvent<>();
-    private final Gson gson;
-    private final AccountRepository accountRepository;
-    private final PayRepository payRepository;
-    private final DeviceFuncRepository deviceFuncRepository;
-
-    private final SingleLiveEvent<Boolean> showLoadingEvent = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showChoicePayWayDialog = new SingleLiveEvent<>();
-
-    private final MutableLiveData<String[]> scenesDataList = new MutableLiveData<>();
-
-    private final SingleLiveEvent<Pair<String, String>> showWxQRPaymentEvent = new SingleLiveEvent<>();
-    private final SingleLiveEvent<Pair<String, String>> showAliQRPaymentEvent = new SingleLiveEvent<>();
-
-    private final HashMap<String, MemberGoodsBean> orderIdItemMap = new HashMap<>();
-    @MemberType
-    private String memberType;
-
-    private final List<Pair<CharSequence, CharSequence>> informationList = new ArrayList<>();
-
-    @Inject
-    public MemberViewModel(MemberRepository memberRepository, Gson gson, AccountRepository accountRepository, PayRepository payRepository, DeviceFuncRepository deviceFuncRepository) {
-        this.memberRepository = memberRepository;
-        this.deviceFuncRepository = deviceFuncRepository;
-        this.accountRepository = accountRepository;
-        this.payRepository = payRepository;
-        this.gson = gson;
-    }
-
-    public LiveData<String[]> getScenesDataList() {
-        return scenesDataList;
-    }
-
-    public String getMemberType() {
-        return memberType;
-    }
-
-    public LiveData<String> getSubscribeTxt() {
-        return subscribeTxt;
-    }
-
-    public LiveData<Pair<String, String>> getShowWxQRPaymentEvent() {
-        return showWxQRPaymentEvent;
-    }
-
-    public LiveData<Pair<String, String>> getShowAliQRPaymentEvent() {
-        return showAliQRPaymentEvent;
-    }
-
-    public LiveData<Boolean> getShowLoadingEvent() {
-        return showLoadingEvent;
-    }
-
-    public LiveData<?> getShowChoicePayWayDialog() {
-        return showChoicePayWayDialog;
-    }
-
-    public String getServiceContentTxt() {
-        return serviceContentTxt;
-    }
-
-    public LiveData<MemberGoodsBean> getSelectBean() {
-        return selectBean;
-    }
-
-    public void setSelectBean(MemberGoodsBean bean) {
-        selectBean.setValue(bean);
-    }
-
-    public LiveData<List<MemberGoodsBean>> getMemberGoodsList() {
-        return memberGoodsList;
-    }
-
-    public LiveData<List<PayOptionsBean>> getPayWayList() {
-        return payWayList;
-    }
-
-
-    public LiveData<List<EvaluateBean>> getEvaluateList() {
-        return evaluateList;
-    }
-
-    public LiveData<String> getOnSubscribeSuccessEvent() {
-        return onSubscribeSuccessEvent;
-    }
-
-    public void setMemberType(@MemberType String type) {
-        if (!TextUtils.isEmpty(memberType)) {
-            return;
-        }
-        this.memberType = type;
-        if (Objects.equals(memberType, MemberType.APP_IMAGE_CLEAN)) {
-            subscribeTxt.setValue(ContextUtil.getContext().getString(R.string.member_clear_buy));
-        } else {
-            subscribeTxt.setValue(ContextUtil.getContext().getString(R.string.member_recover_buy));
-        }
-        initCommentData();
-        refreshMemberDetail();
-    }
-
-    private void initCommentData() {
-        List<EvaluateBean> evaluateBeans = new ArrayList<>();
-        evaluateBeans.add(new EvaluateBean(R.drawable.icon_evaluate_1, "冬季温暖优雅", "我非常满意数据恢复服务的效果。他们专业的团队帮助我成功恢复了丢失的文件,让我感到非常安心和放心。他们高效的工作速度和专业的技术水平让我对他们的服务印象深刻。强烈推荐!"));
-        evaluateBeans.add(new EvaluateBean(R.drawable.icon_evaluate_2, "Starlight99", "我遇到了数据丢失的问题,但幸运的是找到了文件数据恢复大师。他们的技术团队非常专业,通过他们的努力,我成功地恢复了关键文件。他们提供的服务超出了我的期望,我对他们的工作非常满意。如果您需要数据恢复,我强烈推荐选择他们!"));
-        evaluateBeans.add(new EvaluateBean(R.drawable.icon_evaluate_3, "FreeSpirit777", "文件数据恢复大师为我提供了出色的帮助。他们的团队非常耐心地解释了整个恢复过程,并及时与我沟通进展。最重要的是,他们成功地找回了我认为已经永远丢失的数据。感谢他们的专业和高效服务!"));
-        evaluateList.setValue(evaluateBeans);
-    }
-
-
-    public void refreshMemberDetail() {
-        if (TextUtils.isEmpty(memberType)) {
-            return;
-        }
-        memberRepository.memberDetail(memberType)
-                .subscribe(new SingleObserver<MemberDetailResponse>() {
-                    @Override
-                    public void onSubscribe(@NonNull Disposable d) {
-                        addDisposable(d);
-                    }
-
-                    @Override
-                    public void onSuccess(@NonNull MemberDetailResponse memberDetailResponse) {
-                        memberGoodsList.setValue(memberDetailResponse.getList());
-                        payWayList.setValue(memberDetailResponse.getPayOptions());
-                        serviceContentTxt = memberDetailResponse.getDescription();
-                        List<MemberGoodsBean> list = memberDetailResponse.getList();
-                        if (list != null && !list.isEmpty()) {
-                            for (MemberGoodsBean bean : list) {
-                                if (Objects.equals(bean.getAuths(), MemberType.APP_WX_MESSAGE_RECOVER)) {
-                                    scenesDataList.setValue(new String[]{"微信好友误删", "微信信息恢复", "导出微信记录", "左滑误删消息"});
-                                    break;
-                                } else if (Objects.equals(bean.getAuths(), MemberType.APP_WX_FRIEND_RECOVER)) {
-                                    scenesDataList.setValue(new String[]{"微信好友被删", "微信好友找回", "恢复恢复好友"});
-                                    break;
-                                } else if (Objects.equals(bean.getAuths(), MemberType.APP_IMAGE_RECOVER)) {
-                                    scenesDataList.setValue(new String[]{"相册误删图片", "手机图片丢失", "手机照片找回"});
-                                    break;
-                                } else if (Objects.equals(bean.getAuths(), MemberType.APP_FILE_RECOVER)) {
-                                    scenesDataList.setValue(new String[]{"手机文件清理", "多类型文件找回", "微信/QQ文件找回"});
-                                    break;
-                                } else if (Objects.equals(bean.getAuths(), MemberType.APP_VIDEO_RECOVER)) {
-                                    scenesDataList.setValue(new String[]{"误删手机视频", "手机视频丢失", "手机视频找回"});
-                                    break;
-                                } else if (Objects.equals(bean.getAuths(), MemberType.APP_AUDIO_RECOVER)) {
-                                    scenesDataList.setValue(new String[]{"误删手机音频", "手机音频丢失", "手机音频找回"});
-                                    break;
-                                } else if (Objects.equals(bean.getAuths(), MemberType.APP_IMAGE_CLEAN)) {
-                                    scenesDataList.setValue(new String[]{"手机图片彻底删除", "选择清除手机图片", "扫描手机图片"});
-                                    break;
-                                }
-                            }
-                        }
-                    }
-
-                    @Override
-                    public void onError(@NonNull Throwable e) {
-                        e.printStackTrace();
-                    }
-                });
-    }
-
-    public boolean isMember() {
-        return false;
-    }
-
-    public MemberGoodsBean getMostBuyItem() {
-        List<MemberGoodsBean> memberBeans = memberGoodsList.getValue();
-        if (memberBeans == null) {
-            return null;
-        }
-        for (MemberGoodsBean memberBean : memberBeans) {
-            if (Objects.equals(memberBean.getAuths(), MemberType.APP_SUPER_RECOVER)) {
-                return memberBean;
-            }
-        }
-        return null;
-    }
-
-    public void setCurrentSelectedMember(MemberGoodsBean memberBean) {
-        if (Objects.equals(memberBean, selectBean.getValue())) {
-            return;
-        }
-        selectBean.setValue(memberBean);
-    }
-
-    public void onRetainMemberSubscribeClick() {
-//        if (!BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
-//            ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
-//            LoginActivity.start(ActivityUtil.getTopActivity());
-//            return;
-//        }
-        MemberGoodsBean mostBuyItem = getMostBuyItem();
-        if (mostBuyItem == null) {
-            return;
-        }
-        setCurrentSelectedMember(mostBuyItem);
-        //选择支付方式
-        showChoicePayWayDialog.call();
-    }
-
-
-    public void onMemberSubscribeClick() {
-        if (ChannelHelper.isTargetSuffixChannel(ChannelId.VIVO)) {
-            if (!BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
-                ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
-                LoginActivity.start(ActivityUtil.getTopActivity(), ReportUtil.getReportId(memberType));
-                return;
-            }
-        }
-        MemberGoodsBean currentSelected = selectBean.getValue();
-        if (currentSelected == null) {
-            return;
-        }
-        //选择支付方式
-        showChoicePayWayDialog.call();
-    }
-
-
-    public void submitOrder(int payPlatform, int payMethod) {
-        MemberGoodsBean bean = selectBean.getValue();
-        if (bean == null) {
-            return;
-        }
-        memberRepository.requestPayOrder(bean.getId(), payPlatform, payMethod).subscribe(new SingleObserver<MemberPayResponse>() {
-            @Override
-            public void onSubscribe(@NonNull Disposable d) {
-                addDisposable(d);
-                showLoadingEvent.setValue(true);
-            }
-
-            @Override
-            public void onSuccess(@NonNull MemberPayResponse memberPayResponse) {
-                showLoadingEvent.setValue(false);
-                orderIdItemMap.put(memberPayResponse.getOutTradeNo(), bean);
-                payRepository.refreshOrderPageList();
-                if (payPlatform == 1 && payMethod == 2) {
-                    onWeChatPay(memberPayResponse.getWechatPayPrepayJson(), memberPayResponse.getOutTradeNo());
-                } else if (payPlatform == 4 && payMethod == 2) {
-                    onWeChatScanPay(memberPayResponse.getWechatPayPrepayJson(), memberPayResponse.getOutTradeNo());
-                } else if (payPlatform == 1 && payMethod == 1) {
-                    onAliPay(memberPayResponse.getAlipayOrderString(), memberPayResponse.getOutTradeNo());
-                } else if (payPlatform == 4 && payMethod == 1) {
-                    onAliPayScan(memberPayResponse.getAlipayQrcodeHtml(), memberPayResponse.getOutTradeNo());
-                }
-            }
-
-            @Override
-            public void onError(@NonNull Throwable throwable) {
-                throwable.printStackTrace();
-                showLoadingEvent.setValue(false);
-                if (throwable instanceof RxHttpHandler.ServerErrorException) {
-                    RxHttpHandler.ServerErrorException serverErrorException = (RxHttpHandler.ServerErrorException) throwable;
-                    if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_NO_LOGIN_ERROR) {
-                        ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
-                        LoginActivity.start(ActivityUtil.getTopActivity(), ReportUtil.getReportId(memberType));
-                    } else if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_HAS_PERMISSION_ERROR) {
-                        ToastUtil.show(R.string.member_has_this_permission, ToastUtil.LENGTH_SHORT);
-                        deviceFuncRepository.refreshFuncAuths();
-                        payRepository.refreshOrderPageList();
-                    } else {
-                        ToastUtil.show(serverErrorException.getMsg(), ToastUtil.LENGTH_SHORT);
-                    }
-                } else {
-                    ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
-                }
-            }
-        });
-    }
-
-
-    private void onAliPayScan(String s, String orderId) {
-        showAliQRPaymentEvent.setValue(new Pair<>(s, orderId));
-    }
-
-    private void onAliPay(String s, String orderId) {
-        AlipayInfo alipayInfo = new AlipayInfo();
-        alipayInfo.setContent(s);
-        requestSdkPay(alipayInfo, orderId, Constants.PAYMENT_WAY_ALIPAY);
-    }
-
-    private void onWeChatScanPay(String s, String orderId) {
-        showWxQRPaymentEvent.setValue(new Pair<>(s, orderId));
-    }
-
-    private void onWeChatPay(String s, String orderId) {
-        try {
-            WechatPaymentSignBean wechatPaymentSignBean = gson.fromJson(s, WechatPaymentSignBean.class);
-            WXpayInfo wXpayInfo = new WXpayInfo();
-            wXpayInfo.setAppid(wechatPaymentSignBean.getAppId());
-            wXpayInfo.setPartnerid(wechatPaymentSignBean.getPartnerId());
-            wXpayInfo.setPrepayid(wechatPaymentSignBean.getPrePayId());
-            wXpayInfo.set_package(wechatPaymentSignBean.getPackageName());
-            wXpayInfo.setNoncestr(wechatPaymentSignBean.getRandomStr());
-            wXpayInfo.setTimestamp(wechatPaymentSignBean.getTimeStamp());
-            wXpayInfo.setSign(wechatPaymentSignBean.getSign());
-            requestSdkPay(wXpayInfo, orderId, Constants.PAYMENT_WAY_WECHAT);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void requestSdkPay(Object payInfo, String orderId, int payWay) {
-        AgilePay.pay(payInfo, ActivityUtil.getTopActivity(), new AgilePayState() {
-            @Override
-            public void error(int errno, String error) {
-                if (errno == 6001) {
-                    //用户取消支付
-                    return;
-                }
-                ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
-            }
-
-            @Override
-            public void payError(int errno, String error) {
-                if (errno == 6001) {
-                    //用户取消支付
-                    return;
-                }
-                ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
-            }
-
-            @Override
-            public void paySuccess(String result) {
-                MemberGoodsBean bean = orderIdItemMap.get(orderId);
-                if (bean != null) {
-                    EventHelper.reportPay(bean.getAmount(), orderId, payWay, bean.getName());
-                }
-                queryOrderStatus(orderId, payWay, true, false);
-            }
-
-            @Override
-            public void payBefore() {
-
-            }
-        });
-    }
-
-    public @NonNull Disposable queryOrderStatus(String orderId, int payWay, boolean showLoading, boolean isReportPay) {
-        MemberGoodsBean memberBean = orderIdItemMap.get(orderId);
-        if (memberBean != null && isReportPay) {
-            OrderReportHelper.recordOrderId(memberBean.getAmount(), orderId, payWay, memberBean.getName());
-        }
-        return memberRepository.getPayStatus(orderId, 100, 3)
-                .doOnSubscribe(disposable -> {
-                    if (showLoading) {
-                        showLoadingEvent.setValue(true);
-                        addDisposable(RxJavaUtil.timer(10, TimeUnit.SECONDS, () -> showLoadingEvent.setValue(false)));
-                    }
-                })
-                .doOnSuccess(success -> {
-                    if (isReportPay) {
-                        if (BoxingUtil.boxing(success) && memberBean != null) {
-                            EventHelper.reportPay(memberBean.getAmount(), orderId, payWay, memberBean.getName());
-                        }
-                    }
-                })
-                .subscribe(aBoolean -> {
-                    showLoadingEvent.setValue(false);
-                    if (BoxingUtil.boxing(aBoolean)) {
-                        payRepository.refreshOrderPageList();
-                        onSubscribeSuccessEvent.setValue(orderId);
-                    }
-                }, throwable -> {
-                    throwable.printStackTrace();
-                    showLoadingEvent.setValue(false);
-                });
-    }
-
-    public List<Pair<CharSequence, CharSequence>> getInformationList() {
-        informationList.clear();
-        switch (memberType) {
-            case MemberType.APP_WX_MESSAGE_RECOVER:
-                informationList.add(new Pair<>(getInformationCharSequence("134*****190 购买了", "超级恢复"), "1分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("130*****810 购买了", "微信消息恢复"), "3分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("131*****910 购买了", "超级恢复"), "7分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("191*****724 购买了", "超级恢复"), "9分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("158*****586 购买了", "微信消息恢复"), "11分钟前"));
-                break;
-            case MemberType.APP_WX_FRIEND_RECOVER:
-                informationList.add(new Pair<>(getInformationCharSequence("158*****356 购买了", "微信好友恢复"), "2分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("198*****457 购买了", "微信好友恢复"), "6分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("199*****246 购买了", "超级恢复"), "10分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("139*****471 购买了", "超级恢复"), "13分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("183*****279 购买了", "微信好友恢复"), "14分钟前"));
-                break;
-            case MemberType.APP_IMAGE_RECOVER:
-                informationList.add(new Pair<>(getInformationCharSequence("138*****356 购买了", "图片恢复"), "5分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("150*****126 购买了", "超级恢复"), "6分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("186*****246 购买了", "超级恢复"), "9分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("166*****471 购买了", "超级恢复"), "13分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("132*****279 购买了", "图片恢复"), "16分钟前"));
-                break;
-            case MemberType.APP_FILE_RECOVER:
-                informationList.add(new Pair<>(getInformationCharSequence("187*****356 购买了", "文件恢复"), "5分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("198*****352 购买了", "超级恢复"), "6分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("151*****421 购买了", "文件恢复"), "9分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("159*****471 购买了", "超级恢复"), "13分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("155*****279 购买了", "文件恢复"), "16分钟前"));
-                break;
-            case MemberType.APP_VIDEO_RECOVER:
-                informationList.add(new Pair<>(getInformationCharSequence("181*****356 购买了", "视频恢复"), "2分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("191*****245 购买了", "超级恢复"), "6分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("130*****412 购买了", "视频恢复"), "7分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("147*****471 购买了", "超级恢复"), "13分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("151*****276 购买了", "超级恢复"), "15分钟前"));
-                break;
-            case MemberType.APP_AUDIO_RECOVER:
-                informationList.add(new Pair<>(getInformationCharSequence("137*****096 购买了", "视频恢复"), "2分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("183*****045 购买了", "超级恢复"), "3分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("182*****012 购买了", "视频恢复"), "6分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("133*****571 购买了", "超级恢复"), "8分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("153*****170 购买了", "超级恢复"), "11分钟前"));
-                break;
-            case MemberType.APP_IMAGE_CLEAN:
-                informationList.add(new Pair<>(getInformationCharSequence("180*****754 购买了", "图片清除(永久)"), "2分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("150*****346 购买了", "图片清除(永久)"), "3分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("151*****054 购买了", "图片清除(年)"), "6分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("187*****571 购买了", "图片清除(永久)"), "8分钟前"));
-                informationList.add(new Pair<>(getInformationCharSequence("183*****117 购买了", "图片清除(年)"), "11分钟前"));
-                break;
-        }
-        return informationList;
-    }
-
-
-    public CharSequence getInformationCharSequence(String prefix, String suffix) {
-        return new SpannableStringBuilder()
-                .append(prefix)
-                .append(String.format("%s", suffix), new ForegroundColorSpan(Color.parseColor("#FFF187")), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-    }
-}

+ 0 - 55
app/src/main/java/com/datarecovery/master/module/mine/MineViewModel.java

@@ -12,7 +12,6 @@ import com.atmob.common.data.KVUtils;
 import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.response.CustomerUrlResponse;
 import com.datarecovery.master.data.consts.ChannelHelper;
 import com.datarecovery.master.data.consts.ChannelId;
 import com.datarecovery.master.data.consts.EventId;
@@ -21,13 +20,9 @@ import com.datarecovery.master.data.repositories.ConfigRepository;
 import com.datarecovery.master.data.repositories.DeviceFuncRepository;
 import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.about.AboutActivity;
-import com.datarecovery.master.module.customerservice.CustomerServiceActivity;
 import com.datarecovery.master.module.feedback.UserFeedbackActivity;
 import com.datarecovery.master.module.imgrecover.ImageRecoverActivity;
-import com.datarecovery.master.module.login.LoginActivity;
 import com.datarecovery.master.module.member.MemberType;
-import com.datarecovery.master.sdk.wechat.WechatHelper;
-import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.Maps;
 import com.datarecovery.master.utils.RxHttpHandler;
 import com.datarecovery.master.utils.ToastUtil;
@@ -113,46 +108,12 @@ public class MineViewModel extends BaseViewModel {
         }
     }
 
-    public void refreshCustomerUrl() {
-        configRepository.getCustomerUrl(AccountRepository.getUserId(), AccountRepository.getKeyLoginPhoneNum())
-                .subscribe(new SingleObserver<CustomerUrlResponse>() {
-                    @Override
-                    public void onSubscribe(@NonNull Disposable d) {
-                        addDisposable(d);
-                        showLoading.setValue(true);
-                    }
-
-                    @Override
-                    public void onSuccess(@NonNull CustomerUrlResponse customerUrlResponse) {
-                        showLoading.setValue(false);
-                        goCustomer(customerUrlResponse);
-                    }
-
-                    @Override
-                    public void onError(@NonNull Throwable e) {
-                        showLoading.setValue(false);
-                        ToastUtil.show(R.string.net_error, ToastUtil.LENGTH_SHORT);
-                    }
-                });
-    }
-
-    public void onLoginClick() {
-        if (BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
-            return;
-        }
-        LoginActivity.start(ActivityUtil.getTopActivity(), "hf11018");
-    }
-
     public void onAboutClick() {
         AboutActivity.start(ActivityUtil.getTopActivity());
 
         EventHelper.report(EventId.EVENT_3020001);
     }
 
-    public void onExitClick() {
-        showExitDialog.call();
-    }
-
     public void onAccountExit() {
         accountRepository.requestUserLogout();
     }
@@ -191,20 +152,4 @@ public class MineViewModel extends BaseViewModel {
         ImageRecoverActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_IMAGE_RECOVER);
         EventHelper.report(EventId.EVENT_3000005, Maps.asMap("id", 105));
     }
-
-    private void goCustomer(@NonNull CustomerUrlResponse customerResponse) {
-        switch (customerResponse.getMethod()) {
-            case CustomerUrlResponse.CustomerMethod.METHOD_QIYU:
-                break;
-            case CustomerUrlResponse.CustomerMethod.METHOD_ALI:
-                CustomerServiceActivity.start(ActivityUtil.getTopActivity(), customerResponse.getCustomerUrl());
-                break;
-            case CustomerUrlResponse.CustomerMethod.METHOD_WX:
-                WechatHelper.launchCustomerService(customerResponse.getCustomerUrl());
-                break;
-            default:
-                ToastUtil.show(R.string.no_customer_service, ToastUtil.LENGTH_SHORT);
-                break;
-        }
-    }
 }

+ 0 - 144
app/src/main/java/com/datarecovery/master/module/order/OrderFragment.java

@@ -1,144 +0,0 @@
-package com.datarecovery.master.module.order;
-
-import android.os.Bundle;
-import android.util.Pair;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.recyclerview.widget.LinearLayoutManager;
-
-import com.atmob.app.lib.base.BaseFragment;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.bean.OrderBean;
-import com.datarecovery.master.data.api.bean.PayOptions;
-import com.datarecovery.master.databinding.FragmentOrderBinding;
-import com.datarecovery.master.dialog.AlipayQrCodeDialog;
-import com.datarecovery.master.dialog.CommonLoadingDialog;
-import com.datarecovery.master.dialog.CommonSureDialog;
-import com.datarecovery.master.dialog.WechatPayQrCodeDialog;
-import com.datarecovery.master.utils.BoxingUtil;
-import com.gyf.immersionbar.ImmersionBar;
-
-import java.util.Objects;
-
-import dagger.hilt.android.AndroidEntryPoint;
-
-@AndroidEntryPoint
-public class OrderFragment extends BaseFragment<FragmentOrderBinding> {
-
-
-    private OrderViewModel orderViewModel;
-
-    private OrderItemAdapter orderItemAdapter;
-    private CommonLoadingDialog loadingDialog;
-    private AlipayQrCodeDialog alipayQrCodeDialog;
-    private WechatPayQrCodeDialog wechatPayQrCodeDialog;
-    private CommonSureDialog cancelOrderDialog;
-
-
-    @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        initView();
-        initObserver();
-    }
-
-    private void initView() {
-        orderItemAdapter = new OrderItemAdapter(getViewLifecycleOwner());
-        binding.ryOrder.setAdapter(orderItemAdapter);
-        orderItemAdapter.setOrderActionHandler(new OrderItemAdapter.OrderActionHandler() {
-            @Override
-            public void cancel(OrderBean orderBean) {
-                showCancelDialog(orderBean);
-            }
-
-            @Override
-            public void payOrder(OrderBean orderBean) {
-                orderViewModel.payOrder(orderBean);
-            }
-        });
-        binding.ryOrder.setLayoutManager(new LinearLayoutManager(getContext()));
-        binding.swiperLayout.setOnRefreshListener(() -> orderViewModel.refreshOrderPageList());
-    }
-
-    private void showCancelDialog(OrderBean orderBean) {
-        if (cancelOrderDialog == null) {
-            cancelOrderDialog = new CommonSureDialog(requireActivity());
-            cancelOrderDialog.setDialogTitle(R.string.dialog_kind_tips).setDialogContent(R.string.order_cancel_content);
-        }
-        cancelOrderDialog.setOnDialogClickListener(() -> orderViewModel.cancelOrder(orderBean));
-        cancelOrderDialog.show();
-
-    }
-
-    private void initObserver() {
-        orderViewModel.getOnSubscribeSuccessEvent().observe(getViewLifecycleOwner(), this::dismissQrCodeDialog);
-        orderViewModel.getShowWxQRPaymentEvent().observe(getViewLifecycleOwner(), this::showWxQrCodeDialog);
-        orderViewModel.getShowAliQRPaymentEvent().observe(getViewLifecycleOwner(), this::showAlipayQrCodeDialog);
-        orderViewModel.getLoading().observe(getViewLifecycleOwner(), this::showLoadingDialog);
-        orderViewModel.getOrderList().observe(getViewLifecycleOwner(), list -> orderItemAdapter.submit(list));
-        orderViewModel.getRefreshOrderListEvent().observe(getViewLifecycleOwner(), o -> binding.swiperLayout.setRefreshing(false));
-    }
-
-    private void showWxQrCodeDialog(PayOptions payOptions) {
-        if (payOptions == null || payOptions.getWxQrCode() == null) {
-            return;
-        }
-        Pair<String, String> params = payOptions.getWxQrCode();
-        if (wechatPayQrCodeDialog == null) {
-            wechatPayQrCodeDialog = new WechatPayQrCodeDialog(requireActivity());
-        }
-        wechatPayQrCodeDialog.show(params.first, params.second, (orderId, payWay, showLoading, isReportPay) -> orderViewModel.queryOrderStatus(orderId, payWay, payOptions, showLoading, isReportPay));
-    }
-
-    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 showAlipayQrCodeDialog(PayOptions payOptions) {
-        if (payOptions == null || payOptions.getAlQrCode() == null) {
-            return;
-        }
-        Pair<String, String> params = payOptions.getAlQrCode();
-        if (alipayQrCodeDialog == null) {
-            alipayQrCodeDialog = new AlipayQrCodeDialog(requireActivity());
-        }
-        alipayQrCodeDialog.show(params.first, params.second, (orderId, payWay, showLoading, isReportPay) -> orderViewModel.queryOrderStatus(orderId, payWay, payOptions, showLoading, isReportPay));
-    }
-
-    public void showLoadingDialog(Boolean show) {
-        if (BoxingUtil.boxing(show)) {
-            if (loadingDialog == null) {
-                loadingDialog = new CommonLoadingDialog(requireActivity());
-                loadingDialog.setMessageGone();
-            }
-            loadingDialog.show();
-        } else {
-            if (loadingDialog != null) {
-                loadingDialog.dismiss();
-            }
-        }
-    }
-
-    @Override
-    protected void initViewModel() {
-        super.initViewModel();
-        orderViewModel = getViewModelProvider().get(OrderViewModel.class);
-        binding.setOrderViewModel(orderViewModel);
-    }
-
-    @Override
-    protected void configImmersion(@NonNull ImmersionBar immersionBar) {
-        immersionBar.statusBarDarkFont(true);
-    }
-}

+ 0 - 148
app/src/main/java/com/datarecovery/master/module/order/OrderItemAdapter.java

@@ -1,148 +0,0 @@
-package com.datarecovery.master.module.order;
-
-import android.view.LayoutInflater;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.recyclerview.widget.AsyncListDiffer;
-import androidx.recyclerview.widget.DiffUtil;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.bean.OrderBean;
-import com.datarecovery.master.data.consts.EventId;
-import com.datarecovery.master.databinding.ItemOrderBinding;
-import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.utils.ClipboardUtil;
-import com.datarecovery.master.utils.ToastUtil;
-
-import java.util.List;
-import java.util.Objects;
-
-public class OrderItemAdapter extends RecyclerView.Adapter<OrderItemAdapter.ViewHolder> {
-
-
-    private final AsyncListDiffer<OrderBean> listDiffer;
-    private final LifecycleOwner lifecycleOwner;
-    private OrderActionHandler orderActionHandler;
-
-    public OrderItemAdapter(LifecycleOwner lifecycleOwner) {
-        this.lifecycleOwner = lifecycleOwner;
-        listDiffer = new AsyncListDiffer<>(this, new DiffUtil.ItemCallback<OrderBean>() {
-            @Override
-            public boolean areItemsTheSame(@NonNull OrderBean oldItem, @NonNull OrderBean newItem) {
-                return oldItem.getId() == newItem.getId();
-            }
-
-            @Override
-            public boolean areContentsTheSame(@NonNull OrderBean oldItem, @NonNull OrderBean newItem) {
-                if (!Objects.equals(oldItem.getOutTradeNo(), newItem.getOutTradeNo())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getItemName(), newItem.getItemName())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getAmount(), newItem.getAmount())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getAuthCode(), newItem.getAuthCode())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.isPermanent(), newItem.isPermanent())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getTutorialLink(), newItem.getTutorialLink())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getStatus(), newItem.getStatus())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getExpirationDesc(), newItem.getExpirationDesc())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getOrderStatusDesc(), newItem.getOrderStatusDesc())) {
-                    return false;
-                }
-                if (!Objects.equals(oldItem.getCreateTime(), newItem.getCreateTime())) {
-                    return false;
-                }
-                return true;
-            }
-        });
-
-    }
-
-    public void setOrderActionHandler(OrderActionHandler orderActionHandler) {
-        this.orderActionHandler = orderActionHandler;
-    }
-
-    @NonNull
-    @Override
-    public OrderItemAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
-        ItemOrderBinding binding = ItemOrderBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
-        return new ViewHolder(binding);
-    }
-
-    @Override
-    public void onBindViewHolder(@NonNull OrderItemAdapter.ViewHolder holder, int position) {
-        holder.bind(listDiffer.getCurrentList().get(position));
-    }
-
-    @Override
-    public int getItemCount() {
-        return listDiffer.getCurrentList().size();
-    }
-
-    public void submit(List<OrderBean> list) {
-        listDiffer.submitList(list);
-    }
-
-    public class ViewHolder extends RecyclerView.ViewHolder {
-
-        private final ItemOrderBinding binding;
-
-        public ViewHolder(@NonNull ItemOrderBinding binding) {
-            super(binding.getRoot());
-            this.binding = binding;
-            binding.setLifecycleOwner(lifecycleOwner);
-            binding.setCopyOrderClick(v -> {
-                OrderBean orderBean = binding.getOrderBean();
-                ClipboardUtil.copy(orderBean.getOutTradeNo());
-                ToastUtil.show(R.string.copy_success, ToastUtil.LENGTH_SHORT);
-            });
-            binding.setCopyLinkClick(v -> {
-                OrderBean orderBean = binding.getOrderBean();
-                ClipboardUtil.copy(orderBean.getTutorialLink());
-                ToastUtil.show(R.string.copy_success, ToastUtil.LENGTH_SHORT);
-            });
-            binding.setCopyAuthCodeClick(v -> {
-                OrderBean orderBean = binding.getOrderBean();
-                ClipboardUtil.copy(orderBean.getAuthCode());
-                ToastUtil.show(R.string.copy_success, ToastUtil.LENGTH_SHORT);
-            });
-            binding.setCancelOrderClick(v -> {
-                if (orderActionHandler != null) {
-                    orderActionHandler.cancel(binding.getOrderBean());
-                }
-            });
-            binding.setPayOrderClick(v -> {
-                if (orderActionHandler != null) {
-                    orderActionHandler.payOrder(binding.getOrderBean());
-                }
-            });
-        }
-
-        public void bind(OrderBean orderBean) {
-            binding.setOrderBean(orderBean);
-        }
-    }
-
-
-    public interface OrderActionHandler {
-        void cancel(OrderBean orderBean);
-
-        void payOrder(OrderBean orderBean);
-    }
-
-}

+ 0 - 176
app/src/main/java/com/datarecovery/master/module/order/OrderViewModel.java

@@ -1,176 +0,0 @@
-package com.datarecovery.master.module.order;
-
-import android.accounts.NetworkErrorException;
-import android.annotation.SuppressLint;
-
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.atmob.app.lib.base.BaseViewModel;
-import com.atmob.app.lib.livedata.SingleLiveEvent;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.bean.OrderBean;
-import com.datarecovery.master.data.api.bean.PayOptions;
-import com.datarecovery.master.data.api.response.OrderPageResponse;
-import com.datarecovery.master.data.consts.ErrorCode;
-import com.datarecovery.master.data.consts.EventId;
-import com.datarecovery.master.data.repositories.MemberRepository;
-import com.datarecovery.master.data.repositories.PayRepository;
-import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.utils.Maps;
-import com.datarecovery.master.utils.ReportUtil;
-import com.datarecovery.master.utils.RxHttpHandler;
-import com.datarecovery.master.utils.ToastUtil;
-import com.umeng.vt.diff.V;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import atmob.reactivex.rxjava3.annotations.NonNull;
-import atmob.reactivex.rxjava3.core.SingleObserver;
-import atmob.reactivex.rxjava3.disposables.Disposable;
-import dagger.hilt.android.lifecycle.HiltViewModel;
-
-
-@HiltViewModel
-public class OrderViewModel extends BaseViewModel {
-
-
-    private final PayRepository payRepository;
-
-    private final MutableLiveData<Boolean> loading = new MutableLiveData<>();
-
-    private final SingleLiveEvent<?> refreshOrderListEvent = new SingleLiveEvent<>();
-    private final SingleLiveEvent<PayOptions> showWxQRPaymentEvent = new SingleLiveEvent<>();
-    private final SingleLiveEvent<PayOptions> showAliQRPaymentEvent = new SingleLiveEvent<>();
-    private final SingleLiveEvent<String> onSubscribeSuccessEvent = new SingleLiveEvent<>();
-    private final MemberRepository memberRepository;
-
-
-    @Inject
-    public OrderViewModel(PayRepository payRepository, MemberRepository memberRepository) {
-        this.payRepository = payRepository;
-        this.memberRepository = memberRepository;
-        refreshOrderPageList();
-    }
-
-    public LiveData<String> getOnSubscribeSuccessEvent() {
-        return onSubscribeSuccessEvent;
-    }
-
-    public LiveData<PayOptions> getShowWxQRPaymentEvent() {
-        return showWxQRPaymentEvent;
-    }
-
-    public LiveData<PayOptions> getShowAliQRPaymentEvent() {
-        return showAliQRPaymentEvent;
-    }
-
-    public LiveData<Boolean> getLoading() {
-        return loading;
-    }
-
-    public LiveData<List<OrderBean>> getOrderList() {
-        return payRepository.getOrderList();
-    }
-
-    public LiveData<?> getRefreshOrderListEvent() {
-        return refreshOrderListEvent;
-    }
-
-    public void refreshOrderPageList() {
-        payRepository.orderPage(0, 200).subscribe(new SingleObserver<OrderPageResponse>() {
-            @Override
-            public void onSubscribe(@NonNull Disposable d) {
-                addDisposable(d);
-            }
-
-            @Override
-            public void onSuccess(@NonNull OrderPageResponse orderPageResponse) {
-                refreshOrderListEvent.call();
-            }
-
-            @Override
-            public void onError(@NonNull Throwable e) {
-                refreshOrderListEvent.call();
-            }
-        });
-    }
-
-
-    @SuppressLint("WrongConstant")
-    public void cancelOrder(OrderBean orderBean) {
-        if (orderBean == null) {
-            return;
-        }
-        payRepository.cancelOrder(orderBean.getId()).subscribe(new SingleObserver<Object>() {
-            @Override
-            public void onSubscribe(@NonNull Disposable d) {
-                addDisposable(d);
-                loading.setValue(true);
-            }
-
-            @Override
-            public void onSuccess(@NonNull Object o) {
-                loading.setValue(false);
-                refreshOrderPageList();
-                ToastUtil.show(R.string.order_cancel_order_success, ToastUtil.LENGTH_SHORT);
-
-            }
-
-            @Override
-            public void onError(@NonNull Throwable e) {
-                loading.setValue(false);
-                if (e instanceof NetworkErrorException) {
-                    ToastUtil.show(R.string.net_error, ToastUtil.LENGTH_SHORT);
-                    return;
-                }
-                RxHttpHandler.ServerErrorException serverErrorException
-                        = e instanceof RxHttpHandler.ServerErrorException ? ((RxHttpHandler.ServerErrorException) e) : null;
-                if (serverErrorException != null) {
-                    if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_CANCEL_ORDER_ERROR) {
-                        return;
-                    }
-                }
-                ToastUtil.show(e.getMessage(), ToastUtil.LENGTH_SHORT);
-            }
-        });
-    }
-
-    @SuppressLint("WrongConstant")
-    public void payOrder(OrderBean orderBean) {
-        if (orderBean == null) {
-            return;
-        }
-        int payPlatform = orderBean.getPayPlatform();
-        int payMethod = orderBean.getPayMethod();
-        int goodsId = orderBean.getItemId();
-        if (orderBean.getPayPlatform() == 1 && orderBean.getPayMethod() == 2) {
-        } else if (orderBean.getPayPlatform() == 4 && orderBean.getPayMethod() == 2) {
-        } else if (orderBean.getPayPlatform() == 1 && orderBean.getPayMethod() == 1) {//支付宝
-        } else if (orderBean.getPayPlatform() == 4 && orderBean.getPayMethod() == 1) {//支付宝扫码
-        }
-        memberRepository.payOrder(new PayOptions(
-                this::addDisposable,
-                goodsId,
-                orderBean.getItemName(),
-                orderBean.getFenAmount(),
-                payPlatform,
-                payMethod,
-                orderBean.isPermanent(),
-                orderBean.getAuths(),
-                loading::setValue,
-                onSubscribeSuccessEvent::setValue,
-                showWxQRPaymentEvent::setValue,
-                showAliQRPaymentEvent::setValue
-        ));
-    }
-
-
-    public Disposable queryOrderStatus(String orderId, int payWay, PayOptions payOptions, boolean showLoading, boolean isReportPay) {
-        return memberRepository.queryOrderStatus(orderId, payWay, payOptions, showLoading, isReportPay);
-    }
-}

+ 1 - 42
app/src/main/java/com/datarecovery/master/module/preview/PreviewActivity.java

@@ -23,7 +23,6 @@ import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.databinding.ActivityPreviewBinding;
-import com.datarecovery.master.dialog.CommonSureDialog;
 import com.datarecovery.master.dialog.UnlockFunctionDialog;
 import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.homepage.FunctionBean;
@@ -49,12 +48,7 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
     public static final int TYPE_AUDIO = 3;
     private PreviewViewModel previewViewModel;
     private MediaPlayer mediaPlayer;
-
-
-    private CommonSureDialog showTrialExportFailDialog;
-
     private ViewPager2.OnPageChangeCallback onPageChangeCallback;
-    private CommonSureDialog showFreeStopDialog;
     private UnlockFunctionDialog unlockFunctionDialog;
 
     public static void startImagePreView(Context context, List<ImageDeepDetector.ImageFile> imageFileList, int position) {
@@ -119,16 +113,7 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
     private void initObserver() {
         previewViewModel.getClickMediaPlayerEvent().observe(this, o -> toggleMediaPlayer());
         previewViewModel.getSeekBarProgress().observe(this, process -> mediaPlayer.seekTo(BoxingUtil.boxing(process)));
-        previewViewModel.getShowFreeStopDialog().observe(this, o -> {
-            if (mediaPlayer.isPlaying()) {
-                mediaPlayer.pause();
-            }
-            previewViewModel.setIsPlaying(false);
-            showFreeStopDialog();
-        });
-        previewViewModel.getHandlePlayProgress().observe(this, o -> previewViewModel.handleMediaPlayerProgress(mediaPlayer.getCurrentPosition()));
         previewViewModel.getRefreshAudioCurrentProgress().observe(this, o -> binding.previewAudioSeekbar.setProgress(mediaPlayer.getCurrentPosition()));
-        previewViewModel.getShowTrialExportFailDialog().observe(this, o -> showTrialExportFailDialog());
         previewViewModel.getShowUnlockEvent().observe(this, o -> showUnlockDialog());
     }
 
@@ -146,6 +131,7 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
             unlockFunctionDialog = new UnlockFunctionDialog(this, getFunctionByType(previewViewModel.getType()))
                     .setActionHandler(new UnlockFunctionDialog.ActionHandler() {
                         boolean isRewarded = false;
+
                         @Override
                         public void onUnlock() {
                             AtmobAdHelper.showVideo(AdFuncId.REWARD_RECOVER, new RewardVideoListenerAdapter() {
@@ -194,32 +180,6 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
         return 0;
     }
 
-    private void showFreeStopDialog() {
-        if (showFreeStopDialog == null) {
-            showFreeStopDialog = new CommonSureDialog(this);
-            if (previewViewModel.getType() == TYPE_VIDEO) {
-                showFreeStopDialog.setDialogTitle(R.string.trial_export_video_fail_title)
-                        .setDialogContent(R.string.trial_export_video_fail_content);
-            } else if (previewViewModel.getType() == TYPE_AUDIO) {
-                showFreeStopDialog.setDialogTitle(R.string.trial_export_audio_fail_title)
-                        .setDialogContent(R.string.trial_export_audio_fail_content);
-            }
-            showFreeStopDialog.setSureText(R.string.dialog_trial_recover);
-            showFreeStopDialog.setOnDialogClickListener(() -> previewViewModel.onTrialRecoverClick());
-        }
-        showFreeStopDialog.show();
-    }
-
-    private void showTrialExportFailDialog() {
-        if (showTrialExportFailDialog == null) {
-            showTrialExportFailDialog = new CommonSureDialog(this);
-            showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
-                    .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> previewViewModel.onTrialRecoverClick());
-        }
-        showTrialExportFailDialog.show();
-    }
-
     private void initIntentData() {
         int type = getIntent().getIntExtra("type", 0);
         int position = getIntent().getIntExtra("position", 0);
@@ -309,7 +269,6 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
         try {
             mediaPlayer.setDataSource(this, uri);
             mediaPlayer.setOnPreparedListener(mediaPlayer -> {
-                previewViewModel.setTotalDuration(mediaPlayer.getDuration());
                 if (previewViewModel.getType() == TYPE_VIDEO) {
                     initVideo(mediaPlayer);
                 } else if (previewViewModel.getType() == TYPE_AUDIO) {

+ 0 - 43
app/src/main/java/com/datarecovery/master/module/preview/PreviewViewModel.java

@@ -7,13 +7,10 @@ import androidx.lifecycle.MutableLiveData;
 
 import com.atmob.app.lib.base.BaseViewModel;
 import com.atmob.app.lib.livedata.SingleLiveEvent;
-import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.member.MemberActivity;
-import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.sdk.bugly.BuglyHelper;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FileUtil;
@@ -39,10 +36,7 @@ public class PreviewViewModel extends BaseViewModel {
     private final MutableLiveData<String> title = new MutableLiveData<>();
     private final MutableLiveData<Uri> previewUri = new MutableLiveData<>();
     private final MutableLiveData<Boolean> isPlaying = new MutableLiveData<>();
-    private final SingleLiveEvent<?> showTrialExportFailDialog = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showFreeStopDialog = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> refreshAudioCurrentProgress = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> handlePlayProgress = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> clickMediaPlayerEvent = new SingleLiveEvent<>();
     private final MutableLiveData<Integer> seekBarProgress = new MutableLiveData<>();
     private final MutableLiveData<Boolean> isPlayStart = new MutableLiveData<>();
@@ -54,8 +48,6 @@ public class PreviewViewModel extends BaseViewModel {
     private int position;
     private Timer timer;
     private boolean isSeekbarChanging;
-    private int totalDuration;
-    private int halfwayDuration;
 
     private boolean isSurfaceCreated;
 
@@ -75,10 +67,6 @@ public class PreviewViewModel extends BaseViewModel {
         return seekBarProgress;
     }
 
-    public LiveData<?> getHandlePlayProgress() {
-        return handlePlayProgress;
-    }
-
     public LiveData<?> getRefreshAudioCurrentProgress() {
         return refreshAudioCurrentProgress;
     }
@@ -87,14 +75,6 @@ public class PreviewViewModel extends BaseViewModel {
         isSeekbarChanging = seekbarChanging;
     }
 
-    public LiveData<?> getShowTrialExportFailDialog() {
-        return showTrialExportFailDialog;
-    }
-
-    public LiveData<?> getShowFreeStopDialog() {
-        return showFreeStopDialog;
-    }
-
     public MutableLiveData<Boolean> getIsPlayStart() {
         return isPlayStart;
     }
@@ -271,16 +251,6 @@ public class PreviewViewModel extends BaseViewModel {
         if (timer != null) timer.cancel();
     }
 
-    public void onTrialRecoverClick() {
-        if (type == PreviewActivity.TYPE_IMG) {
-            MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_IMAGE_RECOVER);
-        } else if (type == PreviewActivity.TYPE_AUDIO) {
-            MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_AUDIO_RECOVER);
-        } else if (type == PreviewActivity.TYPE_VIDEO) {
-            MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_VIDEO_RECOVER);
-        }
-    }
-
     public void startMediaTimer() {
         if (timer != null) {
             return;
@@ -299,19 +269,6 @@ public class PreviewViewModel extends BaseViewModel {
         }, 0, 100);
     }
 
-    public void handleMediaPlayerProgress(int currentPosition) {
-        if (currentPosition >= halfwayDuration) {
-            showFreeStopDialog.call();
-            isPlayStart.setValue(false);
-            this.seekBarProgress.setValue(0);
-        }
-    }
-
-    public void setTotalDuration(int totalDuration) {
-        this.totalDuration = totalDuration;
-        this.halfwayDuration = (int) (totalDuration / 2f);
-    }
-
     public void setSeekbarTo(int progress) {
         this.seekBarProgress.setValue(progress);
     }

+ 0 - 30
app/src/main/java/com/datarecovery/master/module/videorecover/VideoRecoverActivity.java

@@ -49,11 +49,8 @@ public class VideoRecoverActivity extends BaseActivity<ActivityVideoRecoverBindi
     private CommonSureDialog backDialog;
     private ScanFileDialog scanFileDialog;
     private VideoItemAdapter videoItemAdapter;
-    private CommonSureDialog showTrialExportFailDialog;
-    private CommonSureDialog showTrialFinishDialog;
     private UnlockFunctionDialog unlockFunctionDialog;
 
-
     public static void start(Context context) {
         Intent intent = new Intent(context, VideoRecoverActivity.class);
         if (!(context instanceof Activity)) {
@@ -91,8 +88,6 @@ public class VideoRecoverActivity extends BaseActivity<ActivityVideoRecoverBindi
     }
 
     private void initObserver() {
-        videoRecoverViewModel.getShowTrialFinishDialog().observe(this, o -> showTrialFinishDialog());
-        videoRecoverViewModel.getShowTrialExportFailDialog().observe(this, o -> showTrialExportFailDialog());
         videoRecoverViewModel.getShowLoadingEvent().observe(this, this::showLoadingDialog);
         videoRecoverViewModel.getDetectedVideoList().observe(this, list -> videoItemAdapter.submit(list));
         videoRecoverViewModel.getScrollTop().observe(this, o -> binding.ryVideoRecover.scrollToPosition(0));
@@ -143,31 +138,6 @@ public class VideoRecoverActivity extends BaseActivity<ActivityVideoRecoverBindi
         unlockFunctionDialog.show();
     }
 
-    private void showTrialFinishDialog() {
-        if (showTrialFinishDialog == null) {
-            showTrialFinishDialog = new CommonSureDialog(this);
-            showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 8))
-                    .setDialogContent(getString(R.string.trial_scanning_finish_content, 8)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> videoRecoverViewModel.onTrialRecoverClick());
-        }
-        if (!showTrialFinishDialog.isShowing()) {
-            showTrialFinishDialog.show();
-        }
-    }
-
-    private void showTrialExportFailDialog() {
-        if (showTrialExportFailDialog == null) {
-            showTrialExportFailDialog = new CommonSureDialog(this);
-            showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
-                    .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> videoRecoverViewModel.onTrialRecoverClick());
-
-        }
-        if (!showTrialExportFailDialog.isShowing()) {
-            showTrialExportFailDialog.show();
-        }
-    }
-
     private void initRecycleView() {
         videoItemAdapter = new VideoItemAdapter(this);
         GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);

+ 0 - 32
app/src/main/java/com/datarecovery/master/module/videorecover/VideoRecoverViewModel.java

@@ -9,18 +9,14 @@ import androidx.lifecycle.Transformations;
 import com.atmob.app.lib.base.BaseViewModel;
 import com.atmob.app.lib.livedata.SingleLiveEvent;
 import com.atmob.common.data.KVUtils;
-import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.data.repositories.DeviceFuncRepository;
 import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.member.MemberActivity;
-import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.sdk.ad.AtmobAdHelper;
 import com.datarecovery.master.sdk.bugly.BuglyHelper;
-import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FileUtil;
 import com.datarecovery.master.utils.FilesSearch;
 import com.datarecovery.master.utils.MediaStoreHelper;
@@ -62,8 +58,6 @@ public class VideoRecoverViewModel extends BaseViewModel {
     private final MutableLiveData<List<FilesSearch.DocumentFile>> detectedVideoList = new MutableLiveData<>();
     private final MutableLiveData<List<FilesSearch.DocumentFile>> selectedList = new MutableLiveData<>(selectList);
     private final MutableLiveData<Boolean> showTrialView = new MutableLiveData<>();
-    private final SingleLiveEvent<?> showTrialFinishDialog = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showTrialExportFailDialog = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> scrollTop = new SingleLiveEvent<>();
     private final SingleLiveEvent<Boolean> showScanDialogEvent = new SingleLiveEvent<>();
     private final SingleLiveEvent<Boolean> showLoadingEvent = new SingleLiveEvent<>();
@@ -87,19 +81,10 @@ public class VideoRecoverViewModel extends BaseViewModel {
         }
     }
 
-    public LiveData<?> getShowTrialFinishDialog() {
-        return showTrialFinishDialog;
-    }
-
     public LiveData<String> getDetectedLastFileName() {
         return detectedLastFileName;
     }
 
-    public LiveData<?> getShowTrialExportFailDialog() {
-        return showTrialExportFailDialog;
-    }
-
-
     public LiveData<Boolean> getShowTrialView() {
         return showTrialView;
     }
@@ -275,21 +260,4 @@ public class VideoRecoverViewModel extends BaseViewModel {
         KVUtils.getDefault().putBoolean(IS_SHOW_VIDEO_HINT, false);
         isShowHint.setValue(false);
     }
-
-    public void onTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_VIDEO_RECOVER);
-    }
-
-    public void onViewTrialRecoverClick() {
-        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_VIDEO_RECOVER);
-    }
-
-    public void scrollPosition(int firstCompletePosition, int lastCompletelyItemPosition, int itemCount) {
-        if (scanDisposable == null || !scanDisposable.isDisposed()) {
-            return;
-        }
-        if (lastCompletelyItemPosition == itemCount - 1 && firstCompletePosition > 0 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialFinishDialog.call();
-        }
-    }
 }

+ 0 - 51
app/src/main/java/com/datarecovery/master/module/wechat/WechatEntryActivity.java

@@ -1,51 +0,0 @@
-package com.datarecovery.master.module.wechat;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-
-import androidx.annotation.Nullable;
-
-import com.datarecovery.master.sdk.wechat.WechatHelper;
-import com.tencent.mm.opensdk.constants.ConstantsAPI;
-import com.tencent.mm.opensdk.modelbase.BaseReq;
-import com.tencent.mm.opensdk.modelbase.BaseResp;
-import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
-
-public class WechatEntryActivity extends Activity implements IWXAPIEventHandler {
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        Intent intent = getIntent();
-        WechatHelper.handleIntent(intent, this);
-    }
-
-    @Override
-    protected void onNewIntent(Intent intent) {
-        super.onNewIntent(intent);
-        setIntent(intent);
-        WechatHelper.handleIntent(intent, this);
-    }
-
-    @Override
-    public void onReq(BaseReq baseReq) {
-        finish();
-    }
-
-    @Override
-    public void onResp(BaseResp baseResp) {
-        if (baseResp.getType() == ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX) {
-            switch (baseResp.errCode) {
-                case BaseResp.ErrCode.ERR_OK:
-                    // 分享成功
-                    break;
-                default:
-                    // 用户取消分享
-                    // 分享失败
-                    break;
-            }
-        }
-        finish();
-    }
-}

+ 0 - 106
app/src/main/java/com/datarecovery/master/module/wxrecover/WeChatRecoverActivity.java

@@ -1,106 +0,0 @@
-package com.datarecovery.master.module.wxrecover;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.text.TextUtils;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.atmob.app.lib.base.BaseActivity;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.repositories.AccountRepository;
-import com.datarecovery.master.databinding.ActivityWxRecoverBinding;
-import com.datarecovery.master.dialog.PermissionDialog;
-import com.datarecovery.master.module.login.LoginActivity;
-import com.datarecovery.master.module.member.MemberType;
-import com.datarecovery.master.utils.FilePermissionHelper;
-import com.datarecovery.master.utils.ReportUtil;
-import com.gyf.immersionbar.ImmersionBar;
-
-import dagger.hilt.android.AndroidEntryPoint;
-
-@AndroidEntryPoint
-public class WeChatRecoverActivity extends BaseActivity<ActivityWxRecoverBinding> {
-
-
-    private WeChatViewModel weChatViewModel;
-    private PermissionDialog loginDialog;
-
-
-    public static void start(Context context, @MemberType String type) {
-        Intent intent = new Intent(context, WeChatRecoverActivity.class);
-        if (!(context instanceof Activity)) {
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        }
-        intent.putExtra("TYPE", type);
-        context.startActivity(intent);
-    }
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        initData();
-        initView();
-        initObserver();
-    }
-
-    private void initData() {
-        weChatViewModel.setType(getIntent().getStringExtra("TYPE"));
-    }
-
-    private void initView() {
-
-    }
-
-    private void showLoginDialog() {
-        loginDialog = new PermissionDialog(this);
-        loginDialog.setDialogContent(R.string.dialog_no_login)
-                .setDialogTitle(R.string.dialog_no_login_title)
-                .setOnDialogClickListener(new PermissionDialog.OnDialogClickListener() {
-                    @Override
-                    public void onClickSure() {
-                        LoginActivity.start(WeChatRecoverActivity.this, ReportUtil.getReportId(weChatViewModel.getType()));
-                    }
-
-                    @Override
-                    public void onClickCancel() {
-                        finish();
-                    }
-                });
-        loginDialog.show();
-    }
-
-    private void initObserver() {
-        weChatViewModel.getFinishEvent().observe(this, o -> finish());
-        weChatViewModel.getShowLoginEvent().observe(this, o -> showLoginDialog());
-    }
-
-    @Override
-    protected boolean shouldImmersion() {
-        return true;
-    }
-
-    @Override
-    protected void initViewModel() {
-        super.initViewModel();
-        weChatViewModel = getViewModelProvider().get(WeChatViewModel.class);
-        binding.setWechatViewModel(weChatViewModel);
-    }
-
-    @Override
-    protected void configImmersion(@NonNull ImmersionBar immersionBar) {
-        immersionBar.statusBarDarkFont(true);
-    }
-
-    @Override
-    protected void onResume() {
-        super.onResume();
-        if (loginDialog != null && loginDialog.isShowing() && !TextUtils.isEmpty(AccountRepository.token)) {
-            weChatViewModel.findOrder();
-            loginDialog.dismiss();
-        }
-    }
-}

+ 0 - 125
app/src/main/java/com/datarecovery/master/module/wxrecover/WeChatViewModel.java

@@ -1,125 +0,0 @@
-package com.datarecovery.master.module.wxrecover;
-
-import android.text.TextUtils;
-
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.atmob.app.lib.base.BaseViewModel;
-import com.atmob.app.lib.livedata.SingleLiveEvent;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.api.response.FindOrderResponse;
-import com.datarecovery.master.data.consts.EventId;
-import com.datarecovery.master.data.repositories.AccountRepository;
-import com.datarecovery.master.data.repositories.PayRepository;
-import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.member.MemberType;
-import com.datarecovery.master.utils.ClipboardUtil;
-import com.datarecovery.master.utils.ToastUtil;
-
-import java.util.Objects;
-
-import javax.inject.Inject;
-
-import atmob.reactivex.rxjava3.annotations.NonNull;
-import atmob.reactivex.rxjava3.core.SingleObserver;
-import atmob.reactivex.rxjava3.disposables.Disposable;
-import dagger.hilt.android.lifecycle.HiltViewModel;
-
-
-@HiltViewModel
-public class WeChatViewModel extends BaseViewModel {
-
-
-    private final SingleLiveEvent<?> finishEvent = new SingleLiveEvent<>();
-    private final SingleLiveEvent<?> showLoginEvent = new SingleLiveEvent<>();
-
-    private final MutableLiveData<FindOrderResponse> findOrderDetail = new MutableLiveData<>();
-    private final PayRepository payRepository;
-    @MemberType
-    private String type;
-
-    @Inject
-    public WeChatViewModel(PayRepository payRepository) {
-        this.payRepository = payRepository;
-        if (TextUtils.isEmpty(AccountRepository.token)) {
-            showLoginEvent.call();
-        } else {
-            findOrder();
-        }
-    }
-
-    public LiveData<?> getShowLoginEvent() {
-        return showLoginEvent;
-    }
-
-    public LiveData<FindOrderResponse> getFindOrderDetail() {
-        return findOrderDetail;
-    }
-
-    public LiveData<?> getFinishEvent() {
-        return finishEvent;
-    }
-
-
-    public void findOrder() {
-        payRepository.findOrder(new String[]{MemberType.APP_SUPER_RECOVER, MemberType.APP_WX_MESSAGE_RECOVER, MemberType.APP_WX_FRIEND_RECOVER}).subscribe(new SingleObserver<FindOrderResponse>() {
-            @Override
-            public void onSubscribe(@NonNull Disposable d) {
-                addDisposable(d);
-            }
-
-            @Override
-            public void onSuccess(@NonNull FindOrderResponse findOrderResponse) {
-                findOrderDetail.setValue(findOrderResponse);
-            }
-
-            @Override
-            public void onError(@NonNull Throwable e) {
-
-            }
-        });
-    }
-
-    public void onBackClick() {
-        finishEvent.call();
-    }
-
-    public void onCopyLinkClick() {
-        FindOrderResponse value = findOrderDetail.getValue();
-        if (value == null) {
-            return;
-        }
-        ClipboardUtil.copy(value.getTutorialUrl());
-        ToastUtil.show(R.string.copy_success, ToastUtil.LENGTH_SHORT);
-    }
-
-    public void onCopyOrderNoClick() {
-        FindOrderResponse value = findOrderDetail.getValue();
-        if (value == null) {
-            return;
-        }
-        ClipboardUtil.copy(value.getOutTradeNo());
-        ToastUtil.show(R.string.copy_success, ToastUtil.LENGTH_SHORT);
-    }
-
-    public void onCopyAuthCodeClick() {
-        FindOrderResponse value = findOrderDetail.getValue();
-        if (value == null) {
-            return;
-        }
-        ClipboardUtil.copy(value.getAuthCode());
-        ToastUtil.show(R.string.copy_success, ToastUtil.LENGTH_SHORT);
-    }
-
-    public void setType(String type) {
-        if (!TextUtils.isEmpty(this.type)) {
-            return;
-        }
-        this.type = type;
-    }
-
-    public String getType() {
-        return type;
-    }
-}

+ 0 - 122
app/src/main/java/com/datarecovery/master/sdk/quicklogin/QuickLoginHelper.java

@@ -1,122 +0,0 @@
-package com.datarecovery.master.sdk.quicklogin;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.graphics.Color;
-
-import com.atmob.common.logging.AtmobLog;
-import com.atmob.common.runtime.ContextUtil;
-import com.datarecovery.master.BuildConfig;
-import com.datarecovery.master.R;
-import com.datarecovery.master.data.consts.Constants;
-import com.netease.nis.quicklogin.QuickLogin;
-import com.netease.nis.quicklogin.helper.UnifyUiConfig;
-import com.netease.nis.quicklogin.listener.QuickLoginPreMobileListener;
-import com.netease.nis.quicklogin.listener.QuickLoginTokenListener;
-
-public class QuickLoginHelper {
-
-    private static final String TAG = "QuickLoginHelper";
-
-    private static final String BUSINESS_ID = BuildConfig.QUICK_LOGIN_ID;
-    private static final String USER_AGREEMENT = Constants.USER_AGREEMENT;
-    private static final String PRIVACY_POLICY = Constants.PRIVACY_POLICY;
-
-    private QuickLoginHelper() {
-    }
-
-
-    public static void init(Context context) {
-        QuickLogin quickLogin = QuickLogin.getInstance();
-        quickLogin.init(context, BUSINESS_ID);
-    }
-
-
-    @SuppressLint("UseCompatLoadingForDrawables")
-    private static UnifyUiConfig getUnifyUiConfig() {
-        return new UnifyUiConfig.Builder()
-                .setStatusBarDarkColor(true)
-                .setHideNavigation(false)
-                .setHideNavigationBackIcon(false)
-                .setNavigationIconDrawable(ContextUtil.getContext().getDrawable(R.drawable.icon_back))
-                .setNavigationBackIconWidth(24)
-                .setNavigationBackIconHeight(24)
-                .setNavigationHeight(56)
-                .setLogoIconDrawable(ContextUtil.getContext().getDrawable(R.mipmap.ic_launcher))
-                .setLogoWidth(65)
-                .setLogoHeight(65)
-                .setLogoTopYOffset(50)
-                .setNavigationTitle(" ")
-                .setLoginBtnText("本机号码一键登录")
-                .setLoginBtnTextColor(Color.parseColor("#FFFFFF"))
-                .setLoginBtnTextSize(16)
-                .setLoginBtnBackgroundDrawable(ContextUtil.getContext().getDrawable(R.drawable.bg_common_btn))
-                .setCheckedImageDrawable(ContextUtil.getContext().getDrawable(R.drawable.icon_login_check_box_checked))
-                .setUnCheckedImageDrawable(ContextUtil.getContext().getDrawable(R.drawable.icon_login_check_box_unchecked))
-                .setPrivacyCheckBoxWidth(24)
-                .setPrivacyCheckBoxHeight(24)
-                .setPrivacyState(false)
-                .setPrivacyTextStart("我已阅读并同意")
-                .setProtocolText("《用户协议》")
-                .setProtocolLink(USER_AGREEMENT)
-                .setProtocol2Text("《隐私政策》")
-                .setProtocol2Link(PRIVACY_POLICY)
-                .setPrivacyTextColor(Color.parseColor("#121313"))
-                .setPrivacyProtocolColor(ContextUtil.getContext().getResources().getColor(R.color.colorPrimary))
-                .setPrivacyMarginLeft(12)
-                .setPrivacyMarginRight(12)
-                .setPrivacyBottomYOffset(20)
-                .setPrivacyDialogAuto(true)
-                .build(ContextUtil.getContext());
-    }
-
-
-    public static void openQuickLoginActivity(QuickLoginListener listener) {
-        if (listener == null) {
-            return;
-        }
-        QuickLogin quickLogin = QuickLogin.getInstance();
-        quickLogin.prefetchMobileNumber(new QuickLoginPreMobileListener() {
-            @Override
-            public void onGetMobileNumberSuccess(String s, String s1) {
-                AtmobLog.d(TAG, "onGetMobileNumberSuccess: " + s + ", " + s1);
-                quickLogin.setUnifyUiConfig(getUnifyUiConfig());
-                listener.onOpenQuickLoginActivity();
-                quickLogin.onePass(new QuickLoginTokenListener() {
-                    @Override
-                    public void onGetTokenSuccess(String YDToken, String accessCode) {
-                        quickLogin.quitActivity();
-                        listener.onGetTokenSuccess(YDToken, accessCode);
-                    }
-
-                    @Override
-                    public void onGetTokenError(String YDToken, int code, String msg) {
-                        AtmobLog.e(TAG, "onGetTokenError: " + code + ", " + msg);
-                        quickLogin.quitActivity();
-                        listener.onGetTokenError(msg);
-                    }
-
-                    @Override
-                    public void onCancelGetToken() {
-                        quickLogin.quitActivity();
-                    }
-                });
-            }
-
-            @Override
-            public void onGetMobileNumberError(String YDToken, String msg) {
-                AtmobLog.e(TAG, "onGetMobileNumberError: " + msg);
-            }
-        });
-    }
-
-    public interface QuickLoginListener {
-
-        void onGetTokenSuccess(String YDToken, String accessToken);
-
-        void onGetTokenError(String msg);
-
-        void onOpenQuickLoginActivity();
-    }
-
-}

+ 0 - 75
app/src/main/java/com/datarecovery/master/sdk/wechat/WechatHelper.java

@@ -1,75 +0,0 @@
-package com.datarecovery.master.sdk.wechat;
-
-import android.annotation.SuppressLint;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-
-import com.atmob.common.runtime.ContextUtil;
-import com.atmob.common.runtime.ProcessUtil;
-import com.datarecovery.master.BuildConfig;
-import com.datarecovery.master.R;
-import com.datarecovery.master.utils.ToastUtil;
-import com.tencent.mm.opensdk.constants.Build;
-import com.tencent.mm.opensdk.constants.ConstantsAPI;
-import com.tencent.mm.opensdk.modelbiz.WXOpenCustomerServiceChat;
-import com.tencent.mm.opensdk.openapi.IWXAPI;
-import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
-import com.tencent.mm.opensdk.openapi.WXAPIFactory;
-
-public class WechatHelper {
-    private static final String APP_ID = BuildConfig.WECHAT_APP_ID;
-
-    private static final String CROP_ID = BuildConfig.WEWORK_CROP_ID;
-
-    private static final String CUSTOMER_SERVICE_URL = "https://work.weixin.qq.com/kfid/" + BuildConfig.WECHAT_KF_ID;
-
-    private static IWXAPI api;
-
-    static {
-        init(ContextUtil.getContext());
-    }
-
-    @SuppressLint("UnspecifiedRegisterReceiverFlag")
-    public static void init(Context context) {
-        if (!ProcessUtil.isMainProcess(context)) {
-            return;
-        }
-        api = WXAPIFactory.createWXAPI(context, APP_ID, true);
-        api.registerApp(APP_ID);
-        context.registerReceiver(new BroadcastReceiver() {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                api.registerApp(APP_ID);
-            }
-        }, new IntentFilter(ConstantsAPI.ACTION_REFRESH_WXAPP));
-    }
-
-    public static void handleIntent(Intent intent, IWXAPIEventHandler iwxapiEventHandler) {
-        if (api == null) {
-            throw new IllegalStateException("WechatHelper not init");
-        }
-        api.handleIntent(intent, iwxapiEventHandler);
-    }
-
-
-    public static void launchCustomerService(String url) {
-        if (api == null) {
-            throw new IllegalStateException("WechatHelper not init");
-        }
-        if (api.getWXAppSupportAPI() >= Build.SUPPORT_OPEN_CUSTOMER_SERVICE_CHAT && api.isWXAppInstalled()) {
-            WXOpenCustomerServiceChat.Req req = new WXOpenCustomerServiceChat.Req();
-            req.corpId = CROP_ID;
-            req.url = url;
-            api.sendReq(req);
-        } else {
-            ToastUtil.show(R.string.wechat_version_too_low_toast, ToastUtil.LENGTH_SHORT);
-        }
-    }
-
-    public static void launchCustomerService() {
-        launchCustomerService(CUSTOMER_SERVICE_URL);
-    }
-
-}

+ 0 - 138
app/src/main/java/com/datarecovery/master/utils/OrderReportHelper.java

@@ -1,138 +0,0 @@
-package com.datarecovery.master.utils;
-
-
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.atmob.common.data.KVUtils;
-import com.datarecovery.master.data.repositories.MemberRepository;
-import com.datarecovery.master.handler.EventHelper;
-import com.datarecovery.master.module.member.bean.PayInfo;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-import javax.inject.Singleton;
-
-import atmob.reactivex.rxjava3.annotations.NonNull;
-import atmob.reactivex.rxjava3.core.SingleObserver;
-import atmob.reactivex.rxjava3.disposables.Disposable;
-
-
-public class OrderReportHelper {
-
-    private static final String TAG = "OrderReportHelper";
-
-    private static HashMap<String, PayInfo> notReportedPayMap;
-
-    private static final String RECORD_PAY_ORDER_ID_LIST = "record_pay_order_id_list";
-
-    private static Gson gson;
-    private static MemberRepository memberRepository;
-
-    private static final long MAX_QUERY_TIME = 30 * 60 * 1000L;
-
-    private OrderReportHelper() {
-
-    }
-
-    @Singleton
-    public static void init(Gson gson, MemberRepository memberRepository) {
-        OrderReportHelper.gson = gson;
-        OrderReportHelper.memberRepository = memberRepository;
-        initMap();
-    }
-
-    private static void initMap() {
-        String payInfoString = KVUtils.getDefault().getString(RECORD_PAY_ORDER_ID_LIST, "");
-        if (TextUtils.isEmpty(payInfoString)) {
-            notReportedPayMap = new HashMap<>();
-        } else {
-            notReportedPayMap = toGsonMap(payInfoString);
-        }
-        queryOrderStatus();
-    }
-
-    public static void queryOrderStatus() {
-        if (notReportedPayMap.size() == 0 || memberRepository == null) {
-            return;
-        }
-        Iterator<String> iterator = notReportedPayMap.keySet().iterator();
-        while (iterator.hasNext()) {
-            String orderId = iterator.next();
-            PayInfo payInfo = notReportedPayMap.get(orderId);
-            if (payInfo == null) {
-                continue;
-            }
-            if (TextUtils.isEmpty(orderId)) {
-                return;
-            }
-            if (System.currentTimeMillis() - payInfo.getPayTime() > MAX_QUERY_TIME) {
-                iterator.remove();
-                save();
-                continue;
-            }
-            memberRepository.getPayStatus(orderId, 10, 3).subscribe(new SingleObserver<Boolean>() {
-                @Override
-                public void onSubscribe(@NonNull Disposable d) {
-
-                }
-
-                @Override
-                public void onSuccess(@NonNull Boolean paySuccess) {
-                    Log.d(TAG, "onSuccess: " + paySuccess + "--orderId:" + orderId);
-                    if (BoxingUtil.boxing(paySuccess)) {
-                        EventHelper.reportPay(payInfo.getPayAmount(), payInfo.getOrderId(), payInfo.getPayWay(), payInfo.getProduct());
-                    }
-                }
-
-                @Override
-                public void onError(@NonNull Throwable e) {
-
-                }
-            });
-        }
-    }
-
-    private static HashMap<String, PayInfo> toGsonMap(String jsonStr) {
-        HashMap<String, PayInfo> res = null;
-        try {
-            res = gson.fromJson(jsonStr, new TypeToken<HashMap<String, PayInfo>>() {
-            }.getType());
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        if (res == null) {
-            res = new HashMap<>();
-        }
-        return res;
-    }
-
-
-    public static void recordOrderId(int payAmount, String orderId, int payWay, String product) {
-        if (notReportedPayMap.containsKey(orderId)) {
-            return;
-        }
-        notReportedPayMap.put(orderId, new PayInfo(payAmount, orderId, payWay, product));
-        save();
-    }
-
-
-    public static void removeOderId(String orderId) {
-        if (TextUtils.isEmpty(orderId)) {
-            return;
-        }
-        boolean contains = notReportedPayMap.containsKey(orderId);
-        if (contains) {
-            notReportedPayMap.remove(orderId);
-            save();
-        }
-    }
-
-    private static void save() {
-        KVUtils.getDefault().putString(RECORD_PAY_ORDER_ID_LIST, gson.toJson(notReportedPayMap));
-    }
-
-}

+ 2 - 66
app/src/main/res/layout/activity_audio_recover.xml

@@ -14,74 +14,16 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
-        <include
-            android:id="@+id/layout_trial"
-            layout="@layout/layout_trial"
-            progress="@{7}"
-            recoverClick="@{()->audioRecoverViewModel.onViewTrialRecoverClick()}"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toBottomOf="@id/v_filter" />
-
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/ry_audio_recover"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:background="#F8F8F8"
             app:layout_constraintBottom_toTopOf="@+id/v_bottom"
-            app:layout_constraintTop_toBottomOf="@+id/layout_trial"
+            app:layout_constraintTop_toBottomOf="@+id/v_filter"
             tools:listitem="@layout/item_data_audio" />
 
         <View
-            android:id="@+id/v_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:layout_marginBottom="12dp"
-            android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->audioRecoverViewModel.onViewTrialRecoverClick()}"
-            app:layout_constraintBottom_toTopOf="@id/v_bottom"
-            app:layout_constraintDimensionRatio="255:36"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintWidth_percent="0.7083333333333333" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="5dp"
-            android:src="@drawable/icon_go_recover"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="58:26"
-            app:layout_constraintLeft_toLeftOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.1611111111111111" />
-
-        <TextView
-            android:id="@+id/tv_go_recover"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="5dp"
-            android:text="@string/trial_go_recover_txt"
-            android:textColor="#333333"
-            android:textSize="12dp"
-            app:layout_constraintBottom_toBottomOf="@id/v_go_recover"
-            app:layout_constraintStart_toEndOf="@+id/iv_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover_right"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginEnd="9dp"
-            android:src="@drawable/icon_recover_right"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toEndOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.05" />
-
-        <View
             android:id="@+id/v_bottom"
             android:layout_width="match_parent"
             android:layout_height="0dp"
@@ -108,12 +50,6 @@
             tools:background="@drawable/bg_common_btn"
             tools:text="立即导出" />
 
-        <androidx.constraintlayout.widget.Group
-            isGone="@{!audioRecoverViewModel.showTrialView}"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            app:constraint_referenced_ids="layout_trial,v_go_recover,iv_go_recover,tv_go_recover,iv_go_recover_right" />
-
         <androidx.appcompat.widget.Toolbar
             android:id="@+id/tool_bar"
             android:layout_width="match_parent"
@@ -130,7 +66,7 @@
                 imageDraw="@{audioRecoverViewModel.checkAll ? @drawable/icon_image_recover_checked : @drawable/icon_image_recover_uncheck}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_gravity="right"
+                android:layout_gravity="end"
                 android:layout_marginEnd="@dimen/app_common_page_horizontal_padding"
                 android:background="?android:attr/selectableItemBackgroundBorderless"
                 android:onClick="@{()->audioRecoverViewModel.onCheckAllClick(!audioRecoverViewModel.checkAll)}"

+ 1 - 69
app/src/main/res/layout/activity_file_recover.xml

@@ -25,7 +25,6 @@
                 style="@style/Tool_Bar_Title_Txt"
                 android:text="@string/file_recover_title" />
 
-
             <ImageView
                 imageDraw="@{fileRecoverViewModel.getCheckAll(fileRecoverViewModel.checkPosition) ? @drawable/icon_image_recover_checked : @drawable/icon_image_recover_uncheck}"
                 android:layout_width="wrap_content"
@@ -37,7 +36,6 @@
                 tools:src="@drawable/icon_image_recover_uncheck" />
         </androidx.appcompat.widget.Toolbar>
 
-
         <com.google.android.material.tabs.TabLayout
             android:id="@+id/tab_layout"
             android:layout_width="match_parent"
@@ -48,78 +46,19 @@
             app:tabIndicatorHeight="0dp"
             app:tabRippleColor="@color/transparent" />
 
-        <include
-            android:id="@+id/layout_trial"
-            layout="@layout/layout_trial"
-            progress="@{10}"
-            recoverClick="@{()->fileRecoverViewModel.onViewTrialRecoverClick()}"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toBottomOf="@id/tab_layout" />
-
         <androidx.viewpager2.widget.ViewPager2
             android:id="@+id/file_view_pager"
             android:layout_width="match_parent"
             android:layout_height="0dp"
             android:background="#F8F8F8"
             app:layout_constraintBottom_toTopOf="@+id/v_bottom"
-            app:layout_constraintTop_toBottomOf="@+id/layout_trial"
+            app:layout_constraintTop_toBottomOf="@+id/tab_layout"
             tools:itemCount="6"
             tools:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
             tools:listitem="@layout/item_data_file"
             tools:spanCount="3" />
 
         <View
-            android:id="@+id/v_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:layout_marginBottom="12dp"
-            android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->fileRecoverViewModel.onViewTrialRecoverClick()}"
-            app:layout_constraintBottom_toTopOf="@+id/v_bottom"
-            app:layout_constraintDimensionRatio="255:36"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintWidth_percent="0.7083333333333333" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="5dp"
-            android:src="@drawable/icon_go_recover"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="58:26"
-            app:layout_constraintLeft_toLeftOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.1611111111111111" />
-
-        <TextView
-            android:id="@+id/tv_go_recover"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="5dp"
-            android:text="@string/trial_go_recover_txt"
-            android:textColor="#333333"
-            android:textSize="12dp"
-            app:layout_constraintBottom_toBottomOf="@id/v_go_recover"
-            app:layout_constraintStart_toEndOf="@+id/iv_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover_right"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginEnd="9dp"
-            android:src="@drawable/icon_recover_right"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toEndOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.05" />
-
-
-        <View
             android:id="@+id/v_bottom"
             android:layout_width="match_parent"
             android:layout_height="0dp"
@@ -146,12 +85,5 @@
             tools:background="@drawable/bg_common_btn"
             tools:text="立即导出" />
 
-        <androidx.constraintlayout.widget.Group
-            isGone="@{!fileRecoverViewModel.showTrialView}"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            app:constraint_referenced_ids="layout_trial,v_go_recover,iv_go_recover,tv_go_recover,iv_go_recover_right" />
-
-
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

+ 1 - 65
app/src/main/res/layout/activity_image_recover.xml

@@ -48,15 +48,6 @@
             app:tabIndicatorHeight="0dp"
             app:tabRippleColor="@color/transparent" />
 
-        <include
-            android:id="@+id/layout_trial"
-            layout="@layout/layout_trial"
-            progress="@{13}"
-            recoverClick="@{()->imageRecoverViewModel.onViewTrialRecoverClick()}"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toBottomOf="@id/tab_layout" />
-
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/ry_image_recover"
             android:layout_width="match_parent"
@@ -64,62 +55,13 @@
             android:background="#F8F8F8"
             android:paddingHorizontal="@dimen/app_common_page_horizontal_padding"
             app:layout_constraintBottom_toTopOf="@+id/v_bottom"
-            app:layout_constraintTop_toBottomOf="@+id/layout_trial"
+            app:layout_constraintTop_toBottomOf="@+id/tab_layout"
             tools:itemCount="6"
             tools:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
             tools:listitem="@layout/item_data_img"
             tools:spanCount="3" />
 
         <View
-            android:id="@+id/v_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:layout_marginBottom="12dp"
-            android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->imageRecoverViewModel.onViewTrialRecoverClick()}"
-            app:layout_constraintBottom_toTopOf="@+id/v_bottom"
-            app:layout_constraintDimensionRatio="255:36"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintWidth_percent="0.7083333333333333" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="5dp"
-            android:src="@drawable/icon_go_recover"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="58:26"
-            app:layout_constraintLeft_toLeftOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.1611111111111111" />
-
-        <TextView
-            android:id="@+id/tv_go_recover"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="5dp"
-            android:text="@string/trial_go_recover_txt"
-            android:textColor="#333333"
-            android:textSize="12dp"
-            app:layout_constraintBottom_toBottomOf="@id/v_go_recover"
-            app:layout_constraintStart_toEndOf="@+id/iv_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover_right"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginEnd="9dp"
-            android:src="@drawable/icon_recover_right"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toEndOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.05" />
-
-        <View
             android:id="@+id/v_bottom"
             android:layout_width="match_parent"
             android:layout_height="0dp"
@@ -146,11 +88,5 @@
             tools:background="@drawable/bg_common_btn"
             tools:text="立即导出" />
 
-        <androidx.constraintlayout.widget.Group
-            isGone="@{!imageRecoverViewModel.showTrialView}"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            app:constraint_referenced_ids="layout_trial,v_go_recover,iv_go_recover,tv_go_recover,iv_go_recover_right" />
-
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

+ 0 - 276
app/src/main/res/layout/activity_login.xml

@@ -1,276 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <data>
-
-        <variable
-            name="loginViewModel"
-            type="com.datarecovery.master.module.login.LoginViewModel" />
-
-        <import type="com.atmob.common.ui.SizeUtil" />
-    </data>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent">
-
-        <ImageView
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:src="@drawable/bg_mine_background"
-            app:layout_constraintDimensionRatio="1080:648"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Space
-            android:id="@+id/space_status_bar"
-            android:layout_width="match_parent"
-            android:layout_height="@{SizeUtil.getStatusBarHeight(), default=@dimen/app_status_bar_height}"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Space
-            android:id="@+id/space1"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:22"
-            app:layout_constraintTop_toBottomOf="@+id/space_status_bar" />
-
-        <ImageView
-            android:id="@+id/iv_back"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:background="?android:attr/selectableItemBackgroundBorderless"
-            android:onClick="@{()->loginViewModel.onBackClick()}"
-            android:src="@drawable/icon_back"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/space1"
-            app:layout_constraintWidth_percent="0.0666666666666667" />
-
-        <Space
-            android:id="@+id/space2"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:32.7"
-            app:layout_constraintTop_toBottomOf="@+id/iv_back" />
-
-        <TextView
-            android:id="@+id/tv_pleasure"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="26dp"
-            android:text="@string/login_pleasure"
-            android:textColor="#202020"
-            android:textSize="30sp"
-            android:textStyle="bold"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/space2" />
-
-        <Space
-            android:id="@+id/space3"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:8.75"
-            app:layout_constraintTop_toBottomOf="@+id/tv_pleasure" />
-
-        <TextView
-            android:id="@+id/tv_desc"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="26dp"
-            android:text="@string/login_pleasure_desc"
-            android:textColor="#404040"
-            android:textSize="16sp"
-            android:textStyle="bold"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/space3" />
-
-        <Space
-            android:id="@+id/space4"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:36.5"
-            app:layout_constraintTop_toBottomOf="@+id/tv_desc" />
-
-        <View
-            android:id="@+id/v_phone"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_marginHorizontal="24dp"
-            android:background="@drawable/bg_login_print"
-            app:layout_constraintDimensionRatio="312:48"
-            app:layout_constraintTop_toBottomOf="@+id/space4" />
-
-        <TextView
-            android:id="@+id/tv_nation"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="12dp"
-            android:text="@string/login_nation"
-            android:textColor="#404040"
-            android:textSize="16sp"
-            android:textStyle="bold"
-            app:layout_constraintBottom_toBottomOf="@+id/v_phone"
-            app:layout_constraintStart_toStartOf="@+id/v_phone"
-            app:layout_constraintTop_toTopOf="@+id/v_phone" />
-
-        <View
-            android:id="@+id/v_line"
-            android:layout_width="1dp"
-            android:layout_height="20dp"
-            android:layout_marginStart="9dp"
-            android:background="#E2E2E2"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_nation"
-            app:layout_constraintStart_toEndOf="@+id/tv_nation"
-            app:layout_constraintTop_toTopOf="@+id/tv_nation" />
-
-        <EditText
-            android:id="@+id/et_phone"
-            isBold="@{loginViewModel.phoneNum.length() > 0}"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginHorizontal="25dp"
-            android:background="@color/transparent"
-            android:gravity="center_vertical"
-            android:hint="@string/login_phone_hint"
-            android:inputType="phone"
-            android:lines="1"
-            android:maxLength="11"
-            android:text="@={loginViewModel.phoneNum}"
-            android:textColor="@color/common_txt_color"
-            android:textColorHint="#A7A7A7"
-            android:textSize="16sp"
-            app:layout_constraintBottom_toBottomOf="@+id/v_phone"
-            app:layout_constraintEnd_toEndOf="@id/v_phone"
-            app:layout_constraintStart_toEndOf="@+id/v_line"
-            app:layout_constraintTop_toTopOf="@+id/v_phone" />
-
-        <Space
-            android:id="@+id/space5"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:11"
-            app:layout_constraintTop_toBottomOf="@+id/v_phone" />
-
-        <View
-            android:id="@+id/v_code"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_marginHorizontal="24dp"
-            android:background="@drawable/bg_login_print"
-            app:layout_constraintDimensionRatio="312:48"
-            app:layout_constraintTop_toBottomOf="@+id/space5" />
-
-        <TextView
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@drawable/bg_common_btn"
-            android:gravity="center"
-            android:onClick="@{()-> loginViewModel.onGetCodeClick()}"
-            android:text="@string/login_send_code"
-            android:textColor="@color/white"
-            android:textSize="14sp"
-            app:isGone="@{loginViewModel.isRequestCodeCountdown}"
-            app:layout_constraintBottom_toBottomOf="@+id/v_code"
-            app:layout_constraintDimensionRatio="90:32"
-            app:layout_constraintEnd_toEndOf="@+id/v_code"
-            app:layout_constraintHorizontal_bias="0.9459459459459459"
-            app:layout_constraintStart_toStartOf="@+id/v_code"
-            app:layout_constraintTop_toTopOf="@+id/v_code"
-            app:layout_constraintWidth_percent="0.25" />
-
-        <TextView
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@drawable/bg_login_send_code"
-            android:gravity="center"
-            android:text="@{@string/login_request_code_countdown_format(loginViewModel.requestCodeCountdown)}"
-            android:textColor="@color/white"
-            android:textSize="14sp"
-            app:isGone="@{!loginViewModel.isRequestCodeCountdown}"
-            app:layout_constraintBottom_toBottomOf="@+id/v_code"
-            app:layout_constraintDimensionRatio="90:32"
-            app:layout_constraintEnd_toEndOf="@+id/v_code"
-            app:layout_constraintHorizontal_bias="0.9459459459459459"
-            app:layout_constraintStart_toStartOf="@+id/v_code"
-            app:layout_constraintTop_toTopOf="@+id/v_code"
-            app:layout_constraintWidth_percent="0.25"
-            tools:visibility="gone" />
-
-        <EditText
-            android:id="@+id/et_code"
-            isBold="@{loginViewModel.verificationCode.length() > 0}"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:maxLength="6"
-            android:layout_marginHorizontal="12dp"
-            android:background="@color/transparent"
-            android:gravity="center_vertical"
-            android:hint="@string/login_code_hint"
-            android:inputType="number"
-            android:text="@={loginViewModel.verificationCode}"
-            android:textColor="@color/common_txt_color"
-            android:textColorHint="#A7A7A7"
-            android:textSize="16sp"
-            app:layout_constraintBottom_toBottomOf="@+id/v_code"
-            app:layout_constraintStart_toStartOf="@+id/v_code"
-            app:layout_constraintTop_toTopOf="@+id/v_code"
-            app:layout_constraintWidth_percent="0.4166666666666667" />
-
-        <Space
-            android:id="@+id/space6"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:12"
-            app:layout_constraintTop_toBottomOf="@+id/et_code" />
-
-        <CheckBox
-            android:id="@+id/login_agree_check_box"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@drawable/bg_login_agree_check_box"
-            android:button="@null"
-            android:checked="@={loginViewModel.isCheckedAgreement}"
-            app:expandTouchSize="@{10}"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintStart_toStartOf="@+id/et_code"
-            app:layout_constraintTop_toBottomOf="@+id/space6"
-            app:layout_constraintWidth_percent="0.0555555555555556"
-            tools:checked="true" />
-
-        <TextView
-            android:id="@+id/login_agree_text"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="4dp"
-            android:textColor="#A7A7A7"
-            android:textSize="12sp"
-            app:layout_constraintBottom_toBottomOf="@+id/login_agree_check_box"
-            app:layout_constraintStart_toEndOf="@+id/login_agree_check_box"
-            app:layout_constraintTop_toTopOf="@+id/login_agree_check_box"
-            tools:text="@string/login_agree_text" />
-
-        <TextView
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@{loginViewModel.isCanLogin(loginViewModel.phoneNum,loginViewModel.verificationCode) ? @drawable/bg_common_btn : @drawable/bg_common_disable_btn}"
-            android:gravity="center"
-            android:onClick="@{()-> loginViewModel.onLoginClick()}"
-            android:text="@string/login_go"
-            android:textColor="@color/white"
-            android:textSize="16sp"
-            android:textStyle="bold"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="280:44"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="@+id/space_status_bar"
-            app:layout_constraintVertical_bias="0.8947368421052632"
-            app:layout_constraintWidth_percent="0.7777777777777778"
-            tools:background="@drawable/bg_common_btn" />
-
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</layout>

+ 0 - 365
app/src/main/res/layout/activity_member.xml

@@ -1,365 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <data>
-
-        <variable
-            name="memberViewModel"
-            type="com.datarecovery.master.module.member.MemberViewModel" />
-
-        <import type="com.atmob.common.ui.SizeUtil" />
-    </data>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="#4C61E5">
-
-        <androidx.appcompat.widget.Toolbar
-            android:id="@+id/tool_bar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:navigationIcon="@drawable/icon_back_white">
-
-            <TextView
-                style="@style/Tool_Bar_Title_Txt"
-                android:text="@string/member_action_title"
-                android:textColor="@color/white" />
-
-        </androidx.appcompat.widget.Toolbar>
-
-
-        <androidx.core.widget.NestedScrollView
-            android:id="@+id/nested_scroll_view"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/tool_bar">
-
-            <androidx.constraintlayout.widget.ConstraintLayout
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content">
-
-                <Space
-                    android:id="@+id/space1"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:8"
-                    app:layout_constraintTop_toTopOf="parent" />
-
-                <View
-                    android:id="@+id/v_buy_bg"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:layout_marginStart="8dp"
-                    android:alpha="0.5"
-                    android:background="@drawable/bg_member_buy"
-                    app:layout_constraintDimensionRatio="284:28"
-                    app:layout_constraintStart_toStartOf="parent"
-                    app:layout_constraintTop_toBottomOf="@id/space1"
-                    app:layout_constraintWidth_percent="0.7888888888888889" />
-
-
-                <ViewSwitcher
-                    android:id="@+id/view_switcher"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginHorizontal="8dp"
-                    app:layout_constraintBottom_toBottomOf="@+id/v_buy_bg"
-                    app:layout_constraintEnd_toEndOf="@+id/v_buy_bg"
-                    app:layout_constraintStart_toStartOf="@+id/v_buy_bg"
-                    app:layout_constraintTop_toTopOf="@+id/v_buy_bg" />
-
-                <Space
-                    android:id="@+id/space2"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:16"
-                    app:layout_constraintTop_toBottomOf="@id/v_buy_bg" />
-
-                <Space
-                    android:id="@+id/space3"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:20"
-                    app:layout_constraintTop_toBottomOf="@+id/space2" />
-
-                <View
-                    android:id="@+id/v_buy_list_bg"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:layout_marginHorizontal="8dp"
-                    android:background="@drawable/bg_member_container"
-                    app:layout_constraintBottom_toBottomOf="@+id/space6"
-                    app:layout_constraintTop_toTopOf="@+id/space3" />
-
-                <ImageView
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:layout_marginHorizontal="8dp"
-                    android:src="@drawable/icon_member_serve"
-                    app:layout_constraintDimensionRatio="1032:300"
-                    app:layout_constraintTop_toTopOf="@id/v_buy_list_bg" />
-
-                <View
-                    android:id="@+id/v_label1"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-                    android:background="@drawable/bg_member_label"
-                    app:layout_constraintBottom_toBottomOf="@+id/tv_choose_services"
-                    app:layout_constraintDimensionRatio="5:16"
-                    app:layout_constraintStart_toStartOf="@id/v_buy_list_bg"
-                    app:layout_constraintTop_toTopOf="@+id/tv_choose_services"
-                    app:layout_constraintWidth_percent="0.0138888888888889" />
-
-                <TextView
-                    android:id="@+id/tv_choose_services"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="6dp"
-                    android:text="@string/member_choose_services"
-                    android:textColor="#202020"
-                    android:textSize="17sp"
-                    android:textStyle="bold"
-                    app:layout_constraintStart_toEndOf="@+id/v_label1"
-                    app:layout_constraintTop_toBottomOf="@+id/space3" />
-
-                <Space
-                    android:id="@+id/space4"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:19"
-                    app:layout_constraintTop_toBottomOf="@+id/tv_choose_services" />
-
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/member_detail_list"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginHorizontal="@dimen/app_common_page_horizontal_padding"
-                    android:overScrollMode="never"
-                    app:layout_constraintEnd_toEndOf="@id/v_buy_list_bg"
-                    app:layout_constraintStart_toStartOf="@id/v_buy_list_bg"
-                    app:layout_constraintTop_toBottomOf="@+id/space4"
-                    tools:itemCount="2"
-                    tools:listitem="@layout/item_member_goods" />
-
-                <Space
-                    android:id="@+id/space5"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:19"
-                    app:layout_constraintTop_toBottomOf="@+id/member_detail_list" />
-
-                <View
-                    android:id="@+id/v_label2"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-                    android:background="@drawable/bg_member_label"
-                    app:layout_constraintBottom_toBottomOf="@+id/tv_scenes_title"
-                    app:layout_constraintDimensionRatio="5:16"
-                    app:layout_constraintStart_toStartOf="@id/v_buy_list_bg"
-                    app:layout_constraintTop_toTopOf="@+id/tv_scenes_title"
-                    app:layout_constraintWidth_percent="0.0138888888888889" />
-
-                <TextView
-                    android:id="@+id/tv_scenes_title"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="6dp"
-                    android:text="@string/member_scenes_title"
-                    android:textColor="#202020"
-                    android:textSize="17sp"
-                    android:textStyle="bold"
-                    app:layout_constraintStart_toEndOf="@+id/v_label2"
-                    app:layout_constraintTop_toBottomOf="@+id/space5" />
-
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/scenes_ry_view"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_marginHorizontal="16dp"
-                    android:layout_marginTop="10dp"
-                    android:background="@drawable/bg_scenes_container"
-                    android:overScrollMode="never"
-                    android:paddingHorizontal="12dp"
-                    android:paddingVertical="8dp"
-                    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
-                    app:layout_constraintEnd_toEndOf="@id/v_buy_list_bg"
-                    app:layout_constraintStart_toStartOf="@id/v_buy_list_bg"
-                    app:layout_constraintTop_toBottomOf="@+id/tv_scenes_title"
-                    app:spanCount="2"
-                    tools:itemCount="4"
-                    tools:listitem="@layout/item_normal_scenes" />
-
-                <Space
-                    android:id="@+id/space6"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:28"
-                    app:layout_constraintTop_toBottomOf="@+id/scenes_ry_view" />
-
-                <Space
-                    android:id="@+id/space7"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:28"
-                    app:layout_constraintTop_toBottomOf="@+id/space6" />
-
-                <Space
-                    android:id="@+id/space8"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:20"
-                    app:layout_constraintTop_toBottomOf="@+id/space7" />
-
-                <View
-                    android:id="@+id/v_user_evaluate_bg"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:background="@drawable/bg_member_evaluate_container"
-                    app:layout_constraintBottom_toBottomOf="@+id/space10"
-                    app:layout_constraintTop_toTopOf="@id/space8" />
-
-                <ImageView
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:src="@drawable/bg_user_evaluate_header"
-                    app:layout_constraintDimensionRatio="1080:378"
-                    app:layout_constraintTop_toTopOf="@+id/v_user_evaluate_bg" />
-
-
-                <View
-                    android:id="@+id/v_label3"
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-                    android:background="@drawable/bg_user_evaluate_label"
-                    app:layout_constraintBottom_toBottomOf="@+id/tv_user_evaluate"
-                    app:layout_constraintDimensionRatio="5:16"
-                    app:layout_constraintStart_toStartOf="@+id/v_user_evaluate_bg"
-                    app:layout_constraintTop_toTopOf="@+id/tv_user_evaluate"
-                    app:layout_constraintWidth_percent="0.0138888888888889" />
-
-                <TextView
-                    android:id="@+id/tv_user_evaluate"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="4dp"
-                    android:text="@string/member_user_evaluate"
-                    android:textColor="#633B00"
-                    android:textSize="16sp"
-                    android:textStyle="bold"
-                    app:layout_constraintStart_toEndOf="@+id/v_label3"
-                    app:layout_constraintTop_toBottomOf="@+id/space8" />
-
-                <Space
-                    android:id="@+id/space9"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:12"
-                    app:layout_constraintTop_toBottomOf="@+id/tv_user_evaluate" />
-
-
-                <androidx.recyclerview.widget.RecyclerView
-                    android:id="@+id/user_evaluate_ry_view"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:overScrollMode="never"
-                    app:layout_constraintTop_toBottomOf="@+id/space9"
-                    tools:itemCount="2"
-                    tools:listitem="@layout/item_member_evaluate" />
-
-                <TextView
-                    android:id="@+id/tv_evaluate_bottom"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:text="@string/member_good_comment"
-                    android:textColor="#AAAAAA"
-                    android:textSize="13sp"
-                    app:layout_constraintEnd_toEndOf="@+id/user_evaluate_ry_view"
-                    app:layout_constraintStart_toStartOf="@+id/user_evaluate_ry_view"
-                    app:layout_constraintTop_toBottomOf="@+id/user_evaluate_ry_view" />
-
-                <Space
-                    android:id="@+id/space10"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:16"
-                    app:layout_constraintTop_toBottomOf="@+id/tv_evaluate_bottom" />
-
-                <View
-                    android:id="@+id/v_bottom_bg"
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    android:background="#F5353D6C"
-                    app:layout_constraintDimensionRatio="360:56"
-                    app:layout_constraintTop_toBottomOf="@+id/space10" />
-
-                <ImageView
-                    android:layout_width="0dp"
-                    android:layout_height="0dp"
-                    android:src="@drawable/icon_member_bottom"
-                    app:layout_constraintBottom_toBottomOf="@+id/v_bottom_bg"
-                    app:layout_constraintDimensionRatio="804:72"
-                    app:layout_constraintEnd_toEndOf="@+id/v_bottom_bg"
-                    app:layout_constraintStart_toStartOf="@+id/v_bottom_bg"
-                    app:layout_constraintTop_toTopOf="@+id/v_bottom_bg"
-                    app:layout_constraintWidth_percent="0.7444444444444444" />
-
-                <Space
-                    android:layout_width="match_parent"
-                    android:layout_height="0dp"
-                    app:layout_constraintDimensionRatio="360:90"
-                    app:layout_constraintTop_toBottomOf="@+id/v_bottom_bg" />
-
-            </androidx.constraintlayout.widget.ConstraintLayout>
-
-        </androidx.core.widget.NestedScrollView>
-
-
-        <View
-            android:id="@+id/v_bottom"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:background="#F5353D6C"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="360:90" />
-
-        <TextView
-            android:id="@+id/tv_buy_member"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_marginHorizontal="@dimen/app_common_page_horizontal_padding"
-            android:layout_marginTop="12dp"
-            android:background="@drawable/bg_member_buy_btn"
-            android:gravity="center"
-            android:onClick="@{() -> memberViewModel.onMemberSubscribeClick()}"
-            android:text="@{memberViewModel.getSubscribeTxt}"
-            android:textColor="#202020"
-            android:textSize="17sp"
-            android:textStyle="bold"
-            app:layout_constraintDimensionRatio="328:44"
-            app:layout_constraintEnd_toEndOf="@+id/v_bottom"
-            app:layout_constraintStart_toStartOf="@+id/v_bottom"
-            app:layout_constraintTop_toTopOf="@+id/v_bottom"
-            tools:text="立即开通" />
-
-        <TextView
-            android:id="@+id/tv_buy_member_desc"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:textColor="@color/white60"
-            app:layout_constraintEnd_toEndOf="@+id/tv_buy_member"
-            app:layout_constraintStart_toStartOf="@+id/tv_buy_member"
-            app:layout_constraintTop_toBottomOf="@+id/tv_buy_member"
-            tools:text="支付即代表您已阅读并同意《服务说明》" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</layout>

+ 2 - 110
app/src/main/res/layout/activity_video_recover.xml

@@ -29,7 +29,7 @@
                 imageDraw="@{videoRecoverViewModel.checkAll ? @drawable/icon_image_recover_checked : @drawable/icon_image_recover_uncheck}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_gravity="right"
+                android:layout_gravity="end"
                 android:layout_marginEnd="@dimen/app_common_page_horizontal_padding"
                 android:background="?android:attr/selectableItemBackgroundBorderless"
                 android:onClick="@{()->videoRecoverViewModel.onCheckAllClick(!videoRecoverViewModel.checkAll)}"
@@ -37,15 +37,6 @@
 
         </androidx.appcompat.widget.Toolbar>
 
-        <include
-            android:id="@+id/layout_trial"
-            layout="@layout/layout_trial"
-            progress="@{8}"
-            recoverClick="@{()->videoRecoverViewModel.onViewTrialRecoverClick()}"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toBottomOf="@id/tool_bar" />
-
         <androidx.recyclerview.widget.RecyclerView
             android:id="@+id/ry_video_recover"
             android:layout_width="match_parent"
@@ -53,104 +44,12 @@
             android:background="#F8F8F8"
             android:paddingHorizontal="@dimen/app_common_page_horizontal_padding"
             app:layout_constraintBottom_toTopOf="@+id/v_bottom"
-            app:layout_constraintTop_toBottomOf="@+id/layout_trial"
+            app:layout_constraintTop_toBottomOf="@+id/tool_bar"
             tools:itemCount="6"
             tools:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
             tools:listitem="@layout/item_data_video"
             tools:spanCount="3" />
 
-        <Space
-            android:id="@+id/space"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintBottom_toTopOf="@+id/v_bottom"
-            app:layout_constraintDimensionRatio="360:12" />
-
-        <TextView
-            android:id="@+id/tv_hint"
-            isGone="@{!videoRecoverViewModel.isShowHint}"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:background="@drawable/bg_video_preview_hint"
-            android:drawablePadding="4dp"
-            android:gravity="center_vertical"
-            android:onClick="@{()-> videoRecoverViewModel.closeHintClick()}"
-            android:padding="5dp"
-            android:text="@string/video_recover_hint"
-            android:textColor="#202020"
-            android:textSize="12dp"
-            app:drawableStartCompat="@drawable/icon_hint"
-            app:layout_constraintBottom_toTopOf="@+id/space"
-            app:layout_constraintDimensionRatio="196:30"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintWidth_percent="0.5444444444444444" />
-
-        <TextView
-            isGone="@{!videoRecoverViewModel.isShowHint}"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginEnd="5dp"
-            android:background="@drawable/bg_video_recover_close"
-            android:gravity="center"
-            android:text="@string/video_hint_close"
-            android:textColor="@color/white"
-            android:textSize="11dp"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_hint"
-            app:layout_constraintDimensionRatio="38:18"
-            app:layout_constraintEnd_toEndOf="@+id/tv_hint"
-            app:layout_constraintTop_toTopOf="@+id/tv_hint"
-            app:layout_constraintWidth_percent="0.1055555555555556" />
-
-        <View
-            android:id="@+id/v_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->videoRecoverViewModel.onViewTrialRecoverClick()}"
-            app:layout_constraintBottom_toTopOf="@+id/space"
-            app:layout_constraintDimensionRatio="255:36"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintWidth_percent="0.7083333333333333" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="5dp"
-            android:src="@drawable/icon_go_recover"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="58:26"
-            app:layout_constraintLeft_toLeftOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.1611111111111111" />
-
-        <TextView
-            android:id="@+id/tv_go_recover"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="5dp"
-            android:text="@string/trial_go_recover_txt"
-            android:textColor="#333333"
-            android:textSize="12dp"
-            app:layout_constraintBottom_toBottomOf="@id/v_go_recover"
-            app:layout_constraintStart_toEndOf="@+id/iv_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover" />
-
-        <ImageView
-            android:id="@+id/iv_go_recover_right"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginEnd="9dp"
-            android:src="@drawable/icon_recover_right"
-            app:layout_constraintBottom_toBottomOf="@+id/v_go_recover"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintEnd_toEndOf="@+id/v_go_recover"
-            app:layout_constraintTop_toTopOf="@+id/v_go_recover"
-            app:layout_constraintWidth_percent="0.05" />
-
-
         <View
             android:id="@+id/v_bottom"
             android:layout_width="match_parent"
@@ -178,12 +77,5 @@
             tools:background="@drawable/bg_common_btn"
             tools:text="立即导出" />
 
-        <androidx.constraintlayout.widget.Group
-            isGone="@{!videoRecoverViewModel.showTrialView}"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            app:constraint_referenced_ids="layout_trial,v_go_recover,iv_go_recover,tv_go_recover,iv_go_recover_right" />
-
-
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

+ 0 - 302
app/src/main/res/layout/activity_wx_recover.xml

@@ -1,302 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <data>
-
-        <variable
-            name="wechatViewModel"
-            type="com.datarecovery.master.module.wxrecover.WeChatViewModel" />
-
-        <import type="com.atmob.common.ui.SizeUtil" />
-    </data>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="#EFEFEF">
-
-
-        <ImageView
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:src="@drawable/bg_mine_background"
-            app:layout_constraintDimensionRatio="1080:648"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Space
-            android:id="@+id/space_status_bar"
-            android:layout_width="match_parent"
-            android:layout_height="@{SizeUtil.getStatusBarHeight(), default=@dimen/app_status_bar_height}"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Space
-            android:id="@+id/space1"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:22"
-            app:layout_constraintTop_toBottomOf="@+id/space_status_bar" />
-
-        <ImageView
-            android:id="@+id/iv_back"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:background="?android:attr/selectableItemBackgroundBorderless"
-            android:onClick="@{()->wechatViewModel.onBackClick()}"
-            android:src="@drawable/icon_back"
-            app:layout_constraintDimensionRatio="1:1"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/space1"
-            app:layout_constraintWidth_percent="0.0666666666666667" />
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/wx_recover_title"
-            android:textColor="#202020"
-            android:textSize="17sp"
-            app:layout_constraintBottom_toBottomOf="@+id/iv_back"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="@+id/iv_back" />
-
-        <Space
-            android:id="@+id/space2"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:15"
-            app:layout_constraintTop_toBottomOf="@+id/iv_back" />
-
-        <ImageView
-            android:id="@+id/iv_wx_recover_pay_success"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:src="@drawable/icon_wx_recover_pay_success"
-            app:layout_constraintDimensionRatio="110:60"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/space2"
-            app:layout_constraintWidth_percent="0.3055555555555556" />
-
-        <TextView
-            android:id="@+id/tv_wx_recover_pay_success"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="6dp"
-            android:text="@string/wx_recover_pay_success"
-            android:textColor="#202020"
-            android:textSize="20sp"
-            android:textStyle="bold"
-            app:layout_constraintEnd_toEndOf="@+id/iv_wx_recover_pay_success"
-            app:layout_constraintStart_toStartOf="@+id/iv_wx_recover_pay_success"
-            app:layout_constraintTop_toBottomOf="@+id/iv_wx_recover_pay_success" />
-
-        <Space
-            android:id="@+id/space3"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:14"
-            app:layout_constraintTop_toBottomOf="@+id/tv_wx_recover_pay_success" />
-
-        <Space
-            android:id="@+id/space4"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:16"
-            app:layout_constraintTop_toBottomOf="@+id/space3" />
-
-        <View
-            android:id="@+id/v_order_bg"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_marginHorizontal="@dimen/app_common_page_horizontal_padding"
-            android:background="@drawable/bg_wx_recover"
-            app:layout_constraintBottom_toBottomOf="@+id/space7"
-            app:layout_constraintTop_toTopOf="@id/space4" />
-
-        <TextView
-            android:id="@+id/tv_order_detail"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="12dp"
-            android:text="@string/wx_recover_order_detail"
-            android:textColor="#202020"
-            android:textSize="14sp"
-            android:textStyle="bold"
-            app:layout_constraintStart_toStartOf="@+id/v_order_bg"
-            app:layout_constraintTop_toBottomOf="@+id/space4" />
-
-        <View
-            android:id="@+id/v_order_line"
-            android:layout_width="0dp"
-            android:layout_height="1dp"
-            android:layout_marginTop="4dp"
-            android:background="#F5F5F5"
-            app:layout_constraintStart_toStartOf="@id/tv_order_detail"
-            app:layout_constraintTop_toBottomOf="@+id/tv_order_detail"
-            app:layout_constraintWidth_percent="0.8222222222222222" />
-
-        <TextView
-            android:id="@+id/tv_order_no"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="9dp"
-            android:text="@string/wx_recover_order_no"
-            android:textColor="#404040"
-            android:textSize="14sp"
-            app:layout_constraintLeft_toLeftOf="@+id/tv_order_detail"
-            app:layout_constraintTop_toBottomOf="@+id/v_order_line" />
-
-        <TextView
-            android:onClick="@{()-> wechatViewModel.onCopyOrderNoClick()}"
-            android:id="@+id/tv_order_no_copy"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="12dp"
-            android:background="@drawable/bg_wx_recover_copy"
-            android:paddingHorizontal="8dp"
-            android:paddingVertical="1dp"
-            android:text="@string/wx_recover_copy"
-            android:textColor="#404040"
-            android:textSize="12sp"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_order_no"
-            app:layout_constraintEnd_toEndOf="@id/v_order_bg"
-            app:layout_constraintTop_toTopOf="@+id/tv_order_no" />
-
-
-        <TextView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="6dp"
-            android:text="@{wechatViewModel.findOrderDetail.outTradeNo}"
-            android:textColor="#A7A7A7"
-            android:textSize="14sp"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_order_no"
-            app:layout_constraintEnd_toStartOf="@+id/tv_order_no_copy"
-            app:layout_constraintTop_toTopOf="@id/tv_order_no"
-            tools:text="1541988181058187" />
-
-        <Space
-            android:id="@+id/space5"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:20"
-            app:layout_constraintTop_toBottomOf="@+id/tv_order_no" />
-
-        <TextView
-            android:id="@+id/tv_auth_code"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="9dp"
-            android:text="@string/wx_recover_auth_code"
-            android:textColor="#404040"
-            android:textSize="14sp"
-            app:layout_constraintLeft_toLeftOf="@+id/tv_order_detail"
-            app:layout_constraintTop_toBottomOf="@+id/space5" />
-
-        <TextView
-            android:onClick="@{()-> wechatViewModel.onCopyAuthCodeClick()}"
-            android:id="@+id/tv_auth_code_copy"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginEnd="12dp"
-            android:background="@drawable/bg_wx_recover_copy"
-            android:paddingHorizontal="8dp"
-            android:paddingVertical="1dp"
-            android:text="@string/wx_recover_copy"
-            android:textColor="#404040"
-            android:textSize="12sp"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_auth_code"
-            app:layout_constraintEnd_toEndOf="@id/v_order_bg"
-            app:layout_constraintTop_toTopOf="@+id/tv_auth_code" />
-
-
-        <TextView
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:layout_marginEnd="6dp"
-            android:gravity="center_vertical|right"
-            android:text="@{wechatViewModel.findOrderDetail.authCode}"
-            android:textColor="#A7A7A7"
-            android:textSize="14sp"
-            app:layout_constraintBottom_toBottomOf="@+id/tv_auth_code"
-            app:layout_constraintEnd_toStartOf="@+id/tv_order_no_copy"
-            app:layout_constraintStart_toEndOf="@+id/tv_auth_code"
-            app:layout_constraintTop_toTopOf="@id/tv_auth_code"
-            tools:text="15419881810" />
-
-
-        <Space
-            android:id="@+id/space6"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:20"
-            app:layout_constraintTop_toBottomOf="@+id/tv_auth_code" />
-
-
-        <LinearLayout
-            android:id="@+id/ll_wx_recover_desc"
-            android:layout_width="0dp"
-            android:layout_height="wrap_content"
-            android:layout_marginHorizontal="12dp"
-            android:background="@drawable/bg_wx_recover_desc"
-            android:orientation="vertical"
-            android:padding="12dp"
-            app:layout_constraintEnd_toEndOf="@+id/v_order_bg"
-            app:layout_constraintStart_toStartOf="@+id/v_order_bg"
-            app:layout_constraintTop_toBottomOf="@+id/space6">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/wx_recover_tutorial"
-                android:textColor="#404040"
-                android:textSize="12sp"
-                android:textStyle="bold" />
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="6dp"
-                android:text="@string/wx_recover_tutorial_content" />
-        </LinearLayout>
-
-        <Space
-            android:id="@+id/space7"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:15"
-            app:layout_constraintTop_toBottomOf="@+id/ll_wx_recover_desc" />
-
-
-        <View
-            android:id="@+id/v_bottom_bg"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:background="@color/white"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="360:72" />
-
-        <TextView
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:background="@drawable/bg_common_btn"
-            android:gravity="center"
-            android:onClick="@{()-> wechatViewModel.onCopyLinkClick()}"
-            android:text="@string/wx_recover_copy_link"
-            android:textColor="@color/white"
-            android:textSize="16sp"
-            android:textStyle="bold"
-            app:layout_constraintBottom_toBottomOf="@+id/v_bottom_bg"
-            app:layout_constraintDimensionRatio="328:44"
-            app:layout_constraintEnd_toEndOf="@+id/v_bottom_bg"
-            app:layout_constraintStart_toStartOf="@+id/v_bottom_bg"
-            app:layout_constraintTop_toTopOf="@+id/v_bottom_bg"
-            app:layout_constraintWidth_percent="0.9111111111111111" />
-
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</layout>

+ 0 - 149
app/src/main/res/layout/fragment_order.xml

@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <data>
-
-        <variable
-            name="orderViewModel"
-            type="com.datarecovery.master.module.order.OrderViewModel" />
-
-        <import type="com.atmob.common.ui.SizeUtil" />
-    </data>
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:background="#F8F8F8">
-
-        <ImageView
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:src="@drawable/bg_example"
-            app:layout_constraintDimensionRatio="1080:558"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Space
-            android:id="@+id/space_status_bar"
-            android:layout_width="match_parent"
-            android:layout_height="@{SizeUtil.getStatusBarHeight(), default=@dimen/app_status_bar_height}"
-            app:layout_constraintTop_toTopOf="parent" />
-
-        <Space
-            android:id="@+id/space1"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:16"
-            app:layout_constraintTop_toBottomOf="@+id/space_status_bar" />
-
-        <ImageView
-            android:id="@+id/iv_example"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
-            android:src="@drawable/icon_order"
-            app:layout_constraintDimensionRatio="246:60"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/space1"
-            app:layout_constraintWidth_percent="0.2277777777777778" />
-
-        <Space
-            android:id="@+id/space2"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintDimensionRatio="360:22"
-            app:layout_constraintTop_toBottomOf="@+id/iv_example" />
-
-
-        <ImageView
-            android:id="@+id/iv_order_no_data"
-            isGone="@{orderViewModel.orderList.size() > 0}"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:src="@drawable/icon_order_no_data"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintDimensionRatio="260:160"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/space2"
-            app:layout_constraintVertical_bias="0.2351190476190476"
-            app:layout_constraintVertical_chainStyle="packed"
-            app:layout_constraintWidth_percent="0.7222222222222222" />
-
-        <TextView
-            android:id="@+id/tv_order_no_data"
-            isGone="@{orderViewModel.orderList.size() > 0}"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="16dp"
-            android:text="@string/order_no_data"
-            android:textColor="#404040"
-            android:textSize="16sp"
-            app:layout_constraintEnd_toEndOf="@+id/iv_order_no_data"
-            app:layout_constraintStart_toStartOf="@+id/iv_order_no_data"
-            app:layout_constraintTop_toBottomOf="@+id/iv_order_no_data" />
-
-
-        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
-            android:id="@+id/swiper_layout"
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintTop_toBottomOf="@id/space2">
-
-
-            <androidx.core.widget.NestedScrollView
-                android:layout_width="match_parent"
-                android:layout_height="match_parent">
-
-                <LinearLayout
-                    isGone="@{orderViewModel.orderList == null || orderViewModel.orderList.size() == 0}"
-                    android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical">
-
-                    <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/ry_order"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        tools:listitem="@layout/item_order" />
-
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:gravity="center"
-                        android:orientation="horizontal"
-                        android:paddingVertical="8dp">
-
-                        <View
-                            android:layout_width="12dp"
-                            android:layout_height="1dp"
-                            android:background="#CCCCCC" />
-
-                        <TextView
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginHorizontal="4dp"
-                            android:text="@string/order_show_hint"
-                            android:textColor="#CCCCCC"
-                            android:textSize="12dp" />
-
-                        <View
-                            android:layout_width="12dp"
-                            android:layout_height="1dp"
-                            android:background="#CCCCCC" />
-
-
-                    </LinearLayout>
-
-                </LinearLayout>
-
-            </androidx.core.widget.NestedScrollView>
-
-
-        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
-
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-</layout>

+ 5 - 3
build.gradle

@@ -6,8 +6,8 @@ buildscript {
         minSdkVersion = 24
         targetSdkVersion = 32
 
-        versionCode = 101
-        versionName = "1.0.1"
+        versionCode = 102
+        versionName = "1.0.2"
 
         hilt_version = '2.41'
         lifecycle_version = "2.6.1"
@@ -34,11 +34,13 @@ buildscript {
         classpath 'com.android.tools.build:gradle:7.1.3'
 
         classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
-        classpath "com.umeng.umsdk:apm-plugin:0.0.1"
+        classpath "com.umeng.umsdk:apm-plugin:1.0.1"
 
         classpath 'com.github.megatronking.stringfog:gradle-plugin:4.0.1'
         classpath 'com.github.megatronking.stringfog:xor:4.0.1'
         classpath "io.github.didi.dokit:dokitx-plugin:${dokit_version}"
+
+        classpath 'extra.plugin:protect:1.0.0-SNAPSHOT'
     }
 
     configurations.configureEach {