mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
204 lines
6.8 KiB
Java
204 lines
6.8 KiB
Java
|
package androidx.appcompat.view.menu;
|
||
|
|
||
|
import android.content.Context;
|
||
|
import android.graphics.Point;
|
||
|
import android.graphics.Rect;
|
||
|
import android.view.Display;
|
||
|
import android.view.View;
|
||
|
import android.view.WindowManager;
|
||
|
import android.widget.ListView;
|
||
|
import android.widget.PopupWindow;
|
||
|
import androidx.appcompat.R;
|
||
|
import androidx.appcompat.view.menu.MenuPresenter;
|
||
|
import androidx.core.view.GravityCompat;
|
||
|
import androidx.core.view.ViewCompat;
|
||
|
|
||
|
/* loaded from: classes.dex */
|
||
|
public class MenuPopupHelper implements MenuHelper {
|
||
|
private static final int TOUCH_EPICENTER_SIZE_DP = 48;
|
||
|
private View mAnchorView;
|
||
|
private final Context mContext;
|
||
|
private int mDropDownGravity;
|
||
|
private boolean mForceShowIcon;
|
||
|
private final PopupWindow.OnDismissListener mInternalOnDismissListener;
|
||
|
private final MenuBuilder mMenu;
|
||
|
private PopupWindow.OnDismissListener mOnDismissListener;
|
||
|
private final boolean mOverflowOnly;
|
||
|
private MenuPopup mPopup;
|
||
|
private final int mPopupStyleAttr;
|
||
|
private final int mPopupStyleRes;
|
||
|
private MenuPresenter.Callback mPresenterCallback;
|
||
|
|
||
|
public int getGravity() {
|
||
|
return this.mDropDownGravity;
|
||
|
}
|
||
|
|
||
|
public void setAnchorView(View view) {
|
||
|
this.mAnchorView = view;
|
||
|
}
|
||
|
|
||
|
public void setGravity(int i) {
|
||
|
this.mDropDownGravity = i;
|
||
|
}
|
||
|
|
||
|
public void setOnDismissListener(PopupWindow.OnDismissListener onDismissListener) {
|
||
|
this.mOnDismissListener = onDismissListener;
|
||
|
}
|
||
|
|
||
|
public MenuPopupHelper(Context context, MenuBuilder menuBuilder) {
|
||
|
this(context, menuBuilder, null, false, R.attr.popupMenuStyle, 0);
|
||
|
}
|
||
|
|
||
|
public MenuPopupHelper(Context context, MenuBuilder menuBuilder, View view) {
|
||
|
this(context, menuBuilder, view, false, R.attr.popupMenuStyle, 0);
|
||
|
}
|
||
|
|
||
|
public MenuPopupHelper(Context context, MenuBuilder menuBuilder, View view, boolean z, int i) {
|
||
|
this(context, menuBuilder, view, z, i, 0);
|
||
|
}
|
||
|
|
||
|
public MenuPopupHelper(Context context, MenuBuilder menuBuilder, View view, boolean z, int i, int i2) {
|
||
|
this.mDropDownGravity = GravityCompat.START;
|
||
|
this.mInternalOnDismissListener = new PopupWindow.OnDismissListener() { // from class: androidx.appcompat.view.menu.MenuPopupHelper.1
|
||
|
@Override // android.widget.PopupWindow.OnDismissListener
|
||
|
public void onDismiss() {
|
||
|
MenuPopupHelper.this.onDismiss();
|
||
|
}
|
||
|
};
|
||
|
this.mContext = context;
|
||
|
this.mMenu = menuBuilder;
|
||
|
this.mAnchorView = view;
|
||
|
this.mOverflowOnly = z;
|
||
|
this.mPopupStyleAttr = i;
|
||
|
this.mPopupStyleRes = i2;
|
||
|
}
|
||
|
|
||
|
public void setForceShowIcon(boolean z) {
|
||
|
this.mForceShowIcon = z;
|
||
|
MenuPopup menuPopup = this.mPopup;
|
||
|
if (menuPopup != null) {
|
||
|
menuPopup.setForceShowIcon(z);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void show() {
|
||
|
if (!tryShow()) {
|
||
|
throw new IllegalStateException("MenuPopupHelper cannot be used without an anchor");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void show(int i, int i2) {
|
||
|
if (!tryShow(i, i2)) {
|
||
|
throw new IllegalStateException("MenuPopupHelper cannot be used without an anchor");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public MenuPopup getPopup() {
|
||
|
if (this.mPopup == null) {
|
||
|
this.mPopup = createPopup();
|
||
|
}
|
||
|
return this.mPopup;
|
||
|
}
|
||
|
|
||
|
public boolean tryShow() {
|
||
|
if (isShowing()) {
|
||
|
return true;
|
||
|
}
|
||
|
if (this.mAnchorView == null) {
|
||
|
return false;
|
||
|
}
|
||
|
showPopup(0, 0, false, false);
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public boolean tryShow(int i, int i2) {
|
||
|
if (isShowing()) {
|
||
|
return true;
|
||
|
}
|
||
|
if (this.mAnchorView == null) {
|
||
|
return false;
|
||
|
}
|
||
|
showPopup(i, i2, true, true);
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
private MenuPopup createPopup() {
|
||
|
MenuPopup standardMenuPopup;
|
||
|
Display defaultDisplay = ((WindowManager) this.mContext.getSystemService("window")).getDefaultDisplay();
|
||
|
Point point = new Point();
|
||
|
Api17Impl.getRealSize(defaultDisplay, point);
|
||
|
if (Math.min(point.x, point.y) >= this.mContext.getResources().getDimensionPixelSize(R.dimen.abc_cascading_menus_min_smallest_width)) {
|
||
|
standardMenuPopup = new CascadingMenuPopup(this.mContext, this.mAnchorView, this.mPopupStyleAttr, this.mPopupStyleRes, this.mOverflowOnly);
|
||
|
} else {
|
||
|
standardMenuPopup = new StandardMenuPopup(this.mContext, this.mMenu, this.mAnchorView, this.mPopupStyleAttr, this.mPopupStyleRes, this.mOverflowOnly);
|
||
|
}
|
||
|
standardMenuPopup.addMenu(this.mMenu);
|
||
|
standardMenuPopup.setOnDismissListener(this.mInternalOnDismissListener);
|
||
|
standardMenuPopup.setAnchorView(this.mAnchorView);
|
||
|
standardMenuPopup.setCallback(this.mPresenterCallback);
|
||
|
standardMenuPopup.setForceShowIcon(this.mForceShowIcon);
|
||
|
standardMenuPopup.setGravity(this.mDropDownGravity);
|
||
|
return standardMenuPopup;
|
||
|
}
|
||
|
|
||
|
private void showPopup(int i, int i2, boolean z, boolean z2) {
|
||
|
MenuPopup popup = getPopup();
|
||
|
popup.setShowTitle(z2);
|
||
|
if (z) {
|
||
|
if ((GravityCompat.getAbsoluteGravity(this.mDropDownGravity, ViewCompat.getLayoutDirection(this.mAnchorView)) & 7) == 5) {
|
||
|
i -= this.mAnchorView.getWidth();
|
||
|
}
|
||
|
popup.setHorizontalOffset(i);
|
||
|
popup.setVerticalOffset(i2);
|
||
|
int i3 = (int) ((this.mContext.getResources().getDisplayMetrics().density * 48.0f) / 2.0f);
|
||
|
popup.setEpicenterBounds(new Rect(i - i3, i2 - i3, i + i3, i2 + i3));
|
||
|
}
|
||
|
popup.show();
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuHelper
|
||
|
public void dismiss() {
|
||
|
if (isShowing()) {
|
||
|
this.mPopup.dismiss();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: protected */
|
||
|
public void onDismiss() {
|
||
|
this.mPopup = null;
|
||
|
PopupWindow.OnDismissListener onDismissListener = this.mOnDismissListener;
|
||
|
if (onDismissListener != null) {
|
||
|
onDismissListener.onDismiss();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public boolean isShowing() {
|
||
|
MenuPopup menuPopup = this.mPopup;
|
||
|
return menuPopup != null && menuPopup.isShowing();
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuHelper
|
||
|
public void setPresenterCallback(MenuPresenter.Callback callback) {
|
||
|
this.mPresenterCallback = callback;
|
||
|
MenuPopup menuPopup = this.mPopup;
|
||
|
if (menuPopup != null) {
|
||
|
menuPopup.setCallback(callback);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public ListView getListView() {
|
||
|
return getPopup().getListView();
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
/* loaded from: classes.dex */
|
||
|
public static class Api17Impl {
|
||
|
private Api17Impl() {
|
||
|
}
|
||
|
|
||
|
static void getRealSize(Display display, Point point) {
|
||
|
display.getRealSize(point);
|
||
|
}
|
||
|
}
|
||
|
}
|