diff --git a/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java b/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java index f3356d6e8..7bcef2744 100644 --- a/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java +++ b/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java @@ -1,8 +1,10 @@ package org.schabi.newpipe; -import androidx.room.Room; import android.content.Context; +import android.database.Cursor; + import androidx.annotation.NonNull; +import androidx.room.Room; import org.schabi.newpipe.database.AppDatabase; @@ -39,4 +41,14 @@ public final class NewPipeDatabase { return result; } + + public static void checkpoint() { + if(null == databaseInstance){ + throw new IllegalStateException("database is not initialized"); + } + Cursor c = databaseInstance.query("pragma wal_checkpoint(full)", null); + if(c.moveToFirst() && c.getInt(0) == 1) { + throw new RuntimeException("Checkpoint was blocked from completing"); + } + } } diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index 800162b9c..0be72d0eb 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -5,7 +5,6 @@ import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; -import android.database.Cursor; import android.os.Bundle; import android.preference.PreferenceManager; import android.util.Log; @@ -18,7 +17,6 @@ import androidx.preference.Preference; import com.nononsenseapps.filepicker.Utils; import com.nostra13.universalimageloader.core.ImageLoader; -import org.schabi.newpipe.App; import org.schabi.newpipe.NewPipeDatabase; import org.schabi.newpipe.R; import org.schabi.newpipe.extractor.NewPipe; @@ -172,7 +170,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { private void exportDatabase(String path) { try { //checkpoint before export - checkpoint(); + NewPipeDatabase.checkpoint(); ZipOutputStream outZip = new ZipOutputStream( new BufferedOutputStream( @@ -191,12 +189,6 @@ public class ContentSettingsFragment extends BasePreferenceFragment { } } - private void checkpoint() { - Cursor c = NewPipeDatabase.getInstance(App.getApp()).getOpenHelper().getWritableDatabase().query("pragma wal_checkpoint(full)"); - if(c.moveToFirst() && c.getInt(0) == 1) - throw new RuntimeException("Checkpoint was blocked from completing"); - } - private void saveSharedPreferencesToFile(File dst) { ObjectOutputStream output = null; try {