1
0
Fork 0

added Android 14 support

This commit is contained in:
sspanak 2024-04-22 13:25:44 +03:00 committed by Dimo Karaivanov
parent 7e41800eac
commit 92a101d523
3 changed files with 12 additions and 4 deletions

View file

@ -59,7 +59,7 @@ android {
defaultConfig { defaultConfig {
applicationId PACKAGE_NAME applicationId PACKAGE_NAME
minSdk 19 minSdk 19
targetSdk 33 targetSdk 34
versionCode getVerCode() versionCode getVerCode()
versionName getVerName() versionName getVerName()
} }

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:tools="http://schemas.android.com/tools" <manifest xmlns:tools="http://schemas.android.com/tools"
android:versionCode="493" android:versionCode="494"
android:versionName="30.19" android:versionName="30.20"
xmlns:android="http://schemas.android.com/apk/res/android"> xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <!-- allows displaying notifications on Android >= 13 --> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <!-- allows displaying notifications on Android >= 13 -->

View file

@ -6,7 +6,10 @@ import android.app.Activity;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build; import android.os.Build;
import java.util.HashMap;
public class Permissions { public class Permissions {
private static final HashMap<String, Boolean> firstTimeAsking = new HashMap<>();
private final Activity activity; private final Activity activity;
public Permissions(Activity activity) { public Permissions(Activity activity) {
@ -16,11 +19,16 @@ public class Permissions {
public boolean noPostNotifications() { public boolean noPostNotifications() {
return return
Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU 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() { public void requestPostNotifications() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
firstTimeAsking.put(Manifest.permission.POST_NOTIFICATIONS, false);
requestPermission(Manifest.permission.POST_NOTIFICATIONS); requestPermission(Manifest.permission.POST_NOTIFICATIONS);
} }
} }