diff --git a/android/res/values-be/strings.xml b/android/res/values-be/strings.xml
index 05b421b5f4..00b3ee40fd 100644
--- a/android/res/values-be/strings.xml
+++ b/android/res/values-be/strings.xml
@@ -670,6 +670,9 @@
Дазволіць экрану засынаць
Дазваляе экрану засынаць пасля перыяда бездзеяння.
+ Паказваць Organic Maps на экране блакіроўкі
+
+ Калі ўключана, вам не трэба разблакіраваць прыладу кожны раз падчас працы дадатку.
Пажарная частка
diff --git a/android/res/values-pl/strings.xml b/android/res/values-pl/strings.xml
index 1b8e80db94..50f2572102 100644
--- a/android/res/values-pl/strings.xml
+++ b/android/res/values-pl/strings.xml
@@ -662,6 +662,9 @@
Pozwól ekranowi spać
Po włączeniu ekran będzie mógł spać po okresie bezczynności.
+ Pokazuj Organic Maps na ekranie blokady
+
+ Po włączeniu nie musisz odblokowywać urządzenia za każdym razem, gdy aplikacja jest uruchomiona.
Transport linowy
diff --git a/android/res/values-ru/strings.xml b/android/res/values-ru/strings.xml
index 0abb799814..1a068b0559 100644
--- a/android/res/values-ru/strings.xml
+++ b/android/res/values-ru/strings.xml
@@ -680,6 +680,9 @@
Разрешить экрану спать
При включении экран может переходить в спящий режим после периода бездействия.
+ Показывать Organic Maps на экране блокировки
+
+ Если эта функция включена, вам не нужно каждый раз разблокировать устройство во время работы приложения.
Канатная дорога
diff --git a/android/res/values-uk/strings.xml b/android/res/values-uk/strings.xml
index 9cdec9d772..b74122f1cb 100644
--- a/android/res/values-uk/strings.xml
+++ b/android/res/values-uk/strings.xml
@@ -663,6 +663,9 @@
Дозволити екрану вимкнутись
При включенні екран може переходити в сплячий режим після певного періоду бездіяльності
+ Показувати Organic Maps на заблокованому екрані
+
+ Якщо ввімкнено, вам не потрібно щоразу розблоковувати пристрій під час роботи програми.
Канатна дорога
diff --git a/android/res/values/donottranslate.xml b/android/res/values/donottranslate.xml
index a0235e33b0..0cc1e1741d 100644
--- a/android/res/values/donottranslate.xml
+++ b/android/res/values/donottranslate.xml
@@ -38,6 +38,7 @@
Transliteration
PowerManagment
ScreenSleep
+ ShowOnLockScreen
%1$s: %2$s
%2$s :%1$s
diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml
index 9c412c4842..78188be2a2 100644
--- a/android/res/values/strings.xml
+++ b/android/res/values/strings.xml
@@ -694,6 +694,9 @@
Allow screen to sleep
When enabled the screen will be allowed to sleep after a period of inactivity.
+ Show Organic Maps on the lock screen
+
+ When enabled, you don\'t need to unlock your device every time while the app is running.
Aerialway
diff --git a/android/res/xml/prefs_main.xml b/android/res/xml/prefs_main.xml
index 4b64e686c9..a318bbf5ea 100644
--- a/android/res/xml/prefs_main.xml
+++ b/android/res/xml/prefs_main.xml
@@ -76,6 +76,13 @@
android:summary="@string/enable_screen_sleep_description"
android:defaultValue="false"
android:order="16"/>
+
+
+ {
+ boolean newVal = (Boolean) newValue;
+ if (isShowOnLockScreenEnabled != newVal)
+ {
+ Config.setShowOnLockScreenEnabled(newVal);
+ Utils.showOnLockScreen(newVal, getActivity());
+ }
+ return true;
+ });
+ }
+
private void removePreference(@NonNull String categoryKey, @NonNull Preference preference)
{
PreferenceCategory category = findPreference(categoryKey);
+ // TODO: check whether it's needed #2049
if (category == null)
return;
diff --git a/android/src/com/mapswithme/util/Config.java b/android/src/com/mapswithme/util/Config.java
index aec882d311..d902eb1ebf 100644
--- a/android/src/com/mapswithme/util/Config.java
+++ b/android/src/com/mapswithme/util/Config.java
@@ -39,6 +39,7 @@ public final class Config
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 static final String KEY_MISC_SHOW_ON_LOCK_SCREEN = "ShowOnLockScreen";
private Config() {}
@@ -186,6 +187,16 @@ public final class Config
setBool(KEY_MISC_ENABLE_SCREEN_SLEEP, enabled);
}
+ public static boolean isShowOnLockScreenEnabled()
+ {
+ return getBool(KEY_MISC_SHOW_ON_LOCK_SCREEN, false);
+ }
+
+ public static void setShowOnLockScreenEnabled(boolean enabled)
+ {
+ setBool(KEY_MISC_SHOW_ON_LOCK_SCREEN, enabled);
+ }
+
public static boolean useGoogleServices()
{
return getBool(KEY_PREF_USE_GS, true);
diff --git a/android/src/com/mapswithme/util/Utils.java b/android/src/com/mapswithme/util/Utils.java
index f5ae471c3c..dc9aca68aa 100644
--- a/android/src/com/mapswithme/util/Utils.java
+++ b/android/src/com/mapswithme/util/Utils.java
@@ -18,6 +18,7 @@ import android.text.style.AbsoluteSizeSpan;
import android.util.AndroidRuntimeException;
import android.view.View;
import android.view.Window;
+import android.view.WindowManager;
import android.widget.TextView;
import android.widget.Toast;
@@ -100,6 +101,16 @@ public class Utils
w.clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
+ public static void showOnLockScreen(boolean enable, Activity activity)
+ {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1)
+ activity.setShowWhenLocked(enable);
+ else if (enable)
+ activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+ else
+ activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
+ }
+
public static void showSnackbar(@NonNull View view, @NonNull String message)
{
Snackbar snackbar = Snackbar.make(view, message, Snackbar.LENGTH_LONG);
diff --git a/data/strings/strings.txt b/data/strings/strings.txt
index b2cc29f536..fec2b3fb57 100644
--- a/data/strings/strings.txt
+++ b/data/strings/strings.txt
@@ -21759,6 +21759,23 @@
zh-Hans = 启用后,屏幕将在一段时间不活动后进入休眠状态。
zh-Hant = 啟用後,螢幕將在一段時間不活動後進入休眠狀態。
+ [enable_show_on_lock_screen]
+ tags = android
+ en = Show Organic Maps on the lock screen
+ be = Паказваць Organic Maps на экране блакіроўкі
+ pl = Pokazuj Organic Maps na ekranie blokady
+ ru = Показывать Organic Maps на экране блокировки
+ uk = Показувати Organic Maps на заблокованому екрані
+
+ [enable_show_on_lock_screen_description]
+ tags = android
+ comment = Description in preferences
+ en = When enabled, you don't need to unlock your device every time while the app is running.
+ be = Калі ўключана, вам не трэба разблакіраваць прыладу кожны раз падчас працы дадатку.
+ pl = Po włączeniu nie musisz odblokowywać urządzenia za każdym razem, gdy aplikacja jest uruchomiona.
+ ru = Если эта функция включена, вам не нужно каждый раз разблокировать устройство во время работы приложения.
+ uk = Якщо ввімкнено, вам не потрібно щоразу розблоковувати пристрій під час роботи програми.
+
[whats_new_auto_update_title]
comment = Autoupdate dialog on start
tags = ios