From 0fb50972706dbb790cee8485bb1b06df82971346 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Mon, 17 Nov 2025 16:09:45 +0800 Subject: [PATCH] Call checkpoint creation from an executor java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time. Signed-off-by: Aayush Gupta --- .../newpipe/settings/BackupRestoreSettingsFragment.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java index 321ad65da..2900dee90 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java @@ -40,6 +40,8 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.Objects; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class BackupRestoreSettingsFragment extends BasePreferenceFragment { @@ -155,9 +157,9 @@ public class BackupRestoreSettingsFragment extends BasePreferenceFragment { } private void exportDatabase(final StoredFileHelper file, final Uri exportDataUri) { - try { + try (ExecutorService executor = Executors.newSingleThreadExecutor()) { //checkpoint before export - NewPipeDatabase.checkpoint(); + executor.submit(NewPipeDatabase::checkpoint).get(); final SharedPreferences preferences = PreferenceManager .getDefaultSharedPreferences(requireContext());