Rabbit-R1/switch port/java/sources/androidx/appcompat/widget/PopupMenu.java
2024-05-21 17:08:36 -04:00

145 lines
4.8 KiB
Java

package androidx.appcompat.widget;
import android.content.Context;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;
import android.widget.PopupWindow;
import androidx.appcompat.R;
import androidx.appcompat.view.SupportMenuInflater;
import androidx.appcompat.view.menu.MenuBuilder;
import androidx.appcompat.view.menu.MenuPopupHelper;
import androidx.appcompat.view.menu.ShowableListMenu;
/* loaded from: classes.dex */
public class PopupMenu {
private final View mAnchor;
private final Context mContext;
private View.OnTouchListener mDragListener;
private final MenuBuilder mMenu;
OnMenuItemClickListener mMenuItemClickListener;
OnDismissListener mOnDismissListener;
final MenuPopupHelper mPopup;
/* loaded from: classes.dex */
public interface OnDismissListener {
void onDismiss(PopupMenu popupMenu);
}
/* loaded from: classes.dex */
public interface OnMenuItemClickListener {
boolean onMenuItemClick(MenuItem menuItem);
}
public Menu getMenu() {
return this.mMenu;
}
public void setOnDismissListener(OnDismissListener onDismissListener) {
this.mOnDismissListener = onDismissListener;
}
public void setOnMenuItemClickListener(OnMenuItemClickListener onMenuItemClickListener) {
this.mMenuItemClickListener = onMenuItemClickListener;
}
public PopupMenu(Context context, View view) {
this(context, view, 0);
}
public PopupMenu(Context context, View view, int i) {
this(context, view, i, R.attr.popupMenuStyle, 0);
}
public PopupMenu(Context context, View view, int i, int i2, int i3) {
this.mContext = context;
this.mAnchor = view;
MenuBuilder menuBuilder = new MenuBuilder(context);
this.mMenu = menuBuilder;
menuBuilder.setCallback(new MenuBuilder.Callback() { // from class: androidx.appcompat.widget.PopupMenu.1
@Override // androidx.appcompat.view.menu.MenuBuilder.Callback
public void onMenuModeChange(MenuBuilder menuBuilder2) {
}
@Override // androidx.appcompat.view.menu.MenuBuilder.Callback
public boolean onMenuItemSelected(MenuBuilder menuBuilder2, MenuItem menuItem) {
if (PopupMenu.this.mMenuItemClickListener != null) {
return PopupMenu.this.mMenuItemClickListener.onMenuItemClick(menuItem);
}
return false;
}
});
MenuPopupHelper menuPopupHelper = new MenuPopupHelper(context, menuBuilder, view, false, i2, i3);
this.mPopup = menuPopupHelper;
menuPopupHelper.setGravity(i);
menuPopupHelper.setOnDismissListener(new PopupWindow.OnDismissListener() { // from class: androidx.appcompat.widget.PopupMenu.2
@Override // android.widget.PopupWindow.OnDismissListener
public void onDismiss() {
if (PopupMenu.this.mOnDismissListener != null) {
PopupMenu.this.mOnDismissListener.onDismiss(PopupMenu.this);
}
}
});
}
public void setGravity(int i) {
this.mPopup.setGravity(i);
}
public int getGravity() {
return this.mPopup.getGravity();
}
public View.OnTouchListener getDragToOpenListener() {
if (this.mDragListener == null) {
this.mDragListener = new ForwardingListener(this.mAnchor) { // from class: androidx.appcompat.widget.PopupMenu.3
@Override // androidx.appcompat.widget.ForwardingListener
protected boolean onForwardingStarted() {
PopupMenu.this.show();
return true;
}
@Override // androidx.appcompat.widget.ForwardingListener
protected boolean onForwardingStopped() {
PopupMenu.this.dismiss();
return true;
}
@Override // androidx.appcompat.widget.ForwardingListener
public ShowableListMenu getPopup() {
return PopupMenu.this.mPopup.getPopup();
}
};
}
return this.mDragListener;
}
public MenuInflater getMenuInflater() {
return new SupportMenuInflater(this.mContext);
}
public void inflate(int i) {
getMenuInflater().inflate(i, this.mMenu);
}
public void show() {
this.mPopup.show();
}
public void dismiss() {
this.mPopup.dismiss();
}
public void setForceShowIcon(boolean z) {
this.mPopup.setForceShowIcon(z);
}
ListView getMenuListView() {
if (this.mPopup.isShowing()) {
return this.mPopup.getListView();
}
return null;
}
}