ADD week 5
This commit is contained in:
		| @@ -0,0 +1,115 @@ | ||||
| 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; | ||||
| import androidx.core.view.PointerIconCompat; | ||||
|  | ||||
| /* 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 = PointerIconCompat.TYPE_HELP; | ||||
|         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); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user