diff --git a/android/app/src/main/java/app/organicmaps/MwmActivity.java b/android/app/src/main/java/app/organicmaps/MwmActivity.java
index 62ba89d994..f8d60e581f 100644
--- a/android/app/src/main/java/app/organicmaps/MwmActivity.java
+++ b/android/app/src/main/java/app/organicmaps/MwmActivity.java
@@ -1091,6 +1091,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
protected void onResume()
{
super.onResume();
+ ThemeSwitcher.INSTANCE.restart(isMapRendererActive());
refreshSearchToolbar();
setFullscreen(isFullscreen());
if (Framework.nativeGetChoosePositionMode() != Framework.ChoosePositionMode.NONE)
diff --git a/android/app/src/main/java/app/organicmaps/settings/SettingsPrefsFragment.java b/android/app/src/main/java/app/organicmaps/settings/SettingsPrefsFragment.java
index 3018ac65e6..775ddd0009 100644
--- a/android/app/src/main/java/app/organicmaps/settings/SettingsPrefsFragment.java
+++ b/android/app/src/main/java/app/organicmaps/settings/SettingsPrefsFragment.java
@@ -469,7 +469,8 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment
{
DEFAULT(R.string.theme_default),
NIGHT(R.string.theme_night),
- AUTO(R.string.theme_auto);
+ AUTO(R.string.theme_auto),
+ NAV_AUTO(R.string.theme_nav_auto);
private final int mModeStringId;
diff --git a/android/app/src/main/java/app/organicmaps/util/Config.java b/android/app/src/main/java/app/organicmaps/util/Config.java
index 75b3a1b503..155eed9c96 100644
--- a/android/app/src/main/java/app/organicmaps/util/Config.java
+++ b/android/app/src/main/java/app/organicmaps/util/Config.java
@@ -257,7 +257,7 @@ public final class Config
{
String autoTheme = MwmApplication.from(context).getString(R.string.theme_auto);
String res = getString(KEY_MISC_UI_THEME_SETTINGS, autoTheme);
- if (ThemeUtils.isValidTheme(context, res) || ThemeUtils.isAutoTheme(context, res))
+ if (ThemeUtils.isValidTheme(context, res) || ThemeUtils.isAutoTheme(context, res) || ThemeUtils.isNavAutoTheme(context, res))
return res;
return autoTheme;
diff --git a/android/app/src/main/java/app/organicmaps/util/ThemeSwitcher.java b/android/app/src/main/java/app/organicmaps/util/ThemeSwitcher.java
index 86d7d4497c..d70055b0f9 100644
--- a/android/app/src/main/java/app/organicmaps/util/ThemeSwitcher.java
+++ b/android/app/src/main/java/app/organicmaps/util/ThemeSwitcher.java
@@ -32,18 +32,18 @@ public enum ThemeSwitcher
String nightTheme = MwmApplication.from(mContext).getString(R.string.theme_night);
String defaultTheme = MwmApplication.from(mContext).getString(R.string.theme_default);
String theme = defaultTheme;
+ Location last = LocationHelper.from(mContext).getSavedLocation();
- if (RoutingController.get().isNavigating())
+ boolean navAuto = RoutingController.get().isNavigating() && ThemeUtils.isNavAutoTheme(mContext);
+
+ if (navAuto || ThemeUtils.isAutoTheme(mContext))
{
- Location last = LocationHelper.from(mContext).getSavedLocation();
if (last == null)
- {
theme = Config.getCurrentUiTheme(mContext);
- }
else
{
- boolean day = Framework.nativeIsDayTime(System.currentTimeMillis() / 1000,
- last.getLatitude(), last.getLongitude());
+ long currentTime = System.currentTimeMillis() / 1000;
+ boolean day = Framework.nativeIsDayTime(currentTime, last.getLatitude(), last.getLongitude());
theme = (day ? defaultTheme : nightTheme);
}
}
@@ -51,7 +51,7 @@ public enum ThemeSwitcher
setThemeAndMapStyle(theme);
UiThread.cancelDelayedTasks(mAutoThemeChecker);
- if (ThemeUtils.isAutoTheme(mContext))
+ if (navAuto || ThemeUtils.isAutoTheme(mContext))
UiThread.runLater(mAutoThemeChecker, CHECK_INTERVAL_MS);
}
};
@@ -79,7 +79,7 @@ public enum ThemeSwitcher
{
mRendererActive = isRendererActive;
String theme = Config.getUiThemeSettings(mContext);
- if (ThemeUtils.isAutoTheme(mContext, theme))
+ if (ThemeUtils.isAutoTheme(mContext, theme) || ThemeUtils.isNavAutoTheme(mContext, theme))
{
mAutoThemeChecker.run();
return;
diff --git a/android/app/src/main/java/app/organicmaps/util/ThemeUtils.java b/android/app/src/main/java/app/organicmaps/util/ThemeUtils.java
index cd82d02c48..c121c8d313 100644
--- a/android/app/src/main/java/app/organicmaps/util/ThemeUtils.java
+++ b/android/app/src/main/java/app/organicmaps/util/ThemeUtils.java
@@ -69,7 +69,7 @@ public final class ThemeUtils
public static boolean isAutoTheme(@NonNull Context context)
{
- return isAutoTheme(context, Config.getCurrentUiTheme(context));
+ return isAutoTheme(context, Config.getUiThemeSettings(context));
}
public static boolean isAutoTheme(@NonNull Context context, String theme)
@@ -78,6 +78,17 @@ public final class ThemeUtils
return autoTheme.equals(theme);
}
+ public static boolean isNavAutoTheme(@NonNull Context context)
+ {
+ return isNavAutoTheme(context, Config.getUiThemeSettings(context));
+ }
+
+ public static boolean isNavAutoTheme(@NonNull Context context, String theme)
+ {
+ String navAutoTheme = context.getString(R.string.theme_nav_auto);
+ return navAutoTheme.equals(theme);
+}
+
public static boolean isValidTheme(@NonNull Context context, String theme)
{
String defaultTheme = context.getString(R.string.theme_default);
diff --git a/android/app/src/main/res/values/donottranslate.xml b/android/app/src/main/res/values/donottranslate.xml
index 8ae874d0b9..6eb2b3d03b 100644
--- a/android/app/src/main/res/values/donottranslate.xml
+++ b/android/app/src/main/res/values/donottranslate.xml
@@ -51,6 +51,7 @@
default
night
auto
+ nav-auto
collapse
diff --git a/android/app/src/main/res/values/string-arrays.xml b/android/app/src/main/res/values/string-arrays.xml
index beab636f15..ee0e6210fd 100644
--- a/android/app/src/main/res/values/string-arrays.xml
+++ b/android/app/src/main/res/values/string-arrays.xml
@@ -28,6 +28,7 @@
- @string/off
- @string/on
- @string/auto
+ - @string/nav_auto
@string/theme_default
- @string/theme_night
- @string/theme_auto
+ - @string/theme_nav_auto
diff --git a/data/strings/strings.txt b/data/strings/strings.txt
index 0bd44a6d85..222e229b8d 100644
--- a/data/strings/strings.txt
+++ b/data/strings/strings.txt
@@ -32395,3 +32395,49 @@
vi = Không có ứng dụng nào được cài đặt có thể mở vị trí
zh-Hans = 未安装可打开位置的应用程序
zh-Hant = 沒有安裝可以打開該位置的應用程式
+
+ [nav_auto]
+ comment = preference string for using auto theme only in navigation mode
+ tags = android
+ en = Auto in navigation
+ af = Outo in navigasie
+ ar = تلقائي في التنقل
+ az = Naviqasiyada avtomatik
+ be = Аўто ў навігацыі
+ bg = Автоматично в навигацията
+ ca = Auto a la navegació
+ cs = Auto v navigaci
+ da = Auto i navigation
+ de = Auto in der Navigation
+ el = Αυτόματη πλοήγηση
+ es = Auto en navegación
+ et = Automaatne navigeerimine
+ eu = Nabigazioan automatikoa
+ fa = خودکار در ناوبری
+ fi = Automaattinen navigointi
+ fr = Auto dans la navigation
+ he = אוטומטי בניווט
+ hi = नेविगेशन में ऑटो
+ hu = Automatikus navigáció
+ id = Otomatis dalam navigasi
+ it = Auto in navigazione
+ ja = ナビゲーションオート
+ ko = 내비게이션의 자동
+ lt = Automatinė navigacija
+ mr = नेव्हिगेशनमध्ये ऑटो
+ nb = Auto i navigasjon
+ nl = Auto in navigatie
+ pl = Automatyczna nawigacja
+ pt = Auto na navegação
+ pt-BR = Automático na navegação
+ ro = Auto în navigație
+ ru = Авто в навигации
+ sk = Automaticky v navigácii
+ sv = Auto i navigering
+ sw = Urambazaji otomatiki
+ th = อัตโนมัติในการนำทาง
+ tr = Navigasyonda otomatik
+ uk = Авто в навігації
+ vi = Tự động điều hướng
+ zh-Hans = 自动导航
+ zh-Hant = 自動導航