From 7c3f5a62c5c5c841e3d86c8f4151cec328262ee2 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 10 Jul 2021 10:17:00 +0200 Subject: [PATCH 1/2] Fix crash when refreshing feed after importing database or subscriptions The database was not closed correctly --- app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index d6e1888e1..c35cceb66 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -21,6 +21,7 @@ import androidx.fragment.app.FragmentTransaction; import com.nostra13.universalimageloader.core.ImageLoader; import org.schabi.newpipe.MainActivity; +import org.schabi.newpipe.NewPipeDatabase; import org.schabi.newpipe.R; import org.schabi.newpipe.RouterActivity; import org.schabi.newpipe.about.AboutActivity; @@ -608,6 +609,7 @@ public final class NavigationHelper { * @param activity the activity to finish */ public static void restartApp(final Activity activity) { + NewPipeDatabase.getInstance(activity).close(); activity.finishAffinity(); final Intent intent = new Intent(activity, MainActivity.class); activity.startActivity(intent); From 9ca2691a2ca3bf4ac85765552b2085b69e6b590f Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 10 Jul 2021 14:46:51 +0200 Subject: [PATCH 2/2] Add close() method to NewPipeDatabase --- .../main/java/org/schabi/newpipe/NewPipeDatabase.java | 11 +++++++++++ .../org/schabi/newpipe/util/NavigationHelper.java | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java b/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java index 988a5ed98..8f7732218 100644 --- a/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java +++ b/app/src/main/java/org/schabi/newpipe/NewPipeDatabase.java @@ -51,4 +51,15 @@ public final class NewPipeDatabase { throw new RuntimeException("Checkpoint was blocked from completing"); } } + + public static void close() { + if (databaseInstance != null) { + synchronized (NewPipeDatabase.class) { + if (databaseInstance != null) { + databaseInstance.close(); + databaseInstance = null; + } + } + } + } } diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index c35cceb66..67eeb2eb3 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -609,7 +609,7 @@ public final class NavigationHelper { * @param activity the activity to finish */ public static void restartApp(final Activity activity) { - NewPipeDatabase.getInstance(activity).close(); + NewPipeDatabase.close(); activity.finishAffinity(); final Intent intent = new Intent(activity, MainActivity.class); activity.startActivity(intent);