.class Landroid/support/v7/view/menu/MenuDialogHelper; .super Ljava/lang/Object; .source "MenuDialogHelper.java" # interfaces .implements Landroid/content/DialogInterface$OnKeyListener; .implements Landroid/content/DialogInterface$OnClickListener; .implements Landroid/content/DialogInterface$OnDismissListener; .implements Landroid/support/v7/view/menu/MenuPresenter$Callback; # instance fields .field private mDialog:Landroid/support/v7/app/AlertDialog; .field private mMenu:Landroid/support/v7/view/menu/MenuBuilder; .field mPresenter:Landroid/support/v7/view/menu/ListMenuPresenter; .field private mPresenterCallback:Landroid/support/v7/view/menu/MenuPresenter$Callback; # direct methods .method public constructor (Landroid/support/v7/view/menu/MenuBuilder;)V .locals 0 .param p1, "menu" # Landroid/support/v7/view/menu/MenuBuilder; .prologue invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; return-void .end method # virtual methods .method public dismiss()V .locals 1 .prologue iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; if-eqz v0, :cond_0 iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; invoke-virtual {v0}, Landroid/support/v7/app/AlertDialog;->dismiss()V :cond_0 return-void .end method .method public onClick(Landroid/content/DialogInterface;I)V .locals 3 .param p1, "dialog" # Landroid/content/DialogInterface; .param p2, "which" # I .prologue iget-object v1, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenter:Landroid/support/v7/view/menu/ListMenuPresenter; invoke-virtual {v0}, Landroid/support/v7/view/menu/ListMenuPresenter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v0 invoke-interface {v0, p2}, Landroid/widget/ListAdapter;->getItem(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/support/v7/view/menu/MenuItemImpl; const/4 v2, 0x0 invoke-virtual {v1, v0, v2}, Landroid/support/v7/view/menu/MenuBuilder;->performItemAction(Landroid/view/MenuItem;I)Z return-void .end method .method public onCloseMenu(Landroid/support/v7/view/menu/MenuBuilder;Z)V .locals 1 .param p1, "menu" # Landroid/support/v7/view/menu/MenuBuilder; .param p2, "allMenusAreClosing" # Z .prologue if-nez p2, :cond_0 iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; if-ne p1, v0, :cond_1 :cond_0 invoke-virtual {p0}, Landroid/support/v7/view/menu/MenuDialogHelper;->dismiss()V :cond_1 iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenterCallback:Landroid/support/v7/view/menu/MenuPresenter$Callback; if-eqz v0, :cond_2 iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenterCallback:Landroid/support/v7/view/menu/MenuPresenter$Callback; invoke-interface {v0, p1, p2}, Landroid/support/v7/view/menu/MenuPresenter$Callback;->onCloseMenu(Landroid/support/v7/view/menu/MenuBuilder;Z)V :cond_2 return-void .end method .method public onDismiss(Landroid/content/DialogInterface;)V .locals 3 .param p1, "dialog" # Landroid/content/DialogInterface; .prologue iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenter:Landroid/support/v7/view/menu/ListMenuPresenter; iget-object v1, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; const/4 v2, 0x1 invoke-virtual {v0, v1, v2}, Landroid/support/v7/view/menu/ListMenuPresenter;->onCloseMenu(Landroid/support/v7/view/menu/MenuBuilder;Z)V return-void .end method .method public onKey(Landroid/content/DialogInterface;ILandroid/view/KeyEvent;)Z .locals 5 .param p1, "dialog" # Landroid/content/DialogInterface; .param p2, "keyCode" # I .param p3, "event" # Landroid/view/KeyEvent; .prologue const/4 v3, 0x1 const/16 v4, 0x52 if-eq p2, v4, :cond_0 const/4 v4, 0x4 if-ne p2, v4, :cond_2 :cond_0 invoke-virtual {p3}, Landroid/view/KeyEvent;->getAction()I move-result v4 if-nez v4, :cond_1 invoke-virtual {p3}, Landroid/view/KeyEvent;->getRepeatCount()I move-result v4 if-nez v4, :cond_1 iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; invoke-virtual {v4}, Landroid/support/v7/app/AlertDialog;->getWindow()Landroid/view/Window; move-result-object v2 .local v2, "win":Landroid/view/Window; if-eqz v2, :cond_2 invoke-virtual {v2}, Landroid/view/Window;->getDecorView()Landroid/view/View; move-result-object v0 .local v0, "decor":Landroid/view/View; if-eqz v0, :cond_2 invoke-virtual {v0}, Landroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState; move-result-object v1 .local v1, "ds":Landroid/view/KeyEvent$DispatcherState; if-eqz v1, :cond_2 invoke-virtual {v1, p3, p0}, Landroid/view/KeyEvent$DispatcherState;->startTracking(Landroid/view/KeyEvent;Ljava/lang/Object;)V .end local v0 # "decor":Landroid/view/View; .end local v1 # "ds":Landroid/view/KeyEvent$DispatcherState; .end local v2 # "win":Landroid/view/Window; :goto_0 return v3 :cond_1 invoke-virtual {p3}, Landroid/view/KeyEvent;->getAction()I move-result v4 if-ne v4, v3, :cond_2 invoke-virtual {p3}, Landroid/view/KeyEvent;->isCanceled()Z move-result v4 if-nez v4, :cond_2 iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; invoke-virtual {v4}, Landroid/support/v7/app/AlertDialog;->getWindow()Landroid/view/Window; move-result-object v2 .restart local v2 # "win":Landroid/view/Window; if-eqz v2, :cond_2 invoke-virtual {v2}, Landroid/view/Window;->getDecorView()Landroid/view/View; move-result-object v0 .restart local v0 # "decor":Landroid/view/View; if-eqz v0, :cond_2 invoke-virtual {v0}, Landroid/view/View;->getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState; move-result-object v1 .restart local v1 # "ds":Landroid/view/KeyEvent$DispatcherState; if-eqz v1, :cond_2 invoke-virtual {v1, p3}, Landroid/view/KeyEvent$DispatcherState;->isTracking(Landroid/view/KeyEvent;)Z move-result v4 if-eqz v4, :cond_2 iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; invoke-virtual {v4, v3}, Landroid/support/v7/view/menu/MenuBuilder;->close(Z)V invoke-interface {p1}, Landroid/content/DialogInterface;->dismiss()V goto :goto_0 .end local v0 # "decor":Landroid/view/View; .end local v1 # "ds":Landroid/view/KeyEvent$DispatcherState; .end local v2 # "win":Landroid/view/Window; :cond_2 iget-object v3, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; const/4 v4, 0x0 invoke-virtual {v3, p2, p3, v4}, Landroid/support/v7/view/menu/MenuBuilder;->performShortcut(ILandroid/view/KeyEvent;I)Z move-result v3 goto :goto_0 .end method .method public onOpenSubMenu(Landroid/support/v7/view/menu/MenuBuilder;)Z .locals 1 .param p1, "subMenu" # Landroid/support/v7/view/menu/MenuBuilder; .prologue iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenterCallback:Landroid/support/v7/view/menu/MenuPresenter$Callback; if-eqz v0, :cond_0 iget-object v0, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenterCallback:Landroid/support/v7/view/menu/MenuPresenter$Callback; invoke-interface {v0, p1}, Landroid/support/v7/view/menu/MenuPresenter$Callback;->onOpenSubMenu(Landroid/support/v7/view/menu/MenuBuilder;)Z move-result v0 :goto_0 return v0 :cond_0 const/4 v0, 0x0 goto :goto_0 .end method .method public setPresenterCallback(Landroid/support/v7/view/menu/MenuPresenter$Callback;)V .locals 0 .param p1, "cb" # Landroid/support/v7/view/menu/MenuPresenter$Callback; .prologue iput-object p1, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenterCallback:Landroid/support/v7/view/menu/MenuPresenter$Callback; return-void .end method .method public show(Landroid/os/IBinder;)V .locals 7 .param p1, "windowToken" # Landroid/os/IBinder; .prologue iget-object v3, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; .local v3, "menu":Landroid/support/v7/view/menu/MenuBuilder; new-instance v0, Landroid/support/v7/app/AlertDialog$Builder; invoke-virtual {v3}, Landroid/support/v7/view/menu/MenuBuilder;->getContext()Landroid/content/Context; move-result-object v4 invoke-direct {v0, v4}, Landroid/support/v7/app/AlertDialog$Builder;->(Landroid/content/Context;)V .local v0, "builder":Landroid/support/v7/app/AlertDialog$Builder; new-instance v4, Landroid/support/v7/view/menu/ListMenuPresenter; invoke-virtual {v0}, Landroid/support/v7/app/AlertDialog$Builder;->getContext()Landroid/content/Context; move-result-object v5 sget v6, Landroid/support/v7/appcompat/R$layout;->abc_list_menu_item_layout:I invoke-direct {v4, v5, v6}, Landroid/support/v7/view/menu/ListMenuPresenter;->(Landroid/content/Context;I)V iput-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenter:Landroid/support/v7/view/menu/ListMenuPresenter; iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenter:Landroid/support/v7/view/menu/ListMenuPresenter; invoke-virtual {v4, p0}, Landroid/support/v7/view/menu/ListMenuPresenter;->setCallback(Landroid/support/v7/view/menu/MenuPresenter$Callback;)V iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mMenu:Landroid/support/v7/view/menu/MenuBuilder; iget-object v5, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenter:Landroid/support/v7/view/menu/ListMenuPresenter; invoke-virtual {v4, v5}, Landroid/support/v7/view/menu/MenuBuilder;->addMenuPresenter(Landroid/support/v7/view/menu/MenuPresenter;)V iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mPresenter:Landroid/support/v7/view/menu/ListMenuPresenter; invoke-virtual {v4}, Landroid/support/v7/view/menu/ListMenuPresenter;->getAdapter()Landroid/widget/ListAdapter; move-result-object v4 invoke-virtual {v0, v4, p0}, Landroid/support/v7/app/AlertDialog$Builder;->setAdapter(Landroid/widget/ListAdapter;Landroid/content/DialogInterface$OnClickListener;)Landroid/support/v7/app/AlertDialog$Builder; invoke-virtual {v3}, Landroid/support/v7/view/menu/MenuBuilder;->getHeaderView()Landroid/view/View; move-result-object v1 .local v1, "headerView":Landroid/view/View; if-eqz v1, :cond_1 invoke-virtual {v0, v1}, Landroid/support/v7/app/AlertDialog$Builder;->setCustomTitle(Landroid/view/View;)Landroid/support/v7/app/AlertDialog$Builder; :goto_0 invoke-virtual {v0, p0}, Landroid/support/v7/app/AlertDialog$Builder;->setOnKeyListener(Landroid/content/DialogInterface$OnKeyListener;)Landroid/support/v7/app/AlertDialog$Builder; invoke-virtual {v0}, Landroid/support/v7/app/AlertDialog$Builder;->create()Landroid/support/v7/app/AlertDialog; move-result-object v4 iput-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; invoke-virtual {v4, p0}, Landroid/support/v7/app/AlertDialog;->setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; invoke-virtual {v4}, Landroid/support/v7/app/AlertDialog;->getWindow()Landroid/view/Window; move-result-object v4 invoke-virtual {v4}, Landroid/view/Window;->getAttributes()Landroid/view/WindowManager$LayoutParams; move-result-object v2 .local v2, "lp":Landroid/view/WindowManager$LayoutParams; const/16 v4, 0x3eb iput v4, v2, Landroid/view/WindowManager$LayoutParams;->type:I if-eqz p1, :cond_0 iput-object p1, v2, Landroid/view/WindowManager$LayoutParams;->token:Landroid/os/IBinder; :cond_0 iget v4, v2, Landroid/view/WindowManager$LayoutParams;->flags:I const/high16 v5, 0x20000 or-int/2addr v4, v5 iput v4, v2, Landroid/view/WindowManager$LayoutParams;->flags:I iget-object v4, p0, Landroid/support/v7/view/menu/MenuDialogHelper;->mDialog:Landroid/support/v7/app/AlertDialog; invoke-virtual {v4}, Landroid/support/v7/app/AlertDialog;->show()V return-void .end local v2 # "lp":Landroid/view/WindowManager$LayoutParams; :cond_1 invoke-virtual {v3}, Landroid/support/v7/view/menu/MenuBuilder;->getHeaderIcon()Landroid/graphics/drawable/Drawable; move-result-object v4 invoke-virtual {v0, v4}, Landroid/support/v7/app/AlertDialog$Builder;->setIcon(Landroid/graphics/drawable/Drawable;)Landroid/support/v7/app/AlertDialog$Builder; move-result-object v4 invoke-virtual {v3}, Landroid/support/v7/view/menu/MenuBuilder;->getHeaderTitle()Ljava/lang/CharSequence; move-result-object v5 invoke-virtual {v4, v5}, Landroid/support/v7/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/support/v7/app/AlertDialog$Builder; goto :goto_0 .end method