diff --git a/OsmAnd/res/layout/bottom_buttons_vertical.xml b/OsmAnd/res/layout/bottom_buttons_vertical.xml index 5ea2d4954c..0de7d48389 100644 --- a/OsmAnd/res/layout/bottom_buttons_vertical.xml +++ b/OsmAnd/res/layout/bottom_buttons_vertical.xml @@ -1,51 +1,52 @@ + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/buttons_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:gravity="center" + android:orientation="vertical" + android:paddingStart="@dimen/content_padding" + android:paddingLeft="@dimen/content_padding" + android:paddingTop="@dimen/content_padding_small" + android:paddingEnd="@dimen/content_padding" + android:paddingRight="@dimen/content_padding" + android:paddingBottom="@dimen/content_padding_small"> - + - + - + - + - + \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/base/MenuBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/base/MenuBottomSheetDialogFragment.java index 0d86993502..307cfb3bbe 100644 --- a/OsmAnd/src/net/osmand/plus/base/MenuBottomSheetDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/base/MenuBottomSheetDialogFragment.java @@ -52,9 +52,9 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra protected View rightButton; protected View thirdButton; + private View buttonsShadow; private LinearLayout itemsContainer; private LinearLayout buttonsContainer; - protected View buttonsShadow; @StringRes protected int dismissButtonStringRes = R.string.shared_string_cancel; @@ -162,6 +162,7 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra } final int screenHeight = AndroidUtils.getScreenHeight(activity); final int statusBarHeight = AndroidUtils.getStatusBarHeight(activity); + final int contentHeight = getContentHeight(screenHeight - statusBarHeight); mainView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override @@ -172,7 +173,6 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra } else { obs.removeGlobalOnLayoutListener(this); } - final int contentHeight = getContentHeight(screenHeight - statusBarHeight); final View contentView = useScrollableItemsContainer() ? mainView.findViewById(R.id.scroll_view) : itemsContainer; if (contentView.getHeight() > contentHeight) { @@ -201,9 +201,14 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra private int getContentHeight(int availableScreenHeight) { int customHeight = getCustomHeight(); - int buttonsHeight = 0; + int buttonsHeight; if (useVerticalButtons()) { - buttonsHeight = AndroidUtils.dpToPx(getContext(), 112); + int padding = getResources().getDimensionPixelSize(R.dimen.content_padding_small); + int buttonHeight = getResources().getDimensionPixelSize(R.dimen.dialog_button_height); + buttonsHeight = (buttonHeight + padding) * 2 + getFirstDividerHeight(); + if (getThirdBottomButtonTextId() != DEFAULT_VALUE) { + buttonsHeight += buttonHeight + getSecondDividerHeight(); + } } else { buttonsHeight = getResources().getDimensionPixelSize(R.dimen.dialog_button_ex_height); } @@ -310,10 +315,12 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra } String rightButtonText = getString(rightBottomButtonTextId); boolean portrait = AndroidUiHelper.isOrientationPortrait(activity); + int outerPadding = getResources().getDimensionPixelSize(R.dimen.content_padding); + int innerPadding = getResources().getDimensionPixelSize(R.dimen.content_padding_small); int dialogWidth = portrait ? AndroidUtils.getScreenWidth(activity) : getResources().getDimensionPixelSize(R.dimen.landscape_bottom_sheet_dialog_fragment_width); - int measuredTextWidth = AndroidUtils.getTextWidth(getResources().getDimensionPixelSize(R.dimen.default_desc_text_size), rightButtonText); - int availableTextWidth = (dialogWidth - AndroidUtils.dpToPx(activity, 96)) / 2; + int availableTextWidth = (dialogWidth - (outerPadding * 3 + innerPadding * 4)) / 2; + int measuredTextWidth = AndroidUtils.getTextWidth(getResources().getDimensionPixelSize(R.dimen.default_desc_text_size), rightButtonText); return measuredTextWidth > availableTextWidth; } return false; @@ -366,7 +373,7 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra AndroidUiHelper.updateVisibility(divider, buttonTextId != DEFAULT_VALUE); } - protected int getFirstDividerHeight(){ + protected int getFirstDividerHeight() { return getResources().getDimensionPixelSize(R.dimen.content_padding); } @@ -388,7 +395,7 @@ public abstract class MenuBottomSheetDialogFragment extends BottomSheetDialogFra AndroidUiHelper.updateVisibility(divider, buttonTextId != DEFAULT_VALUE); } - protected int getSecondDividerHeight(){ + protected int getSecondDividerHeight() { return getResources().getDimensionPixelSize(R.dimen.content_padding); } diff --git a/OsmAnd/src/net/osmand/plus/measurementtool/ExitBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/measurementtool/ExitBottomSheetDialogFragment.java index 7d88767964..1bdd3ffdf2 100644 --- a/OsmAnd/src/net/osmand/plus/measurementtool/ExitBottomSheetDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/measurementtool/ExitBottomSheetDialogFragment.java @@ -1,7 +1,6 @@ package net.osmand.plus.measurementtool; import android.os.Bundle; -import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -9,12 +8,10 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import net.osmand.plus.R; -import net.osmand.plus.UiUtilities; +import net.osmand.plus.UiUtilities.DialogButtonType; import net.osmand.plus.base.MenuBottomSheetDialogFragment; -import net.osmand.plus.base.bottomsheetmenu.BottomSheetItemButton; import net.osmand.plus.base.bottomsheetmenu.simpleitems.DividerSpaceItem; import net.osmand.plus.base.bottomsheetmenu.simpleitems.ShortDescriptionItem; -import net.osmand.plus.helpers.AndroidUiHelper; public class ExitBottomSheetDialogFragment extends MenuBottomSheetDialogFragment { @@ -29,8 +26,7 @@ public class ExitBottomSheetDialogFragment extends MenuBottomSheetDialogFragment items.add(new ShortDescriptionItem.Builder() .setDescription(getString(R.string.plan_route_exit_dialog_descr)) - .setTitle(getString(R.string. - exit_without_saving)) + .setTitle(getString(R.string.exit_without_saving)) .setLayoutId(R.layout.bottom_sheet_item_list_title_with_descr) .create()); @@ -56,7 +52,7 @@ public class ExitBottomSheetDialogFragment extends MenuBottomSheetDialogFragment @Override public int getSecondDividerHeight() { - return getResources().getDimensionPixelSize(R.dimen.bottom_sheet_icon_margin_large); + return getResources().getDimensionPixelSize(R.dimen.bottom_sheet_icon_margin); } @Override @@ -78,8 +74,8 @@ public class ExitBottomSheetDialogFragment extends MenuBottomSheetDialogFragment } @Override - protected UiUtilities.DialogButtonType getThirdBottomButtonType() { - return (UiUtilities.DialogButtonType.SECONDARY); + protected DialogButtonType getThirdBottomButtonType() { + return (DialogButtonType.SECONDARY); } public static void showInstance(@NonNull FragmentManager fragmentManager, @Nullable Fragment targetFragment) { @@ -89,4 +85,4 @@ public class ExitBottomSheetDialogFragment extends MenuBottomSheetDialogFragment fragment.show(fragmentManager, TAG); } } -} +} \ No newline at end of file