discord-jadx/app/src/main/java/androidx/appcompat/view/menu/MenuItemImpl.java

719 lines
24 KiB
Java

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.annotation.Nullable;
import androidx.annotation.RestrictTo;
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;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
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;
public 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 int mFlags = 16;
private final int mGroup;
private boolean mHasIconTint = false;
private boolean mHasIconTintMode = false;
private Drawable mIconDrawable;
private int mIconResId = 0;
private ColorStateList mIconTintList = null;
private PorterDuff.Mode mIconTintMode = null;
private final int mId;
private Intent mIntent;
private boolean mIsActionViewExpanded = false;
private Runnable mItemCallback;
public MenuBuilder mMenu;
private ContextMenu.ContextMenuInfo mMenuInfo;
private boolean mNeedToApplyIconTint = false;
private MenuItem.OnActionExpandListener mOnActionExpandListener;
private final int mOrdering;
private char mShortcutAlphabeticChar;
private int mShortcutAlphabeticModifiers = 4096;
private char mShortcutNumericChar;
private int mShortcutNumericModifiers = 4096;
private int mShowAsAction = 0;
private SubMenuBuilder mSubMenu;
private CharSequence mTitle;
private CharSequence mTitleCondensed;
private CharSequence mTooltipText;
/* renamed from: androidx.appcompat.view.menu.MenuItemImpl$1 reason: invalid class name */
public class AnonymousClass1 implements ActionProvider.VisibilityListener {
public AnonymousClass1() {
}
@Override // androidx.core.view.ActionProvider.VisibilityListener
public void onActionProviderVisibilityChanged(boolean z2) {
MenuItemImpl menuItemImpl = MenuItemImpl.this;
menuItemImpl.mMenu.onItemVisibleChanged(menuItemImpl);
}
}
public 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;
}
private static void appendModifier(StringBuilder sb, int i, int i2, String str) {
if ((i & i2) == i2) {
sb.append(str);
}
}
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;
}
public void actionFormatChanged() {
this.mMenu.onItemActionRequestChanged(this);
}
@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;
}
@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 // android.view.MenuItem
public android.view.ActionProvider getActionProvider() {
throw new UnsupportedOperationException("This is not supported, use MenuItemCompat.getActionProvider()");
}
@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 // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public int getAlphabeticModifiers() {
return this.mShortcutAlphabeticModifiers;
}
@Override // android.view.MenuItem
public char getAlphabeticShortcut() {
return this.mShortcutAlphabeticChar;
}
public 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 // 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 // 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;
}
public char getShortcut() {
return this.mMenu.isQwertyMode() ? this.mShortcutAlphabeticChar : this.mShortcutNumericChar;
}
public 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(shortcut);
} else {
sb.append(resources.getString(R.string.abc_menu_space_shortcut_label));
}
return sb.toString();
}
@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;
}
public CharSequence getTitleForItemView(MenuView.ItemView itemView) {
return (itemView == null || !itemView.prefersCondensedTitle()) ? getTitle() : getTitleCondensed();
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public CharSequence getTooltipText() {
return this.mTooltipText;
}
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;
}
@Override // android.view.MenuItem
public boolean hasSubMenu() {
return this.mSubMenu != null;
}
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();
}
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;
}
@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();
}
public boolean requestsActionButton() {
return (this.mShowAsAction & 1) == 1;
}
@Override // androidx.core.internal.view.SupportMenuItem
public boolean requiresActionButton() {
return (this.mShowAsAction & 2) == 2;
}
@Override // androidx.core.internal.view.SupportMenuItem
public boolean requiresOverflow() {
return !requiresActionButton() && !requestsActionButton();
}
@Override // android.view.MenuItem
public MenuItem setActionProvider(android.view.ActionProvider actionProvider) {
throw new UnsupportedOperationException("This is not supported, use MenuItemCompat.setActionProvider()");
}
@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 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;
}
public void setActionViewExpanded(boolean z2) {
this.mIsActionViewExpanded = z2;
this.mMenu.onItemsChanged(false);
}
@Override // android.view.MenuItem
public MenuItem setAlphabeticShortcut(char c2) {
if (this.mShortcutAlphabeticChar == c2) {
return this;
}
this.mShortcutAlphabeticChar = Character.toLowerCase(c2);
this.mMenu.onItemsChanged(false);
return this;
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public MenuItem setAlphabeticShortcut(char c2, int i) {
if (this.mShortcutAlphabeticChar == c2 && this.mShortcutAlphabeticModifiers == i) {
return this;
}
this.mShortcutAlphabeticChar = Character.toLowerCase(c2);
this.mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(i);
this.mMenu.onItemsChanged(false);
return this;
}
public MenuItem setCallback(Runnable runnable) {
this.mItemCallback = runnable;
return this;
}
@Override // android.view.MenuItem
public MenuItem setCheckable(boolean z2) {
int i = this.mFlags;
int i2 = (z2 ? 1 : 0) | (i & -2);
this.mFlags = i2;
if (i != i2) {
this.mMenu.onItemsChanged(false);
}
return this;
}
@Override // android.view.MenuItem
public MenuItem setChecked(boolean z2) {
if ((this.mFlags & 4) != 0) {
this.mMenu.setExclusiveItemChecked(this);
} else {
setCheckedInt(z2);
}
return this;
}
public void setCheckedInt(boolean z2) {
int i = this.mFlags;
int i2 = (z2 ? 2 : 0) | (i & -3);
this.mFlags = i2;
if (i != i2) {
this.mMenu.onItemsChanged(false);
}
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public SupportMenuItem setContentDescription(CharSequence charSequence) {
this.mContentDescription = charSequence;
this.mMenu.onItemsChanged(false);
return this;
}
@Override // android.view.MenuItem
public MenuItem setEnabled(boolean z2) {
if (z2) {
this.mFlags |= 16;
} else {
this.mFlags &= -17;
}
this.mMenu.onItemsChanged(false);
return this;
}
public void setExclusiveCheckable(boolean z2) {
this.mFlags = (z2 ? 4 : 0) | (this.mFlags & -5);
}
@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 // android.view.MenuItem
public MenuItem setIcon(Drawable drawable) {
this.mIconResId = 0;
this.mIconDrawable = drawable;
this.mNeedToApplyIconTint = true;
this.mMenu.onItemsChanged(false);
return this;
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public MenuItem setIconTintList(@Nullable 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;
}
@Override // android.view.MenuItem
public MenuItem setIntent(Intent intent) {
this.mIntent = intent;
return this;
}
public void setIsActionButton(boolean z2) {
if (z2) {
this.mFlags |= 32;
} else {
this.mFlags &= -33;
}
}
public void setMenuInfo(ContextMenu.ContextMenuInfo contextMenuInfo) {
this.mMenuInfo = contextMenuInfo;
}
@Override // android.view.MenuItem
public MenuItem setNumericShortcut(char c2) {
if (this.mShortcutNumericChar == c2) {
return this;
}
this.mShortcutNumericChar = c2;
this.mMenu.onItemsChanged(false);
return this;
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public MenuItem setNumericShortcut(char c2, int i) {
if (this.mShortcutNumericChar == c2 && this.mShortcutNumericModifiers == i) {
return this;
}
this.mShortcutNumericChar = c2;
this.mShortcutNumericModifiers = KeyEvent.normalizeMetaState(i);
this.mMenu.onItemsChanged(false);
return this;
}
@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;
}
@Override // android.view.MenuItem
public MenuItem setShortcut(char c2, char c3) {
this.mShortcutNumericChar = c2;
this.mShortcutAlphabeticChar = Character.toLowerCase(c3);
this.mMenu.onItemsChanged(false);
return this;
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public MenuItem setShortcut(char c2, char c3, int i, int i2) {
this.mShortcutNumericChar = c2;
this.mShortcutNumericModifiers = KeyEvent.normalizeMetaState(i);
this.mShortcutAlphabeticChar = Character.toLowerCase(c3);
this.mShortcutAlphabeticModifiers = KeyEvent.normalizeMetaState(i2);
this.mMenu.onItemsChanged(false);
return this;
}
@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) {
this.mShowAsAction = i;
this.mMenu.onItemActionRequestChanged(this);
return;
}
throw new IllegalArgumentException("SHOW_AS_ACTION_ALWAYS, SHOW_AS_ACTION_IF_ROOM, and SHOW_AS_ACTION_NEVER are mutually exclusive.");
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public SupportMenuItem setShowAsActionFlags(int i) {
setShowAsAction(i);
return this;
}
public void setSubMenu(SubMenuBuilder subMenuBuilder) {
this.mSubMenu = subMenuBuilder;
subMenuBuilder.setHeaderTitle(getTitle());
}
@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 AnonymousClass1());
}
return this;
}
@Override // android.view.MenuItem
public MenuItem setTitle(int i) {
return setTitle(this.mMenu.getContext().getString(i));
}
@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 setTitleCondensed(CharSequence charSequence) {
this.mTitleCondensed = charSequence;
this.mMenu.onItemsChanged(false);
return this;
}
@Override // androidx.core.internal.view.SupportMenuItem, android.view.MenuItem
public SupportMenuItem setTooltipText(CharSequence charSequence) {
this.mTooltipText = charSequence;
this.mMenu.onItemsChanged(false);
return this;
}
@Override // android.view.MenuItem
public MenuItem setVisible(boolean z2) {
if (setVisibleInt(z2)) {
this.mMenu.onItemVisibleChanged(this);
}
return this;
}
public boolean setVisibleInt(boolean z2) {
int i = this.mFlags;
int i2 = (z2 ? 0 : 8) | (i & -9);
this.mFlags = i2;
return i != i2;
}
public boolean shouldShowIcon() {
return this.mMenu.getOptionalIconsVisible();
}
public boolean shouldShowShortcut() {
return this.mMenu.isShortcutsVisible() && getShortcut() != 0;
}
public boolean showsTextAsAction() {
return (this.mShowAsAction & 4) == 4;
}
@Override // java.lang.Object
public String toString() {
CharSequence charSequence = this.mTitle;
if (charSequence != null) {
return charSequence.toString();
}
return null;
}
}