فهرست منبع

UploadListActivity: throttle list updates to 1 every second to avoid frying the database when files are being rapidly uploaded

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Álvaro Brey 2 سال پیش
والد
کامیت
40f5f58b18
1فایلهای تغییر یافته به همراه9 افزوده شده و 1 حذف شده
  1. 9 1
      app/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java

+ 9 - 1
app/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java

@@ -43,6 +43,7 @@ import com.nextcloud.client.core.Clock;
 import com.nextcloud.client.device.PowerManagementService;
 import com.nextcloud.client.jobs.BackgroundJobManager;
 import com.nextcloud.client.network.ConnectivityService;
+import com.nextcloud.client.utils.Throttler;
 import com.owncloud.android.R;
 import com.owncloud.android.databinding.UploadListLayoutBinding;
 import com.owncloud.android.datamodel.OCFile;
@@ -103,6 +104,8 @@ public class UploadListActivity extends FileActivity {
     @Inject
     ViewThemeUtils viewThemeUtils;
 
+    @Inject Throttler throttler;
+
     private UploadListLayoutBinding binding;
 
     public static Intent createIntent(OCFile file, User user, Integer flag, Context context) {
@@ -120,6 +123,8 @@ public class UploadListActivity extends FileActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
+        throttler.setIntervalMillis(1000);
+
         binding = UploadListLayoutBinding.inflate(getLayoutInflater());
         setContentView(binding.getRoot());
 
@@ -351,7 +356,10 @@ public class UploadListActivity extends FileActivity {
          */
         @Override
         public void onReceive(Context context, Intent intent) {
-            uploadListAdapter.loadUploadItemsFromDb();
+
+            throttler.run("update_upload_list", () -> {
+                uploadListAdapter.loadUploadItemsFromDb();
+            });
         }
     }
 }