|
|
@@ -3,7 +3,6 @@ package com.datarecovery.master.module.homepage;
|
|
|
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.repositories.DeviceFuncRepository;
|
|
|
import com.datarecovery.master.module.audiorecover.AudioRecoverActivity;
|
|
|
@@ -13,22 +12,14 @@ import com.datarecovery.master.module.member.MemberActivity;
|
|
|
import com.datarecovery.master.module.member.MemberType;
|
|
|
import com.datarecovery.master.module.videorecover.VideoRecoverActivity;
|
|
|
import com.datarecovery.master.module.wxrecover.WeChatRecoverActivity;
|
|
|
-import com.datarecovery.master.utils.PermissionUtil;
|
|
|
-import com.datarecovery.master.utils.xfile.XFilePermission;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
|
|
-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 dagger.hilt.android.lifecycle.HiltViewModel;
|
|
|
|
|
|
-import android.os.Build;
|
|
|
import android.util.Pair;
|
|
|
|
|
|
import androidx.lifecycle.LiveData;
|
|
|
@@ -91,7 +82,7 @@ public class HomePageViewModel extends BaseViewModel {
|
|
|
}
|
|
|
|
|
|
public void onImgRecoveryClick() {
|
|
|
- isHaveAuths(MemberType.APP_IMAGE_RECOVER, () -> isCheckPermission(() -> ImageRecoverActivity.start(ActivityUtil.getTopActivity(), ImageRecoverActivity.Type.RECOVER)));
|
|
|
+ isHaveAuths(MemberType.APP_IMAGE_RECOVER, () -> ImageRecoverActivity.start(ActivityUtil.getTopActivity(), ImageRecoverActivity.Type.RECOVER));
|
|
|
}
|
|
|
|
|
|
public void isHaveAuths(@MemberType String type, NextStepCallback stepCallback) {
|
|
|
@@ -102,51 +93,6 @@ public class HomePageViewModel extends BaseViewModel {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 判断是否有所需的存储权限
|
|
|
- *
|
|
|
- * @param stepCallback 有权限的回调
|
|
|
- */
|
|
|
- public void isCheckPermission(NextStepCallback stepCallback) {
|
|
|
- Single.just(Build.VERSION.SDK_INT).map(sdkInt -> {
|
|
|
- //判断是否有所有文件权限
|
|
|
- boolean result = PermissionUtil.hasFilePermission();
|
|
|
- if (!result) {
|
|
|
- throw new RequestManageExternalException();
|
|
|
- }
|
|
|
- return sdkInt;
|
|
|
- }).map(sdkInt -> {
|
|
|
- if (sdkInt >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- boolean dataFolder = XFilePermission.hasAndroidDataPermission(ContextUtil.getContext());
|
|
|
- if (!dataFolder) {
|
|
|
- throw new RequestDataFolderException();
|
|
|
- }
|
|
|
- return true;
|
|
|
- })
|
|
|
- .compose(RxJavaUtil.SingleSchedule.io2Main())
|
|
|
- .subscribe(new SingleObserver<Boolean>() {
|
|
|
- @Override
|
|
|
- public void onSubscribe(@NonNull Disposable d) {
|
|
|
- addDisposable(d);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onSuccess(@NonNull Boolean aBoolean) {
|
|
|
- if (stepCallback != null) stepCallback.onNextStep();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onError(@NonNull Throwable e) {
|
|
|
- if (e instanceof RequestManageExternalException) {
|
|
|
- requestManagePermission.call();
|
|
|
- } else if (e instanceof RequestDataFolderException) {
|
|
|
- requestAndroidDataPermission.call();
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
|
|
|
public void clickItemFunction(FunctionBean bean) {
|
|
|
if (bean == null) {
|
|
|
@@ -154,16 +100,16 @@ public class HomePageViewModel extends BaseViewModel {
|
|
|
}
|
|
|
switch (bean.getFunctionId()) {
|
|
|
case FunctionBean.AUDIO_RECOVERY:
|
|
|
- isHaveAuths(MemberType.APP_AUDIO_RECOVER, () -> isCheckPermission(() -> AudioRecoverActivity.start(ActivityUtil.getTopActivity())));
|
|
|
+ isHaveAuths(MemberType.APP_AUDIO_RECOVER, () -> AudioRecoverActivity.start(ActivityUtil.getTopActivity()));
|
|
|
break;
|
|
|
case FunctionBean.FILE_RECOVERY:
|
|
|
- isHaveAuths(MemberType.APP_FILE_RECOVER, () -> isCheckPermission(() -> FileRecoverActivity.start(ActivityUtil.getTopActivity())));
|
|
|
+ isHaveAuths(MemberType.APP_FILE_RECOVER, () -> FileRecoverActivity.start(ActivityUtil.getTopActivity()));
|
|
|
break;
|
|
|
case FunctionBean.IMG_CLEARING:
|
|
|
- isHaveAuths(MemberType.APP_IMAGE_CLEAN, () -> isCheckPermission(() -> ImageRecoverActivity.start(ActivityUtil.getTopActivity(), ImageRecoverActivity.Type.DELETE)));
|
|
|
+ isHaveAuths(MemberType.APP_IMAGE_CLEAN, () -> ImageRecoverActivity.start(ActivityUtil.getTopActivity(), ImageRecoverActivity.Type.DELETE));
|
|
|
break;
|
|
|
case FunctionBean.VIDEO_RECOVERY:
|
|
|
- isHaveAuths(MemberType.APP_VIDEO_RECOVER, () -> isCheckPermission(() -> VideoRecoverActivity.start(ActivityUtil.getTopActivity())));
|
|
|
+ isHaveAuths(MemberType.APP_VIDEO_RECOVER, () -> VideoRecoverActivity.start(ActivityUtil.getTopActivity()));
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -173,11 +119,6 @@ public class HomePageViewModel extends BaseViewModel {
|
|
|
void onNextStep();
|
|
|
}
|
|
|
|
|
|
- public static class RequestManageExternalException extends Exception {
|
|
|
- }
|
|
|
-
|
|
|
- public static class RequestDataFolderException extends Exception {
|
|
|
- }
|
|
|
|
|
|
|
|
|
}
|