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

115 lines
4.7 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.annotation.NonNull;
import androidx.appcompat.R;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.view.menu.MenuPresenter;
import androidx.core.view.PointerIconCompat;
public class MenuDialogHelper implements DialogInterface.OnKeyListener, DialogInterface.OnClickListener, DialogInterface.OnDismissListener, MenuPresenter.Callback {
private AlertDialog mDialog;
private MenuBuilder mMenu;
public ListMenuPresenter mPresenter;
private MenuPresenter.Callback mPresenterCallback;
public MenuDialogHelper(MenuBuilder menuBuilder) {
this.mMenu = menuBuilder;
}
public void dismiss() {
AlertDialog alertDialog = this.mDialog;
if (alertDialog != null) {
alertDialog.dismiss();
}
}
@Override // android.content.DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i) {
this.mMenu.performItemAction((MenuItemImpl) this.mPresenter.getAdapter().getItem(i), 0);
}
@Override // androidx.appcompat.view.menu.MenuPresenter.Callback
public void onCloseMenu(@NonNull MenuBuilder menuBuilder, boolean z2) {
if (z2 || menuBuilder == this.mMenu) {
dismiss();
}
MenuPresenter.Callback callback = this.mPresenterCallback;
if (callback != null) {
callback.onCloseMenu(menuBuilder, z2);
}
}
@Override // android.content.DialogInterface.OnDismissListener
public void onDismiss(DialogInterface dialogInterface) {
this.mPresenter.onCloseMenu(this.mMenu, true);
}
@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);
}
@Override // androidx.appcompat.view.menu.MenuPresenter.Callback
public boolean onOpenSubMenu(@NonNull MenuBuilder menuBuilder) {
MenuPresenter.Callback callback = this.mPresenterCallback;
if (callback != null) {
return callback.onOpenSubMenu(menuBuilder);
}
return false;
}
public void setPresenterCallback(MenuPresenter.Callback callback) {
this.mPresenterCallback = callback;
}
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 = PointerIconCompat.TYPE_HELP;
if (iBinder != null) {
attributes.token = iBinder;
}
attributes.flags |= 131072;
this.mDialog.show();
}
}