diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java
index ae68a324c4..11e5b5a0c5 100644
--- a/app/src/main/java/eu/faircode/email/ApplicationEx.java
+++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java
@@ -856,6 +856,9 @@ public class ApplicationEx extends Application
if (Build.PRODUCT == null || !Build.PRODUCT.endsWith("_beta") ||
Build.VERSION.SDK_INT < Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
editor.putBoolean("mod", false);
+ } else if (version < 2180) {
+ if (Helper.isAndroid15())
+ editor.putInt("last_sdk", 0);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !BuildConfig.DEBUG)
@@ -865,6 +868,11 @@ public class ApplicationEx extends Application
editor.putInt("previous_version", version);
editor.putInt("version", BuildConfig.VERSION_CODE);
+ int last_sdk = prefs.getInt("last_sdk", Build.VERSION.SDK_INT);
+ if (Helper.isAndroid15() && last_sdk <= Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
+ editor.remove("setup_reminder");
+ editor.putInt("last_sdk", Build.VERSION.SDK_INT);
+
editor.apply();
}
diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogPermissions.java b/app/src/main/java/eu/faircode/email/FragmentDialogPermissions.java
index 81d9425c94..a64aba2d34 100644
--- a/app/src/main/java/eu/faircode/email/FragmentDialogPermissions.java
+++ b/app/src/main/java/eu/faircode/email/FragmentDialogPermissions.java
@@ -50,6 +50,7 @@ public class FragmentDialogPermissions extends FragmentDialogBase {
TextView tvContactPermissions = dview.findViewById(R.id.tvContactPermissions);
TextView tvNotificationPermissions = dview.findViewById(R.id.tvNotificationPermissions);
TextView tvDozeDevice = dview.findViewById(R.id.tvDozeDevice);
+ TextView tvDozeAndroid15 = dview.findViewById(R.id.tvDozeAndroid15);
TextView tvDozeAndroid12 = dview.findViewById(R.id.tvDozeAndroid12);
CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain);
Group grp2 = dview.findViewById(R.id.grp2);
@@ -82,6 +83,7 @@ public class FragmentDialogPermissions extends FragmentDialogBase {
tvContactPermissions.setVisibility(hasContactPermissions ? View.GONE : View.VISIBLE);
tvNotificationPermissions.setVisibility(hasNotificationPermissions ? View.GONE : View.VISIBLE);
tvDozeDevice.setVisibility(Helper.isKilling() && !isIgnoring ? View.VISIBLE : View.GONE);
+ tvDozeAndroid15.setVisibility(Helper.isAndroid15() && !isIgnoring ? View.VISIBLE : View.GONE);
tvDozeAndroid12.setVisibility(!canScheduleExact && !isIgnoring ? View.VISIBLE : View.GONE);
grp2.setVisibility(
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index b3356f0cc4..11b28f48d8 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -132,6 +132,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
private TextView tvDozeDone;
private Button btnDoze;
+ private TextView tvDoze15;
private TextView tvDoze12;
private TextView tvDozeWhy;
private TextView tvKilling;
@@ -227,6 +228,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
tvDozeDone = view.findViewById(R.id.tvDozeDone);
btnDoze = view.findViewById(R.id.btnDoze);
+ tvDoze15 = view.findViewById(R.id.tvDoze15);
tvDoze12 = view.findViewById(R.id.tvDoze12);
tvDozeWhy = view.findViewById(R.id.tvDozeWhy);
tvKilling = view.findViewById(R.id.tvKilling);
@@ -883,6 +885,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
tvDozeDone.setCompoundDrawables(null, null, null, null);
btnDoze.setText(null);
btnDoze.setCompoundDrawables(null, null, null, null);
+ tvDoze15.setVisibility(View.GONE);
tvDoze12.setVisibility(View.GONE);
btnInbox.setEnabled(false);
@@ -1034,6 +1037,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
0, 0, isIgnoring ? R.drawable.twotone_settings_24 : R.drawable.twotone_check_24, 0);
btnDoze.setText(isIgnoring ? R.string.title_setup_manage : R.string.title_setup_grant);
+ tvDoze15.setVisibility(Helper.isAndroid15() && !isIgnoring ? View.VISIBLE : View.GONE);
tvDoze12.setVisibility(!canScheduleExact && !isIgnoring ? View.VISIBLE : View.GONE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java
index b92f0adeb6..738ec1ecd1 100644
--- a/app/src/main/java/eu/faircode/email/Helper.java
+++ b/app/src/main/java/eu/faircode/email/Helper.java
@@ -1687,6 +1687,10 @@ public class Helper {
return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S);
}
+ static boolean isAndroid15() {
+ return (Build.VERSION.SDK_INT > Build.VERSION_CODES.UPSIDE_DOWN_CAKE);
+ }
+
static String getMIUIVersion() {
try {
Class> c = Class.forName("android.os.SystemProperties");
diff --git a/app/src/main/res/layout/dialog_permissions.xml b/app/src/main/res/layout/dialog_permissions.xml
index ca4eb36315..e0d7a1572a 100644
--- a/app/src/main/res/layout/dialog_permissions.xml
+++ b/app/src/main/res/layout/dialog_permissions.xml
@@ -118,6 +118,22 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDoze" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/tvDozeAndroid15" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/tvDoze15" />
Sync stopped?
This is probably required for this device
The app won\'t work properly
+ The app cannot be started automatically
Alarms & reminders are disabled
Background restrictions are enabled
Data saver is enabled