Loading app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentHomeCacheSettings.java +30 −0 Original line number Diff line number Diff line Loading @@ -15,9 +15,15 @@ package app.fedilab.android.mastodon.ui.fragment.settings; * see <http://www.gnu.org/licenses>. */ import static android.content.Context.POWER_SERVICE; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.PowerManager; import android.provider.Settings; import androidx.preference.ListPreference; import androidx.preference.Preference; Loading Loading @@ -77,6 +83,30 @@ public class FragmentHomeCacheSettings extends PreferenceFragmentCompat implemen return false; }); } Preference SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS = findPreference(getString(R.string.SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS)); if (SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { PowerManager pm = (PowerManager) requireActivity().getSystemService(POWER_SERVICE); String packageName = requireActivity().getPackageName(); if (!pm.isIgnoringBatteryOptimizations(packageName)) { SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS.setOnPreferenceClickListener(preference -> { Intent intent = new Intent(); String packageName1 = requireActivity().getPackageName(); intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:" + packageName1)); startActivity(intent); return false; }); } else { preferenceScreen.removePreferenceRecursively(getString(R.string.SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS)); } } else { preferenceScreen.removePreferenceRecursively(getString(R.string.SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS)); } } } Loading app/src/main/res/xml/pref_home_cache.xml +7 −0 Original line number Diff line number Diff line Loading @@ -30,4 +30,11 @@ app:icon="@drawable/baseline_show_chart_24" app:iconSpaceReserved="false" app:key="@string/pref_category_show_data" /> <Preference app:iconSpaceReserved="false" app:key="@string/SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS" app:title="@string/set_remove_battery" /> </PreferenceScreen> No newline at end of file Loading
app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentHomeCacheSettings.java +30 −0 Original line number Diff line number Diff line Loading @@ -15,9 +15,15 @@ package app.fedilab.android.mastodon.ui.fragment.settings; * see <http://www.gnu.org/licenses>. */ import static android.content.Context.POWER_SERVICE; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.PowerManager; import android.provider.Settings; import androidx.preference.ListPreference; import androidx.preference.Preference; Loading Loading @@ -77,6 +83,30 @@ public class FragmentHomeCacheSettings extends PreferenceFragmentCompat implemen return false; }); } Preference SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS = findPreference(getString(R.string.SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS)); if (SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS != null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { PowerManager pm = (PowerManager) requireActivity().getSystemService(POWER_SERVICE); String packageName = requireActivity().getPackageName(); if (!pm.isIgnoringBatteryOptimizations(packageName)) { SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS.setOnPreferenceClickListener(preference -> { Intent intent = new Intent(); String packageName1 = requireActivity().getPackageName(); intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(Uri.parse("package:" + packageName1)); startActivity(intent); return false; }); } else { preferenceScreen.removePreferenceRecursively(getString(R.string.SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS)); } } else { preferenceScreen.removePreferenceRecursively(getString(R.string.SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS)); } } } Loading
app/src/main/res/xml/pref_home_cache.xml +7 −0 Original line number Diff line number Diff line Loading @@ -30,4 +30,11 @@ app:icon="@drawable/baseline_show_chart_24" app:iconSpaceReserved="false" app:key="@string/pref_category_show_data" /> <Preference app:iconSpaceReserved="false" app:key="@string/SET_KEY_IGNORE_BATTERY_OPTIMIZATIONS" app:title="@string/set_remove_battery" /> </PreferenceScreen> No newline at end of file