StaticLayoutProxy.smali

.class public Lcom/taobao/weex/utils/StaticLayoutProxy;
.super Ljava/lang/Object;
.source "StaticLayoutProxy.java"


# static fields
.field private static layoutConstructor:Ljava/lang/reflect/Constructor;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/lang/reflect/Constructor<",
            "Landroid/text/StaticLayout;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method public constructor <init>()V
    .registers 1

    .line 33
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static create(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZZ)Landroid/text/StaticLayout;
    .registers 17
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "source",
            "paint",
            "width",
            "align",
            "spacingmult",
            "spacingadd",
            "includepad",
            "forceRtl"
        }
    .end annotation

    .line 39
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x12

    if-lt v0, v1, :cond_26

    if-eqz p7, :cond_26

    .line 40
    sget-object v4, Landroid/text/TextDirectionHeuristics;->RTL:Landroid/text/TextDirectionHeuristic;

    move-object v0, p0

    move-object v1, p1

    move v2, p2

    move-object v3, p3

    move v5, p4

    move v6, p5

    move v7, p6

    .line 41
    invoke-static/range {v0 .. v7}, Lcom/taobao/weex/utils/StaticLayoutProxy;->createInternal(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FFZ)Landroid/text/StaticLayout;

    move-result-object v0

    if-eqz v0, :cond_18

    return-object v0

    .line 45
    :cond_18
    new-instance v0, Landroid/text/StaticLayout;

    move-object v1, v0

    move-object v2, p0

    move-object v3, p1

    move v4, p2

    move-object v5, p3

    move v6, p4

    move v7, p5

    move v8, p6

    invoke-direct/range {v1 .. v8}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V

    return-object v0

    .line 48
    :cond_26
    new-instance v0, Landroid/text/StaticLayout;

    move-object v1, v0

    move-object v2, p0

    move-object v3, p1

    move v4, p2

    move-object v5, p3

    move v6, p4

    move v7, p5

    move v8, p6

    invoke-direct/range {v1 .. v8}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V

    return-object v0
.end method

.method private static createInternal(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;Landroid/text/TextDirectionHeuristic;FFZ)Landroid/text/StaticLayout;
    .registers 21
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "source",
            "paint",
            "width",
            "align",
            "textDir",
            "spacingmult",
            "spacingadd",
            "includepad"
        }
    .end annotation

    .line 55
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/4 v1, 0x0

    const/16 v2, 0x12

    if-ge v0, v2, :cond_8

    return-object v1

    .line 59
    :cond_8
    :try_start_8
    sget-object v0, Lcom/taobao/weex/utils/StaticLayoutProxy;->layoutConstructor:Ljava/lang/reflect/Constructor;

    const/4 v2, 0x7

    const/4 v3, 0x6

    const/4 v4, 0x5

    const/4 v5, 0x4

    const/4 v6, 0x3

    const/4 v7, 0x2

    const/4 v8, 0x1

    const/4 v9, 0x0

    const/16 v10, 0x8

    if-nez v0, :cond_40

    .line 60
    const-class v0, Landroid/text/StaticLayout;

    new-array v11, v10, [Ljava/lang/Class;

    .line 61
    const-class v12, Ljava/lang/CharSequence;

    aput-object v12, v11, v9

    const-class v12, Landroid/text/TextPaint;

    aput-object v12, v11, v8

    sget-object v12, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    aput-object v12, v11, v7

    const-class v12, Landroid/text/Layout$Alignment;

    aput-object v12, v11, v6

    const-class v12, Landroid/text/TextDirectionHeuristic;

    aput-object v12, v11, v5

    sget-object v12, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    aput-object v12, v11, v4

    sget-object v12, Ljava/lang/Float;->TYPE:Ljava/lang/Class;

    aput-object v12, v11, v3

    sget-object v12, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;

    aput-object v12, v11, v2

    invoke-virtual {v0, v11}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;

    move-result-object v0

    .line 65
    sput-object v0, Lcom/taobao/weex/utils/StaticLayoutProxy;->layoutConstructor:Ljava/lang/reflect/Constructor;

    .line 67
    :cond_40
    sget-object v0, Lcom/taobao/weex/utils/StaticLayoutProxy;->layoutConstructor:Ljava/lang/reflect/Constructor;

    if-eqz v0, :cond_71

    new-array v10, v10, [Ljava/lang/Object;

    aput-object p0, v10, v9

    aput-object p1, v10, v8

    .line 68
    invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v8

    aput-object v8, v10, v7

    aput-object p3, v10, v6

    aput-object p4, v10, v5

    .line 69
    invoke-static/range {p5 .. p5}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object v5

    aput-object v5, v10, v4

    invoke-static/range {p6 .. p6}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object v4

    aput-object v4, v10, v3

    invoke-static/range {p7 .. p7}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v3

    aput-object v3, v10, v2

    .line 68
    invoke-virtual {v0, v10}, Ljava/lang/reflect/Constructor;->newInstance([Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/text/StaticLayout;
    :try_end_6c
    .catchall {:try_start_8 .. :try_end_6c} :catchall_6d

    return-object v0

    :catchall_6d
    move-exception v0

    .line 73
    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    :cond_71
    return-object v1
.end method