diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index a6f648f270..1e519fb592 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -74,6 +74,7 @@ public class FragmentSetup extends FragmentBase {
private TextView tvDozeDone;
private Button btnDoze;
+ private Button btnBattery;
private Button btnData;
@@ -119,6 +120,7 @@ public class FragmentSetup extends FragmentBase {
tvDozeDone = view.findViewById(R.id.tvDozeDone);
btnDoze = view.findViewById(R.id.btnDoze);
+ btnBattery = view.findViewById(R.id.btnBattery);
btnData = view.findViewById(R.id.btnData);
@@ -126,6 +128,7 @@ public class FragmentSetup extends FragmentBase {
grpWelcome = view.findViewById(R.id.grpWelcome);
+ PackageManager pm = getContext().getPackageManager();
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
// Wire controls
@@ -138,6 +141,7 @@ public class FragmentSetup extends FragmentBase {
}
});
+ btnHelp.setVisibility(Helper.getIntentSetupHelp().resolveActivity(pm) == null ? View.GONE : View.VISIBLE);
btnHelp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -145,9 +149,6 @@ public class FragmentSetup extends FragmentBase {
}
});
- PackageManager pm = getContext().getPackageManager();
- btnHelp.setVisibility(Helper.getIntentSetupHelp().resolveActivity(pm) == null ? View.GONE : View.VISIBLE);
-
btnQuick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -187,6 +188,15 @@ public class FragmentSetup extends FragmentBase {
}
});
+ final Intent faq = new Intent(Intent.ACTION_VIEW, Uri.parse(Helper.FAQ_URI + "#user-content-faq39"));
+ btnBattery.setVisibility(faq.resolveActivity(pm) == null ? View.GONE : View.VISIBLE);
+ btnBattery.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ startActivity(faq);
+ }
+ });
+
btnData.setOnClickListener(new View.OnClickListener() {
@Override
@TargetApi(Build.VERSION_CODES.N)
@@ -330,22 +340,29 @@ public class FragmentSetup extends FragmentBase {
public void onResume() {
super.onResume();
+ // Doze
boolean ignoring = true;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent intent = new Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
if (intent.resolveActivity(getContext().getPackageManager()) != null) {
PowerManager pm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE);
- ignoring = pm.isIgnoringBatteryOptimizations(BuildConfig.APPLICATION_ID);
+ ignoring = (pm != null && pm.isIgnoringBatteryOptimizations(BuildConfig.APPLICATION_ID));
}
}
+
btnDoze.setEnabled(!ignoring);
+
+ // https://issuetracker.google.com/issues/37070074
+ ignoring = (ignoring || Build.VERSION.SDK_INT != Build.VERSION_CODES.M);
tvDozeDone.setText(ignoring ? R.string.title_setup_done : R.string.title_setup_to_do);
tvDozeDone.setTextColor(ignoring ? textColorPrimary : colorWarning);
tvDozeDone.setCompoundDrawablesWithIntrinsicBounds(ignoring ? check : null, null, null, null);
+ // Power saving
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
- boolean saving = (cm.getRestrictBackgroundStatus() == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED);
+ boolean saving = (cm != null &&
+ cm.getRestrictBackgroundStatus() == ConnectivityManager.RESTRICT_BACKGROUND_STATUS_ENABLED);
btnData.setVisibility(saving || BuildConfig.DEBUG ? View.VISIBLE : View.GONE);
}
}
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index 92b53a6b72..4cbfd08c2d 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -411,6 +411,18 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tvDozeDone" />
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6ecfec4b6b..ef9fba8f1e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -129,6 +129,7 @@
Setup battery optimizations
To continuously receive email (optional)
In the next dialog, select \"All apps\" at the top, select this app and select and confirm \"Don\'t optimize\"
+ High battery usage?
Disable data saving
Go to messages
To do