|
|
@@ -9,6 +9,7 @@ import androidx.lifecycle.Lifecycle;
|
|
|
import androidx.lifecycle.LifecycleEventObserver;
|
|
|
import androidx.lifecycle.LifecycleOwner;
|
|
|
|
|
|
+import com.atmob.common.data.KVUtils;
|
|
|
import com.atmob.common.runtime.ContextUtil;
|
|
|
import com.datarecovery.master.BuildConfig;
|
|
|
import com.datarecovery.master.R;
|
|
|
@@ -30,6 +31,8 @@ import atmob.rxjava.utils.RxJavaUtil;
|
|
|
|
|
|
public class FilePermissionHelper {
|
|
|
|
|
|
+ private static final String ANDROID_DATA_PERMISSION_SUCCESS = "android_data_permission_success";
|
|
|
+
|
|
|
Disposable disposable;
|
|
|
|
|
|
public void requestDataFilePermission(ComponentActivity activity, @MemberType String memberType, boolean isSkipLogin, NextStepCallback stepCallback) {
|
|
|
@@ -116,7 +119,7 @@ public class FilePermissionHelper {
|
|
|
}
|
|
|
})
|
|
|
.flatMap((Function<Integer, SingleSource<Integer>>) sdkInt -> {
|
|
|
- if (sdkInt >= Build.VERSION_CODES.TIRAMISU) {
|
|
|
+ if (sdkInt >= Build.VERSION_CODES.TIRAMISU || KVUtils.getDefault().getBoolean(ANDROID_DATA_PERMISSION_SUCCESS, false)) {
|
|
|
return Single.just(sdkInt);
|
|
|
}
|
|
|
boolean dataFolder = XFilePermission.hasAndroidDataPermission(ContextUtil.getContext());
|
|
|
@@ -136,6 +139,8 @@ public class FilePermissionHelper {
|
|
|
public void onPermissionGranted() {
|
|
|
requestAndroidDataDialog.dismiss();
|
|
|
observer.onSuccess(sdkInt);
|
|
|
+ //部分手机无法授权data目录,选择任意目录记录为通过,下次不再检查
|
|
|
+ KVUtils.getDefault().putBoolean(ANDROID_DATA_PERMISSION_SUCCESS, true);
|
|
|
}
|
|
|
|
|
|
@Override
|