mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
115 lines
4.6 KiB
Java
115 lines
4.6 KiB
Java
|
package androidx.appcompat.view.menu;
|
||
|
|
||
|
import android.content.DialogInterface;
|
||
|
import android.os.IBinder;
|
||
|
import android.view.KeyEvent;
|
||
|
import android.view.View;
|
||
|
import android.view.Window;
|
||
|
import android.view.WindowManager;
|
||
|
import androidx.appcompat.R;
|
||
|
import androidx.appcompat.app.AlertDialog;
|
||
|
import androidx.appcompat.view.menu.MenuPresenter;
|
||
|
|
||
|
/* loaded from: classes.dex */
|
||
|
class MenuDialogHelper implements DialogInterface.OnKeyListener, DialogInterface.OnClickListener, DialogInterface.OnDismissListener, MenuPresenter.Callback {
|
||
|
private AlertDialog mDialog;
|
||
|
private MenuBuilder mMenu;
|
||
|
ListMenuPresenter mPresenter;
|
||
|
private MenuPresenter.Callback mPresenterCallback;
|
||
|
|
||
|
public void setPresenterCallback(MenuPresenter.Callback callback) {
|
||
|
this.mPresenterCallback = callback;
|
||
|
}
|
||
|
|
||
|
public MenuDialogHelper(MenuBuilder menuBuilder) {
|
||
|
this.mMenu = menuBuilder;
|
||
|
}
|
||
|
|
||
|
public void show(IBinder iBinder) {
|
||
|
MenuBuilder menuBuilder = this.mMenu;
|
||
|
AlertDialog.Builder builder = new AlertDialog.Builder(menuBuilder.getContext());
|
||
|
ListMenuPresenter listMenuPresenter = new ListMenuPresenter(builder.getContext(), R.layout.abc_list_menu_item_layout);
|
||
|
this.mPresenter = listMenuPresenter;
|
||
|
listMenuPresenter.setCallback(this);
|
||
|
this.mMenu.addMenuPresenter(this.mPresenter);
|
||
|
builder.setAdapter(this.mPresenter.getAdapter(), this);
|
||
|
View headerView = menuBuilder.getHeaderView();
|
||
|
if (headerView != null) {
|
||
|
builder.setCustomTitle(headerView);
|
||
|
} else {
|
||
|
builder.setIcon(menuBuilder.getHeaderIcon()).setTitle(menuBuilder.getHeaderTitle());
|
||
|
}
|
||
|
builder.setOnKeyListener(this);
|
||
|
AlertDialog create = builder.create();
|
||
|
this.mDialog = create;
|
||
|
create.setOnDismissListener(this);
|
||
|
WindowManager.LayoutParams attributes = this.mDialog.getWindow().getAttributes();
|
||
|
attributes.type = 1003;
|
||
|
if (iBinder != null) {
|
||
|
attributes.token = iBinder;
|
||
|
}
|
||
|
attributes.flags |= 131072;
|
||
|
this.mDialog.show();
|
||
|
}
|
||
|
|
||
|
@Override // android.content.DialogInterface.OnKeyListener
|
||
|
public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {
|
||
|
Window window;
|
||
|
View decorView;
|
||
|
KeyEvent.DispatcherState keyDispatcherState;
|
||
|
View decorView2;
|
||
|
KeyEvent.DispatcherState keyDispatcherState2;
|
||
|
if (i == 82 || i == 4) {
|
||
|
if (keyEvent.getAction() == 0 && keyEvent.getRepeatCount() == 0) {
|
||
|
Window window2 = this.mDialog.getWindow();
|
||
|
if (window2 != null && (decorView2 = window2.getDecorView()) != null && (keyDispatcherState2 = decorView2.getKeyDispatcherState()) != null) {
|
||
|
keyDispatcherState2.startTracking(keyEvent, this);
|
||
|
return true;
|
||
|
}
|
||
|
} else if (keyEvent.getAction() == 1 && !keyEvent.isCanceled() && (window = this.mDialog.getWindow()) != null && (decorView = window.getDecorView()) != null && (keyDispatcherState = decorView.getKeyDispatcherState()) != null && keyDispatcherState.isTracking(keyEvent)) {
|
||
|
this.mMenu.close(true);
|
||
|
dialogInterface.dismiss();
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return this.mMenu.performShortcut(i, keyEvent, 0);
|
||
|
}
|
||
|
|
||
|
public void dismiss() {
|
||
|
AlertDialog alertDialog = this.mDialog;
|
||
|
if (alertDialog != null) {
|
||
|
alertDialog.dismiss();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // android.content.DialogInterface.OnDismissListener
|
||
|
public void onDismiss(DialogInterface dialogInterface) {
|
||
|
this.mPresenter.onCloseMenu(this.mMenu, true);
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuPresenter.Callback
|
||
|
public void onCloseMenu(MenuBuilder menuBuilder, boolean z) {
|
||
|
if (z || menuBuilder == this.mMenu) {
|
||
|
dismiss();
|
||
|
}
|
||
|
MenuPresenter.Callback callback = this.mPresenterCallback;
|
||
|
if (callback != null) {
|
||
|
callback.onCloseMenu(menuBuilder, z);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuPresenter.Callback
|
||
|
public boolean onOpenSubMenu(MenuBuilder menuBuilder) {
|
||
|
MenuPresenter.Callback callback = this.mPresenterCallback;
|
||
|
if (callback != null) {
|
||
|
return callback.onOpenSubMenu(menuBuilder);
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
@Override // android.content.DialogInterface.OnClickListener
|
||
|
public void onClick(DialogInterface dialogInterface, int i) {
|
||
|
this.mMenu.performItemAction((MenuItemImpl) this.mPresenter.getAdapter().getItem(i), 0);
|
||
|
}
|
||
|
}
|