Added altitude chart to the NavMenu while Expanded
Signed-off-by: Carles Sentis <me@codeskraps.com>
This commit is contained in:
parent
74cfbff0a4
commit
9025c1b760
2 changed files with 41 additions and 9 deletions
|
@ -21,6 +21,13 @@
|
|||
<include layout="@layout/bottom_sheet_handle" />
|
||||
<include layout="@layout/layout_nav_bottom_numbers" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/nav_routing_chart"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/nav_menu_content_height"
|
||||
android:visibility="gone"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<app.organicmaps.widget.FlatProgressView
|
||||
android:id="@+id/navigation_progress"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package app.organicmaps.widget.menu;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.location.Location;
|
||||
import android.util.Pair;
|
||||
import android.view.View;
|
||||
|
@ -9,16 +10,8 @@ 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.util.log.Logger;
|
||||
import app.organicmaps.widget.FlatProgressView;
|
||||
import app.organicmaps.util.Graphics;
|
||||
import app.organicmaps.util.StringUtils;
|
||||
import app.organicmaps.util.UiUtils;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
|
@ -26,6 +19,16 @@ import java.util.Calendar;
|
|||
import java.util.Locale;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import app.organicmaps.Framework;
|
||||
import app.organicmaps.R;
|
||||
import app.organicmaps.location.LocationHelper;
|
||||
import app.organicmaps.routing.RoutingInfo;
|
||||
import app.organicmaps.sound.TtsPlayer;
|
||||
import app.organicmaps.util.Graphics;
|
||||
import app.organicmaps.util.StringUtils;
|
||||
import app.organicmaps.util.UiUtils;
|
||||
import app.organicmaps.widget.FlatProgressView;
|
||||
|
||||
public class NavMenu
|
||||
{
|
||||
private final BottomSheetBehavior<View> mNavBottomSheetBehavior;
|
||||
|
@ -33,6 +36,7 @@ public class NavMenu
|
|||
private final View mHeaderFrame;
|
||||
|
||||
private final ImageView mTts;
|
||||
private final ImageView mRoutingChart;
|
||||
private final View mSpeedViewContainer;
|
||||
private final TextView mSpeedValue;
|
||||
private final TextView mSpeedUnits;
|
||||
|
@ -108,6 +112,7 @@ public class NavMenu
|
|||
mRouteProgress = bottomFrame.findViewById(R.id.navigation_progress);
|
||||
|
||||
// Bottom frame buttons
|
||||
mRoutingChart = bottomFrame.findViewById(R.id.nav_routing_chart);
|
||||
ImageView mSettings = bottomFrame.findViewById(R.id.settings);
|
||||
mSettings.setOnClickListener(v -> onSettingsClicked());
|
||||
mTts = bottomFrame.findViewById(R.id.tts_volume);
|
||||
|
@ -154,11 +159,13 @@ public class NavMenu
|
|||
|
||||
public void collapseNavBottomSheet()
|
||||
{
|
||||
updateRouteAltitudeChart(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
mNavBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
||||
}
|
||||
|
||||
public void expandNavBottomSheet()
|
||||
{
|
||||
updateRouteAltitudeChart(BottomSheetBehavior.STATE_EXPANDED);
|
||||
mNavBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
||||
}
|
||||
|
||||
|
@ -239,4 +246,22 @@ public class NavMenu
|
|||
|
||||
void onSettingsClicked();
|
||||
}
|
||||
|
||||
private void updateRouteAltitudeChart(int state)
|
||||
{
|
||||
if (state == BottomSheetBehavior.STATE_COLLAPSED) {
|
||||
mRoutingChart.setVisibility(View.GONE);
|
||||
} else {
|
||||
mRoutingChart.setVisibility(View.VISIBLE);
|
||||
final int chartWidth = ((View) mRoutingChart.getParent()).getWidth();
|
||||
final int chartHeight = UiUtils.dimen(mActivity, R.dimen.altitude_chart_image_height);
|
||||
final Framework.RouteAltitudeLimits limits = new Framework.RouteAltitudeLimits();
|
||||
final Bitmap bm = Framework.generateRouteAltitudeChart(chartWidth, chartHeight, limits);
|
||||
if (bm != null) {
|
||||
mRoutingChart.setImageBitmap(bm);
|
||||
} else {
|
||||
mRoutingChart.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue