diff --git a/app/build.gradle b/app/build.gradle index 9fabca4c..6a4adb10 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,7 +59,7 @@ android { defaultConfig { applicationId PACKAGE_NAME minSdk 19 - targetSdk 33 + targetSdk 34 versionCode getVerCode() versionName getVerName() } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3a33973d..37dd8f0a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ diff --git a/app/src/main/java/io/github/sspanak/tt9/util/Permissions.java b/app/src/main/java/io/github/sspanak/tt9/util/Permissions.java index c97c413b..b5035b19 100644 --- a/app/src/main/java/io/github/sspanak/tt9/util/Permissions.java +++ b/app/src/main/java/io/github/sspanak/tt9/util/Permissions.java @@ -6,7 +6,10 @@ import android.app.Activity; import android.content.pm.PackageManager; import android.os.Build; +import java.util.HashMap; + public class Permissions { + private static final HashMap firstTimeAsking = new HashMap<>(); private final Activity activity; public Permissions(Activity activity) { @@ -16,11 +19,16 @@ public class Permissions { public boolean noPostNotifications() { return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU - && activity.shouldShowRequestPermissionRationale(Manifest.permission.POST_NOTIFICATIONS); + && isRefused(Manifest.permission.POST_NOTIFICATIONS) + && ( + Boolean.TRUE.equals(firstTimeAsking.getOrDefault(Manifest.permission.POST_NOTIFICATIONS, true)) + || activity.shouldShowRequestPermissionRationale(Manifest.permission.POST_NOTIFICATIONS) + ); } public void requestPostNotifications() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + firstTimeAsking.put(Manifest.permission.POST_NOTIFICATIONS, false); requestPermission(Manifest.permission.POST_NOTIFICATIONS); } }