123087be7792c2d22173cf022a72d0648aa430ab5Oren Blasbergpackage android.widget;
223087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg
300aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viveretteimport android.annotation.NonNull;
400aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viveretteimport android.view.MenuItem;
500aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette
699441c5d7da45c10b729185852be97cbb0bdc8d5Aurimas Liutikasimport com.android.internal.view.menu.MenuBuilder;
799441c5d7da45c10b729185852be97cbb0bdc8d5Aurimas Liutikas
823087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg/**
923087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg * An interface notified when a menu item is hovered. Useful for cases when hover should trigger
1023087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg * some behavior at a higher level, like managing the opening and closing of submenus.
1123087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg *
1223087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg * @hide
1323087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg */
1423087be7792c2d22173cf022a72d0648aa430ab5Oren Blasbergpublic interface MenuItemHoverListener {
1500aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette    /**
1600aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * Called when hover exits a menu item.
1700aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * <p>
1800aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * If hover is moving to another item, this method will be called before
1900aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * {@link #onItemHoverEnter(MenuBuilder, MenuItem)} for the newly-hovered item.
2000aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     *
2100aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * @param menu the item's parent menu
2200aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * @param item the hovered menu item
2300aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     */
2400aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette    void onItemHoverExit(@NonNull MenuBuilder menu, @NonNull MenuItem item);
2500aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette
2600aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette    /**
2700aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * Called when hover enters a menu item.
2800aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     *
2900aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * @param menu the item's parent menu
3000aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     * @param item the hovered menu item
3100aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette     */
3200aa5103e2f71ad3f29f53168e37ef7da8ca03f2Alan Viverette    void onItemHoverEnter(@NonNull MenuBuilder menu, @NonNull MenuItem item);
3323087be7792c2d22173cf022a72d0648aa430ab5Oren Blasberg}
34