diff --git a/android/app/src/main/java/app/organicmaps/routing/NavigationController.java b/android/app/src/main/java/app/organicmaps/routing/NavigationController.java index 4bea93ece..9d9ba58f5 100644 --- a/android/app/src/main/java/app/organicmaps/routing/NavigationController.java +++ b/android/app/src/main/java/app/organicmaps/routing/NavigationController.java @@ -1,7 +1,9 @@ package app.organicmaps.routing; +import static androidx.core.content.ContextCompat.getString; import static app.organicmaps.sdk.util.Utils.dimen; +import android.content.SharedPreferences; import android.location.Location; import android.text.TextUtils; import android.view.View; @@ -13,6 +15,7 @@ import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import androidx.lifecycle.ViewModelProvider; +import androidx.preference.PreferenceManager; import app.organicmaps.MwmApplication; import app.organicmaps.R; import app.organicmaps.maplayer.MapButtonsViewModel; @@ -58,6 +61,7 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav private final NavMenu mNavMenu; View.OnClickListener mOnSettingsClickListener; + private final boolean speedLimitEnabled; private void addWindowsInsets(@NonNull View topFrame) { @@ -72,6 +76,8 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav public NavigationController(AppCompatActivity activity, View.OnClickListener onSettingsClickListener, NavMenu.OnMenuSizeChangedListener onMenuSizeChangedListener) { + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(activity); + speedLimitEnabled = sharedPreferences.getBoolean(getString(activity, R.string.pref_speedlimit),true); mMapButtonsViewModel = new ViewModelProvider(activity).get(MapButtonsViewModel.class); mFrame = activity.findViewById(R.id.navigation_frame); @@ -97,6 +103,16 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav mSpeedLimit = topFrame.findViewById(R.id.nav_speed_limit); mCurrentSpeed = topFrame.findViewById(R.id.nav_current_speed); + if (speedLimitEnabled) + { + UiUtils.show(mSpeedLimit); + UiUtils.show(mCurrentSpeed); + } + else + { + UiUtils.hide(mSpeedLimit); + UiUtils.hide(mCurrentSpeed); + } View mTopbar = topFrame.findViewById(R.id.statutbar); ViewCompat.setOnApplyWindowInsetsListener(mTopbar,(v, windowInsets) -> { @@ -136,7 +152,8 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav mLanesView.setLanes(info.lanes); - updateSpeedWidgets(info); + if (speedLimitEnabled) + updateSpeedWidgets(info); } private void updatePedestrian(@NonNull RoutingInfo info) @@ -144,7 +161,8 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav mNextTurnDistance.setText(Utils.formatDistance(mFrame.getContext(), info.distToTurn)); info.pedestrianTurnDirection.setTurnDrawable(mNextTurnImage); - updateSpeedWidgets(info); + if (speedLimitEnabled) + updateSpeedWidgets(info); } public void updateNorth() diff --git a/android/app/src/main/res/drawable/ic_speed.xml b/android/app/src/main/res/drawable/ic_speed.xml new file mode 100644 index 000000000..e21967ffa --- /dev/null +++ b/android/app/src/main/res/drawable/ic_speed.xml @@ -0,0 +1,10 @@ + + + diff --git a/android/app/src/main/res/values-fr/strings.xml b/android/app/src/main/res/values-fr/strings.xml index 5a40b5cb9..3ce694794 100644 --- a/android/app/src/main/res/values-fr/strings.xml +++ b/android/app/src/main/res/values-fr/strings.xml @@ -926,4 +926,6 @@ Serveur de cartes personnalisé Veuillez saisir une URL complète commençant par http:// ou https:// Serveur pour télécharger les cartes. Laissez vide pour utiliser le serveur par défaut CoMaps. + Compteur de vitesse + Affichage de la vitesse durant la navigation diff --git a/android/app/src/main/res/values/donottranslate.xml b/android/app/src/main/res/values/donottranslate.xml index 47475bd26..99ccd3a9f 100644 --- a/android/app/src/main/res/values/donottranslate.xml +++ b/android/app/src/main/res/values/donottranslate.xml @@ -45,6 +45,7 @@ pref_power CustomMapDownloadUrl pref_advanced + pref_speedlimit %1$s: %2$s %2$s :%1$s diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml index b0185acc9..5a0f96d74 100644 --- a/android/app/src/main/res/values/strings.xml +++ b/android/app/src/main/res/values/strings.xml @@ -975,4 +975,6 @@ Override the default map download server used for map downloads. Leave empty to use CoMaps default server. Not set Please enter a URL starting with http:// or https:// + Speed limit + Show speed during navigation diff --git a/android/app/src/main/res/xml/prefs_main.xml b/android/app/src/main/res/xml/prefs_main.xml index d568ea6c2..4cc7c9ccb 100644 --- a/android/app/src/main/res/xml/prefs_main.xml +++ b/android/app/src/main/res/xml/prefs_main.xml @@ -143,6 +143,14 @@ +