StaticLayoutEx.smali
.class public Lim/tpelyyftgw/ui/components/StaticLayoutEx;
.super Ljava/lang/Object;
.source "StaticLayoutEx.java"
# static fields
.field private static final TEXT_DIRS_CLASS:Ljava/lang/String; = "android.text.TextDirectionHeuristics"
.field private static final TEXT_DIR_CLASS:Ljava/lang/String; = "android.text.TextDirectionHeuristic"
.field private static final TEXT_DIR_FIRSTSTRONG_LTR:Ljava/lang/String; = "FIRSTSTRONG_LTR"
.field public static alignments:[Landroid/text/Layout$Alignment;
.field private static initialized:Z
.field private static sConstructor:Ljava/lang/reflect/Constructor;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/reflect/Constructor<",
"Landroid/text/StaticLayout;",
">;"
}
.end annotation
.end field
.field private static sConstructorArgs:[Ljava/lang/Object;
.field private static sTextDirection:Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 28
invoke-static {}, Landroid/text/Layout$Alignment;->values()[Landroid/text/Layout$Alignment;
move-result-object v0
sput-object v0, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->alignments:[Landroid/text/Layout$Alignment;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 17
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static ALIGN_LEFT()Landroid/text/Layout$Alignment;
.registers 3
.line 33
sget-object v0, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->alignments:[Landroid/text/Layout$Alignment;
array-length v1, v0
const/4 v2, 0x5
if-lt v1, v2, :cond_a
const/4 v1, 0x3
aget-object v0, v0, v1
goto :goto_c
:cond_a
sget-object v0, Landroid/text/Layout$Alignment;->ALIGN_NORMAL:Landroid/text/Layout$Alignment;
:goto_c
return-object v0
.end method
.method public static ALIGN_RIGHT()Landroid/text/Layout$Alignment;
.registers 3
.line 30
sget-object v0, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->alignments:[Landroid/text/Layout$Alignment;
array-length v1, v0
const/4 v2, 0x5
if-lt v1, v2, :cond_a
const/4 v1, 0x4
aget-object v0, v0, v1
goto :goto_c
:cond_a
sget-object v0, Landroid/text/Layout$Alignment;->ALIGN_OPPOSITE:Landroid/text/Layout$Alignment;
:goto_c
return-object v0
.end method
.method public static createStaticLayout(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
.registers 33
.param p0, "source" # Ljava/lang/CharSequence;
.param p1, "bufstart" # I
.param p2, "bufend" # I
.param p3, "paint" # Landroid/text/TextPaint;
.param p4, "outerWidth" # I
.param p5, "align" # Landroid/text/Layout$Alignment;
.param p6, "spacingMult" # F
.param p7, "spacingAdd" # F
.param p8, "includePad" # Z
.param p9, "ellipsize" # Landroid/text/TextUtils$TruncateAt;
.param p10, "ellipsisWidth" # I
.param p11, "maxLines" # I
.param p12, "canContainUrl" # Z
move-object/from16 v9, p0
move-object/from16 v8, p3
move/from16 v7, p4
move-object/from16 v6, p5
move/from16 v5, p6
move/from16 v4, p7
move/from16 v3, p8
move/from16 v2, p10
move/from16 v1, p11
.line 211
const/4 v15, 0x0
const/4 v0, 0x1
if-ne v1, v0, :cond_35
.line 212
int-to-float v0, v2
:try_start_17
sget-object v10, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt;
invoke-static {v9, v8, v0, v10}, Landroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;)Ljava/lang/CharSequence;
move-result-object v11
.line 213
.local v11, "text":Ljava/lang/CharSequence;
new-instance v0, Landroid/text/StaticLayout;
const/4 v12, 0x0
invoke-interface {v11}, Ljava/lang/CharSequence;->length()I
move-result v13
move-object v10, v0
move-object/from16 v14, p3
move/from16 v15, p4
move-object/from16 v16, p5
move/from16 v17, p6
move/from16 v18, p7
move/from16 v19, p8
invoke-direct/range {v10 .. v19}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
return-object v0
.line 216
.end local v11 # "text":Ljava/lang/CharSequence;
:cond_35
sget v10, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v11, 0x17
const/4 v12, 0x0
if-lt v10, v11, :cond_6e
.line 217
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->length()I
move-result v10
invoke-static {v9, v12, v10, v8, v7}, Landroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 218
invoke-virtual {v10, v6}, Landroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 219
invoke-virtual {v10, v4, v5}, Landroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 220
invoke-virtual {v10, v3}, Landroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 221
const/4 v13, 0x0
invoke-virtual {v10, v13}, Landroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 222
invoke-virtual {v10, v2}, Landroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 223
invoke-virtual {v10, v1}, Landroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 224
invoke-virtual {v10, v0}, Landroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 225
invoke-virtual {v10, v12}, Landroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 226
.local v10, "builder":Landroid/text/StaticLayout$Builder;
invoke-virtual {v10}, Landroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
move-result-object v14
move-object v10, v14
.line 227
.local v10, "layout":Landroid/text/StaticLayout;
move v14, v1
move v15, v2
move v13, v3
goto :goto_88
.line 228
.end local v10 # "layout":Landroid/text/StaticLayout;
:cond_6e
const/4 v13, 0x0
new-instance v10, Landroid/text/StaticLayout;
:try_end_71
.catch Ljava/lang/Exception; {:try_start_17 .. :try_end_71} :catch_153
move v14, v1
move-object v1, v10
move v15, v2
move-object/from16 v2, p0
move v13, v3
move-object/from16 v3, p3
move/from16 v4, p4
move-object/from16 v5, p5
move/from16 v6, p6
move/from16 v7, p7
move/from16 v8, p8
:try_start_83
invoke-direct/range {v1 .. v8}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
move-object v1, v10
move-object v10, v1
.line 230
.restart local v10 # "layout":Landroid/text/StaticLayout;
:goto_88
invoke-virtual {v10}, Landroid/text/StaticLayout;->getLineCount()I
move-result v1
if-gt v1, v14, :cond_8f
.line 231
return-object v10
.line 235
:cond_8f
add-int/lit8 v1, v14, -0x1
invoke-virtual {v10, v1}, Landroid/text/StaticLayout;->getLineLeft(I)F
move-result v1
move v8, v1
.line 236
.local v8, "left":F
add-int/lit8 v1, v14, -0x1
invoke-virtual {v10, v1}, Landroid/text/StaticLayout;->getLineWidth(I)F
move-result v1
move v7, v1
.line 237
.local v7, "lineWidth":F
const/4 v1, 0x0
cmpl-float v1, v8, v1
if-eqz v1, :cond_a9
.line 238
add-int/lit8 v1, v14, -0x1
invoke-virtual {v10, v1, v8}, Landroid/text/StaticLayout;->getOffsetForHorizontal(IF)I
move-result v1
.local v1, "off":I
goto :goto_af
.line 240
.end local v1 # "off":I
:cond_a9
add-int/lit8 v1, v14, -0x1
invoke-virtual {v10, v1, v7}, Landroid/text/StaticLayout;->getOffsetForHorizontal(IF)I
move-result v1
.line 242
.restart local v1 # "off":I
:goto_af
const/high16 v2, 0x41200000 # 10.0f
invoke-static {v2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v2
sub-int v2, v15, v2
int-to-float v2, v2
cmpg-float v2, v7, v2
if-gez v2, :cond_c1
.line 243
add-int/lit8 v1, v1, 0x3
move/from16 v16, v1
goto :goto_c3
.line 242
:cond_c1
move/from16 v16, v1
.line 245
.end local v1 # "off":I
.local v16, "off":I
:goto_c3
new-instance v1, Landroid/text/SpannableStringBuilder;
add-int/lit8 v2, v16, -0x3
invoke-static {v12, v2}, Ljava/lang/Math;->max(II)I
move-result v2
invoke-interface {v9, v12, v2}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
move-result-object v2
invoke-direct {v1, v2}, Landroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V
move-object v6, v1
.line 246
.local v6, "stringBuilder":Landroid/text/SpannableStringBuilder;
const-string v1, "\u2026"
invoke-virtual {v6, v1}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
.line 247
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_da
.catch Ljava/lang/Exception; {:try_start_83 .. :try_end_da} :catch_14f
if-lt v1, v11, :cond_12a
.line 248
:try_start_dc
invoke-virtual {v6}, Landroid/text/SpannableStringBuilder;->length()I
move-result v1
:try_end_e0
.catch Ljava/lang/Exception; {:try_start_dc .. :try_end_e0} :catch_11e
move-object/from16 v11, p3
move/from16 v5, p4
:try_start_e4
invoke-static {v6, v12, v1, v11, v5}, Landroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
move-result-object v1
:try_end_e8
.catch Ljava/lang/Exception; {:try_start_e4 .. :try_end_e8} :catch_11c
.line 249
move-object/from16 v4, p5
:try_start_ea
invoke-virtual {v1, v4}, Landroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
move-result-object v1
:try_end_ee
.catch Ljava/lang/Exception; {:try_start_ea .. :try_end_ee} :catch_11a
.line 250
move/from16 v3, p6
move/from16 v2, p7
:try_start_f2
invoke-virtual {v1, v2, v3}, Landroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
move-result-object v1
.line 251
invoke-virtual {v1, v13}, Landroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
move-result-object v1
sget-object v0, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt;
.line 252
invoke-virtual {v1, v0}, Landroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 253
invoke-virtual {v0, v15}, Landroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 254
invoke-virtual {v0, v14}, Landroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
if-eqz p12, :cond_10c
const/4 v1, 0x1
goto :goto_10d
:cond_10c
const/4 v1, 0x0
.line 255
:goto_10d
invoke-virtual {v0, v1}, Landroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 256
invoke-virtual {v0, v12}, Landroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 257
.local v0, "builder":Landroid/text/StaticLayout$Builder;
invoke-virtual {v0}, Landroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
move-result-object v1
return-object v1
.line 263
.end local v0 # "builder":Landroid/text/StaticLayout$Builder;
.end local v6 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.end local v7 # "lineWidth":F
.end local v8 # "left":F
.end local v10 # "layout":Landroid/text/StaticLayout;
.end local v16 # "off":I
:catch_11a
move-exception v0
goto :goto_125
:catch_11c
move-exception v0
goto :goto_123
:catch_11e
move-exception v0
move-object/from16 v11, p3
move/from16 v5, p4
:goto_123
move-object/from16 v4, p5
:goto_125
move/from16 v3, p6
move/from16 v2, p7
goto :goto_158
.line 259
.restart local v6 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.restart local v7 # "lineWidth":F
.restart local v8 # "left":F
.restart local v10 # "layout":Landroid/text/StaticLayout;
.restart local v16 # "off":I
:cond_12a
move-object/from16 v11, p3
move/from16 v5, p4
move-object/from16 v4, p5
move/from16 v3, p6
move/from16 v2, p7
new-instance v0, Landroid/text/StaticLayout;
move-object v1, v0
move-object v2, v6
move-object/from16 v3, p3
move/from16 v4, p4
move-object/from16 v5, p5
move-object v12, v6
.end local v6 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.local v12, "stringBuilder":Landroid/text/SpannableStringBuilder;
move/from16 v6, p6
move/from16 v17, v7
.end local v7 # "lineWidth":F
.local v17, "lineWidth":F
move/from16 v7, p7
move/from16 v18, v8
.end local v8 # "left":F
.local v18, "left":F
move/from16 v8, p8
invoke-direct/range {v1 .. v8}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
:try_end_14c
.catch Ljava/lang/Exception; {:try_start_f2 .. :try_end_14c} :catch_14d
return-object v0
.line 263
.end local v10 # "layout":Landroid/text/StaticLayout;
.end local v12 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.end local v16 # "off":I
.end local v17 # "lineWidth":F
.end local v18 # "left":F
:catch_14d
move-exception v0
goto :goto_158
:catch_14f
move-exception v0
move-object/from16 v11, p3
goto :goto_158
:catch_153
move-exception v0
move v14, v1
move v15, v2
move v13, v3
move-object v11, v8
.line 264
.local v0, "e":Ljava/lang/Exception;
:goto_158
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 266
.end local v0 # "e":Ljava/lang/Exception;
const/4 v1, 0x0
return-object v1
.end method
.method public static createStaticLayout(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;II)Landroid/text/StaticLayout;
.registers 23
.param p0, "source" # Ljava/lang/CharSequence;
.param p1, "paint" # Landroid/text/TextPaint;
.param p2, "width" # I
.param p3, "align" # Landroid/text/Layout$Alignment;
.param p4, "spacingmult" # F
.param p5, "spacingadd" # F
.param p6, "includepad" # Z
.param p7, "ellipsize" # Landroid/text/TextUtils$TruncateAt;
.param p8, "ellipsisWidth" # I
.param p9, "maxLines" # I
.line 96
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v2
const/4 v1, 0x0
const/4 v12, 0x1
move-object v0, p0
move-object v3, p1
move v4, p2
move-object/from16 v5, p3
move/from16 v6, p4
move/from16 v7, p5
move/from16 v8, p6
move-object/from16 v9, p7
move/from16 v10, p8
move/from16 v11, p9
invoke-static/range {v0 .. v12}, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->createStaticLayout(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
move-result-object v0
return-object v0
.end method
.method public static createStaticLayout(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
.registers 24
.param p0, "source" # Ljava/lang/CharSequence;
.param p1, "paint" # Landroid/text/TextPaint;
.param p2, "width" # I
.param p3, "align" # Landroid/text/Layout$Alignment;
.param p4, "spacingmult" # F
.param p5, "spacingadd" # F
.param p6, "includepad" # Z
.param p7, "ellipsize" # Landroid/text/TextUtils$TruncateAt;
.param p8, "ellipsisWidth" # I
.param p9, "maxLines" # I
.param p10, "canContainUrl" # Z
.line 100
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v2
const/4 v1, 0x0
move-object v0, p0
move-object v3, p1
move v4, p2
move-object/from16 v5, p3
move/from16 v6, p4
move/from16 v7, p5
move/from16 v8, p6
move-object/from16 v9, p7
move/from16 v10, p8
move/from16 v11, p9
move/from16 v12, p10
invoke-static/range {v0 .. v12}, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->createStaticLayout(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
move-result-object v0
return-object v0
.end method
.method public static createStaticLayout2(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;II)Landroid/text/StaticLayout;
.registers 27
.param p0, "source" # Ljava/lang/CharSequence;
.param p1, "paint" # Landroid/text/TextPaint;
.param p2, "width" # I
.param p3, "align" # Landroid/text/Layout$Alignment;
.param p4, "spacingmult" # F
.param p5, "spacingadd" # F
.param p6, "includepad" # Z
.param p7, "ellipsize" # Landroid/text/TextUtils$TruncateAt;
.param p8, "ellipsisWidth" # I
.param p9, "maxLines" # I
.line 79
move/from16 v13, p8
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x17
if-lt v0, v1, :cond_47
.line 80
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->length()I
move-result v0
const/4 v1, 0x0
move-object/from16 v14, p0
move-object/from16 v15, p1
invoke-static {v14, v1, v0, v15, v13}, Landroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 81
move-object/from16 v12, p3
invoke-virtual {v0, v12}, Landroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 82
move/from16 v11, p4
move/from16 v10, p5
invoke-virtual {v0, v10, v11}, Landroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 83
move/from16 v9, p6
invoke-virtual {v0, v9}, Landroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
move-result-object v0
sget-object v2, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt;
.line 84
invoke-virtual {v0, v2}, Landroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 85
invoke-virtual {v0, v13}, Landroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 86
move/from16 v8, p9
invoke-virtual {v0, v8}, Landroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
const/4 v2, 0x1
.line 87
invoke-virtual {v0, v2}, Landroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 88
invoke-virtual {v0, v1}, Landroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 89
.local v0, "builder":Landroid/text/StaticLayout$Builder;
invoke-virtual {v0}, Landroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
move-result-object v1
return-object v1
.line 91
.end local v0 # "builder":Landroid/text/StaticLayout$Builder;
:cond_47
move-object/from16 v14, p0
move-object/from16 v15, p1
move-object/from16 v12, p3
move/from16 v11, p4
move/from16 v10, p5
move/from16 v9, p6
move/from16 v8, p9
const/4 v1, 0x0
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->length()I
move-result v2
const/16 v16, 0x1
move-object/from16 v0, p0
move-object/from16 v3, p1
move/from16 v4, p2
move-object/from16 v5, p3
move/from16 v6, p4
move/from16 v7, p5
move/from16 v8, p6
move-object/from16 v9, p7
move/from16 v10, p8
move/from16 v11, p9
move/from16 v12, v16
invoke-static/range {v0 .. v12}, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->createStaticLayout(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
move-result-object v0
return-object v0
.end method
.method public static createStaticLayoutMiddle(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
.registers 33
.param p0, "source" # Ljava/lang/CharSequence;
.param p1, "bufstart" # I
.param p2, "bufend" # I
.param p3, "paint" # Landroid/text/TextPaint;
.param p4, "outerWidth" # I
.param p5, "align" # Landroid/text/Layout$Alignment;
.param p6, "spacingMult" # F
.param p7, "spacingAdd" # F
.param p8, "includePad" # Z
.param p9, "ellipsize" # Landroid/text/TextUtils$TruncateAt;
.param p10, "ellipsisWidth" # I
.param p11, "maxLines" # I
.param p12, "canContainUrl" # Z
move-object/from16 v9, p0
move-object/from16 v8, p3
move/from16 v7, p4
move-object/from16 v6, p5
move/from16 v5, p6
move/from16 v4, p7
move/from16 v3, p8
move-object/from16 v2, p9
move/from16 v1, p10
move/from16 v15, p11
.line 130
const/4 v0, 0x1
if-ne v15, v0, :cond_34
.line 131
int-to-float v0, v1
:try_start_18
invoke-static {v9, v8, v0, v2}, Landroid/text/TextUtils;->ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;)Ljava/lang/CharSequence;
move-result-object v11
.line 132
.local v11, "text":Ljava/lang/CharSequence;
new-instance v0, Landroid/text/StaticLayout;
const/4 v12, 0x0
invoke-interface {v11}, Ljava/lang/CharSequence;->length()I
move-result v13
move-object v10, v0
move-object/from16 v14, p3
move/from16 v15, p4
move-object/from16 v16, p5
move/from16 v17, p6
move/from16 v18, p7
move/from16 v19, p8
invoke-direct/range {v10 .. v19}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
return-object v0
.line 135
.end local v11 # "text":Ljava/lang/CharSequence;
:cond_34
sget v10, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v11, 0x17
const/4 v12, 0x0
if-lt v10, v11, :cond_6d
.line 136
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->length()I
move-result v10
invoke-static {v9, v12, v10, v8, v7}, Landroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 137
invoke-virtual {v10, v6}, Landroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 138
invoke-virtual {v10, v4, v5}, Landroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 139
invoke-virtual {v10, v3}, Landroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 140
invoke-virtual {v10, v2}, Landroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 141
invoke-virtual {v10, v1}, Landroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
:try_end_57
.catch Ljava/lang/Exception; {:try_start_18 .. :try_end_57} :catch_15b
.line 142
move/from16 v13, p11
:try_start_59
invoke-virtual {v10, v13}, Landroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 143
invoke-virtual {v10, v0}, Landroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 144
invoke-virtual {v10, v12}, Landroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
move-result-object v10
.line 145
.local v10, "builder":Landroid/text/StaticLayout$Builder;
invoke-virtual {v10}, Landroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
move-result-object v14
move-object v10, v14
.line 146
.local v10, "layout":Landroid/text/StaticLayout;
move v14, v1
move-object v15, v2
goto :goto_87
.line 147
.end local v10 # "layout":Landroid/text/StaticLayout;
:cond_6d
move/from16 v13, p11
new-instance v10, Landroid/text/StaticLayout;
:try_end_71
.catch Ljava/lang/Exception; {:try_start_59 .. :try_end_71} :catch_159
move v14, v1
move-object v1, v10
move-object v15, v2
move-object/from16 v2, p0
move-object/from16 v3, p3
move/from16 v4, p4
move-object/from16 v5, p5
move/from16 v6, p6
move/from16 v7, p7
move/from16 v8, p8
:try_start_82
invoke-direct/range {v1 .. v8}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
move-object v1, v10
move-object v10, v1
.line 149
.restart local v10 # "layout":Landroid/text/StaticLayout;
:goto_87
invoke-virtual {v10}, Landroid/text/StaticLayout;->getLineCount()I
move-result v1
if-gt v1, v13, :cond_8e
.line 150
return-object v10
.line 154
:cond_8e
add-int/lit8 v1, v13, -0x1
invoke-virtual {v10, v1}, Landroid/text/StaticLayout;->getLineLeft(I)F
move-result v1
move v8, v1
.line 155
.local v8, "left":F
add-int/lit8 v1, v13, -0x1
invoke-virtual {v10, v1}, Landroid/text/StaticLayout;->getLineWidth(I)F
move-result v1
move v7, v1
.line 156
.local v7, "lineWidth":F
const/4 v1, 0x0
cmpl-float v1, v8, v1
if-eqz v1, :cond_a8
.line 157
add-int/lit8 v1, v13, -0x1
invoke-virtual {v10, v1, v8}, Landroid/text/StaticLayout;->getOffsetForHorizontal(IF)I
move-result v1
.local v1, "off":I
goto :goto_ae
.line 159
.end local v1 # "off":I
:cond_a8
add-int/lit8 v1, v13, -0x1
invoke-virtual {v10, v1, v7}, Landroid/text/StaticLayout;->getOffsetForHorizontal(IF)I
move-result v1
.line 161
.restart local v1 # "off":I
:goto_ae
const/high16 v2, 0x41200000 # 10.0f
invoke-static {v2}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v2
sub-int v2, v14, v2
int-to-float v2, v2
cmpg-float v2, v7, v2
if-gez v2, :cond_c0
.line 162
add-int/lit8 v1, v1, 0x3
move/from16 v16, v1
goto :goto_c2
.line 161
:cond_c0
move/from16 v16, v1
.line 164
.end local v1 # "off":I
.local v16, "off":I
:goto_c2
new-instance v1, Landroid/text/SpannableStringBuilder;
add-int/lit8 v2, v16, -0x3
invoke-static {v12, v2}, Ljava/lang/Math;->max(II)I
move-result v2
invoke-interface {v9, v12, v2}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
move-result-object v2
invoke-direct {v1, v2}, Landroid/text/SpannableStringBuilder;-><init>(Ljava/lang/CharSequence;)V
move-object v6, v1
.line 165
.local v6, "stringBuilder":Landroid/text/SpannableStringBuilder;
const-string v1, "\u2026"
invoke-virtual {v6, v1}, Landroid/text/SpannableStringBuilder;->append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;
.line 166
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_d9
.catch Ljava/lang/Exception; {:try_start_82 .. :try_end_d9} :catch_153
if-lt v1, v11, :cond_12b
.line 167
:try_start_db
invoke-virtual {v6}, Landroid/text/SpannableStringBuilder;->length()I
move-result v1
:try_end_df
.catch Ljava/lang/Exception; {:try_start_db .. :try_end_df} :catch_11f
move-object/from16 v11, p3
move/from16 v5, p4
:try_start_e3
invoke-static {v6, v12, v1, v11, v5}, Landroid/text/StaticLayout$Builder;->obtain(Ljava/lang/CharSequence;IILandroid/text/TextPaint;I)Landroid/text/StaticLayout$Builder;
move-result-object v1
:try_end_e7
.catch Ljava/lang/Exception; {:try_start_e3 .. :try_end_e7} :catch_11d
.line 168
move-object/from16 v4, p5
:try_start_e9
invoke-virtual {v1, v4}, Landroid/text/StaticLayout$Builder;->setAlignment(Landroid/text/Layout$Alignment;)Landroid/text/StaticLayout$Builder;
move-result-object v1
:try_end_ed
.catch Ljava/lang/Exception; {:try_start_e9 .. :try_end_ed} :catch_11b
.line 169
move/from16 v3, p6
move/from16 v2, p7
:try_start_f1
invoke-virtual {v1, v2, v3}, Landroid/text/StaticLayout$Builder;->setLineSpacing(FF)Landroid/text/StaticLayout$Builder;
move-result-object v1
:try_end_f5
.catch Ljava/lang/Exception; {:try_start_f1 .. :try_end_f5} :catch_119
.line 170
move/from16 v12, p8
:try_start_f7
invoke-virtual {v1, v12}, Landroid/text/StaticLayout$Builder;->setIncludePad(Z)Landroid/text/StaticLayout$Builder;
move-result-object v1
.line 171
invoke-virtual {v1, v15}, Landroid/text/StaticLayout$Builder;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Landroid/text/StaticLayout$Builder;
move-result-object v1
.line 172
invoke-virtual {v1, v14}, Landroid/text/StaticLayout$Builder;->setEllipsizedWidth(I)Landroid/text/StaticLayout$Builder;
move-result-object v1
.line 173
invoke-virtual {v1, v13}, Landroid/text/StaticLayout$Builder;->setMaxLines(I)Landroid/text/StaticLayout$Builder;
move-result-object v1
if-eqz p12, :cond_10a
goto :goto_10b
:cond_10a
const/4 v0, 0x0
.line 174
:goto_10b
invoke-virtual {v1, v0}, Landroid/text/StaticLayout$Builder;->setBreakStrategy(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 175
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/text/StaticLayout$Builder;->setHyphenationFrequency(I)Landroid/text/StaticLayout$Builder;
move-result-object v0
.line 176
.local v0, "builder":Landroid/text/StaticLayout$Builder;
invoke-virtual {v0}, Landroid/text/StaticLayout$Builder;->build()Landroid/text/StaticLayout;
move-result-object v1
return-object v1
.line 182
.end local v0 # "builder":Landroid/text/StaticLayout$Builder;
.end local v6 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.end local v7 # "lineWidth":F
.end local v8 # "left":F
.end local v10 # "layout":Landroid/text/StaticLayout;
.end local v16 # "off":I
:catch_119
move-exception v0
goto :goto_156
:catch_11b
move-exception v0
goto :goto_126
:catch_11d
move-exception v0
goto :goto_124
:catch_11f
move-exception v0
move-object/from16 v11, p3
move/from16 v5, p4
:goto_124
move-object/from16 v4, p5
:goto_126
move/from16 v3, p6
move/from16 v2, p7
goto :goto_156
.line 178
.restart local v6 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.restart local v7 # "lineWidth":F
.restart local v8 # "left":F
.restart local v10 # "layout":Landroid/text/StaticLayout;
.restart local v16 # "off":I
:cond_12b
move-object/from16 v11, p3
move/from16 v5, p4
move-object/from16 v4, p5
move/from16 v3, p6
move/from16 v2, p7
move/from16 v12, p8
new-instance v0, Landroid/text/StaticLayout;
move-object v1, v0
move-object v2, v6
move-object/from16 v3, p3
move/from16 v4, p4
move-object/from16 v5, p5
move-object/from16 v17, v6
.end local v6 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.local v17, "stringBuilder":Landroid/text/SpannableStringBuilder;
move/from16 v6, p6
move/from16 v18, v7
.end local v7 # "lineWidth":F
.local v18, "lineWidth":F
move/from16 v7, p7
move/from16 v19, v8
.end local v8 # "left":F
.local v19, "left":F
move/from16 v8, p8
invoke-direct/range {v1 .. v8}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
:try_end_150
.catch Ljava/lang/Exception; {:try_start_f7 .. :try_end_150} :catch_151
return-object v0
.line 182
.end local v10 # "layout":Landroid/text/StaticLayout;
.end local v16 # "off":I
.end local v17 # "stringBuilder":Landroid/text/SpannableStringBuilder;
.end local v18 # "lineWidth":F
.end local v19 # "left":F
:catch_151
move-exception v0
goto :goto_162
:catch_153
move-exception v0
move-object/from16 v11, p3
:goto_156
move/from16 v12, p8
goto :goto_162
:catch_159
move-exception v0
goto :goto_15e
:catch_15b
move-exception v0
move/from16 v13, p11
:goto_15e
move v14, v1
move-object v15, v2
move v12, v3
move-object v11, v8
.line 183
.local v0, "e":Ljava/lang/Exception;
:goto_162
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 185
.end local v0 # "e":Ljava/lang/Exception;
const/4 v0, 0x0
return-object v0
.end method
.method public static createStaticLayoutMiddle(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
.registers 24
.param p0, "source" # Ljava/lang/CharSequence;
.param p1, "paint" # Landroid/text/TextPaint;
.param p2, "width" # I
.param p3, "align" # Landroid/text/Layout$Alignment;
.param p4, "spacingmult" # F
.param p5, "spacingadd" # F
.param p6, "includepad" # Z
.param p7, "ellipsize" # Landroid/text/TextUtils$TruncateAt;
.param p8, "ellipsisWidth" # I
.param p9, "maxLines" # I
.param p10, "canContainUrl" # Z
.line 104
invoke-interface {p0}, Ljava/lang/CharSequence;->length()I
move-result v2
const/4 v1, 0x0
move-object v0, p0
move-object v3, p1
move v4, p2
move-object/from16 v5, p3
move/from16 v6, p4
move/from16 v7, p5
move/from16 v8, p6
move-object/from16 v9, p7
move/from16 v10, p8
move/from16 v11, p9
move/from16 v12, p10
invoke-static/range {v0 .. v12}, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->createStaticLayoutMiddle(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;IIZ)Landroid/text/StaticLayout;
move-result-object v0
return-object v0
.end method
.method public static init()V
.registers 5
.line 37
sget-boolean v0, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->initialized:Z
if-eqz v0, :cond_5
.line 38
return-void
.line 43
:cond_5
:try_start_5
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x12
if-lt v0, v1, :cond_12
.line 44
const-class v0, Landroid/text/TextDirectionHeuristic;
.line 45
.local v0, "textDirClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
sget-object v1, Landroid/text/TextDirectionHeuristics;->FIRSTSTRONG_LTR:Landroid/text/TextDirectionHeuristic;
sput-object v1, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->sTextDirection:Ljava/lang/Object;
goto :goto_31
.line 47
.end local v0 # "textDirClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:cond_12
const-class v0, Lim/tpelyyftgw/ui/components/StaticLayoutEx;
invoke-virtual {v0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
.line 48
.local v0, "loader":Ljava/lang/ClassLoader;
const-string v1, "android.text.TextDirectionHeuristic"
invoke-virtual {v0, v1}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
.line 49
.local v1, "textDirClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
const-string v2, "android.text.TextDirectionHeuristics"
invoke-virtual {v0, v2}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v2
.line 50
.local v2, "textDirsClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
const-string v3, "FIRSTSTRONG_LTR"
invoke-virtual {v2, v3}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
sput-object v3, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->sTextDirection:Ljava/lang/Object;
move-object v0, v1
.line 53
.end local v1 # "textDirClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
.end local v2 # "textDirsClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
.local v0, "textDirClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
:goto_31
const/16 v1, 0xd
new-array v1, v1, [Ljava/lang/Class;
const/4 v2, 0x0
const-class v3, Ljava/lang/CharSequence;
aput-object v3, v1, v2
sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v3, 0x1
aput-object v2, v1, v3
const/4 v2, 0x2
sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v4, v1, v2
const/4 v2, 0x3
const-class v4, Landroid/text/TextPaint;
aput-object v4, v1, v2
const/4 v2, 0x4
sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v4, v1, v2
const/4 v2, 0x5
const-class v4, Landroid/text/Layout$Alignment;
aput-object v4, v1, v2
const/4 v2, 0x6
aput-object v0, v1, v2
const/4 v2, 0x7
sget-object v4, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
aput-object v4, v1, v2
const/16 v2, 0x8
sget-object v4, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
aput-object v4, v1, v2
const/16 v2, 0x9
sget-object v4, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
aput-object v4, v1, v2
const/16 v2, 0xa
const-class v4, Landroid/text/TextUtils$TruncateAt;
aput-object v4, v1, v2
const/16 v2, 0xb
sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v4, v1, v2
const/16 v2, 0xc
sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v4, v1, v2
.line 69
.local v1, "signature":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
const-class v2, Landroid/text/StaticLayout;
invoke-virtual {v2, v1}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v2
sput-object v2, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->sConstructor:Ljava/lang/reflect/Constructor;
.line 70
invoke-virtual {v2, v3}, Ljava/lang/reflect/Constructor;->setAccessible(Z)V
.line 71
array-length v2, v1
new-array v2, v2, [Ljava/lang/Object;
sput-object v2, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->sConstructorArgs:[Ljava/lang/Object;
.line 72
sput-boolean v3, Lim/tpelyyftgw/ui/components/StaticLayoutEx;->initialized:Z
:try_end_8b
.catchall {:try_start_5 .. :try_end_8b} :catchall_8c
.line 75
.end local v0 # "textDirClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
.end local v1 # "signature":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
goto :goto_90
.line 73
:catchall_8c
move-exception v0
.line 74
.local v0, "e":Ljava/lang/Throwable;
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 76
.end local v0 # "e":Ljava/lang/Throwable;
:goto_90
return-void
.end method