summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod
diff options
context:
space:
mode:
authorByteHamster <ByteHamster@users.noreply.github.com>2023-03-06 21:40:34 +0100
committerGitHub <noreply@github.com>2023-03-06 21:40:34 +0100
commit0b3e6640570ab6b19b00a63c0880801b43c00792 (patch)
tree793c3bb5897034a5ae453454e7436b2d8b386786 /app/src/main/java/de/danoeh/antennapod
parentd8d94878a201cd1a33bb34f9c42ab68c49b82069 (diff)
downloadAntennaPod-0b3e6640570ab6b19b00a63c0880801b43c00792.zip
Prompt for battery optimization (#6362)
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
index 50de1e3c4..c1cb8adb1 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/preferences/NetworkPreferencesFragment.java
@@ -1,9 +1,14 @@
package de.danoeh.antennapod.fragment.preferences;
import android.content.Context;
+import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
+import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
+import android.os.PowerManager;
+import android.provider.Settings;
import android.text.format.DateFormat;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
@@ -17,10 +22,13 @@ import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.concurrent.TimeUnit;
+import static android.content.Context.POWER_SERVICE;
+
public class NetworkPreferencesFragment extends PreferenceFragmentCompat
implements SharedPreferences.OnSharedPreferenceChangeListener {
private static final String PREF_SCREEN_AUTODL = "prefAutoDownloadSettings";
+ private static final String PREF_BATTERY_OPTIMIZATION = "prefBatteryOptimization";
private static final String PREF_PROXY = "prefProxy";
@Override
@@ -59,6 +67,20 @@ public class NetworkPreferencesFragment extends PreferenceFragmentCompat
new FeedRefreshIntervalDialog(getContext()).show();
return true;
});
+ if (Build.VERSION.SDK_INT >= 31) {
+ PowerManager powerManager = (PowerManager) getContext().getSystemService(POWER_SERVICE);
+ if (!powerManager.isIgnoringBatteryOptimizations(getContext().getPackageName())) {
+ findPreference(PREF_BATTERY_OPTIMIZATION).setVisible(true);
+ findPreference(PREF_BATTERY_OPTIMIZATION).setOnPreferenceClickListener(preference -> {
+ findPreference(PREF_BATTERY_OPTIMIZATION).setVisible(false);
+ Intent i = new Intent();
+ i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
+ i.setData(Uri.parse("package:" + getContext().getPackageName()));
+ startActivity(i);
+ return true;
+ });
+ }
+ }
findPreference(UserPreferences.PREF_PARALLEL_DOWNLOADS)
.setOnPreferenceChangeListener(