[android] Migrate bottomsheet to Material components

Signed-off-by: Jean-Baptiste Charron <jeanbaptiste.charron@outlook.fr>
This commit is contained in:
Jean-Baptiste
2025-06-11 18:28:06 +02:00
committed by Harry Bond
parent 59fe3c08ab
commit 1e35bdaa0e
5 changed files with 18 additions and 17 deletions

View File

@@ -3,14 +3,15 @@ package app.organicmaps.util.bottomsheet;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView; 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.R;
import app.organicmaps.location.TrackRecorder; import app.organicmaps.location.TrackRecorder;
import app.organicmaps.util.Config; import app.organicmaps.util.Config;
@@ -49,7 +50,7 @@ public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.ViewHolder>
public void onBindViewHolder(ViewHolder viewHolder, final int position) public void onBindViewHolder(ViewHolder viewHolder, final int position)
{ {
final MenuBottomSheetItem item = dataSet.get(position); final MenuBottomSheetItem item = dataSet.get(position);
final ImageView iv = viewHolder.getIconImageView(); final ShapeableImageView iv = viewHolder.getIconImageView();
if (item.iconRes == R.drawable.ic_donate && Config.isNY()) if (item.iconRes == R.drawable.ic_donate && Config.isNY())
{ {
iv.setImageResource(R.drawable.ic_christmas_tree); iv.setImageResource(R.drawable.ic_christmas_tree);
@@ -59,7 +60,7 @@ public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.ViewHolder>
iv.setImageResource(item.iconRes); iv.setImageResource(item.iconRes);
viewHolder.getContainer().setOnClickListener((v) -> onMenuItemClick(item)); viewHolder.getContainer().setOnClickListener((v) -> onMenuItemClick(item));
viewHolder.getTitleTextView().setText(item.titleRes); viewHolder.getTitleTextView().setText(item.titleRes);
TextView badge = viewHolder.getBadgeTextView(); MaterialTextView badge = viewHolder.getBadgeTextView();
if (item.badgeCount > 0) if (item.badgeCount > 0)
{ {
badge.setText(String.valueOf(item.badgeCount)); badge.setText(String.valueOf(item.badgeCount));
@@ -87,9 +88,9 @@ public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.ViewHolder>
public static class ViewHolder extends RecyclerView.ViewHolder public static class ViewHolder extends RecyclerView.ViewHolder
{ {
private final LinearLayout container; private final LinearLayout container;
private final ImageView iconImageView; private final ShapeableImageView iconImageView;
private final TextView titleTextView; private final MaterialTextView titleTextView;
private final TextView badgeTextView; private final MaterialTextView badgeTextView;
public ViewHolder(View view) public ViewHolder(View view)
{ {
@@ -100,17 +101,17 @@ public class MenuAdapter extends RecyclerView.Adapter<MenuAdapter.ViewHolder>
badgeTextView = view.findViewById(R.id.bottom_sheet_menu_item_badge); badgeTextView = view.findViewById(R.id.bottom_sheet_menu_item_badge);
} }
public ImageView getIconImageView() public ShapeableImageView getIconImageView()
{ {
return iconImageView; return iconImageView;
} }
public TextView getTitleTextView() public MaterialTextView getTitleTextView()
{ {
return titleTextView; return titleTextView;
} }
public TextView getBadgeTextView() public MaterialTextView getBadgeTextView()
{ {
return badgeTextView; return badgeTextView;
} }

View File

@@ -7,7 +7,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@@ -20,6 +19,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog; import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment; import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.textview.MaterialTextView;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Objects; import java.util.Objects;
@@ -93,7 +93,7 @@ public class MenuBottomSheetFragment extends BottomSheetDialogFragment
{ {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
attachToNearestContext(); attachToNearestContext();
TextView titleView = view.findViewById(R.id.bottomSheetTitle); MaterialTextView titleView = view.findViewById(R.id.bottomSheetTitle);
RecyclerView recyclerView = view.findViewById(R.id.bottomSheetMenuContainer); RecyclerView recyclerView = view.findViewById(R.id.bottomSheetMenuContainer);
if (getArguments() != null) if (getArguments() != null)
{ {

View File

@@ -13,7 +13,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/bottomSheetTitle" android:id="@+id/bottomSheetTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -4,7 +4,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<ImageView <com.google.android.material.imageview.ShapeableImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="4dp" android:layout_height="4dp"
android:layout_marginTop="@dimen/margin_quarter" android:layout_marginTop="@dimen/margin_quarter"

View File

@@ -11,14 +11,14 @@
android:background="?clickableBackground" android:background="?clickableBackground"
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <com.google.android.material.imageview.ShapeableImageView
android:id="@+id/bottom_sheet_menu_item_icon" android:id="@+id/bottom_sheet_menu_item_icon"
android:layout_width="@dimen/bookmark_icon_size" android:layout_width="@dimen/bookmark_icon_size"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
tools:src="@drawable/ic_menu_download" tools:src="@drawable/ic_menu_download"
app:tint="?android:textColorSecondary"/> app:tint="?android:textColorSecondary"/>
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/bottom_sheet_menu_item_text" android:id="@+id/bottom_sheet_menu_item_text"
android:textAppearance="@style/MwmTextAppearance.Body1" android:textAppearance="@style/MwmTextAppearance.Body1"
android:layout_width="0dp" android:layout_width="0dp"
@@ -29,7 +29,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:singleLine="true" android:singleLine="true"
tools:text="Menu Item" /> tools:text="Menu Item" />
<TextView <com.google.android.material.textview.MaterialTextView
android:id="@+id/bottom_sheet_menu_item_badge" android:id="@+id/bottom_sheet_menu_item_badge"
style="@style/MwmWidget.Counter" style="@style/MwmWidget.Counter"
android:layout_gravity="end|center_vertical" android:layout_gravity="end|center_vertical"