Commit 95c4ceab authored by Gang Wu's avatar Gang Wu Committed by Commit Bot

rename turnOnHighlight in ViewHighlighter

This is follow up CL for
https://chromium-review.googlesource.com/c/chromium/src/+/2500274
Since ViewHighlighter provide 3 type of IPH now, we rename
turnOnHighlight to
  turnOnCircularHighlight(View)
  turnOnRectangularHighlight(View)
  turnOnRectangularHighlight(View, int)

Bug:1146243

Change-Id: Id36dab8992f848fa33569ebba23a377ffd0f0fec
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2521782Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Gang Wu <gangwu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#825023}
parent a8a460cb
...@@ -112,7 +112,7 @@ class AddToMenuItemViewBinder extends ArrayAdapter<MenuItem> ...@@ -112,7 +112,7 @@ class AddToMenuItemViewBinder extends ArrayAdapter<MenuItem>
if (highlightedItemId != null if (highlightedItemId != null
&& item.getSubMenu().getItem(i).getItemId() == highlightedItemId) { && item.getSubMenu().getItem(i).getItemId() == highlightedItemId) {
mHighlightedItemId = highlightedItemId; mHighlightedItemId = highlightedItemId;
ViewHighlighter.turnOnHighlight(convertView, false); ViewHighlighter.turnOnRectangularHighlight(convertView);
} }
} }
} }
...@@ -164,7 +164,7 @@ class AddToMenuItemViewBinder extends ArrayAdapter<MenuItem> ...@@ -164,7 +164,7 @@ class AddToMenuItemViewBinder extends ArrayAdapter<MenuItem>
AppCompatResources.getColorStateList(convertView.getContext(), theme)); AppCompatResources.getColorStateList(convertView.getContext(), theme));
if (mHighlightedItemId != null && item.getItemId() == mHighlightedItemId) { if (mHighlightedItemId != null && item.getItemId() == mHighlightedItemId) {
ViewHighlighter.turnOnHighlight(convertView, false); ViewHighlighter.turnOnRectangularHighlight(convertView);
} else { } else {
ViewHighlighter.turnOffHighlight(convertView); ViewHighlighter.turnOffHighlight(convertView);
} }
......
...@@ -1000,6 +1000,16 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate ...@@ -1000,6 +1000,16 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
return R.id.offline_page_id; return R.id.offline_page_id;
} }
/**
* @return The "Add to Home screen" menu items id in the app menu.
*/
public static int getAddToHomescreenId() {
if (getThreeButtonActionBarType() == ThreeButtonActionBarType.ADD_TO_OPTION) {
return R.id.add_to_homescreen_menu_id;
}
return R.id.add_to_homescreen_id;
}
@Override @Override
public boolean recordAppMenuSimilarSelectionIfNeeded( public boolean recordAppMenuSimilarSelectionIfNeeded(
int previousMenuItemId, int currentMenuItemId) { int previousMenuItemId, int currentMenuItemId) {
......
...@@ -112,7 +112,7 @@ class ChipViewMenuItemViewBinder implements CustomViewBinder { ...@@ -112,7 +112,7 @@ class ChipViewMenuItemViewBinder implements CustomViewBinder {
} }
if (highlightedItemId != null && mainMenuItem.getItemId() == highlightedItemId) { if (highlightedItemId != null && mainMenuItem.getItemId() == highlightedItemId) {
ViewHighlighter.turnOnHighlight(holder.title, false); ViewHighlighter.turnOnRectangularHighlight(holder.title);
} else { } else {
ViewHighlighter.turnOffHighlight(holder.title); ViewHighlighter.turnOffHighlight(holder.title);
} }
......
...@@ -68,7 +68,7 @@ class IncognitoMenuItemViewBinder implements CustomViewBinder { ...@@ -68,7 +68,7 @@ class IncognitoMenuItemViewBinder implements CustomViewBinder {
} }
convertView.setOnClickListener(v -> appMenuClickHandler.onItemClick(item)); convertView.setOnClickListener(v -> appMenuClickHandler.onItemClick(item));
if (highlightedItemId != null && item.getItemId() == highlightedItemId) { if (highlightedItemId != null && item.getItemId() == highlightedItemId) {
ViewHighlighter.turnOnHighlight(convertView, false); ViewHighlighter.turnOnRectangularHighlight(convertView);
} else { } else {
ViewHighlighter.turnOffHighlight(convertView); ViewHighlighter.turnOffHighlight(convertView);
} }
......
...@@ -84,7 +84,7 @@ public class ToolbarUtils { ...@@ -84,7 +84,7 @@ public class ToolbarUtils {
private static void toggleHighlightForDownloadSettingsTextBubble( private static void toggleHighlightForDownloadSettingsTextBubble(
View anchorView, boolean shouldHighlight) { View anchorView, boolean shouldHighlight) {
if (shouldHighlight) { if (shouldHighlight) {
ViewHighlighter.turnOnHighlight(anchorView, true); ViewHighlighter.turnOnCircularHighlight(anchorView);
} else { } else {
ViewHighlighter.turnOffHighlight(anchorView); ViewHighlighter.turnOffHighlight(anchorView);
} }
......
...@@ -929,7 +929,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer ...@@ -929,7 +929,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
iphCommandBuilder.setAnchorView(anchorView).setCircleHighlight(showHighlight); iphCommandBuilder.setAnchorView(anchorView).setCircleHighlight(showHighlight);
if (showHighlight) { if (showHighlight) {
iphCommandBuilder.setOnShowCallback( iphCommandBuilder.setOnShowCallback(
() -> ViewHighlighter.turnOnHighlight(anchorView, true /*circular*/)); () -> ViewHighlighter.turnOnCircularHighlight(anchorView));
iphCommandBuilder.setOnDismissCallback(() -> new Handler().postDelayed(() -> { iphCommandBuilder.setOnDismissCallback(() -> new Handler().postDelayed(() -> {
ViewHighlighter.turnOffHighlight(anchorView); ViewHighlighter.turnOffHighlight(anchorView);
}, ViewHighlighter.IPH_MIN_DELAY_BETWEEN_TWO_HIGHLIGHTS)); }, ViewHighlighter.IPH_MIN_DELAY_BETWEEN_TWO_HIGHLIGHTS));
......
...@@ -81,7 +81,7 @@ public class OfflineIndicatorInProductHelpController ...@@ -81,7 +81,7 @@ public class OfflineIndicatorInProductHelpController
private void turnOnHighlightForDownloadsMenuItem() { private void turnOnHighlightForDownloadsMenuItem() {
if (mAppMenuHandler == null) return; if (mAppMenuHandler == null) return;
mAppMenuHandler.setMenuHighlight(R.id.downloads_menu_id, true); mAppMenuHandler.setMenuHighlight(R.id.downloads_menu_id);
} }
private void turnOffHighlightForDownloadsMenuItem() { private void turnOffHighlightForDownloadsMenuItem() {
......
...@@ -19,6 +19,7 @@ import org.chromium.base.supplier.Supplier; ...@@ -19,6 +19,7 @@ import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.banners.AppBannerInProductHelpController; import org.chromium.chrome.browser.banners.AppBannerInProductHelpController;
import org.chromium.chrome.browser.banners.AppBannerInProductHelpControllerFactory; import org.chromium.chrome.browser.banners.AppBannerInProductHelpControllerFactory;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge; import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
...@@ -334,7 +335,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { ...@@ -334,7 +335,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mActivity, mAppMenuCoordinator.getAppMenuHandler(), mActivity, mAppMenuCoordinator.getAppMenuHandler(),
() ()
-> mActivity.getToolbarManager().getMenuButtonView(), -> mActivity.getToolbarManager().getMenuButtonView(),
R.id.add_to_homescreen_id, TrackerFactory::getTrackerForProfile); AppMenuPropertiesDelegateImpl.getAddToHomescreenId(), TrackerFactory::getTrackerForProfile);
AppBannerInProductHelpControllerFactory.attach( AppBannerInProductHelpControllerFactory.attach(
mActivity.getWindowAndroid(), mAppBannerInProductHelpController); mActivity.getWindowAndroid(), mAppBannerInProductHelpController);
} }
......
...@@ -148,7 +148,7 @@ public class ToolbarButtonInProductHelpController ...@@ -148,7 +148,7 @@ public class ToolbarButtonInProductHelpController
R.string.iph_download_infobar_download_continuing_text) R.string.iph_download_infobar_download_continuing_text)
.setAnchorView(mActivity.getToolbarManager().getMenuButtonView()) .setAnchorView(mActivity.getToolbarManager().getMenuButtonView())
.setOnShowCallback( .setOnShowCallback(
() -> turnOnHighlightForMenuItem(R.id.downloads_menu_id, true)) () -> turnOnHighlightForMenuItem(R.id.downloads_menu_id))
.setOnDismissCallback(this::turnOffHighlightForMenuItem) .setOnDismissCallback(this::turnOffHighlightForMenuItem)
.build()); .build());
} }
...@@ -210,7 +210,7 @@ public class ToolbarButtonInProductHelpController ...@@ -210,7 +210,7 @@ public class ToolbarButtonInProductHelpController
.setOnShowCallback( .setOnShowCallback(
() ()
-> turnOnHighlightForMenuItem( -> turnOnHighlightForMenuItem(
getDataReductionMenuItemHighlight(), false)) getDataReductionMenuItemHighlight()))
.setOnDismissCallback(this::turnOffHighlightForMenuItem) .setOnDismissCallback(this::turnOffHighlightForMenuItem)
.build()); .build());
} }
...@@ -235,7 +235,7 @@ public class ToolbarButtonInProductHelpController ...@@ -235,7 +235,7 @@ public class ToolbarButtonInProductHelpController
.setOnShowCallback( .setOnShowCallback(
() ()
-> turnOnHighlightForMenuItem( -> turnOnHighlightForMenuItem(
getDataReductionMenuItemHighlight(), false)) getDataReductionMenuItemHighlight()))
.setOnDismissCallback(dismissCallback) .setOnDismissCallback(dismissCallback)
.build()); .build());
} }
...@@ -259,7 +259,7 @@ public class ToolbarButtonInProductHelpController ...@@ -259,7 +259,7 @@ public class ToolbarButtonInProductHelpController
R.string.iph_download_home_accessibility_text) R.string.iph_download_home_accessibility_text)
.setAnchorView(mActivity.getToolbarManager().getMenuButtonView()) .setAnchorView(mActivity.getToolbarManager().getMenuButtonView())
.setOnShowCallback( .setOnShowCallback(
() -> turnOnHighlightForMenuItem(R.id.downloads_menu_id, true)) () -> turnOnHighlightForMenuItem(R.id.downloads_menu_id))
.setOnDismissCallback(this::turnOffHighlightForMenuItem) .setOnDismissCallback(this::turnOffHighlightForMenuItem)
.build()); .build());
} }
...@@ -282,8 +282,7 @@ public class ToolbarButtonInProductHelpController ...@@ -282,8 +282,7 @@ public class ToolbarButtonInProductHelpController
.setOnShowCallback( .setOnShowCallback(
() ()
-> turnOnHighlightForMenuItem( -> turnOnHighlightForMenuItem(
AppMenuPropertiesDelegateImpl.getOfflinePageId(), AppMenuPropertiesDelegateImpl.getOfflinePageId()))
true))
.setOnDismissCallback(this::turnOffHighlightForMenuItem) .setOnDismissCallback(this::turnOffHighlightForMenuItem)
.setAnchorView(mActivity.getToolbarManager().getMenuButtonView()) .setAnchorView(mActivity.getToolbarManager().getMenuButtonView())
.build()); .build());
...@@ -312,7 +311,7 @@ public class ToolbarButtonInProductHelpController ...@@ -312,7 +311,7 @@ public class ToolbarButtonInProductHelpController
R.string.iph_translate_menu_button_text, R.string.iph_translate_menu_button_text,
R.string.iph_translate_menu_button_accessibility_text) R.string.iph_translate_menu_button_accessibility_text)
.setOnShowCallback( .setOnShowCallback(
() -> turnOnHighlightForMenuItem(R.id.translate_id, false)) () -> turnOnHighlightForMenuItem(R.id.translate_id))
.setOnDismissCallback(this::turnOffHighlightForMenuItem) .setOnDismissCallback(this::turnOffHighlightForMenuItem)
.setAnchorView(mActivity.getToolbarManager().getMenuButtonView()) .setAnchorView(mActivity.getToolbarManager().getMenuButtonView())
.build()); .build());
...@@ -334,15 +333,15 @@ public class ToolbarButtonInProductHelpController ...@@ -334,15 +333,15 @@ public class ToolbarButtonInProductHelpController
R.string.video_tutorials_iph_tap_here_to_start, R.string.video_tutorials_iph_tap_here_to_start,
R.string.video_tutorials_iph_tap_here_to_start) R.string.video_tutorials_iph_tap_here_to_start)
.setAnchorView(mActivity.getToolbarManager().getMenuButtonView()) .setAnchorView(mActivity.getToolbarManager().getMenuButtonView())
.setOnShowCallback(() -> turnOnHighlightForMenuItem(menuItemId, true)) .setOnShowCallback(() -> turnOnHighlightForMenuItem(menuItemId))
.setOnDismissCallback(this::turnOffHighlightForMenuItem) .setOnDismissCallback(this::turnOffHighlightForMenuItem)
.build()); .build());
tryNowTracker.tryNowUIShown(FeatureType.DOWNLOAD); tryNowTracker.tryNowUIShown(FeatureType.DOWNLOAD);
} }
private void turnOnHighlightForMenuItem(Integer highlightMenuItemId, boolean circleHighlight) { private void turnOnHighlightForMenuItem(Integer highlightMenuItemId) {
if (mAppMenuHandler != null) { if (mAppMenuHandler != null) {
mAppMenuHandler.setMenuHighlight(highlightMenuItemId, circleHighlight); mAppMenuHandler.setMenuHighlight(highlightMenuItemId);
} }
} }
......
...@@ -160,7 +160,7 @@ class StartSurfaceToolbarView extends RelativeLayout { ...@@ -160,7 +160,7 @@ class StartSurfaceToolbarView extends RelativeLayout {
void setNewTabButtonHighlight(boolean highlight) { void setNewTabButtonHighlight(boolean highlight) {
if (mNewTabButton == null) return; if (mNewTabButton == null) return;
if (highlight) { if (highlight) {
ViewHighlighter.turnOnHighlight(mNewTabButton, true); ViewHighlighter.turnOnCircularHighlight(mNewTabButton);
} else { } else {
ViewHighlighter.turnOffHighlight(mNewTabButton); ViewHighlighter.turnOffHighlight(mNewTabButton);
} }
......
...@@ -263,7 +263,7 @@ public class TabSwitcherModeTTPhone extends OptimizedFrameLayout ...@@ -263,7 +263,7 @@ public class TabSwitcherModeTTPhone extends OptimizedFrameLayout
void setNewTabButtonHighlight(boolean highlight) { void setNewTabButtonHighlight(boolean highlight) {
if (mNewTabImageButton == null) return; if (mNewTabImageButton == null) return;
if (highlight) { if (highlight) {
ViewHighlighter.turnOnHighlight(mNewTabImageButton, true); ViewHighlighter.turnOnCircularHighlight(mNewTabImageButton);
} else { } else {
ViewHighlighter.turnOffHighlight(mNewTabImageButton); ViewHighlighter.turnOffHighlight(mNewTabImageButton);
} }
......
...@@ -65,7 +65,7 @@ public class AppBannerInProductHelpController implements UnownedUserData { ...@@ -65,7 +65,7 @@ public class AppBannerInProductHelpController implements UnownedUserData {
} }
private void turnOnHighlightForMenu() { private void turnOnHighlightForMenu() {
mAppMenuHandler.setMenuHighlight(mHiglightMenuItemId, true); mAppMenuHandler.setMenuHighlight(mHiglightMenuItemId);
} }
private void turnOffHighlightForMenu() { private void turnOffHighlightForMenu() {
......
...@@ -173,15 +173,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler ...@@ -173,15 +173,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
* by external apps. * by external apps.
* @param groupDividerResourceId The resource id of divider menu items. This will be used to * @param groupDividerResourceId The resource id of divider menu items. This will be used to
* determine the number of dividers that appear in the menu. * determine the number of dividers that appear in the menu.
* @param circleHighlightItem Whether the highlighted item should use a circle highlight or
* not.
* @param customViewBinders See {@link AppMenuPropertiesDelegate#getCustomViewBinders()}. * @param customViewBinders See {@link AppMenuPropertiesDelegate#getCustomViewBinders()}.
*/ */
void show(Context context, final View anchorView, boolean isByPermanentButton, void show(Context context, final View anchorView, boolean isByPermanentButton,
int screenRotation, Rect visibleDisplayFrame, int screenHeight, int screenRotation, Rect visibleDisplayFrame, int screenHeight,
@IdRes int footerResourceId, @IdRes int headerResourceId, @IdRes int footerResourceId, @IdRes int headerResourceId,
@IdRes int groupDividerResourceId, Integer highlightedItemId, @IdRes int groupDividerResourceId, Integer highlightedItemId,
boolean circleHighlightItem, @Nullable List<CustomViewBinder> customViewBinders) { @Nullable List<CustomViewBinder> customViewBinders) {
mPopup = new PopupWindow(context); mPopup = new PopupWindow(context);
mPopup.setFocusable(true); mPopup.setFocusable(true);
mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NOT_NEEDED); mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NOT_NEEDED);
...@@ -265,9 +263,11 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler ...@@ -265,9 +263,11 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler
int footerHeight = inflateFooter(footerResourceId, contentView, menuWidth); int footerHeight = inflateFooter(footerResourceId, contentView, menuWidth);
int headerHeight = inflateHeader(headerResourceId, contentView, menuWidth); int headerHeight = inflateHeader(headerResourceId, contentView, menuWidth);
if (highlightedItemId != null) { if (highlightedItemId != null
&& (highlightedItemId == footerResourceId
|| highlightedItemId == headerResourceId)) {
View viewToHighlight = contentView.findViewById(highlightedItemId); View viewToHighlight = contentView.findViewById(highlightedItemId);
ViewHighlighter.turnOnHighlight(viewToHighlight, circleHighlightItem); ViewHighlighter.turnOnRectangularHighlight(viewToHighlight);
} }
// Set the adapter after the header is added to avoid crashes on JellyBean. // Set the adapter after the header is added to avoid crashes on JellyBean.
......
...@@ -310,7 +310,11 @@ class AppMenuAdapter extends BaseAdapter { ...@@ -310,7 +310,11 @@ class AppMenuAdapter extends BaseAdapter {
if (getCustomItemViewType(item) == CustomViewBinder.NOT_HANDLED) { if (getCustomItemViewType(item) == CustomViewBinder.NOT_HANDLED) {
// IPH for custom view is handled by themselves. // IPH for custom view is handled by themselves.
setupHighlight(convertView, item, false); if (mHighlightedItemId != null && item.getItemId() == mHighlightedItemId) {
ViewHighlighter.turnOnRectangularHighlight(convertView);
} else {
ViewHighlighter.turnOffHighlight(convertView);
}
} }
convertView.setTag(R.id.menu_item_view_type, itemViewType); convertView.setTag(R.id.menu_item_view_type, itemViewType);
...@@ -359,7 +363,11 @@ class AppMenuAdapter extends BaseAdapter { ...@@ -359,7 +363,11 @@ class AppMenuAdapter extends BaseAdapter {
button.setOnLongClickListener(v -> mAppMenuClickHandler.onItemLongClick(item, v)); button.setOnLongClickListener(v -> mAppMenuClickHandler.onItemLongClick(item, v));
setupHighlight(button, item, true); if (mHighlightedItemId != null && item.getItemId() == mHighlightedItemId) {
ViewHighlighter.turnOnCircularHighlight(button);
} else {
ViewHighlighter.turnOffHighlight(button);
}
// Menu items may be hidden by command line flags before they get to this point. // Menu items may be hidden by command line flags before they get to this point.
button.setVisibility(item.isVisible() ? View.VISIBLE : View.GONE); button.setVisibility(item.isVisible() ? View.VISIBLE : View.GONE);
...@@ -564,12 +572,4 @@ class AppMenuAdapter extends BaseAdapter { ...@@ -564,12 +572,4 @@ class AppMenuAdapter extends BaseAdapter {
Map<CustomViewBinder, Integer> getViewTypeOffsetMapForTests() { Map<CustomViewBinder, Integer> getViewTypeOffsetMapForTests() {
return mViewTypeOffsetMap; return mViewTypeOffsetMap;
} }
private void setupHighlight(View view, MenuItem item, boolean circle) {
if (mHighlightedItemId != null && item.getItemId() == mHighlightedItemId) {
ViewHighlighter.turnOnHighlight(view, circle);
} else {
ViewHighlighter.turnOffHighlight(view);
}
}
} }
...@@ -60,11 +60,6 @@ class AppMenuHandlerImpl ...@@ -60,11 +60,6 @@ class AppMenuHandlerImpl
*/ */
private Integer mHighlightMenuId; private Integer mHighlightMenuId;
/**
* Whether the highlighted item should use a circle highlight or not.
*/
private boolean mCircleHighlight;
/** /**
* Constructs an AppMenuHandlerImpl object. * Constructs an AppMenuHandlerImpl object.
* @param delegate Delegate used to check the desired AppMenu properties on show. * @param delegate Delegate used to check the desired AppMenu properties on show.
...@@ -114,15 +109,14 @@ class AppMenuHandlerImpl ...@@ -114,15 +109,14 @@ class AppMenuHandlerImpl
@Override @Override
public void clearMenuHighlight() { public void clearMenuHighlight() {
setMenuHighlight(null, false); setMenuHighlight(null);
} }
@Override @Override
public void setMenuHighlight(Integer highlightItemId, boolean circleHighlight) { public void setMenuHighlight(Integer highlightItemId) {
if (mHighlightMenuId == null && highlightItemId == null) return; if (mHighlightMenuId == null && highlightItemId == null) return;
if (mHighlightMenuId != null && mHighlightMenuId.equals(highlightItemId)) return; if (mHighlightMenuId != null && mHighlightMenuId.equals(highlightItemId)) return;
mHighlightMenuId = highlightItemId; mHighlightMenuId = highlightItemId;
mCircleHighlight = circleHighlight;
boolean highlighting = mHighlightMenuId != null; boolean highlighting = mHighlightMenuId != null;
for (AppMenuObserver observer : mObservers) observer.onMenuHighlightChanged(highlighting); for (AppMenuObserver observer : mObservers) observer.onMenuHighlightChanged(highlighting);
} }
...@@ -222,7 +216,7 @@ class AppMenuHandlerImpl ...@@ -222,7 +216,7 @@ class AppMenuHandlerImpl
} }
mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y, mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y,
footerResourceId, headerResourceId, mDelegate.getGroupDividerId(), mHighlightMenuId, footerResourceId, headerResourceId, mDelegate.getGroupDividerId(), mHighlightMenuId,
mCircleHighlight, mDelegate.getCustomViewBinders()); mDelegate.getCustomViewBinders());
mAppMenuDragHelper.onShow(startDragging); mAppMenuDragHelper.onShow(startDragging);
clearMenuHighlight(); clearMenuHighlight();
RecordUserAction.record("MobileMenuShow"); RecordUserAction.record("MobileMenuShow");
......
...@@ -294,7 +294,7 @@ public class AppMenuTest extends DummyUiActivityTestCase { ...@@ -294,7 +294,7 @@ public class AppMenuTest extends DummyUiActivityTestCase {
Assert.assertFalse(mMenuObserver.menuHighlighting); Assert.assertFalse(mMenuObserver.menuHighlighting);
TestThreadUtils.runOnUiThreadBlocking( TestThreadUtils.runOnUiThreadBlocking(
() -> mAppMenuHandler.setMenuHighlight(R.id.menu_item_one, false)); () -> mAppMenuHandler.setMenuHighlight(R.id.menu_item_one));
mMenuObserver.menuHighlightChangedCallback.waitForCallback(0); mMenuObserver.menuHighlightChangedCallback.waitForCallback(0);
Assert.assertTrue(mMenuObserver.menuHighlighting); Assert.assertTrue(mMenuObserver.menuHighlighting);
...@@ -317,7 +317,7 @@ public class AppMenuTest extends DummyUiActivityTestCase { ...@@ -317,7 +317,7 @@ public class AppMenuTest extends DummyUiActivityTestCase {
Assert.assertFalse(mMenuObserver.menuHighlighting); Assert.assertFalse(mMenuObserver.menuHighlighting);
TestThreadUtils.runOnUiThreadBlocking( TestThreadUtils.runOnUiThreadBlocking(
() -> mAppMenuHandler.setMenuHighlight(R.id.icon_one, false)); () -> mAppMenuHandler.setMenuHighlight(R.id.icon_one));
mMenuObserver.menuHighlightChangedCallback.waitForCallback(0); mMenuObserver.menuHighlightChangedCallback.waitForCallback(0);
Assert.assertTrue(mMenuObserver.menuHighlighting); Assert.assertTrue(mMenuObserver.menuHighlighting);
......
...@@ -36,9 +36,8 @@ public interface AppMenuHandler { ...@@ -36,9 +36,8 @@ public interface AppMenuHandler {
* highlighted for one menu usage. After that the highlight will be cleared. * highlighted for one menu usage. After that the highlight will be cleared.
* @param highlightItemId The id of a menu item to highlight or {@code null} to turn off the * @param highlightItemId The id of a menu item to highlight or {@code null} to turn off the
* highlight. * highlight.
* @param circleHighlight Whether the highlighted item should use a circle highlight or not.
*/ */
void setMenuHighlight(Integer highlightItemId, boolean circleHighlight); void setMenuHighlight(Integer highlightItemIdt);
/** /**
* Clears the menu highlight. * Clears the menu highlight.
......
...@@ -95,7 +95,11 @@ public class UserEducationHelper { ...@@ -95,7 +95,11 @@ public class UserEducationHelper {
textBubble.setAutoDismissTimeout(iphCommand.autoDismissTimeout); textBubble.setAutoDismissTimeout(iphCommand.autoDismissTimeout);
if (iphCommand.shouldHighlight) { if (iphCommand.shouldHighlight) {
ViewHighlighter.turnOnHighlight(anchorView, iphCommand.circleHighlight); if (iphCommand.circleHighlight) {
ViewHighlighter.turnOnCircularHighlight(anchorView);
} else {
ViewHighlighter.turnOnRectangularHighlight(anchorView);
}
} }
rectProvider.setInsetPx(iphCommand.insetRect); rectProvider.setInsetPx(iphCommand.insetRect);
......
...@@ -63,21 +63,31 @@ public class ViewHighlighter { ...@@ -63,21 +63,31 @@ public class ViewHighlighter {
} }
/** /**
* Create a highlight layer over the view. * Create a circular highlight layer over the view.
* @param view The view to be highlighted. * @param view The view to be highlighted.
* @param circular Whether the highlight should be a circle or rectangle.
*/ */
public static void turnOnHighlight(View view, boolean circular) { public static void turnOnCircularHighlight(View view) {
if (view == null) return; if (view == null) return;
PulseDrawable pulseDrawable = circular ? PulseDrawable.createCircle(view.getContext()) PulseDrawable pulseDrawable = PulseDrawable.createCircle(view.getContext());
: PulseDrawable.createRectangle(view.getContext());
attachViewAsHighlight(view, pulseDrawable); attachViewAsHighlight(view, pulseDrawable);
} }
/** /**
* Create a rectangle highlight layer over the view. * Create a rectangular highlight layer over the view.
* @param view The view to be highlighted.
*/
public static void turnOnRectangularHighlight(View view) {
if (view == null) return;
PulseDrawable pulseDrawable = PulseDrawable.createRectangle(view.getContext());
attachViewAsHighlight(view, pulseDrawable);
}
/**
* Create a rectangular highlight layer over the view.
* @param view The view to be highlighted. * @param view The view to be highlighted.
* @param cornerRadius The corner radius in pixels of the rectangle. * @param cornerRadius The corner radius in pixels of the rectangle.
*/ */
......
...@@ -42,15 +42,15 @@ public class ViewHighlighterTest { ...@@ -42,15 +42,15 @@ public class ViewHighlighterTest {
ViewHighlighter.turnOffHighlight(tintedImageButton); ViewHighlighter.turnOffHighlight(tintedImageButton);
checkHighlightOff(tintedImageButton); checkHighlightOff(tintedImageButton);
ViewHighlighter.turnOnHighlight(tintedImageButton, true); ViewHighlighter.turnOnCircularHighlight(tintedImageButton);
ViewHighlighter.turnOnHighlight(tintedImageButton, true); ViewHighlighter.turnOnCircularHighlight(tintedImageButton);
checkHighlightOn(tintedImageButton); checkHighlightOn(tintedImageButton);
ViewHighlighter.turnOffHighlight(tintedImageButton); ViewHighlighter.turnOffHighlight(tintedImageButton);
ViewHighlighter.turnOffHighlight(tintedImageButton); ViewHighlighter.turnOffHighlight(tintedImageButton);
checkHighlightOff(tintedImageButton); checkHighlightOff(tintedImageButton);
ViewHighlighter.turnOnHighlight(tintedImageButton, false); ViewHighlighter.turnOnRectangularHighlight(tintedImageButton);
checkHighlightOn(tintedImageButton); checkHighlightOn(tintedImageButton);
} }
...@@ -63,13 +63,13 @@ public class ViewHighlighterTest { ...@@ -63,13 +63,13 @@ public class ViewHighlighterTest {
ViewHighlighter.turnOffHighlight(tintedImageButton); ViewHighlighter.turnOffHighlight(tintedImageButton);
checkHighlightOff(tintedImageButton); checkHighlightOff(tintedImageButton);
ViewHighlighter.turnOnHighlight(tintedImageButton, true); ViewHighlighter.turnOnCircularHighlight(tintedImageButton);
checkHighlightOn(tintedImageButton); checkHighlightOn(tintedImageButton);
ViewHighlighter.turnOffHighlight(tintedImageButton); ViewHighlighter.turnOffHighlight(tintedImageButton);
checkHighlightOff(tintedImageButton); checkHighlightOff(tintedImageButton);
ViewHighlighter.turnOnHighlight(tintedImageButton, false); ViewHighlighter.turnOnRectangularHighlight(tintedImageButton);
checkHighlightOn(tintedImageButton); checkHighlightOn(tintedImageButton);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment