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();