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

120 lines
4.1 KiB
Java

package androidx.appcompat.view.menu;
import android.content.Context;
import android.graphics.Rect;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.FrameLayout;
import android.widget.HeaderViewListAdapter;
import android.widget.ListAdapter;
import android.widget.PopupWindow;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public abstract class MenuPopup implements ShowableListMenu, MenuPresenter, AdapterView.OnItemClickListener {
private Rect mEpicenterBounds;
public static int measureIndividualMenuWidth(ListAdapter listAdapter, ViewGroup viewGroup, Context context, int i) {
int makeMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, 0);
int makeMeasureSpec2 = View.MeasureSpec.makeMeasureSpec(0, 0);
int count = listAdapter.getCount();
View view = null;
int i2 = 0;
int i3 = 0;
for (int i4 = 0; i4 < count; i4++) {
int itemViewType = listAdapter.getItemViewType(i4);
if (itemViewType != i3) {
view = null;
i3 = itemViewType;
}
if (viewGroup == null) {
viewGroup = new FrameLayout(context);
}
view = listAdapter.getView(i4, view, viewGroup);
view.measure(makeMeasureSpec, makeMeasureSpec2);
int measuredWidth = view.getMeasuredWidth();
if (measuredWidth >= i) {
return i;
}
if (measuredWidth > i2) {
i2 = measuredWidth;
}
}
return i2;
}
public static boolean shouldPreserveIconSpacing(MenuBuilder menuBuilder) {
int size = menuBuilder.size();
for (int i = 0; i < size; i++) {
MenuItem item = menuBuilder.getItem(i);
if (item.isVisible() && item.getIcon() != null) {
return true;
}
}
return false;
}
public static MenuAdapter toMenuAdapter(ListAdapter listAdapter) {
return listAdapter instanceof HeaderViewListAdapter ? (MenuAdapter) ((HeaderViewListAdapter) listAdapter).getWrappedAdapter() : (MenuAdapter) listAdapter;
}
public abstract void addMenu(MenuBuilder menuBuilder);
public boolean closeMenuOnSubMenuOpened() {
return true;
}
@Override // androidx.appcompat.view.menu.MenuPresenter
public boolean collapseItemActionView(MenuBuilder menuBuilder, MenuItemImpl menuItemImpl) {
return false;
}
@Override // androidx.appcompat.view.menu.MenuPresenter
public boolean expandItemActionView(MenuBuilder menuBuilder, MenuItemImpl menuItemImpl) {
return false;
}
public Rect getEpicenterBounds() {
return this.mEpicenterBounds;
}
@Override // androidx.appcompat.view.menu.MenuPresenter
public int getId() {
return 0;
}
@Override // androidx.appcompat.view.menu.MenuPresenter
public MenuView getMenuView(ViewGroup viewGroup) {
throw new UnsupportedOperationException("MenuPopups manage their own views");
}
@Override // androidx.appcompat.view.menu.MenuPresenter
public void initForMenu(@NonNull Context context, @Nullable MenuBuilder menuBuilder) {
}
@Override // android.widget.AdapterView.OnItemClickListener
public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
ListAdapter listAdapter = (ListAdapter) adapterView.getAdapter();
toMenuAdapter(listAdapter).mAdapterMenu.performItemAction((MenuItem) listAdapter.getItem(i), this, closeMenuOnSubMenuOpened() ? 0 : 4);
}
public abstract void setAnchorView(View view);
public void setEpicenterBounds(Rect rect) {
this.mEpicenterBounds = rect;
}
public abstract void setForceShowIcon(boolean z2);
public abstract void setGravity(int i);
public abstract void setHorizontalOffset(int i);
public abstract void setOnDismissListener(PopupWindow.OnDismissListener onDismissListener);
public abstract void setShowTitle(boolean z2);
public abstract void setVerticalOffset(int i);
}