From 9fe30269417ca0b85d3d393800d51db8b705c163 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Wed, 1 Apr 2020 11:26:19 -0300 Subject: [PATCH] Fix AdaptiveActionsToolbar sizing algorithm. --- .../util/views/AdaptiveActionsToolbar.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/views/AdaptiveActionsToolbar.java b/app/src/main/java/org/thoughtcrime/securesms/util/views/AdaptiveActionsToolbar.java index bf6e28239..ddaa08588 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/views/AdaptiveActionsToolbar.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/views/AdaptiveActionsToolbar.java @@ -29,9 +29,9 @@ import org.thoughtcrime.securesms.util.ViewUtil; */ public class AdaptiveActionsToolbar extends Toolbar { - private static final int NAVIGATION_SP = 48; - private static final int ACTION_VIEW_WIDTH_SP = 42; - private static final int OVERFLOW_VIEW_WIDTH_SP = 35; + private static final int NAVIGATION_DP = 56; + private static final int ACTION_VIEW_WIDTH_DP = 48; + private static final int OVERFLOW_VIEW_WIDTH_DP = 36; private int maxShown; @@ -63,24 +63,23 @@ public class AdaptiveActionsToolbar extends Toolbar { public static void adjustMenuActions(@NonNull Menu menu, int maxToShow, int toolbarWidthPx) { int menuSize = menu.size(); - int widthAllowed = toolbarWidthPx - ViewUtil.spToPx(NAVIGATION_SP); - int nItemsToShow = Math.min(maxToShow, Math.round(widthAllowed / ViewUtil.spToPx(ACTION_VIEW_WIDTH_SP))); + int widthAllowed = toolbarWidthPx - ViewUtil.dpToPx(NAVIGATION_DP); + int nItemsToShow = Math.min(maxToShow, widthAllowed / ViewUtil.dpToPx(ACTION_VIEW_WIDTH_DP)); if (nItemsToShow < menuSize) { - widthAllowed -= ViewUtil.spToPx(OVERFLOW_VIEW_WIDTH_SP); + widthAllowed -= ViewUtil.dpToPx(OVERFLOW_VIEW_WIDTH_DP); } - nItemsToShow = Math.min(maxToShow, Math.round(widthAllowed / ViewUtil.spToPx(ACTION_VIEW_WIDTH_SP))); + nItemsToShow = Math.min(maxToShow, widthAllowed / ViewUtil.dpToPx(ACTION_VIEW_WIDTH_DP)); for (int i = 0; i < menu.size(); i++) { MenuItem item = menu.getItem(i); - if (nItemsToShow > 0) { + if (item.isVisible() && nItemsToShow > 0) { item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + nItemsToShow--; } else { item.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); } - nItemsToShow--; } } - }