ADD week 5
This commit is contained in:
		| @@ -0,0 +1,711 @@ | ||||
| package androidx.appcompat.view.menu; | ||||
|  | ||||
| import android.content.ActivityNotFoundException; | ||||
| import android.content.Context; | ||||
| import android.content.Intent; | ||||
| import android.content.res.ColorStateList; | ||||
| import android.content.res.Resources; | ||||
| import android.graphics.PorterDuff; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.Log; | ||||
| import android.view.ContextMenu; | ||||
| import android.view.KeyEvent; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.MenuItem; | ||||
| import android.view.SubMenu; | ||||
| import android.view.View; | ||||
| import android.view.ViewConfiguration; | ||||
| import android.view.ViewDebug; | ||||
| import android.view.ViewGroup; | ||||
| import android.widget.LinearLayout; | ||||
| import androidx.appcompat.R; | ||||
| import androidx.appcompat.content.res.AppCompatResources; | ||||
| import androidx.appcompat.view.menu.MenuView; | ||||
| import androidx.core.graphics.drawable.DrawableCompat; | ||||
| import androidx.core.internal.view.SupportMenuItem; | ||||
| import androidx.core.view.ActionProvider; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class MenuItemImpl implements SupportMenuItem { | ||||
|     private static final int CHECKABLE = 1; | ||||
|     private static final int CHECKED = 2; | ||||
|     private static final int ENABLED = 16; | ||||
|     private static final int EXCLUSIVE = 4; | ||||
|     private static final int HIDDEN = 8; | ||||
|     private static final int IS_ACTION = 32; | ||||
|     static final int NO_ICON = 0; | ||||
|     private static final int SHOW_AS_ACTION_MASK = 3; | ||||
|     private static final String TAG = "MenuItemImpl"; | ||||
|     private ActionProvider mActionProvider; | ||||
|     private View mActionView; | ||||
|     private final int mCategoryOrder; | ||||
|     private MenuItem.OnMenuItemClickListener mClickListener; | ||||
|     private CharSequence mContentDescription; | ||||
|     private final int mGroup; | ||||
|     private Drawable mIconDrawable; | ||||
|     private final int mId; | ||||
|     private Intent mIntent; | ||||
|     private Runnable mItemCallback; | ||||
|     MenuBuilder mMenu; | ||||
|     private ContextMenu.ContextMenuInfo mMenuInfo; | ||||
|     private MenuItem.OnActionExpandListener mOnActionExpandListener; | ||||
|     private final int mOrdering; | ||||
|     private char mShortcutAlphabeticChar; | ||||
|     private char mShortcutNumericChar; | ||||
|     private int mShowAsAction; | ||||
|     private SubMenuBuilder mSubMenu; | ||||
|     private CharSequence mTitle; | ||||
|     private CharSequence mTitleCondensed; | ||||
|     private CharSequence mTooltipText; | ||||
|     private int mShortcutNumericModifiers = 4096; | ||||
|     private int mShortcutAlphabeticModifiers = 4096; | ||||
|     private int mIconResId = 0; | ||||
|     private ColorStateList mIconTintList = null; | ||||
|     private PorterDuff.Mode mIconTintMode = null; | ||||
|     private boolean mHasIconTint = false; | ||||
|     private boolean mHasIconTintMode = false; | ||||
|     private boolean mNeedToApplyIconTint = false; | ||||
|     private int mFlags = 16; | ||||
|     private boolean mIsActionViewExpanded = false; | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public int getAlphabeticModifiers() { | ||||
|         return this.mShortcutAlphabeticModifiers; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public char getAlphabeticShortcut() { | ||||
|         return this.mShortcutAlphabeticChar; | ||||
|     } | ||||
|  | ||||
|     Runnable getCallback() { | ||||
|         return this.mItemCallback; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public CharSequence getContentDescription() { | ||||
|         return this.mContentDescription; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public int getGroupId() { | ||||
|         return this.mGroup; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public ColorStateList getIconTintList() { | ||||
|         return this.mIconTintList; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public PorterDuff.Mode getIconTintMode() { | ||||
|         return this.mIconTintMode; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public Intent getIntent() { | ||||
|         return this.mIntent; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     @ViewDebug.CapturedViewProperty | ||||
|     public int getItemId() { | ||||
|         return this.mId; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public ContextMenu.ContextMenuInfo getMenuInfo() { | ||||
|         return this.mMenuInfo; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public int getNumericModifiers() { | ||||
|         return this.mShortcutNumericModifiers; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public char getNumericShortcut() { | ||||
|         return this.mShortcutNumericChar; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public int getOrder() { | ||||
|         return this.mCategoryOrder; | ||||
|     } | ||||
|  | ||||
|     public int getOrdering() { | ||||
|         return this.mOrdering; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public SubMenu getSubMenu() { | ||||
|         return this.mSubMenu; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem | ||||
|     public ActionProvider getSupportActionProvider() { | ||||
|         return this.mActionProvider; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     @ViewDebug.CapturedViewProperty | ||||
|     public CharSequence getTitle() { | ||||
|         return this.mTitle; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public CharSequence getTitleCondensed() { | ||||
|         CharSequence charSequence = this.mTitleCondensed; | ||||
|         return charSequence != null ? charSequence : this.mTitle; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public CharSequence getTooltipText() { | ||||
|         return this.mTooltipText; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public boolean hasSubMenu() { | ||||
|         return this.mSubMenu != null; | ||||
|     } | ||||
|  | ||||
|     public boolean isActionButton() { | ||||
|         return (this.mFlags & 32) == 32; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public boolean isActionViewExpanded() { | ||||
|         return this.mIsActionViewExpanded; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public boolean isCheckable() { | ||||
|         return (this.mFlags & 1) == 1; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public boolean isChecked() { | ||||
|         return (this.mFlags & 2) == 2; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public boolean isEnabled() { | ||||
|         return (this.mFlags & 16) != 0; | ||||
|     } | ||||
|  | ||||
|     public boolean isExclusiveCheckable() { | ||||
|         return (this.mFlags & 4) != 0; | ||||
|     } | ||||
|  | ||||
|     public boolean requestsActionButton() { | ||||
|         return (this.mShowAsAction & 1) == 1; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem | ||||
|     public boolean requiresActionButton() { | ||||
|         return (this.mShowAsAction & 2) == 2; | ||||
|     } | ||||
|  | ||||
|     public MenuItem setCallback(Runnable runnable) { | ||||
|         this.mItemCallback = runnable; | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public void setExclusiveCheckable(boolean z) { | ||||
|         this.mFlags = (z ? 4 : 0) | (this.mFlags & (-5)); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setIntent(Intent intent) { | ||||
|         this.mIntent = intent; | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public void setIsActionButton(boolean z) { | ||||
|         if (z) { | ||||
|             this.mFlags |= 32; | ||||
|         } else { | ||||
|             this.mFlags &= -33; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void setMenuInfo(ContextMenu.ContextMenuInfo contextMenuInfo) { | ||||
|         this.mMenuInfo = contextMenuInfo; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setOnActionExpandListener(MenuItem.OnActionExpandListener onActionExpandListener) { | ||||
|         this.mOnActionExpandListener = onActionExpandListener; | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setOnMenuItemClickListener(MenuItem.OnMenuItemClickListener onMenuItemClickListener) { | ||||
|         this.mClickListener = onMenuItemClickListener; | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     boolean setVisibleInt(boolean z) { | ||||
|         int i = this.mFlags; | ||||
|         int i2 = (z ? 0 : 8) | (i & (-9)); | ||||
|         this.mFlags = i2; | ||||
|         return i != i2; | ||||
|     } | ||||
|  | ||||
|     public boolean showsTextAsAction() { | ||||
|         return (this.mShowAsAction & 4) == 4; | ||||
|     } | ||||
|  | ||||
|     MenuItemImpl(MenuBuilder menuBuilder, int i, int i2, int i3, int i4, CharSequence charSequence, int i5) { | ||||
|         this.mMenu = menuBuilder; | ||||
|         this.mId = i2; | ||||
|         this.mGroup = i; | ||||
|         this.mCategoryOrder = i3; | ||||
|         this.mOrdering = i4; | ||||
|         this.mTitle = charSequence; | ||||
|         this.mShowAsAction = i5; | ||||
|     } | ||||
|  | ||||
|     public boolean invoke() { | ||||
|         MenuItem.OnMenuItemClickListener onMenuItemClickListener = this.mClickListener; | ||||
|         if (onMenuItemClickListener != null && onMenuItemClickListener.onMenuItemClick(this)) { | ||||
|             return true; | ||||
|         } | ||||
|         MenuBuilder menuBuilder = this.mMenu; | ||||
|         if (menuBuilder.dispatchMenuItemSelected(menuBuilder, this)) { | ||||
|             return true; | ||||
|         } | ||||
|         Runnable runnable = this.mItemCallback; | ||||
|         if (runnable != null) { | ||||
|             runnable.run(); | ||||
|             return true; | ||||
|         } | ||||
|         if (this.mIntent != null) { | ||||
|             try { | ||||
|                 this.mMenu.getContext().startActivity(this.mIntent); | ||||
|                 return true; | ||||
|             } catch (ActivityNotFoundException e) { | ||||
|                 Log.e(TAG, "Can't find activity to handle intent; ignoring", e); | ||||
|             } | ||||
|         } | ||||
|         ActionProvider actionProvider = this.mActionProvider; | ||||
|         return actionProvider != null && actionProvider.onPerformDefaultAction(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setEnabled(boolean z) { | ||||
|         if (z) { | ||||
|             this.mFlags |= 16; | ||||
|         } else { | ||||
|             this.mFlags &= -17; | ||||
|         } | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setAlphabeticShortcut(char c) { | ||||
|         if (this.mShortcutAlphabeticChar == c) { | ||||
|             return this; | ||||
|         } | ||||
|         this.mShortcutAlphabeticChar = Character.toLowerCase(c); | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public MenuItem setAlphabeticShortcut(char c, int i) { | ||||
|         if (this.mShortcutAlphabeticChar == c && this.mShortcutAlphabeticModifiers == i) { | ||||
|             return this; | ||||
|         } | ||||
|         this.mShortcutAlphabeticChar = Character.toLowerCase(c); | ||||
|         this.mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(i); | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setNumericShortcut(char c) { | ||||
|         if (this.mShortcutNumericChar == c) { | ||||
|             return this; | ||||
|         } | ||||
|         this.mShortcutNumericChar = c; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public MenuItem setNumericShortcut(char c, int i) { | ||||
|         if (this.mShortcutNumericChar == c && this.mShortcutNumericModifiers == i) { | ||||
|             return this; | ||||
|         } | ||||
|         this.mShortcutNumericChar = c; | ||||
|         this.mShortcutNumericModifiers = KeyEvent.normalizeMetaState(i); | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setShortcut(char c, char c2) { | ||||
|         this.mShortcutNumericChar = c; | ||||
|         this.mShortcutAlphabeticChar = Character.toLowerCase(c2); | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public MenuItem setShortcut(char c, char c2, int i, int i2) { | ||||
|         this.mShortcutNumericChar = c; | ||||
|         this.mShortcutNumericModifiers = KeyEvent.normalizeMetaState(i); | ||||
|         this.mShortcutAlphabeticChar = Character.toLowerCase(c2); | ||||
|         this.mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(i2); | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     char getShortcut() { | ||||
|         return this.mMenu.isQwertyMode() ? this.mShortcutAlphabeticChar : this.mShortcutNumericChar; | ||||
|     } | ||||
|  | ||||
|     String getShortcutLabel() { | ||||
|         char shortcut = getShortcut(); | ||||
|         if (shortcut == 0) { | ||||
|             return ""; | ||||
|         } | ||||
|         Resources resources = this.mMenu.getContext().getResources(); | ||||
|         StringBuilder sb = new StringBuilder(); | ||||
|         if (ViewConfiguration.get(this.mMenu.getContext()).hasPermanentMenuKey()) { | ||||
|             sb.append(resources.getString(R.string.abc_prepend_shortcut_label)); | ||||
|         } | ||||
|         int i = this.mMenu.isQwertyMode() ? this.mShortcutAlphabeticModifiers : this.mShortcutNumericModifiers; | ||||
|         appendModifier(sb, i, 65536, resources.getString(R.string.abc_menu_meta_shortcut_label)); | ||||
|         appendModifier(sb, i, 4096, resources.getString(R.string.abc_menu_ctrl_shortcut_label)); | ||||
|         appendModifier(sb, i, 2, resources.getString(R.string.abc_menu_alt_shortcut_label)); | ||||
|         appendModifier(sb, i, 1, resources.getString(R.string.abc_menu_shift_shortcut_label)); | ||||
|         appendModifier(sb, i, 4, resources.getString(R.string.abc_menu_sym_shortcut_label)); | ||||
|         appendModifier(sb, i, 8, resources.getString(R.string.abc_menu_function_shortcut_label)); | ||||
|         if (shortcut == '\b') { | ||||
|             sb.append(resources.getString(R.string.abc_menu_delete_shortcut_label)); | ||||
|         } else if (shortcut == '\n') { | ||||
|             sb.append(resources.getString(R.string.abc_menu_enter_shortcut_label)); | ||||
|         } else if (shortcut == ' ') { | ||||
|             sb.append(resources.getString(R.string.abc_menu_space_shortcut_label)); | ||||
|         } else { | ||||
|             sb.append(shortcut); | ||||
|         } | ||||
|         return sb.toString(); | ||||
|     } | ||||
|  | ||||
|     private static void appendModifier(StringBuilder sb, int i, int i2, String str) { | ||||
|         if ((i & i2) == i2) { | ||||
|             sb.append(str); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     boolean shouldShowShortcut() { | ||||
|         return this.mMenu.isShortcutsVisible() && getShortcut() != 0; | ||||
|     } | ||||
|  | ||||
|     public void setSubMenu(SubMenuBuilder subMenuBuilder) { | ||||
|         this.mSubMenu = subMenuBuilder; | ||||
|         subMenuBuilder.setHeaderTitle(getTitle()); | ||||
|     } | ||||
|  | ||||
|     CharSequence getTitleForItemView(MenuView.ItemView itemView) { | ||||
|         if (itemView != null && itemView.prefersCondensedTitle()) { | ||||
|             return getTitleCondensed(); | ||||
|         } | ||||
|         return getTitle(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setTitle(CharSequence charSequence) { | ||||
|         this.mTitle = charSequence; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         SubMenuBuilder subMenuBuilder = this.mSubMenu; | ||||
|         if (subMenuBuilder != null) { | ||||
|             subMenuBuilder.setHeaderTitle(charSequence); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setTitle(int i) { | ||||
|         return setTitle(this.mMenu.getContext().getString(i)); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setTitleCondensed(CharSequence charSequence) { | ||||
|         this.mTitleCondensed = charSequence; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public Drawable getIcon() { | ||||
|         Drawable drawable = this.mIconDrawable; | ||||
|         if (drawable != null) { | ||||
|             return applyIconTintIfNecessary(drawable); | ||||
|         } | ||||
|         if (this.mIconResId == 0) { | ||||
|             return null; | ||||
|         } | ||||
|         Drawable drawable2 = AppCompatResources.getDrawable(this.mMenu.getContext(), this.mIconResId); | ||||
|         this.mIconResId = 0; | ||||
|         this.mIconDrawable = drawable2; | ||||
|         return applyIconTintIfNecessary(drawable2); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setIcon(Drawable drawable) { | ||||
|         this.mIconResId = 0; | ||||
|         this.mIconDrawable = drawable; | ||||
|         this.mNeedToApplyIconTint = true; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setIcon(int i) { | ||||
|         this.mIconDrawable = null; | ||||
|         this.mIconResId = i; | ||||
|         this.mNeedToApplyIconTint = true; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public MenuItem setIconTintList(ColorStateList colorStateList) { | ||||
|         this.mIconTintList = colorStateList; | ||||
|         this.mHasIconTint = true; | ||||
|         this.mNeedToApplyIconTint = true; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public MenuItem setIconTintMode(PorterDuff.Mode mode) { | ||||
|         this.mIconTintMode = mode; | ||||
|         this.mHasIconTintMode = true; | ||||
|         this.mNeedToApplyIconTint = true; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     private Drawable applyIconTintIfNecessary(Drawable drawable) { | ||||
|         if (drawable != null && this.mNeedToApplyIconTint && (this.mHasIconTint || this.mHasIconTintMode)) { | ||||
|             drawable = DrawableCompat.wrap(drawable).mutate(); | ||||
|             if (this.mHasIconTint) { | ||||
|                 DrawableCompat.setTintList(drawable, this.mIconTintList); | ||||
|             } | ||||
|             if (this.mHasIconTintMode) { | ||||
|                 DrawableCompat.setTintMode(drawable, this.mIconTintMode); | ||||
|             } | ||||
|             this.mNeedToApplyIconTint = false; | ||||
|         } | ||||
|         return drawable; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setCheckable(boolean z) { | ||||
|         int i = this.mFlags; | ||||
|         int i2 = (z ? 1 : 0) | (i & (-2)); | ||||
|         this.mFlags = i2; | ||||
|         if (i != i2) { | ||||
|             this.mMenu.onItemsChanged(false); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setChecked(boolean z) { | ||||
|         if ((this.mFlags & 4) != 0) { | ||||
|             this.mMenu.setExclusiveItemChecked(this); | ||||
|         } else { | ||||
|             setCheckedInt(z); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     void setCheckedInt(boolean z) { | ||||
|         int i = this.mFlags; | ||||
|         int i2 = (z ? 2 : 0) | (i & (-3)); | ||||
|         this.mFlags = i2; | ||||
|         if (i != i2) { | ||||
|             this.mMenu.onItemsChanged(false); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public boolean isVisible() { | ||||
|         ActionProvider actionProvider = this.mActionProvider; | ||||
|         return (actionProvider == null || !actionProvider.overridesItemVisibility()) ? (this.mFlags & 8) == 0 : (this.mFlags & 8) == 0 && this.mActionProvider.isVisible(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setVisible(boolean z) { | ||||
|         if (setVisibleInt(z)) { | ||||
|             this.mMenu.onItemVisibleChanged(this); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     public String toString() { | ||||
|         CharSequence charSequence = this.mTitle; | ||||
|         if (charSequence != null) { | ||||
|             return charSequence.toString(); | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public void actionFormatChanged() { | ||||
|         this.mMenu.onItemActionRequestChanged(this); | ||||
|     } | ||||
|  | ||||
|     public boolean shouldShowIcon() { | ||||
|         return this.mMenu.getOptionalIconsVisible(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem | ||||
|     public boolean requiresOverflow() { | ||||
|         return (requiresActionButton() || requestsActionButton()) ? false : true; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public void setShowAsAction(int i) { | ||||
|         int i2 = i & 3; | ||||
|         if (i2 != 0 && i2 != 1 && i2 != 2) { | ||||
|             throw new IllegalArgumentException("SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM, and SHOW_AS_ACTION_NEVER are mutually exclusive."); | ||||
|         } | ||||
|         this.mShowAsAction = i; | ||||
|         this.mMenu.onItemActionRequestChanged(this); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public SupportMenuItem setActionView(View view) { | ||||
|         int i; | ||||
|         this.mActionView = view; | ||||
|         this.mActionProvider = null; | ||||
|         if (view != null && view.getId() == -1 && (i = this.mId) > 0) { | ||||
|             view.setId(i); | ||||
|         } | ||||
|         this.mMenu.onItemActionRequestChanged(this); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public SupportMenuItem setActionView(int i) { | ||||
|         Context context = this.mMenu.getContext(); | ||||
|         setActionView(LayoutInflater.from(context).inflate(i, (ViewGroup) new LinearLayout(context), false)); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public View getActionView() { | ||||
|         View view = this.mActionView; | ||||
|         if (view != null) { | ||||
|             return view; | ||||
|         } | ||||
|         ActionProvider actionProvider = this.mActionProvider; | ||||
|         if (actionProvider == null) { | ||||
|             return null; | ||||
|         } | ||||
|         View onCreateActionView = actionProvider.onCreateActionView(this); | ||||
|         this.mActionView = onCreateActionView; | ||||
|         return onCreateActionView; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public MenuItem setActionProvider(android.view.ActionProvider actionProvider) { | ||||
|         throw new UnsupportedOperationException("This is not supported, use MenuItemCompat.setActionProvider()"); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public android.view.ActionProvider getActionProvider() { | ||||
|         throw new UnsupportedOperationException("This is not supported, use MenuItemCompat.getActionProvider()"); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem | ||||
|     public SupportMenuItem setSupportActionProvider(ActionProvider actionProvider) { | ||||
|         ActionProvider actionProvider2 = this.mActionProvider; | ||||
|         if (actionProvider2 != null) { | ||||
|             actionProvider2.reset(); | ||||
|         } | ||||
|         this.mActionView = null; | ||||
|         this.mActionProvider = actionProvider; | ||||
|         this.mMenu.onItemsChanged(true); | ||||
|         ActionProvider actionProvider3 = this.mActionProvider; | ||||
|         if (actionProvider3 != null) { | ||||
|             actionProvider3.setVisibilityListener(new ActionProvider.VisibilityListener() { // from class: androidx.appcompat.view.menu.MenuItemImpl.1 | ||||
|                 @Override // androidx.core.view.ActionProvider.VisibilityListener | ||||
|                 public void onActionProviderVisibilityChanged(boolean z) { | ||||
|                     MenuItemImpl.this.mMenu.onItemVisibleChanged(MenuItemImpl.this); | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public SupportMenuItem setShowAsActionFlags(int i) { | ||||
|         setShowAsAction(i); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public boolean expandActionView() { | ||||
|         if (!hasCollapsibleActionView()) { | ||||
|             return false; | ||||
|         } | ||||
|         MenuItem.OnActionExpandListener onActionExpandListener = this.mOnActionExpandListener; | ||||
|         if (onActionExpandListener == null || onActionExpandListener.onMenuItemActionExpand(this)) { | ||||
|             return this.mMenu.expandItemActionView(this); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem | ||||
|     public boolean collapseActionView() { | ||||
|         if ((this.mShowAsAction & 8) == 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (this.mActionView == null) { | ||||
|             return true; | ||||
|         } | ||||
|         MenuItem.OnActionExpandListener onActionExpandListener = this.mOnActionExpandListener; | ||||
|         if (onActionExpandListener == null || onActionExpandListener.onMenuItemActionCollapse(this)) { | ||||
|             return this.mMenu.collapseItemActionView(this); | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     public boolean hasCollapsibleActionView() { | ||||
|         ActionProvider actionProvider; | ||||
|         if ((this.mShowAsAction & 8) == 0) { | ||||
|             return false; | ||||
|         } | ||||
|         if (this.mActionView == null && (actionProvider = this.mActionProvider) != null) { | ||||
|             this.mActionView = actionProvider.onCreateActionView(this); | ||||
|         } | ||||
|         return this.mActionView != null; | ||||
|     } | ||||
|  | ||||
|     public void setActionViewExpanded(boolean z) { | ||||
|         this.mIsActionViewExpanded = z; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public SupportMenuItem setContentDescription(CharSequence charSequence) { | ||||
|         this.mContentDescription = charSequence; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.MenuItem | ||||
|     public SupportMenuItem setTooltipText(CharSequence charSequence) { | ||||
|         this.mTooltipText = charSequence; | ||||
|         this.mMenu.onItemsChanged(false); | ||||
|         return this; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user