浏览代码

Skip folder scan if charging only and not charging

Signed-off-by: Jonas Mayer <jonas.a.mayer@gmx.net>
Jonas Mayer 1 年之前
父节点
当前提交
a73b3e9e72

+ 9 - 1
app/src/main/java/com/nextcloud/client/jobs/FilesSyncWork.kt

@@ -112,6 +112,14 @@ class FilesSyncWork(
             canExitEarly = true
         }
 
+        if (syncedFolderProvider.syncedFolders.all { it.isChargingOnly } &&
+            !powerManagementService.battery.isCharging &&
+            !powerManagementService.battery.isFull) {
+
+            Log_OC.d(TAG, "FILESYNC Kill Sync Worker since no sync folder is enabled!")
+            canExitEarly = true
+        }
+
         return canExitEarly
     }
 
@@ -181,7 +189,7 @@ class FilesSyncWork(
             // Check every file in every synced folder for changes and update
             // filesystemDataProvider database (potentially needs a long time so use foreground worker)
             updateForegroundWorker(5, true)
-            FilesSyncHelper.insertAllDBEntries(syncedFolderProvider)
+            FilesSyncHelper.insertAllDBEntries(syncedFolderProvider, powerManagementService)
             updateForegroundWorker(50, true)
         }
     }

+ 8 - 2
app/src/main/java/com/owncloud/android/utils/FilesSyncHelper.java

@@ -115,9 +115,15 @@ public final class FilesSyncHelper {
         }
     }
 
-    public static void insertAllDBEntries(SyncedFolderProvider syncedFolderProvider) {
+    public static void insertAllDBEntries(SyncedFolderProvider syncedFolderProvider,
+                                          PowerManagementService powerManagementService) {
         for (SyncedFolder syncedFolder : syncedFolderProvider.getSyncedFolders()) {
-            if (syncedFolder.isEnabled()) {
+            if (syncedFolder.isEnabled() &&
+                !(syncedFolder.isChargingOnly() &&
+                    !powerManagementService.getBattery().isCharging() &&
+                    !powerManagementService.getBattery().isFull()
+                )
+            ) {
                 insertAllDBEntriesForSyncedFolder(syncedFolder);
             }
         }