diff --git a/android/res/layout/layout_nav_bottom_numbers.xml b/android/res/layout/layout_nav_bottom_numbers.xml
index 0a798f06a6..7a4576f88a 100644
--- a/android/res/layout/layout_nav_bottom_numbers.xml
+++ b/android/res/layout/layout_nav_bottom_numbers.xml
@@ -1,5 +1,6 @@
-
-
-
+ android:layout_weight="0.5" />
-
+ android:minWidth="@dimen/nav_numbers_side_min_width"
+ android:orientation="vertical">
-
-
-
+ android:layout_weight="1.25" />
-
+ android:minWidth="@dimen/nav_numbers_side_min_width"
+ android:orientation="vertical">
-
-
-
-
-
-
-
-
+ android:layout_weight="1"
+ android:gravity="center"
+ android:minWidth="@dimen/nav_numbers_side_min_width"
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
+
-
+ android:minWidth="@dimen/nav_numbers_side_min_width"
+ android:orientation="vertical">
-
-
-
+ android:layout_weight="0.5" />
+
\ No newline at end of file
diff --git a/android/src/app/organicmaps/widget/menu/NavMenu.java b/android/src/app/organicmaps/widget/menu/NavMenu.java
index 32cd16d337..0e06689904 100644
--- a/android/src/app/organicmaps/widget/menu/NavMenu.java
+++ b/android/src/app/organicmaps/widget/menu/NavMenu.java
@@ -5,19 +5,20 @@ import android.util.Pair;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
import app.organicmaps.R;
import app.organicmaps.location.LocationHelper;
import app.organicmaps.routing.RoutingInfo;
import app.organicmaps.sound.TtsPlayer;
-import app.organicmaps.widget.FlatProgressView;
import app.organicmaps.util.Graphics;
import app.organicmaps.util.StringUtils;
import app.organicmaps.util.UiUtils;
+import app.organicmaps.widget.FlatProgressView;
+import com.google.android.material.bottomsheet.BottomSheetBehavior;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -39,13 +40,19 @@ public class NavMenu
private final TextView mTimeHourUnits;
private final TextView mTimeMinuteValue;
private final TextView mTimeMinuteUnits;
+ private final TextView mTimeHourValue2;
+ private final TextView mTimeHourUnits2;
+ private final TextView mTimeMinuteValue2;
+ private final TextView mTimeMinuteUnits2;
private final TextView mTimeEstimate;
+ private final TextView mTimeEstimate2;
private final TextView mDistanceValue;
private final TextView mDistanceUnits;
private final FlatProgressView mRouteProgress;
-
private final AppCompatActivity mActivity;
private final NavMenuListener mNavMenuListener;
+ private LinearLayout mTimeValueContainer;
+ private LinearLayout mTimeValueContainer2;
private int currentPeekHeight = 0;
@@ -92,10 +99,17 @@ public class NavMenu
mTimeHourUnits = bottomFrame.findViewById(R.id.time_hour_dimen);
mTimeMinuteValue = bottomFrame.findViewById(R.id.time_minute_value);
mTimeMinuteUnits = bottomFrame.findViewById(R.id.time_minute_dimen);
+ mTimeHourValue2 = bottomFrame.findViewById(R.id.time_hour_value2);
+ mTimeHourUnits2 = bottomFrame.findViewById(R.id.time_hour_dimen2);
+ mTimeMinuteValue2 = bottomFrame.findViewById(R.id.time_minute_value2);
+ mTimeMinuteUnits2 = bottomFrame.findViewById(R.id.time_minute_dimen2);
mTimeEstimate = bottomFrame.findViewById(R.id.time_estimate);
+ mTimeEstimate2 = bottomFrame.findViewById(R.id.time_estimate2);
mDistanceValue = bottomFrame.findViewById(R.id.distance_value);
mDistanceUnits = bottomFrame.findViewById(R.id.distance_dimen);
mRouteProgress = bottomFrame.findViewById(R.id.navigation_progress);
+ mTimeValueContainer = bottomFrame.findViewById(R.id.time_values_container);
+ mTimeValueContainer2 = bottomFrame.findViewById(R.id.time_values_container2);
// Bottom frame buttons
ImageView mSettings = bottomFrame.findViewById(R.id.settings);
@@ -158,8 +172,8 @@ public class NavMenu
public void refreshTts()
{
- mTts.setImageDrawable(TtsPlayer.isEnabled() ? Graphics.tint(mActivity, R.drawable.ic_voice_on,
- R.attr.colorAccent)
+ mTts.setImageDrawable(TtsPlayer.isEnabled() ? Graphics.tint(mActivity,
+ R.drawable.ic_voice_on, R.attr.colorAccent)
: Graphics.tint(mActivity, R.drawable.ic_voice_off));
}
@@ -175,16 +189,40 @@ public class NavMenu
final long hours = TimeUnit.SECONDS.toHours(seconds);
final long minutes = TimeUnit.SECONDS.toMinutes(seconds) % 60;
mTimeMinuteValue.setText(String.valueOf(minutes));
+ mTimeMinuteValue2.setText(String.valueOf(minutes));
String min = mActivity.getResources().getString(R.string.minute);
mTimeMinuteUnits.setText(min);
+ mTimeMinuteUnits2.setText(min);
+ mTimeValueContainer.setOnClickListener(v -> changeTimes());
if (hours == 0)
{
UiUtils.hide(mTimeHourUnits, mTimeHourValue);
+ UiUtils.hide(mTimeHourUnits2, mTimeHourValue2);
return;
}
UiUtils.setTextAndShow(mTimeHourValue, String.valueOf(hours));
+ UiUtils.setTextAndShow(mTimeHourValue2, String.valueOf(hours));
String hour = mActivity.getResources().getString(R.string.hour);
UiUtils.setTextAndShow(mTimeHourUnits, hour);
+ UiUtils.setTextAndShow(mTimeHourUnits2, hour);
+ }
+
+ public void changeTimes()
+ {
+ if (mTimeValueContainer.getVisibility() == View.VISIBLE)
+ {
+ UiUtils.hide(mTimeValueContainer);
+ UiUtils.show(mTimeValueContainer2);
+ UiUtils.hide(mTimeEstimate);
+ UiUtils.show(mTimeEstimate2);
+ }
+ else
+ {
+ UiUtils.show(mTimeValueContainer);
+ UiUtils.hide(mTimeValueContainer2);
+ UiUtils.show(mTimeEstimate);
+ UiUtils.hide(mTimeEstimate2);
+ }
}
private void updateTimeEstimate(int seconds)
@@ -197,9 +235,9 @@ public class NavMenu
else
timeFormat = new SimpleDateFormat("h:mm aa", Locale.getDefault());
mTimeEstimate.setText(timeFormat.format(currentTime.getTime()));
+ mTimeEstimate2.setText(timeFormat.format(currentTime.getTime()));
+ mTimeEstimate2.setOnClickListener(v -> changeTimes());
}
-
-
private void updateSpeedView(@NonNull RoutingInfo info)
{
final Location last = LocationHelper.INSTANCE.getSavedLocation();
@@ -228,4 +266,4 @@ public class NavMenu
void onSettingsClicked();
}
-}
+}
\ No newline at end of file