Check for Sony Stamina mode

This commit is contained in:
M66B 2021-09-12 18:15:00 +02:00
parent e39efc7759
commit c304f5cd11
4 changed files with 53 additions and 1 deletions

View File

@ -97,6 +97,7 @@ public class FragmentSetup extends FragmentBase {
private Button btnInexactAlarms;
private Button btnBackgroundRestricted;
private Button btnDataSaver;
private TextView tvStamina;
private TextView tvBatteryUsage;
private TextView tvSyncStopped;
@ -161,6 +162,7 @@ public class FragmentSetup extends FragmentBase {
btnInexactAlarms = view.findViewById(R.id.btnInexactAlarms);
btnBackgroundRestricted = view.findViewById(R.id.btnBackgroundRestricted);
btnDataSaver = view.findViewById(R.id.btnDataSaver);
tvStamina = view.findViewById(R.id.tvStamina);
tvBatteryUsage = view.findViewById(R.id.tvBatteryUsage);
tvSyncStopped = view.findViewById(R.id.tvSyncStopped);
@ -444,6 +446,14 @@ public class FragmentSetup extends FragmentBase {
}
});
tvStamina.setPaintFlags(tvStamina.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
tvStamina.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.view(v.getContext(), Uri.parse(Helper.DONTKILL_URI + "sony"), true);
}
});
tvBatteryUsage.setPaintFlags(tvBatteryUsage.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
tvBatteryUsage.setOnClickListener(new View.OnClickListener() {
@Override
@ -530,6 +540,7 @@ public class FragmentSetup extends FragmentBase {
grpInexactAlarms.setVisibility(View.GONE);
grpBackgroundRestricted.setVisibility(View.GONE);
grpDataSaver.setVisibility(View.GONE);
tvStamina.setVisibility(View.GONE);
setContactsPermission(hasPermission(Manifest.permission.READ_CONTACTS));
@ -663,6 +674,9 @@ public class FragmentSetup extends FragmentBase {
grpDataSaver.setVisibility(ConnectionHelper.isDataSaving(getContext())
? View.VISIBLE : View.GONE);
tvStamina.setVisibility(Helper.isStaminaEnabled(getContext())
? View.VISIBLE : View.GONE);
}
@Override

View File

@ -985,6 +985,27 @@ public class Helper {
return "Blackview".equalsIgnoreCase(Build.MANUFACTURER);
}
static boolean isSony() {
return "sony".equalsIgnoreCase(Build.MANUFACTURER);
}
static boolean isStaminaEnabled(Context context) {
// https://dontkillmyapp.com/sony
if (BuildConfig.DEBUG)
return true;
if (!isSony())
return false;
try {
ContentResolver resolver = context.getContentResolver();
return (Settings.Secure.getInt(resolver, "somc.stamina_mode", 0) > 0);
} catch (Throwable ex) {
Log.e(ex);
return false;
}
}
static boolean isSurfaceDuo() {
return ("Microsoft".equalsIgnoreCase(Build.MANUFACTURER) && "Surface Duo".equals(Build.MODEL));
}
@ -1003,6 +1024,7 @@ public class Helper {
// Vivo
isRealme() ||
isBlackview() ||
isSony() ||
BuildConfig.DEBUG);
}

View File

@ -778,6 +778,21 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvDataSaver" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvStamina"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableEnd="@drawable/twotone_warning_24"
android:drawablePadding="6dp"
android:drawableTint="?attr/colorWarning"
android:text="@string/title_setup_stamina"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="?attr/colorWarning"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnDataSaver" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvBatteryUsage"
android:layout_width="wrap_content"
@ -790,7 +805,7 @@
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnDataSaver" />
app:layout_constraintTop_toBottomOf="@id/tvStamina" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvSyncStopped"

View File

@ -228,6 +228,7 @@
<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_stamina" translatable="false">Stamina mode is enabled</string>
<string name="title_setup_advanced_options">Show advanced options</string>
<string name="title_setup_inbox">Go to inbox</string>
<string name="title_setup_go">Go</string>