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