diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index a8827c33e73..cf41aad46cd 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -65,6 +65,8 @@ public class App extends Application { private static final String TAG = App.class.toString(); private boolean isFirstRun = false; + private boolean notificationsRequested = false; + private static App app; @NonNull @@ -72,6 +74,14 @@ public static App getApp() { return app; } + public boolean getNotificationsRequested() { + return notificationsRequested; + } + + public void setNotificationsRequested() { + notificationsRequested = true; + } + @Override protected void attachBaseContext(final Context base) { super.attachBaseContext(base); diff --git a/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java b/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java index 2785afab0f8..969d787d74d 100644 --- a/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java @@ -17,6 +17,7 @@ import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; +import org.schabi.newpipe.App; import org.schabi.newpipe.R; import org.schabi.newpipe.settings.NewPipeSettings; @@ -89,9 +90,12 @@ public static boolean checkPostNotificationsPermission(final Activity activity, && ContextCompat.checkSelfPermission(activity, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(activity, - new String[] {Manifest.permission.POST_NOTIFICATIONS}, requestCode); - return false; + if (!App.getApp().getNotificationsRequested()) { + ActivityCompat.requestPermissions(activity, + new String[]{Manifest.permission.POST_NOTIFICATIONS}, requestCode); + App.getApp().setNotificationsRequested(); + return false; + } } return true; }