forked from organicmaps/organicmaps
[android] Added an option to allow screen to sleep if required
Signed-off-by: Martin Woolley <martin@woolleynet.com>
This commit is contained in:
parent
0bfdc387ea
commit
470bc6f231
6 changed files with 47 additions and 1 deletions
|
@ -40,6 +40,7 @@
|
|||
<string name="pref_information" translatable="false">Information</string>
|
||||
<string name="pref_transliteration" translatable="false">Transliteration</string>
|
||||
<string name="pref_power_management" translatable="false">PowerManagment</string>
|
||||
<string name="pref_screen_sleep" translatable="false">ScreenSleep</string>
|
||||
|
||||
<string name="notification_ticker_ltr" translatable="false">%1$s: %2$s</string>
|
||||
<string name="notification_ticker_rtl" translatable="false">%2$s :%1$s</string>
|
||||
|
|
|
@ -1130,6 +1130,8 @@
|
|||
<string name="power_managment_setting_never">Never</string>
|
||||
<string name="power_managment_setting_auto">Automatic</string>
|
||||
<string name="power_managment_setting_manual_max">Maximum power saving</string>
|
||||
<string name="enable_screen_sleep">Allow screen to sleep</string>
|
||||
<string name="enable_screen_sleep_description">When enabled the screen will be allowed to sleep after a period of inactivity.</string>
|
||||
<string name="enable_logging_warning_message">The option turns on logging for diagnostic purposes. It can be helpful for our support staff who are troubleshooting issues with the app. Enable this option only at the request of Organic Maps support.</string>
|
||||
<string name="html_error_upload_message_try_again">Please check your network settings and try again</string>
|
||||
<string name="html_error_upload_title_try_again">No internet connection</string>
|
||||
|
|
|
@ -92,6 +92,12 @@
|
|||
android:entries="@array/power_management_scheme"
|
||||
android:entryValues="@array/power_management_scheme_values"
|
||||
android:order="15"/>
|
||||
<SwitchPreferenceCompat
|
||||
android:key="@string/pref_screen_sleep"
|
||||
android:title="@string/enable_screen_sleep"
|
||||
android:summary="@string/enable_screen_sleep_description"
|
||||
android:defaultValue="false"
|
||||
android:order="16"/>
|
||||
</androidx.preference.PreferenceCategory>
|
||||
|
||||
<androidx.preference.PreferenceCategory
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.mapswithme.util.PermissionsUtils;
|
|||
import com.mapswithme.util.Utils;
|
||||
import com.mapswithme.util.log.Logger;
|
||||
import com.mapswithme.util.log.LoggerFactory;
|
||||
import com.mapswithme.util.Config;
|
||||
|
||||
public enum LocationHelper implements Initializable<Context>
|
||||
{
|
||||
|
@ -548,7 +549,9 @@ public enum LocationHelper implements Initializable<Context>
|
|||
|
||||
mUiCallback = callback;
|
||||
|
||||
Utils.keepScreenOn(true, mUiCallback.getActivity().getWindow());
|
||||
if (!Config.isScreenSleepEnabled()) {
|
||||
Utils.keepScreenOn(true, mUiCallback.getActivity().getWindow());
|
||||
}
|
||||
|
||||
mUiCallback.onMyPositionModeChanged(getMyPositionMode());
|
||||
if (mCompassData != null)
|
||||
|
|
|
@ -43,6 +43,7 @@ import com.mapswithme.util.ThemeSwitcher;
|
|||
import com.mapswithme.util.UiUtils;
|
||||
import com.mapswithme.util.concurrency.UiThread;
|
||||
import com.mapswithme.util.log.LoggerFactory;
|
||||
import com.mapswithme.util.Utils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -305,6 +306,7 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment
|
|||
initUseMobileDataPrefsCallbacks();
|
||||
initPowerManagementPrefsCallbacks();
|
||||
initCrashReports();
|
||||
initScreenSleepEnabledPrefsCallbacks();
|
||||
updateTts();
|
||||
}
|
||||
|
||||
|
@ -832,6 +834,25 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment
|
|||
pref.setOnPreferenceChangeListener((preference, newValue) -> onToggleCrashReports(newValue));
|
||||
}
|
||||
|
||||
private void initScreenSleepEnabledPrefsCallbacks()
|
||||
{
|
||||
Preference pref = findPreference(getString(R.string.pref_screen_sleep));
|
||||
if (pref == null)
|
||||
return;
|
||||
|
||||
final boolean isScreenSleepEnabled = Config.isScreenSleepEnabled();
|
||||
((TwoStatePreference) pref).setChecked(isScreenSleepEnabled);
|
||||
pref.setOnPreferenceChangeListener(
|
||||
(preference, newValue) ->
|
||||
{
|
||||
boolean newVal = (Boolean) newValue;
|
||||
if (isScreenSleepEnabled != newVal)
|
||||
Config.setScreenSleepEnabled(newVal);
|
||||
Utils.keepScreenOn(!newVal, getActivity().getWindow());
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
private void removePreference(@NonNull String categoryKey, @NonNull Preference preference)
|
||||
{
|
||||
PreferenceCategory category = findPreference(categoryKey);
|
||||
|
|
|
@ -38,6 +38,7 @@ public final class Config
|
|||
private static final String KEY_MISC_USE_MOBILE_DATA_TIMESTAMP = "UseMobileDataTimestamp";
|
||||
private static final String KEY_MISC_USE_MOBILE_DATA_ROAMING = "UseMobileDataRoaming";
|
||||
private static final String KEY_MISC_AD_FORBIDDEN = "AdForbidden";
|
||||
private static final String KEY_MISC_ENABLE_SCREEN_SLEEP = "EnableScreenSleep";
|
||||
|
||||
private Config() {}
|
||||
|
||||
|
@ -120,6 +121,8 @@ public final class Config
|
|||
getBool(KEY_MISC_FIRST_START_DIALOG_SEEN))
|
||||
.putInt(KEY_MISC_NEWS_LAST_VERSION, getInt(KEY_MISC_NEWS_LAST_VERSION))
|
||||
.putInt(KEY_LIKES_LAST_RATED_SESSION, getInt(KEY_LIKES_LAST_RATED_SESSION))
|
||||
.putBoolean(KEY_MISC_ENABLE_SCREEN_SLEEP,
|
||||
getBool(KEY_MISC_ENABLE_SCREEN_SLEEP))
|
||||
.apply();
|
||||
}
|
||||
|
||||
|
@ -178,6 +181,16 @@ public final class Config
|
|||
setBool(KEY_PREF_STATISTICS, enabled);
|
||||
}
|
||||
|
||||
public static boolean isScreenSleepEnabled()
|
||||
{
|
||||
return getBool(KEY_MISC_ENABLE_SCREEN_SLEEP, false);
|
||||
}
|
||||
|
||||
public static void setScreenSleepEnabled(boolean enabled)
|
||||
{
|
||||
setBool(KEY_MISC_ENABLE_SCREEN_SLEEP, enabled);
|
||||
}
|
||||
|
||||
public static boolean useGoogleServices()
|
||||
{
|
||||
return getBool(KEY_PREF_USE_GS, true);
|
||||
|
|
Loading…
Add table
Reference in a new issue