Browse Source

优化图片恢复集合存取方式

zk 1 year ago
parent
commit
a3eae07d83

+ 5 - 1
app/src/main/java/com/datarecovery/master/data/repositories/DeviceFuncRepository.java

@@ -3,6 +3,7 @@ package com.datarecovery.master.data.repositories;
 
 
 import android.text.TextUtils;
 import android.text.TextUtils;
 
 
+import com.datarecovery.master.BuildConfig;
 import com.datarecovery.master.data.api.AtmobApi;
 import com.datarecovery.master.data.api.AtmobApi;
 import com.datarecovery.master.data.api.request.BaseRequest;
 import com.datarecovery.master.data.api.request.BaseRequest;
 import com.datarecovery.master.data.api.response.FuncAuthsResponse;
 import com.datarecovery.master.data.api.response.FuncAuthsResponse;
@@ -40,7 +41,10 @@ public class DeviceFuncRepository {
 
 
 
 
     public boolean isHaveAuth(@MemberType String auth) {
     public boolean isHaveAuth(@MemberType String auth) {
-        if (TextUtils.isEmpty(auth) || authsList.size() == 0) {
+        if (BuildConfig.DEBUG) {
+            return true;
+        }
+        if (TextUtils.isEmpty(auth) || authsList.isEmpty()) {
             return false;
             return false;
         }
         }
         if (!Objects.equals(auth, MemberType.APP_IMAGE_CLEAN) && authsList.contains(MemberType.APP_SUPER_RECOVER)) {
         if (!Objects.equals(auth, MemberType.APP_IMAGE_CLEAN) && authsList.contains(MemberType.APP_SUPER_RECOVER)) {

+ 1 - 0
app/src/main/java/com/datarecovery/master/module/imgrecover/ImageItemAdapter.java

@@ -49,6 +49,7 @@ public class ImageItemAdapter extends RecyclerView.Adapter<ImageItemAdapter.View
             BuglyHelper.postCatchedException(new IndexOutOfBoundsException("图片列表onBindViewHolder出现数组越界:type:" + type + "," + position + ",size:" + list.size()));
             BuglyHelper.postCatchedException(new IndexOutOfBoundsException("图片列表onBindViewHolder出现数组越界:type:" + type + "," + position + ",size:" + list.size()));
             return;
             return;
         }
         }
+//        AtmobLog.d("zk", "position: " + position + ",index:" + list.indexOf(list.get(position)) + ",size:" + list.size());
         holder.bind(list.get(position));
         holder.bind(list.get(position));
     }
     }
 
 

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

@@ -32,6 +32,7 @@ import com.datarecovery.master.utils.ImageDeepDetector;
 import com.datarecovery.master.utils.Maps;
 import com.datarecovery.master.utils.Maps;
 import com.datarecovery.master.utils.MediaStoreHelper;
 import com.datarecovery.master.utils.MediaStoreHelper;
 import com.datarecovery.master.utils.ReportUtil;
 import com.datarecovery.master.utils.ReportUtil;
+import com.datarecovery.master.utils.ReverseArrayList;
 import com.datarecovery.master.utils.ToastUtil;
 import com.datarecovery.master.utils.ToastUtil;
 
 
 import org.reactivestreams.Subscription;
 import org.reactivestreams.Subscription;
@@ -62,11 +63,11 @@ public class ImageRecoverViewModel extends BaseViewModel {
     private final long SCANNING_COUNTDOWN = 1000 * 60 * 6;
     private final long SCANNING_COUNTDOWN = 1000 * 60 * 6;
     private final long SCANNING_IS_TRIAL_COUNTDOWN = 1000 * 5;
     private final long SCANNING_IS_TRIAL_COUNTDOWN = 1000 * 5;
 
 
-    private final List<ImageDeepDetector.ImageFile> detectedPhotoList = new ArrayList<>();
-    private final List<ImageDeepDetector.ImageFile> detectedWxList = new ArrayList<>();
-    private final List<ImageDeepDetector.ImageFile> detectedQQList = new ArrayList<>();
-    private final List<ImageDeepDetector.ImageFile> detectedOtherList = new ArrayList<>();
-    private final List<ImageDeepDetector.ImageFile> selectList = new ArrayList<>();
+    private final List<ImageDeepDetector.ImageFile> detectedPhotoList = new ReverseArrayList<>();
+    private final List<ImageDeepDetector.ImageFile> detectedWxList = new ReverseArrayList<>();
+    private final List<ImageDeepDetector.ImageFile> detectedQQList = new ReverseArrayList<>();
+    private final List<ImageDeepDetector.ImageFile> detectedOtherList = new ReverseArrayList<>();
+    private final List<ImageDeepDetector.ImageFile> selectList = new ReverseArrayList<>();
 
 
     private final MutableLiveData<List<ImageDeepDetector.ImageFile>> detectedPhotoImg = new MutableLiveData<>();
     private final MutableLiveData<List<ImageDeepDetector.ImageFile>> detectedPhotoImg = new MutableLiveData<>();
     private final MutableLiveData<List<ImageDeepDetector.ImageFile>> detectedWxImg = new MutableLiveData<>();
     private final MutableLiveData<List<ImageDeepDetector.ImageFile>> detectedWxImg = new MutableLiveData<>();

+ 2 - 1
app/src/main/java/com/datarecovery/master/utils/FilePermissionHelper.java

@@ -10,6 +10,7 @@ import androidx.lifecycle.LifecycleEventObserver;
 import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.LifecycleOwner;
 
 
 import com.atmob.common.runtime.ContextUtil;
 import com.atmob.common.runtime.ContextUtil;
+import com.datarecovery.master.BuildConfig;
 import com.datarecovery.master.R;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.data.repositories.AccountRepository;
 import com.datarecovery.master.data.repositories.AccountRepository;
@@ -34,7 +35,7 @@ public class FilePermissionHelper {
     public void requestDataFilePermission(ComponentActivity activity, @MemberType String memberType, boolean isSkipLogin, NextStepCallback stepCallback) {
     public void requestDataFilePermission(ComponentActivity activity, @MemberType String memberType, boolean isSkipLogin, NextStepCallback stepCallback) {
         Single.just(Build.VERSION.SDK_INT)
         Single.just(Build.VERSION.SDK_INT)
                 .flatMap(sdkInt -> {
                 .flatMap(sdkInt -> {
-                    if (isSkipLogin) {
+                    if (isSkipLogin || BuildConfig.DEBUG) {
                         return Single.just(sdkInt);
                         return Single.just(sdkInt);
                     }
                     }
                     if (TextUtils.isEmpty(AccountRepository.token)) {
                     if (TextUtils.isEmpty(AccountRepository.token)) {

+ 27 - 0
app/src/main/java/com/datarecovery/master/utils/ReverseArrayList.java

@@ -0,0 +1,27 @@
+package com.datarecovery.master.utils;
+
+import androidx.annotation.NonNull;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+public class ReverseArrayList<T> extends ArrayList<T> {
+
+    public ReverseArrayList(int initialCapacity) {
+        super(initialCapacity);
+    }
+
+    public ReverseArrayList() {
+        super();
+    }
+
+    public ReverseArrayList(@NonNull Collection<? extends T> c) {
+        super(c);
+    }
+
+    @Override
+    public T get(int index) {
+        index = size() - index - 1;
+        return super.get(index);
+    }
+}