[android] Migrate routing screens to Material

Signed-off-by: Jean-Baptiste Charron <jeanbaptiste.charron@outlook.fr>
This commit is contained in:
Jean-Baptiste
2025-07-27 21:25:36 +02:00
parent 07c26a5ab8
commit f05a9c9eb4
20 changed files with 89 additions and 84 deletions

View File

@@ -9,7 +9,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import app.organicmaps.R;
@@ -19,6 +18,7 @@ import app.organicmaps.sdk.downloader.CountryItem;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.sdk.util.UiUtils;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textview.MaterialTextView;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -93,9 +93,9 @@ abstract class BaseRoutingErrorDialogFragment extends BaseMwmDialogFragment
{
@SuppressLint("InflateParams")
final View countryView = View.inflate(requireActivity(), R.layout.dialog_missed_map, null);
((TextView) countryView.findViewById(R.id.tv__title)).setText(map.name);
((MaterialTextView) countryView.findViewById(R.id.tv__title)).setText(map.name);
final TextView szView = countryView.findViewById(R.id.tv__size);
final MaterialTextView szView = countryView.findViewById(R.id.tv__size);
szView.setText(StringUtils.getFileSizeString(requireContext(), map.totalSize));
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) szView.getLayoutParams();
lp.rightMargin = 0;

View File

@@ -8,11 +8,11 @@ import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.sdk.bookmarks.data.MapObject;
import app.organicmaps.sdk.routing.RouteMarkData;
@@ -232,16 +232,16 @@ public class ManageRouteAdapter extends RecyclerView.Adapter<ManageRouteAdapter.
public final View mItemView;
@NonNull
public final ImageView mImageViewIcon;
public final ShapeableImageView mImageViewIcon;
@NonNull
public final TextView mTextViewTitle;
public final MaterialTextView mTextViewTitle;
@NonNull
public final TextView mTextViewSubtitle;
public final MaterialTextView mTextViewSubtitle;
@NonNull
public final ImageView mImageViewDelete;
public final ShapeableImageView mImageViewDelete;
ManageRouteViewHolder(@NonNull View itemView)
{

View File

@@ -4,7 +4,6 @@ import android.location.Location;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
@@ -28,20 +27,22 @@ import app.organicmaps.widget.LanesView;
import app.organicmaps.widget.SpeedLimitView;
import app.organicmaps.widget.menu.NavMenu;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
public class NavigationController implements TrafficManager.TrafficCallback, NavMenu.NavMenuListener
{
private final View mFrame;
private final ImageView mNextTurnImage;
private final TextView mNextTurnDistance;
private final TextView mCircleExit;
private final MaterialTextView mNextTurnDistance;
private final MaterialTextView mCircleExit;
private final View mNextNextTurnFrame;
private final ImageView mNextNextTurnImage;
private final View mStreetFrame;
private final TextView mNextStreet;
private final MaterialTextView mNextStreet;
@NonNull
private final LanesView mLanesView;

View File

@@ -60,7 +60,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
@NonNull
private final View mTransitFrame;
@NonNull
private final TextView mError;
private final MaterialTextView mError;
@NonNull
private final Button mStart;
@NonNull
@@ -94,7 +94,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
View altitudeChartFrame = getViewById(activity, frame, R.id.altitude_chart_panel);
View timeElevationLine = getViewById(activity, frame, R.id.time_elevation_line);
View transitFrame = getViewById(activity, frame, R.id.transit_panel);
TextView error = (TextView) getViewById(activity, frame, R.id.error);
MaterialTextView error = (MaterialTextView) getViewById(activity, frame, R.id.error);
Button start = (Button) getViewById(activity, frame, R.id.start);
ImageView altitudeChart = (ImageView) getViewById(activity, frame, R.id.altitude_chart);
MaterialTextView time = (MaterialTextView) getViewById(activity, frame, R.id.time);
@@ -117,7 +117,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
private RoutingBottomMenuController(@NonNull Activity context, @NonNull View altitudeChartFrame,
@NonNull View timeElevationLine, @NonNull View transitFrame,
@NonNull TextView error, @NonNull Button start, @NonNull ImageView altitudeChart,
@NonNull MaterialTextView error, @NonNull Button start, @NonNull ImageView altitudeChart,
@NonNull MaterialTextView time, @NonNull MaterialTextView altitudeDifference,
@NonNull TextView timeVehicle, @Nullable MaterialTextView arrival,
@NonNull View actionFrame, @Nullable RoutingBottomMenuListener listener)
@@ -223,7 +223,7 @@ final class RoutingBottomMenuController implements View.OnClickListener
else
UiUtils.hide(rv); // Show only distance between start and finish
TextView totalTimeView = mTransitFrame.findViewById(R.id.total_time);
MaterialTextView totalTimeView = mTransitFrame.findViewById(R.id.total_time);
totalTimeView.setText(mContext.getString(R.string.placepage_distance) + ": " + totalLength.mDistanceStr + " "
+ totalLength.getUnitsStr(mContext));

View File

@@ -8,12 +8,12 @@ import android.text.TextUtils;
import android.util.Pair;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentFactory;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.sdk.downloader.CountryItem;
import app.organicmaps.sdk.downloader.MapManager;
@@ -38,7 +38,7 @@ public class RoutingErrorDialogFragment extends BaseRoutingErrorDialogFragment
if (!TextUtils.isEmpty(titleMessage.first))
{
TextView titleView = new TextView(requireContext());
MaterialTextView titleView = new MaterialTextView(requireContext());
titleView.setText(titleMessage.first);
titleView.setPadding(65, 32, 32, 16);
titleView.setTextSize(18);

View File

@@ -5,7 +5,6 @@ import android.util.Pair;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.ContextCompat;
@@ -19,6 +18,7 @@ import app.organicmaps.util.Graphics;
import app.organicmaps.util.ThemeUtils;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.progressindicator.LinearProgressIndicator;
import com.google.android.material.textview.MaterialTextView;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.TimeUnit;
@@ -31,15 +31,15 @@ public class NavMenu
private final ImageView mTts;
private final View mSpeedViewContainer;
private final TextView mSpeedValue;
private final TextView mSpeedUnits;
private final TextView mTimeHourValue;
private final TextView mTimeHourUnits;
private final TextView mTimeMinuteValue;
private final TextView mTimeMinuteUnits;
private final TextView mTimeEstimate;
private final TextView mDistanceValue;
private final TextView mDistanceUnits;
private final MaterialTextView mSpeedValue;
private final MaterialTextView mSpeedUnits;
private final MaterialTextView mTimeHourValue;
private final MaterialTextView mTimeHourUnits;
private final MaterialTextView mTimeMinuteValue;
private final MaterialTextView mTimeMinuteUnits;
private final MaterialTextView mTimeEstimate;
private final MaterialTextView mDistanceValue;
private final MaterialTextView mDistanceUnits;
private final LinearProgressIndicator mRouteProgress;
private final AppCompatActivity mActivity;

View File

@@ -5,7 +5,6 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import app.organicmaps.MwmActivity;
@@ -21,16 +20,17 @@ import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.sdk.util.UiUtils;
import app.organicmaps.util.Utils;
import app.organicmaps.widget.ArrowView;
import com.google.android.material.textview.MaterialTextView;
public class DirectionFragment extends BaseMwmDialogFragment implements LocationListener, SensorListener
{
private static final String EXTRA_MAP_OBJECT = "MapObject";
private ArrowView mAvDirection;
private TextView mTvTitle;
private TextView mTvSubtitle;
private TextView mTvDistance;
private TextView mTvAzimuth;
private MaterialTextView mTvTitle;
private MaterialTextView mTvSubtitle;
private MaterialTextView mTvDistance;
private MaterialTextView mTvAzimuth;
private MapObject mMapObject;

View File

@@ -26,7 +26,7 @@
android:layout_toEndOf="@id/av__direction"
android:orientation="vertical">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__title"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"
@@ -35,7 +35,7 @@
android:textSize="@dimen/text_direction_title"
tools:text="Some place"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__subtitle"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"
@@ -44,7 +44,7 @@
android:textSize="@dimen/text_direction_subtitle"
tools:text="Some place type"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__straight_distance"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"
@@ -53,7 +53,7 @@
android:textSize="@dimen/text_direction_dist"
tools:text="9000 km"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__azimuth"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"

View File

@@ -20,7 +20,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="UselessParent">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/street"
style="@style/MwmWidget.TextView.NavStreet"
android:layout_width="match_parent"
@@ -64,7 +64,7 @@
app:tint="?iconTint"
tools:background="#400000FF"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/circle_exit"
style="@style/MwmWidget.TextView.NavNextTurn.Exit"
android:layout_width="wrap_content"
@@ -73,7 +73,7 @@
tools:text="9"/>
</FrameLayout>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/distance"
style="@style/MwmWidget.TextView.NavNextTurn"
android:layout_width="wrap_content"
@@ -96,7 +96,7 @@
android:elevation="@dimen/nav_elevation"
android:visibility="gone"
tools:visibility="visible">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@id/turn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -5,7 +5,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -16,7 +16,7 @@
android:layout_marginTop="@dimen/margin_direction_small"
app:srcCompat="@drawable/ic_direction_fullscreen"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__subtitle"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"
@@ -28,7 +28,7 @@
android:textSize="@dimen/text_direction_subtitle"
tools:text="Some place type"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__title"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"
@@ -40,7 +40,7 @@
android:textSize="@dimen/text_direction_title"
tools:text="Place, \n long, \n long"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__straight_distance"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"
@@ -51,7 +51,7 @@
android:layout_marginTop="@dimen/margin_direction_big"
android:textSize="@dimen/text_direction_dist"
tools:text="9000 km"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__azimuth"
style="@style/MwmWidget.TextView.Direction"
android:layout_width="wrap_content"

View File

@@ -23,7 +23,7 @@
layout="@layout/routing_action_panel"
android:visibility="gone"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/error"
android:paddingStart="@dimen/margin_base"
android:paddingEnd="@dimen/margin_base"

View File

@@ -23,7 +23,7 @@
app:centerDrawable="@android:color/transparent"
tools:visibility="visible"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -34,7 +34,7 @@
android:textAppearance="@style/MwmTextAppearance.Body1"
tools:text="256 MB"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -23,7 +23,7 @@
app:centerDrawable="@android:color/transparent"
tools:visibility="visible"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -35,7 +35,7 @@
android:textColor="?colorAccent"
tools:text="256 MB"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -23,7 +23,7 @@
android:gravity="center"
android:minWidth="@dimen/nav_numbers_side_min_width">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/speed_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -33,7 +33,7 @@
tools:text="999" />
<!-- Speed -->
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/speed_dimen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -63,7 +63,7 @@
android:layout_height="wrap_content"
tools:background="#20FF0000">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/time_hour_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -72,7 +72,7 @@
android:textAppearance="@style/MwmTextAppearance.NavMenu.Time"
tools:text="999" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/time_hour_dimen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -82,7 +82,7 @@
android:textAppearance="@style/MwmTextAppearance.NavMenu.Time.Dimension"
tools:text="h" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/time_minute_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -92,7 +92,7 @@
android:textAppearance="@style/MwmTextAppearance.NavMenu.Time"
tools:text="99" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/time_minute_dimen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -102,7 +102,7 @@
tools:text="m" />
</LinearLayout>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/time_estimate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -126,7 +126,7 @@
android:gravity="center"
android:minWidth="@dimen/nav_numbers_side_min_width">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/distance_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -135,7 +135,7 @@
android:textAppearance="@style/MwmTextAppearance.NavMenu.Number"
tools:text="99999" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/distance_dimen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -20,7 +20,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/nav_street_height"
tools:ignore="UselessParent">
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/street"
style="@style/MwmWidget.TextView.NavStreet"
android:layout_width="match_parent"
@@ -64,7 +64,7 @@
app:tint="?iconTint"
tools:background="#400000FF"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/circle_exit"
style="@style/MwmWidget.TextView.NavNextTurn.Exit"
android:layout_width="wrap_content"
@@ -73,7 +73,7 @@
tools:text="9"/>
</FrameLayout>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/distance"
style="@style/MwmWidget.TextView.NavNextTurn"
android:layout_width="wrap_content"
@@ -96,7 +96,7 @@
android:elevation="@dimen/nav_elevation"
android:visibility="invisible"
tools:visibility="visible">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@id/turn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -20,7 +20,7 @@
android:paddingStart="0dp"
android:paddingEnd="@dimen/altitude_chart_container_padding_left">
<TextView
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
@@ -28,7 +28,7 @@
android:textSize="20sp"
android:textStyle="bold"/>
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/image_my_location"
android:layout_width="24dp"
android:layout_height="24dp"
@@ -80,7 +80,7 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<RelativeLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
@@ -94,20 +94,24 @@
style="@style/MwmWidget.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:text="@string/cancel"/>
android:layout_gravity="center_vertical"
android:text="@string/cancel"
android:textColor="?android:attr/textColorPrimary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn__plan"
style="@style/MwmWidget.Button.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:text="@string/button_plan"/>
android:layout_gravity="center_vertical"
android:text="@string/button_plan"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>

View File

@@ -6,7 +6,7 @@
android:layout_height="60dp"
android:gravity="center_vertical">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/type_icon"
android:layout_width="24dp"
android:layout_height="24dp"
@@ -15,7 +15,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:srcCompat="@drawable/route_point_finish"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -34,7 +34,7 @@
app:layout_constrainedWidth="true"
tools:text="Title"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -52,7 +52,7 @@
app:layout_constrainedWidth="true"
tools:text="Subtitle"/>
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/delete_icon"
android:layout_width="24dp"
android:layout_height="24dp"

View File

@@ -10,7 +10,7 @@
<include layout="@layout/routing_bottom_panel_transit"/>
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/error"
android:paddingStart="@dimen/margin_base"
android:paddingEnd="@dimen/margin_base"

View File

@@ -23,7 +23,7 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/back"
android:layout_width="?attr/actionBarSize"
android:layout_height="?attr/actionBarSize"
@@ -157,14 +157,14 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/driving_options_btn_img"
android:layout_width="@dimen/margin_base_plus"
android:layout_height="@dimen/margin_base_plus"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/margin_half_plus_eight"
app:srcCompat="@drawable/ic_error_white" />
<TextView
<com.google.android.material.textview.MaterialTextView
android:id="@+id/driving_options_btn_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"