170 lines
5.5 KiB
Java
170 lines
5.5 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.annotation.AttrRes;
|
|
import androidx.annotation.MenuRes;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.annotation.StyleRes;
|
|
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;
|
|
public class PopupMenu {
|
|
private final View mAnchor;
|
|
private final Context mContext;
|
|
private View.OnTouchListener mDragListener;
|
|
private final MenuBuilder mMenu;
|
|
public OnMenuItemClickListener mMenuItemClickListener;
|
|
public OnDismissListener mOnDismissListener;
|
|
public final MenuPopupHelper mPopup;
|
|
|
|
/* renamed from: androidx.appcompat.widget.PopupMenu$1 reason: invalid class name */
|
|
public class AnonymousClass1 implements MenuBuilder.Callback {
|
|
public AnonymousClass1() {
|
|
}
|
|
|
|
@Override // androidx.appcompat.view.menu.MenuBuilder.Callback
|
|
public boolean onMenuItemSelected(@NonNull MenuBuilder menuBuilder, @NonNull MenuItem menuItem) {
|
|
OnMenuItemClickListener onMenuItemClickListener = PopupMenu.this.mMenuItemClickListener;
|
|
if (onMenuItemClickListener != null) {
|
|
return onMenuItemClickListener.onMenuItemClick(menuItem);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override // androidx.appcompat.view.menu.MenuBuilder.Callback
|
|
public void onMenuModeChange(@NonNull MenuBuilder menuBuilder) {
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.PopupMenu$2 reason: invalid class name */
|
|
public class AnonymousClass2 implements PopupWindow.OnDismissListener {
|
|
public AnonymousClass2() {
|
|
}
|
|
|
|
@Override // android.widget.PopupWindow.OnDismissListener
|
|
public void onDismiss() {
|
|
PopupMenu popupMenu = PopupMenu.this;
|
|
OnDismissListener onDismissListener = popupMenu.mOnDismissListener;
|
|
if (onDismissListener != null) {
|
|
onDismissListener.onDismiss(popupMenu);
|
|
}
|
|
}
|
|
}
|
|
|
|
/* renamed from: androidx.appcompat.widget.PopupMenu$3 reason: invalid class name */
|
|
public class AnonymousClass3 extends ForwardingListener {
|
|
public AnonymousClass3(View view) {
|
|
super(view);
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ForwardingListener
|
|
public ShowableListMenu getPopup() {
|
|
return PopupMenu.this.mPopup.getPopup();
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ForwardingListener
|
|
public boolean onForwardingStarted() {
|
|
PopupMenu.this.show();
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.appcompat.widget.ForwardingListener
|
|
public boolean onForwardingStopped() {
|
|
PopupMenu.this.dismiss();
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public interface OnDismissListener {
|
|
void onDismiss(PopupMenu popupMenu);
|
|
}
|
|
|
|
public interface OnMenuItemClickListener {
|
|
boolean onMenuItemClick(MenuItem menuItem);
|
|
}
|
|
|
|
public PopupMenu(@NonNull Context context, @NonNull View view) {
|
|
this(context, view, 0);
|
|
}
|
|
|
|
public PopupMenu(@NonNull Context context, @NonNull View view, int i) {
|
|
this(context, view, i, R.attr.popupMenuStyle, 0);
|
|
}
|
|
|
|
public PopupMenu(@NonNull Context context, @NonNull View view, int i, @AttrRes int i2, @StyleRes int i3) {
|
|
this.mContext = context;
|
|
this.mAnchor = view;
|
|
MenuBuilder menuBuilder = new MenuBuilder(context);
|
|
this.mMenu = menuBuilder;
|
|
menuBuilder.setCallback(new AnonymousClass1());
|
|
MenuPopupHelper menuPopupHelper = new MenuPopupHelper(context, menuBuilder, view, false, i2, i3);
|
|
this.mPopup = menuPopupHelper;
|
|
menuPopupHelper.setGravity(i);
|
|
menuPopupHelper.setOnDismissListener(new AnonymousClass2());
|
|
}
|
|
|
|
public void dismiss() {
|
|
this.mPopup.dismiss();
|
|
}
|
|
|
|
@NonNull
|
|
public View.OnTouchListener getDragToOpenListener() {
|
|
if (this.mDragListener == null) {
|
|
this.mDragListener = new AnonymousClass3(this.mAnchor);
|
|
}
|
|
return this.mDragListener;
|
|
}
|
|
|
|
public int getGravity() {
|
|
return this.mPopup.getGravity();
|
|
}
|
|
|
|
@NonNull
|
|
public Menu getMenu() {
|
|
return this.mMenu;
|
|
}
|
|
|
|
@NonNull
|
|
public MenuInflater getMenuInflater() {
|
|
return new SupportMenuInflater(this.mContext);
|
|
}
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
|
|
public ListView getMenuListView() {
|
|
if (!this.mPopup.isShowing()) {
|
|
return null;
|
|
}
|
|
return this.mPopup.getListView();
|
|
}
|
|
|
|
public void inflate(@MenuRes int i) {
|
|
getMenuInflater().inflate(i, this.mMenu);
|
|
}
|
|
|
|
public void setGravity(int i) {
|
|
this.mPopup.setGravity(i);
|
|
}
|
|
|
|
public void setOnDismissListener(@Nullable OnDismissListener onDismissListener) {
|
|
this.mOnDismissListener = onDismissListener;
|
|
}
|
|
|
|
public void setOnMenuItemClickListener(@Nullable OnMenuItemClickListener onMenuItemClickListener) {
|
|
this.mMenuItemClickListener = onMenuItemClickListener;
|
|
}
|
|
|
|
public void show() {
|
|
this.mPopup.show();
|
|
}
|
|
}
|