.class Landroidx/appcompat/widget/TooltipCompatHandler; .super Ljava/lang/Object; .source "TooltipCompatHandler.java" # interfaces .implements Landroid/view/View$OnLongClickListener; .implements Landroid/view/View$OnHoverListener; .implements Landroid/view/View$OnAttachStateChangeListener; # static fields .field private static final HOVER_HIDE_TIMEOUT_MS:J = 0x3a98L .field private static final HOVER_HIDE_TIMEOUT_SHORT_MS:J = 0xbb8L .field private static final LONG_CLICK_HIDE_TIMEOUT_MS:J = 0x9c4L .field private static final TAG:Ljava/lang/String; = "TooltipCompatHandler" .field private static sActiveHandler:Landroidx/appcompat/widget/TooltipCompatHandler; .field private static sPendingHandler:Landroidx/appcompat/widget/TooltipCompatHandler; # instance fields .field private final mAnchor:Landroid/view/View; .field private mAnchorX:I .field private mAnchorY:I .field private mFromTouch:Z .field private final mHideRunnable:Ljava/lang/Runnable; .field private final mHoverSlop:I .field private mPopup:Landroidx/appcompat/widget/TooltipPopup; .field private final mShowRunnable:Ljava/lang/Runnable; .field private final mTooltipText:Ljava/lang/CharSequence; # direct methods .method private constructor (Landroid/view/View;Ljava/lang/CharSequence;)V .registers 4 .line 108 invoke-direct {p0}, Ljava/lang/Object;->()V .line 54 new-instance v0, Landroidx/appcompat/widget/TooltipCompatHandler$1; invoke-direct {v0, p0}, Landroidx/appcompat/widget/TooltipCompatHandler$1;->(Landroidx/appcompat/widget/TooltipCompatHandler;)V iput-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mShowRunnable:Ljava/lang/Runnable; .line 60 new-instance v0, Landroidx/appcompat/widget/TooltipCompatHandler$2; invoke-direct {v0, p0}, Landroidx/appcompat/widget/TooltipCompatHandler$2;->(Landroidx/appcompat/widget/TooltipCompatHandler;)V iput-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mHideRunnable:Ljava/lang/Runnable; .line 109 iput-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; .line 110 iput-object p2, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mTooltipText:Ljava/lang/CharSequence; .line 112 invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object p2 invoke-static {p2}, Landroid/view/ViewConfiguration;->get(Landroid/content/Context;)Landroid/view/ViewConfiguration; move-result-object p2 .line 111 invoke-static {p2}, Landroidx/core/view/ViewConfigurationCompat;->getScaledHoverSlop(Landroid/view/ViewConfiguration;)I move-result p2 iput p2, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mHoverSlop:I .line 113 invoke-direct {p0}, Landroidx/appcompat/widget/TooltipCompatHandler;->clearAnchorPos()V .line 115 invoke-virtual {p1, p0}, Landroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V .line 116 invoke-virtual {p1, p0}, Landroid/view/View;->setOnHoverListener(Landroid/view/View$OnHoverListener;)V return-void .end method .method private cancelPendingShow()V .registers 3 .line 224 iget-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; iget-object v1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mShowRunnable:Ljava/lang/Runnable; invoke-virtual {v0, v1}, Landroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z return-void .end method .method private clearAnchorPos()V .registers 2 const v0, 0x7fffffff .line 250 iput v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorX:I .line 251 iput v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorY:I return-void .end method .method private scheduleShow()V .registers 5 .line 220 iget-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; iget-object v1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mShowRunnable:Ljava/lang/Runnable; invoke-static {}, Landroid/view/ViewConfiguration;->getLongPressTimeout()I move-result v2 int-to-long v2, v2 invoke-virtual {v0, v1, v2, v3}, Landroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z return-void .end method .method private static setPendingHandler(Landroidx/appcompat/widget/TooltipCompatHandler;)V .registers 2 .line 210 sget-object v0, Landroidx/appcompat/widget/TooltipCompatHandler;->sPendingHandler:Landroidx/appcompat/widget/TooltipCompatHandler; if-eqz v0, :cond_7 .line 211 invoke-direct {v0}, Landroidx/appcompat/widget/TooltipCompatHandler;->cancelPendingShow()V .line 213 :cond_7 sput-object p0, Landroidx/appcompat/widget/TooltipCompatHandler;->sPendingHandler:Landroidx/appcompat/widget/TooltipCompatHandler; if-eqz p0, :cond_e .line 215 invoke-direct {p0}, Landroidx/appcompat/widget/TooltipCompatHandler;->scheduleShow()V :cond_e return-void .end method .method public static setTooltipText(Landroid/view/View;Ljava/lang/CharSequence;)V .registers 4 .line 93 sget-object v0, Landroidx/appcompat/widget/TooltipCompatHandler;->sPendingHandler:Landroidx/appcompat/widget/TooltipCompatHandler; const/4 v1, 0x0 if-eqz v0, :cond_c iget-object v0, v0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; if-ne v0, p0, :cond_c .line 94 invoke-static {v1}, Landroidx/appcompat/widget/TooltipCompatHandler;->setPendingHandler(Landroidx/appcompat/widget/TooltipCompatHandler;)V .line 96 :cond_c invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 if-eqz v0, :cond_28 .line 97 sget-object p1, Landroidx/appcompat/widget/TooltipCompatHandler;->sActiveHandler:Landroidx/appcompat/widget/TooltipCompatHandler; if-eqz p1, :cond_1d iget-object v0, p1, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; if-ne v0, p0, :cond_1d .line 98 invoke-virtual {p1}, Landroidx/appcompat/widget/TooltipCompatHandler;->hide()V .line 100 :cond_1d invoke-virtual {p0, v1}, Landroid/view/View;->setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V const/4 p1, 0x0 .line 101 invoke-virtual {p0, p1}, Landroid/view/View;->setLongClickable(Z)V .line 102 invoke-virtual {p0, v1}, Landroid/view/View;->setOnHoverListener(Landroid/view/View$OnHoverListener;)V goto :goto_2d .line 104 :cond_28 new-instance v0, Landroidx/appcompat/widget/TooltipCompatHandler; invoke-direct {v0, p0, p1}, Landroidx/appcompat/widget/TooltipCompatHandler;->(Landroid/view/View;Ljava/lang/CharSequence;)V :goto_2d return-void .end method .method private updateAnchorPos(Landroid/view/MotionEvent;)Z .registers 5 .line 235 invoke-virtual {p1}, Landroid/view/MotionEvent;->getX()F move-result v0 float-to-int v0, v0 .line 236 invoke-virtual {p1}, Landroid/view/MotionEvent;->getY()F move-result p1 float-to-int p1, p1 .line 237 iget v1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorX:I sub-int v1, v0, v1 invoke-static {v1}, Ljava/lang/Math;->abs(I)I move-result v1 iget v2, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mHoverSlop:I if-gt v1, v2, :cond_24 iget v1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorY:I sub-int v1, p1, v1 .line 238 invoke-static {v1}, Ljava/lang/Math;->abs(I)I move-result v1 iget v2, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mHoverSlop:I if-gt v1, v2, :cond_24 const/4 p1, 0x0 return p1 .line 241 :cond_24 iput v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorX:I .line 242 iput p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorY:I const/4 p1, 0x1 return p1 .end method # virtual methods .method hide()V .registers 4 .line 192 sget-object v0, Landroidx/appcompat/widget/TooltipCompatHandler;->sActiveHandler:Landroidx/appcompat/widget/TooltipCompatHandler; const/4 v1, 0x0 if-ne v0, p0, :cond_20 .line 193 sput-object v1, Landroidx/appcompat/widget/TooltipCompatHandler;->sActiveHandler:Landroidx/appcompat/widget/TooltipCompatHandler; .line 194 iget-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mPopup:Landroidx/appcompat/widget/TooltipPopup; if-eqz v0, :cond_19 .line 195 invoke-virtual {v0}, Landroidx/appcompat/widget/TooltipPopup;->hide()V .line 196 iput-object v1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mPopup:Landroidx/appcompat/widget/TooltipPopup; .line 197 invoke-direct {p0}, Landroidx/appcompat/widget/TooltipCompatHandler;->clearAnchorPos()V .line 198 iget-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; invoke-virtual {v0, p0}, Landroid/view/View;->removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V goto :goto_20 .line 200 :cond_19 const-string v0, "TooltipCompatHandler" const-string v2, "sActiveHandler.mPopup == null" invoke-static {v0, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I .line 203 :cond_20 :goto_20 sget-object v0, Landroidx/appcompat/widget/TooltipCompatHandler;->sPendingHandler:Landroidx/appcompat/widget/TooltipCompatHandler; if-ne v0, p0, :cond_27 .line 204 invoke-static {v1}, Landroidx/appcompat/widget/TooltipCompatHandler;->setPendingHandler(Landroidx/appcompat/widget/TooltipCompatHandler;)V .line 206 :cond_27 iget-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; iget-object v1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mHideRunnable:Ljava/lang/Runnable; invoke-virtual {v0, v1}, Landroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z return-void .end method .method public onHover(Landroid/view/View;Landroid/view/MotionEvent;)Z .registers 5 .line 129 iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mPopup:Landroidx/appcompat/widget/TooltipPopup; const/4 v0, 0x0 if-eqz p1, :cond_a iget-boolean p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mFromTouch:Z if-eqz p1, :cond_a return v0 .line 132 :cond_a iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; .line 133 invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object p1 const-string v1, "accessibility" invoke-virtual {p1, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroid/view/accessibility/AccessibilityManager; .line 134 invoke-virtual {p1}, Landroid/view/accessibility/AccessibilityManager;->isEnabled()Z move-result v1 if-eqz v1, :cond_25 invoke-virtual {p1}, Landroid/view/accessibility/AccessibilityManager;->isTouchExplorationEnabled()Z move-result p1 if-eqz p1, :cond_25 return v0 .line 137 :cond_25 invoke-virtual {p2}, Landroid/view/MotionEvent;->getAction()I move-result p1 const/4 v1, 0x7 if-eq p1, v1, :cond_38 const/16 p2, 0xa if-eq p1, p2, :cond_31 goto :goto_4d .line 144 :cond_31 invoke-direct {p0}, Landroidx/appcompat/widget/TooltipCompatHandler;->clearAnchorPos()V .line 145 invoke-virtual {p0}, Landroidx/appcompat/widget/TooltipCompatHandler;->hide()V goto :goto_4d .line 139 :cond_38 iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; invoke-virtual {p1}, Landroid/view/View;->isEnabled()Z move-result p1 if-eqz p1, :cond_4d iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mPopup:Landroidx/appcompat/widget/TooltipPopup; if-nez p1, :cond_4d invoke-direct {p0, p2}, Landroidx/appcompat/widget/TooltipCompatHandler;->updateAnchorPos(Landroid/view/MotionEvent;)Z move-result p1 if-eqz p1, :cond_4d .line 140 invoke-static {p0}, Landroidx/appcompat/widget/TooltipCompatHandler;->setPendingHandler(Landroidx/appcompat/widget/TooltipCompatHandler;)V :cond_4d :goto_4d return v0 .end method .method public onLongClick(Landroid/view/View;)Z .registers 3 .line 121 invoke-virtual {p1}, Landroid/view/View;->getWidth()I move-result v0 div-int/lit8 v0, v0, 0x2 iput v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorX:I .line 122 invoke-virtual {p1}, Landroid/view/View;->getHeight()I move-result p1 div-int/lit8 p1, p1, 0x2 iput p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorY:I const/4 p1, 0x1 .line 123 invoke-virtual {p0, p1}, Landroidx/appcompat/widget/TooltipCompatHandler;->show(Z)V return p1 .end method .method public onViewAttachedToWindow(Landroid/view/View;)V .registers 2 return-void .end method .method public onViewDetachedFromWindow(Landroid/view/View;)V .registers 2 .line 159 invoke-virtual {p0}, Landroidx/appcompat/widget/TooltipCompatHandler;->hide()V return-void .end method .method show(Z)V .registers 9 .line 163 iget-object v0, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; invoke-static {v0}, Landroidx/core/view/ViewCompat;->isAttachedToWindow(Landroid/view/View;)Z move-result v0 if-nez v0, :cond_9 return-void :cond_9 const/4 v0, 0x0 .line 166 invoke-static {v0}, Landroidx/appcompat/widget/TooltipCompatHandler;->setPendingHandler(Landroidx/appcompat/widget/TooltipCompatHandler;)V .line 167 sget-object v0, Landroidx/appcompat/widget/TooltipCompatHandler;->sActiveHandler:Landroidx/appcompat/widget/TooltipCompatHandler; if-eqz v0, :cond_14 .line 168 invoke-virtual {v0}, Landroidx/appcompat/widget/TooltipCompatHandler;->hide()V .line 170 :cond_14 sput-object p0, Landroidx/appcompat/widget/TooltipCompatHandler;->sActiveHandler:Landroidx/appcompat/widget/TooltipCompatHandler; .line 172 iput-boolean p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mFromTouch:Z .line 173 new-instance v1, Landroidx/appcompat/widget/TooltipPopup; iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context; move-result-object p1 invoke-direct {v1, p1}, Landroidx/appcompat/widget/TooltipPopup;->(Landroid/content/Context;)V iput-object v1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mPopup:Landroidx/appcompat/widget/TooltipPopup; .line 174 iget-object v2, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; iget v3, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorX:I iget v4, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchorY:I iget-boolean v5, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mFromTouch:Z iget-object v6, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mTooltipText:Ljava/lang/CharSequence; invoke-virtual/range {v1 .. v6}, Landroidx/appcompat/widget/TooltipPopup;->show(Landroid/view/View;IIZLjava/lang/CharSequence;)V .line 176 iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; invoke-virtual {p1, p0}, Landroid/view/View;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V .line 179 iget-boolean p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mFromTouch:Z if-eqz p1, :cond_3e const-wide/16 v0, 0x9c4 goto :goto_59 .line 181 :cond_3e iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; invoke-static {p1}, Landroidx/core/view/ViewCompat;->getWindowSystemUiVisibility(Landroid/view/View;)I move-result p1 const/4 v0, 0x1 and-int/2addr p1, v0 if-ne p1, v0, :cond_50 .line 183 invoke-static {}, Landroid/view/ViewConfiguration;->getLongPressTimeout()I move-result p1 int-to-long v0, p1 const-wide/16 v2, 0xbb8 goto :goto_57 .line 185 :cond_50 invoke-static {}, Landroid/view/ViewConfiguration;->getLongPressTimeout()I move-result p1 int-to-long v0, p1 const-wide/16 v2, 0x3a98 :goto_57 sub-long v0, v2, v0 .line 187 :goto_59 iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; iget-object v2, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mHideRunnable:Ljava/lang/Runnable; invoke-virtual {p1, v2}, Landroid/view/View;->removeCallbacks(Ljava/lang/Runnable;)Z .line 188 iget-object p1, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mAnchor:Landroid/view/View; iget-object v2, p0, Landroidx/appcompat/widget/TooltipCompatHandler;->mHideRunnable:Ljava/lang/Runnable; invoke-virtual {p1, v2, v0, v1}, Landroid/view/View;->postDelayed(Ljava/lang/Runnable;J)Z return-void .end method