.class public Landroidx/appcompat/view/menu/MenuPopupHelper; .super Ljava/lang/Object; .source "MenuPopupHelper.java" # interfaces .implements Landroidx/appcompat/view/menu/MenuHelper; # static fields .field private static final TOUCH_EPICENTER_SIZE_DP:I = 0x30 # instance fields .field private mAnchorView:Landroid/view/View; .field private final mContext:Landroid/content/Context; .field private mDropDownGravity:I .field private mForceShowIcon:Z .field private final mInternalOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener; .field private final mMenu:Landroidx/appcompat/view/menu/MenuBuilder; .field private mOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener; .field private final mOverflowOnly:Z .field private mPopup:Landroidx/appcompat/view/menu/MenuPopup; .field private final mPopupStyleAttr:I .field private final mPopupStyleRes:I .field private mPresenterCallback:Landroidx/appcompat/view/menu/MenuPresenter$Callback; # direct methods .method public constructor (Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;)V .locals 7 .line 69 sget v5, Landroidx/appcompat/R$attr;->popupMenuStyle:I const/4 v3, 0x0 const/4 v4, 0x0 const/4 v6, 0x0 move-object v0, p0 move-object v1, p1 move-object v2, p2 invoke-direct/range {v0 .. v6}, Landroidx/appcompat/view/menu/MenuPopupHelper;->(Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;Landroid/view/View;ZII)V return-void .end method .method public constructor (Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;Landroid/view/View;)V .locals 7 .line 74 sget v5, Landroidx/appcompat/R$attr;->popupMenuStyle:I const/4 v4, 0x0 const/4 v6, 0x0 move-object v0, p0 move-object v1, p1 move-object v2, p2 move-object v3, p3 invoke-direct/range {v0 .. v6}, Landroidx/appcompat/view/menu/MenuPopupHelper;->(Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;Landroid/view/View;ZII)V return-void .end method .method public constructor (Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;Landroid/view/View;ZI)V .locals 7 const/4 v6, 0x0 move-object v0, p0 move-object v1, p1 move-object v2, p2 move-object v3, p3 move v4, p4 move v5, p5 .line 80 invoke-direct/range {v0 .. v6}, Landroidx/appcompat/view/menu/MenuPopupHelper;->(Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;Landroid/view/View;ZII)V return-void .end method .method public constructor (Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;Landroid/view/View;ZII)V .locals 1 .line 85 invoke-direct {p0}, Ljava/lang/Object;->()V const v0, 0x800003 .line 61 iput v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mDropDownGravity:I .line 340 new-instance v0, Landroidx/appcompat/view/menu/MenuPopupHelper$1; invoke-direct {v0, p0}, Landroidx/appcompat/view/menu/MenuPopupHelper$1;->(Landroidx/appcompat/view/menu/MenuPopupHelper;)V iput-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mInternalOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener; .line 86 iput-object p1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mContext:Landroid/content/Context; .line 87 iput-object p2, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mMenu:Landroidx/appcompat/view/menu/MenuBuilder; .line 88 iput-object p3, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; .line 89 iput-boolean p4, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mOverflowOnly:Z .line 90 iput p5, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopupStyleAttr:I .line 91 iput p6, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopupStyleRes:I return-void .end method .method private createPopup()Landroidx/appcompat/view/menu/MenuPopup; .locals 14 .line 230 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mContext:Landroid/content/Context; const-string v1, "window" invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 check-cast v0, Landroid/view/WindowManager; .line 232 invoke-interface {v0}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display; move-result-object v0 .line 233 new-instance v1, Landroid/graphics/Point; invoke-direct {v1}, Landroid/graphics/Point;->()V .line 235 sget v2, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v3, 0x11 if-lt v2, v3, :cond_0 .line 236 invoke-virtual {v0, v1}, Landroid/view/Display;->getRealSize(Landroid/graphics/Point;)V goto :goto_0 .line 238 :cond_0 invoke-virtual {v0, v1}, Landroid/view/Display;->getSize(Landroid/graphics/Point;)V .line 241 :goto_0 iget v0, v1, Landroid/graphics/Point;->x:I iget v1, v1, Landroid/graphics/Point;->y:I invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I move-result v0 .line 242 iget-object v1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mContext:Landroid/content/Context; invoke-virtual {v1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object v1 sget v2, Landroidx/appcompat/R$dimen;->abc_cascading_menus_min_smallest_width:I invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I move-result v1 if-lt v0, v1, :cond_1 const/4 v0, 0x1 goto :goto_1 :cond_1 const/4 v0, 0x0 :goto_1 if-eqz v0, :cond_2 .line 248 new-instance v0, Landroidx/appcompat/view/menu/CascadingMenuPopup; iget-object v2, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mContext:Landroid/content/Context; iget-object v3, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; iget v4, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopupStyleAttr:I iget v5, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopupStyleRes:I iget-boolean v6, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mOverflowOnly:Z move-object v1, v0 invoke-direct/range {v1 .. v6}, Landroidx/appcompat/view/menu/CascadingMenuPopup;->(Landroid/content/Context;Landroid/view/View;IIZ)V goto :goto_2 .line 251 :cond_2 new-instance v0, Landroidx/appcompat/view/menu/StandardMenuPopup; iget-object v8, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mContext:Landroid/content/Context; iget-object v9, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mMenu:Landroidx/appcompat/view/menu/MenuBuilder; iget-object v10, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; iget v11, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopupStyleAttr:I iget v12, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopupStyleRes:I iget-boolean v13, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mOverflowOnly:Z move-object v7, v0 invoke-direct/range {v7 .. v13}, Landroidx/appcompat/view/menu/StandardMenuPopup;->(Landroid/content/Context;Landroidx/appcompat/view/menu/MenuBuilder;Landroid/view/View;IIZ)V .line 256 :goto_2 iget-object v1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mMenu:Landroidx/appcompat/view/menu/MenuBuilder; invoke-virtual {v0, v1}, Landroidx/appcompat/view/menu/MenuPopup;->addMenu(Landroidx/appcompat/view/menu/MenuBuilder;)V .line 257 iget-object v1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mInternalOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener; invoke-virtual {v0, v1}, Landroidx/appcompat/view/menu/MenuPopup;->setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V .line 260 iget-object v1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; invoke-virtual {v0, v1}, Landroidx/appcompat/view/menu/MenuPopup;->setAnchorView(Landroid/view/View;)V .line 261 iget-object v1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPresenterCallback:Landroidx/appcompat/view/menu/MenuPresenter$Callback; invoke-virtual {v0, v1}, Landroidx/appcompat/view/menu/MenuPopup;->setCallback(Landroidx/appcompat/view/menu/MenuPresenter$Callback;)V .line 262 iget-boolean v1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mForceShowIcon:Z invoke-virtual {v0, v1}, Landroidx/appcompat/view/menu/MenuPopup;->setForceShowIcon(Z)V .line 263 iget v1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mDropDownGravity:I invoke-virtual {v0, v1}, Landroidx/appcompat/view/menu/MenuPopup;->setGravity(I)V return-object v0 .end method .method private showPopup(IIZZ)V .locals 3 .line 269 invoke-virtual {p0}, Landroidx/appcompat/view/menu/MenuPopupHelper;->getPopup()Landroidx/appcompat/view/menu/MenuPopup; move-result-object v0 .line 270 invoke-virtual {v0, p4}, Landroidx/appcompat/view/menu/MenuPopup;->setShowTitle(Z)V if-eqz p3, :cond_1 .line 276 iget p3, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mDropDownGravity:I iget-object p4, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; .line 277 invoke-static {p4}, Landroidx/core/view/ViewCompat;->getLayoutDirection(Landroid/view/View;)I move-result p4 .line 276 invoke-static {p3, p4}, Landroidx/core/view/GravityCompat;->getAbsoluteGravity(II)I move-result p3 and-int/lit8 p3, p3, 0x7 const/4 p4, 0x5 if-ne p3, p4, :cond_0 .line 279 iget-object p3, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; invoke-virtual {p3}, Landroid/view/View;->getWidth()I move-result p3 sub-int/2addr p1, p3 .line 282 :cond_0 invoke-virtual {v0, p1}, Landroidx/appcompat/view/menu/MenuPopup;->setHorizontalOffset(I)V .line 283 invoke-virtual {v0, p2}, Landroidx/appcompat/view/menu/MenuPopup;->setVerticalOffset(I)V .line 289 iget-object p3, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mContext:Landroid/content/Context; invoke-virtual {p3}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p3 invoke-virtual {p3}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; move-result-object p3 iget p3, p3, Landroid/util/DisplayMetrics;->density:F const/high16 p4, 0x42400000 # 48.0f mul-float/2addr p3, p4 const/high16 p4, 0x40000000 # 2.0f div-float/2addr p3, p4 float-to-int p3, p3 .line 291 new-instance p4, Landroid/graphics/Rect; sub-int v1, p1, p3 sub-int v2, p2, p3 add-int/2addr p1, p3 add-int/2addr p2, p3 invoke-direct {p4, v1, v2, p1, p2}, Landroid/graphics/Rect;->(IIII)V .line 293 invoke-virtual {v0, p4}, Landroidx/appcompat/view/menu/MenuPopup;->setEpicenterBounds(Landroid/graphics/Rect;)V .line 296 :cond_1 invoke-virtual {v0}, Landroidx/appcompat/view/menu/MenuPopup;->show()V return-void .end method # virtual methods .method public dismiss()V .locals 1 .line 304 invoke-virtual {p0}, Landroidx/appcompat/view/menu/MenuPopupHelper;->isShowing()Z move-result v0 if-eqz v0, :cond_0 .line 305 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; invoke-virtual {v0}, Landroidx/appcompat/view/menu/MenuPopup;->dismiss()V :cond_0 return-void .end method .method public getGravity()I .locals 1 .line 140 iget v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mDropDownGravity:I return v0 .end method .method public getListView()Landroid/widget/ListView; .locals 1 .line 351 invoke-virtual {p0}, Landroidx/appcompat/view/menu/MenuPopupHelper;->getPopup()Landroidx/appcompat/view/menu/MenuPopup; move-result-object v0 invoke-virtual {v0}, Landroidx/appcompat/view/menu/MenuPopup;->getListView()Landroid/widget/ListView; move-result-object v0 return-object v0 .end method .method public getPopup()Landroidx/appcompat/view/menu/MenuPopup; .locals 1 .line 161 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; if-nez v0, :cond_0 .line 162 invoke-direct {p0}, Landroidx/appcompat/view/menu/MenuPopupHelper;->createPopup()Landroidx/appcompat/view/menu/MenuPopup; move-result-object v0 iput-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; .line 164 :cond_0 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; return-object v0 .end method .method public isShowing()Z .locals 1 .line 326 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; if-eqz v0, :cond_0 invoke-virtual {v0}, Landroidx/appcompat/view/menu/MenuPopup;->isShowing()Z move-result v0 if-eqz v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method protected onDismiss()V .locals 1 const/4 v0, 0x0 .line 318 iput-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; .line 320 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener; if-eqz v0, :cond_0 .line 321 invoke-interface {v0}, Landroid/widget/PopupWindow$OnDismissListener;->onDismiss()V :cond_0 return-void .end method .method public setAnchorView(Landroid/view/View;)V .locals 0 .line 106 iput-object p1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; return-void .end method .method public setForceShowIcon(Z)V .locals 1 .line 119 iput-boolean p1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mForceShowIcon:Z .line 120 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; if-eqz v0, :cond_0 .line 121 invoke-virtual {v0, p1}, Landroidx/appcompat/view/menu/MenuPopup;->setForceShowIcon(Z)V :cond_0 return-void .end method .method public setGravity(I)V .locals 0 .line 133 iput p1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mDropDownGravity:I return-void .end method .method public setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V .locals 0 .line 95 iput-object p1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mOnDismissListener:Landroid/widget/PopupWindow$OnDismissListener; return-void .end method .method public setPresenterCallback(Landroidx/appcompat/view/menu/MenuPresenter$Callback;)V .locals 1 .line 331 iput-object p1, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPresenterCallback:Landroidx/appcompat/view/menu/MenuPresenter$Callback; .line 332 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mPopup:Landroidx/appcompat/view/menu/MenuPopup; if-eqz v0, :cond_0 .line 333 invoke-virtual {v0, p1}, Landroidx/appcompat/view/menu/MenuPopup;->setCallback(Landroidx/appcompat/view/menu/MenuPresenter$Callback;)V :cond_0 return-void .end method .method public show()V .locals 2 .line 144 invoke-virtual {p0}, Landroidx/appcompat/view/menu/MenuPopupHelper;->tryShow()Z move-result v0 if-eqz v0, :cond_0 return-void .line 145 :cond_0 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "MenuPopupHelper cannot be used without an anchor" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method .method public show(II)V .locals 0 .line 150 invoke-virtual {p0, p1, p2}, Landroidx/appcompat/view/menu/MenuPopupHelper;->tryShow(II)Z move-result p1 if-eqz p1, :cond_0 return-void .line 151 :cond_0 new-instance p1, Ljava/lang/IllegalStateException; const-string p2, "MenuPopupHelper cannot be used without an anchor" invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .end method .method public tryShow()Z .locals 3 .line 174 invoke-virtual {p0}, Landroidx/appcompat/view/menu/MenuPopupHelper;->isShowing()Z move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_0 return v1 .line 178 :cond_0 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; const/4 v2, 0x0 if-nez v0, :cond_1 return v2 .line 182 :cond_1 invoke-direct {p0, v2, v2, v2, v2}, Landroidx/appcompat/view/menu/MenuPopupHelper;->showPopup(IIZZ)V return v1 .end method .method public tryShow(II)Z .locals 2 .line 210 invoke-virtual {p0}, Landroidx/appcompat/view/menu/MenuPopupHelper;->isShowing()Z move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_0 return v1 .line 214 :cond_0 iget-object v0, p0, Landroidx/appcompat/view/menu/MenuPopupHelper;->mAnchorView:Landroid/view/View; if-nez v0, :cond_1 const/4 p1, 0x0 return p1 .line 218 :cond_1 invoke-direct {p0, p1, p2, v1, v1}, Landroidx/appcompat/view/menu/MenuPopupHelper;->showPopup(IIZZ)V return v1 .end method