.class public Lcom/common/view/selectabletext/TextLayoutUtil; .super Ljava/lang/Object; .source "TextLayoutUtil.java" # direct methods .method public constructor ()V .registers 1 .line 8 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static dp2px(Landroid/content/Context;F)I .registers 2 .line 105 invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p0 invoke-virtual {p0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; move-result-object p0 iget p0, p0, Landroid/util/DisplayMetrics;->density:F mul-float/2addr p1, p0 const/high16 p0, 0x3f000000 # 0.5f add-float/2addr p1, p0 float-to-int p0, p1 return p0 .end method .method public static getHysteresisOffset(Landroid/widget/TextView;III)I .registers 10 .line 33 invoke-virtual {p0}, Landroid/widget/TextView;->getLayout()Landroid/text/Layout; move-result-object v0 if-nez v0, :cond_8 const/4 p0, -0x1 return p0 .line 36 :cond_8 invoke-virtual {v0, p2}, Landroid/text/Layout;->getLineForVertical(I)I move-result v1 .line 51 invoke-static {v0, p3}, Lcom/common/view/selectabletext/TextLayoutUtil;->isEndOfLineOffset(Landroid/text/Layout;I)Z move-result v2 if-eqz v2, :cond_27 add-int/lit8 v2, p3, -0x1 .line 54 invoke-virtual {v0, v2}, Landroid/text/Layout;->getPrimaryHorizontal(I)F move-result v2 float-to-int v2, v2 .line 55 invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineRight(I)F move-result v3 float-to-int v3, v3 sub-int v2, v3, v2 .line 56 div-int/lit8 v2, v2, 0x2 sub-int/2addr v3, v2 if-le p1, v3, :cond_27 add-int/lit8 p3, p3, -0x1 .line 63 :cond_27 invoke-virtual {v0, p3}, Landroid/text/Layout;->getLineForOffset(I)I move-result p3 .line 64 invoke-virtual {v0, p3}, Landroid/text/Layout;->getLineTop(I)I move-result v2 .line 65 invoke-virtual {v0, p3}, Landroid/text/Layout;->getLineBottom(I)I move-result v3 sub-int v4, v3, v2 .line 66 div-int/lit8 v4, v4, 0x2 add-int/lit8 v5, p3, 0x1 if-ne v1, v5, :cond_3f sub-int v3, p2, v3 if-lt v3, v4, :cond_46 :cond_3f add-int/lit8 v3, p3, -0x1 if-ne v1, v3, :cond_47 sub-int/2addr v2, p2 if-ge v2, v4, :cond_47 :cond_46 move v1, p3 :cond_47 int-to-float p2, p1 .line 76 invoke-virtual {v0, v1, p2}, Landroid/text/Layout;->getOffsetForHorizontal(IF)I move-result p2 .line 85 invoke-virtual {p0}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence; move-result-object p0 invoke-interface {p0}, Ljava/lang/CharSequence;->length()I move-result p0 add-int/lit8 p0, p0, -0x1 if-ge p2, p0, :cond_72 add-int/lit8 p0, p2, 0x1 .line 86 invoke-static {v0, p0}, Lcom/common/view/selectabletext/TextLayoutUtil;->isEndOfLineOffset(Landroid/text/Layout;I)Z move-result p3 if-eqz p3, :cond_72 .line 87 invoke-virtual {v0, p2}, Landroid/text/Layout;->getPrimaryHorizontal(I)F move-result p3 float-to-int p3, p3 .line 88 invoke-virtual {v0, v1}, Landroid/text/Layout;->getLineRight(I)F move-result v0 float-to-int v0, v0 sub-int p3, v0, p3 .line 89 div-int/lit8 p3, p3, 0x2 sub-int/2addr v0, p3 if-le p1, v0, :cond_72 move p2, p0 :cond_72 return p2 .end method .method public static getPreciseOffset(Landroid/widget/TextView;II)I .registers 4 .line 15 invoke-virtual {p0}, Landroid/widget/TextView;->getLayout()Landroid/text/Layout; move-result-object p0 if-eqz p0, :cond_1c .line 17 invoke-virtual {p0, p2}, Landroid/text/Layout;->getLineForVertical(I)I move-result p2 int-to-float v0, p1 .line 18 invoke-virtual {p0, p2, v0}, Landroid/text/Layout;->getOffsetForHorizontal(IF)I move-result p2 .line 20 invoke-virtual {p0, p2}, Landroid/text/Layout;->getPrimaryHorizontal(I)F move-result v0 float-to-int v0, v0 if-le v0, p1, :cond_1b .line 23 invoke-virtual {p0, p2}, Landroid/text/Layout;->getOffsetToLeftOf(I)I move-result p0 return p0 :cond_1b return p2 :cond_1c const/4 p0, -0x1 return p0 .end method .method public static getScreenWidth(Landroid/content/Context;)I .registers 1 .line 11 invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p0 invoke-virtual {p0}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; move-result-object p0 iget p0, p0, Landroid/util/DisplayMetrics;->widthPixels:I return p0 .end method .method private static isEndOfLineOffset(Landroid/text/Layout;I)Z .registers 4 if-lez p1, :cond_10 .line 101 invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineForOffset(I)I move-result v0 const/4 v1, 0x1 sub-int/2addr p1, v1 invoke-virtual {p0, p1}, Landroid/text/Layout;->getLineForOffset(I)I move-result p0 add-int/2addr p0, v1 if-ne v0, p0, :cond_10 goto :goto_11 :cond_10 const/4 v1, 0x0 :goto_11 return v1 .end method