Added inexact alarm button

pull/200/head
M66B 3 years ago
parent b51819b32a
commit 683dd0ebe8

@ -88,6 +88,7 @@ public class FragmentSetup extends FragmentBase {
private TextView tvDozeDone;
private Button btnDoze;
private Button btnInexactAlarms;
private Button btnBackgroundRestricted;
private Button btnDataSaver;
@ -96,6 +97,7 @@ public class FragmentSetup extends FragmentBase {
private Button btnInbox;
private Group grpInexactAlarms;
private Group grpBackgroundRestricted;
private Group grpDataSaver;
@ -146,6 +148,7 @@ public class FragmentSetup extends FragmentBase {
tvDozeDone = view.findViewById(R.id.tvDozeDone);
btnDoze = view.findViewById(R.id.btnDoze);
btnInexactAlarms = view.findViewById(R.id.btnInexactAlarms);
btnBackgroundRestricted = view.findViewById(R.id.btnBackgroundRestricted);
btnDataSaver = view.findViewById(R.id.btnDataSaver);
@ -154,6 +157,7 @@ public class FragmentSetup extends FragmentBase {
btnInbox = view.findViewById(R.id.btnInbox);
grpInexactAlarms = view.findViewById(R.id.grpInexactAlarms);
grpBackgroundRestricted = view.findViewById(R.id.grpBackgroundRestricted);
grpDataSaver = view.findViewById(R.id.grpDataSaver);
@ -396,6 +400,20 @@ public class FragmentSetup extends FragmentBase {
PackageManager pm = getContext().getPackageManager();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
final Intent settings = new Intent(
Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM,
Uri.parse("package:" + BuildConfig.APPLICATION_ID));
btnInexactAlarms.setEnabled(settings.resolveActivity(pm) != null); // system whitelisted
btnInexactAlarms.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(settings);
}
});
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
final Intent settings = new Intent(
Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
@ -447,6 +465,7 @@ public class FragmentSetup extends FragmentBase {
btnInbox.setEnabled(false);
grpInexactAlarms.setVisibility(View.GONE);
grpBackgroundRestricted.setVisibility(View.GONE);
grpDataSaver.setVisibility(View.GONE);
@ -549,6 +568,10 @@ public class FragmentSetup extends FragmentBase {
tvDozeDone.setTypeface(null, ignoring == null || ignoring ? Typeface.NORMAL : Typeface.BOLD);
tvDozeDone.setCompoundDrawablesWithIntrinsicBounds(ignoring == null || ignoring ? check : null, null, null, null);
grpInexactAlarms.setVisibility(
!AlarmManagerCompatEx.canScheduleExactAlarms(getContext())
? View.VISIBLE : View.GONE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
ActivityManager am =
(ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);

@ -631,6 +631,29 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnDoze" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvInexactAlarms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_setup_inexact"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDozeHint" />
<Button
android:id="@+id/btnInexactAlarms"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableEnd="@drawable/twotone_settings_24"
android:drawablePadding="6dp"
android:text="@string/title_setup_manage"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvInexactAlarms" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvBackgroundRestricted"
android:layout_width="wrap_content"
@ -641,7 +664,7 @@
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDozeHint" />
app:layout_constraintTop_toBottomOf="@id/btnInexactAlarms" />
<Button
android:id="@+id/btnBackgroundRestricted"
@ -705,6 +728,12 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvBatteryUsage" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpInexactAlarms"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="tvInexactAlarms,btnInexactAlarms" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpBackgroundRestricted"
android:layout_width="0dp"

@ -220,6 +220,7 @@
<string name="title_setup_doze_stopped">Sync stopped?</string>
<string name="title_setup_doze_device">This is probably required for this device</string>
<string name="title_setup_doze_android">This is required for this Android version</string>
<string name="title_setup_inexact">Alarms &amp; reminders are disabled</string>
<string name="title_setup_background">Background restrictions are enabled</string>
<string name="title_setup_data">Data saver is enabled</string>
<string name="title_setup_advanced_options">Show advanced options</string>

Loading…
Cancel
Save