From 8209bf9a0bdcd15083dee9cf4f2dc2ed9adefb1b Mon Sep 17 00:00:00 2001
From: Hans-Christoph Steiner <hans@eds.org>
Date: Wed, 11 Nov 2020 15:15:24 +0100
Subject: [PATCH] allow SDCard/TreeUri scans to be manually triggered by user
 button press

Before, the preference blocked all scans.  That lead to confusing UX
since the "Try it" and USB-OTG buttons would do nothing.
---
 .../fdroid/fdroid/nearby/SDCardScannerService.java | 13 +++++--------
 .../fdroid/nearby/TreeUriScannerIntentService.java | 14 +++++---------
 app/src/main/java/org/fdroid/fdroid/FDroidApp.java |  4 +++-
 3 files changed, 13 insertions(+), 18 deletions(-)

diff --git a/app/src/full/java/org/fdroid/fdroid/nearby/SDCardScannerService.java b/app/src/full/java/org/fdroid/fdroid/nearby/SDCardScannerService.java
index 733038613..9de7e7408 100644
--- a/app/src/full/java/org/fdroid/fdroid/nearby/SDCardScannerService.java
+++ b/app/src/full/java/org/fdroid/fdroid/nearby/SDCardScannerService.java
@@ -28,11 +28,10 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.Environment;
 import android.os.Process;
-import androidx.core.content.ContextCompat;
 import android.util.Log;
+import androidx.core.content.ContextCompat;
 import org.fdroid.fdroid.IndexUpdater;
 import org.fdroid.fdroid.IndexV1Updater;
-import org.fdroid.fdroid.Preferences;
 import org.fdroid.fdroid.Utils;
 
 import java.io.File;
@@ -55,7 +54,7 @@ import java.util.List;
  * "External Storage"
  * <p>
  * Scanning the removable storage requires that the user allowed it.  This
- * requires both the {@link Preferences#isScanRemovableStorageEnabled()}
+ * requires both the {@link org.fdroid.fdroid.Preferences#isScanRemovableStorageEnabled()}
  * and the {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}
  * permission to be enabled.
  *
@@ -75,11 +74,9 @@ public class SDCardScannerService extends IntentService {
     }
 
     public static void scan(Context context) {
-        if (Preferences.get().isScanRemovableStorageEnabled()) {
-            Intent intent = new Intent(context, SDCardScannerService.class);
-            intent.setAction(ACTION_SCAN);
-            context.startService(intent);
-        }
+        Intent intent = new Intent(context, SDCardScannerService.class);
+        intent.setAction(ACTION_SCAN);
+        context.startService(intent);
     }
 
     @Override
diff --git a/app/src/full/java/org/fdroid/fdroid/nearby/TreeUriScannerIntentService.java b/app/src/full/java/org/fdroid/fdroid/nearby/TreeUriScannerIntentService.java
index 54d8033dc..a0750c838 100644
--- a/app/src/full/java/org/fdroid/fdroid/nearby/TreeUriScannerIntentService.java
+++ b/app/src/full/java/org/fdroid/fdroid/nearby/TreeUriScannerIntentService.java
@@ -20,7 +20,6 @@
 package org.fdroid.fdroid.nearby;
 
 import android.annotation.TargetApi;
-import android.app.Activity;
 import android.app.IntentService;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -28,15 +27,14 @@ import android.content.Intent;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Process;
-import androidx.documentfile.provider.DocumentFile;
 import android.util.Log;
 import android.widget.Toast;
+import androidx.documentfile.provider.DocumentFile;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.fdroid.fdroid.AddRepoIntentService;
 import org.fdroid.fdroid.IndexUpdater;
 import org.fdroid.fdroid.IndexV1Updater;
-import org.fdroid.fdroid.Preferences;
 import org.fdroid.fdroid.R;
 import org.fdroid.fdroid.Utils;
 import org.fdroid.fdroid.data.Repo;
@@ -82,12 +80,10 @@ public class TreeUriScannerIntentService extends IntentService {
     }
 
     public static void scan(Context context, Uri data) {
-        if (Preferences.get().isScanRemovableStorageEnabled()) {
-            Intent intent = new Intent(context, TreeUriScannerIntentService.class);
-            intent.setAction(ACTION_SCAN_TREE_URI);
-            intent.setData(data);
-            context.startService(intent);
-        }
+        Intent intent = new Intent(context, TreeUriScannerIntentService.class);
+        intent.setAction(ACTION_SCAN_TREE_URI);
+        intent.setData(data);
+        context.startService(intent);
     }
 
     /**
diff --git a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java
index 442ef01fa..459ff948e 100644
--- a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java
+++ b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java
@@ -539,7 +539,9 @@ public class FDroidApp extends Application {
             atStartTime.edit().remove(queryStringKey).apply();
         }
 
-        SDCardScannerService.scan(this);
+        if (Preferences.get().isScanRemovableStorageEnabled()) {
+            SDCardScannerService.scan(this);
+        }
     }
 
     /**