Merge pull request #7753 from osmandapp/Fix_7596
Fix 7596
diff --git a/OsmAnd/src/net/osmand/AndroidUtils.java b/OsmAnd/src/net/osmand/AndroidUtils.java
index f41b677..e27d316 100644
--- a/OsmAnd/src/net/osmand/AndroidUtils.java
+++ b/OsmAnd/src/net/osmand/AndroidUtils.java
@@ -388,13 +388,18 @@
: ctx.getResources().getColor(R.color.text_color_secondary_light));
}
-
public static int getTextWidth(float textSize, String text) {
Paint paint = new Paint();
paint.setTextSize(textSize);
return (int) paint.measureText(text);
}
-
+
+ public static int getTextHeight(Paint paint) {
+ Paint.FontMetrics fm = paint.getFontMetrics();
+ float height = fm.bottom - fm.top;
+ return (int) height;
+ }
+
public static int dpToPx(Context ctx, float dp) {
Resources r = ctx.getResources();
return (int) TypedValue.applyDimension(
diff --git a/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java b/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java
index 3fc913b..ad6be46 100644
--- a/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java
+++ b/OsmAnd/src/net/osmand/plus/routepreparationmenu/AddPointBottomSheetDialog.java
@@ -3,7 +3,6 @@
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
-import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
@@ -552,10 +551,10 @@
if (activity != null) {
RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) view.getLayoutParams();
if (AndroidUiHelper.isOrientationPortrait(getActivity())) {
- layoutParams.width = AndroidUtils.getScreenWidth(activity) / 2;
+ layoutParams.width = (int) (AndroidUtils.getScreenWidth(activity) / 2.5);
} else {
// 11.5dp is the shadow width
- layoutParams.width = (getResources().getDimensionPixelSize(R.dimen.landscape_bottom_sheet_dialog_fragment_width) / 2) - AndroidUtils.dpToPx(activity, 11.5f);
+ layoutParams.width = (int) ((getResources().getDimensionPixelSize(R.dimen.landscape_bottom_sheet_dialog_fragment_width) / 2.5) - AndroidUtils.dpToPx(activity, 11.5f));
}
view.setLayoutParams(layoutParams);
}
@@ -585,6 +584,26 @@
super(app, items);
}
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
+ RecyclerView.ViewHolder viewHolder = super.onCreateViewHolder(viewGroup, viewType);
+
+ TextView title = viewHolder.itemView.findViewById(R.id.title);
+ TextView description = viewHolder.itemView.findViewById(R.id.description);
+ if (title != null && description != null) {
+ int titleHeight = AndroidUtils.getTextHeight(title.getPaint());
+ int descriptionHeight = AndroidUtils.getTextHeight(description.getPaint());
+ int minTextHeight = titleHeight + descriptionHeight * 2;
+ int defaultItemHeight = viewGroup.getContext().getResources().getDimensionPixelSize(R.dimen.bottom_sheet_selected_item_title_height);
+ if (defaultItemHeight < minTextHeight) {
+ viewHolder.itemView.setMinimumHeight(minTextHeight);
+ }
+ }
+
+ return viewHolder;
+ }
+
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
OsmandApplication app = getApp();