CallingCodeInfo.smali

.class public Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
.super Ljava/lang/Object;
.source "CallingCodeInfo.java"


# instance fields
.field public callingCode:Ljava/lang/String;

.field public countries:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field public intlPrefixes:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field public ruleSets:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList<",
            "Lim/tpelyyftgw/phoneformat/RuleSet;",
            ">;"
        }
    .end annotation
.end field

.field public trunkPrefixes:Ljava/util/ArrayList;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/ArrayList<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>()V
    .registers 2

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

    .line 30
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->countries:Ljava/util/ArrayList;

    .line 31
    const-string v0, ""

    iput-object v0, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;

    .line 32
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->trunkPrefixes:Ljava/util/ArrayList;

    .line 33
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->intlPrefixes:Ljava/util/ArrayList;

    .line 34
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;

    return-void
.end method


# virtual methods
.method desensitization(Ljava/lang/String;)Ljava/lang/String;
    .registers 9
    .param p1, "orig"    # Ljava/lang/String;

    .line 93
    move-object v0, p1

    .line 94
    .local v0, "str":Ljava/lang/String;
    const/4 v1, 0x0

    .line 95
    .local v1, "trunkPrefix":Ljava/lang/String;
    const/4 v2, 0x0

    .line 96
    .local v2, "intlPrefix":Ljava/lang/String;
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;

    invoke-virtual {v0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_16

    .line 97
    iget-object v2, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;

    .line 98
    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v3

    invoke-virtual {v0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object v0

    goto :goto_25

    .line 100
    :cond_16
    invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->matchingTrunkCode(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    .line 101
    .local v3, "trunk":Ljava/lang/String;
    if-eqz v3, :cond_25

    .line 102
    move-object v1, v3

    .line 103
    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v4

    invoke-virtual {v0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object v0

    .line 107
    .end local v3    # "trunk":Ljava/lang/String;
    :cond_25
    :goto_25
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_2b
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    const/4 v5, 0x1

    if-eqz v4, :cond_40

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lim/tpelyyftgw/phoneformat/RuleSet;

    .line 108
    .local v4, "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    invoke-virtual {v4, v0, v2, v1, v5}, Lim/tpelyyftgw/phoneformat/RuleSet;->desensitization(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;

    move-result-object v5

    .line 109
    .local v5, "phone":Ljava/lang/String;
    if-eqz v5, :cond_3f

    .line 110
    return-object v5

    .line 112
    .end local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    .end local v5    # "phone":Ljava/lang/String;
    :cond_3f
    goto :goto_2b

    .line 114
    :cond_40
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_46
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    const/4 v6, 0x0

    if-eqz v4, :cond_5b

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lim/tpelyyftgw/phoneformat/RuleSet;

    .line 115
    .restart local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    invoke-virtual {v4, v0, v2, v1, v6}, Lim/tpelyyftgw/phoneformat/RuleSet;->desensitization(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;

    move-result-object v6

    .line 116
    .local v6, "phone":Ljava/lang/String;
    if-eqz v6, :cond_5a

    .line 117
    return-object v6

    .line 119
    .end local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    .end local v6    # "phone":Ljava/lang/String;
    :cond_5a
    goto :goto_46

    .line 121
    :cond_5b
    if-eqz v2, :cond_71

    invoke-virtual {v0}, Ljava/lang/String;->length()I

    move-result v3

    if-eqz v3, :cond_71

    .line 122
    const/4 v3, 0x2

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

    aput-object v2, v3, v6

    aput-object v0, v3, v5

    const-string v4, "%s %s"

    invoke-static {v4, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v3

    return-object v3

    .line 125
    :cond_71
    return-object p1
.end method

.method format(Ljava/lang/String;)Ljava/lang/String;
    .registers 9
    .param p1, "orig"    # Ljava/lang/String;

    .line 57
    move-object v0, p1

    .line 58
    .local v0, "str":Ljava/lang/String;
    const/4 v1, 0x0

    .line 59
    .local v1, "trunkPrefix":Ljava/lang/String;
    const/4 v2, 0x0

    .line 60
    .local v2, "intlPrefix":Ljava/lang/String;
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;

    invoke-virtual {v0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_16

    .line 61
    iget-object v2, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;

    .line 62
    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v3

    invoke-virtual {v0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object v0

    goto :goto_25

    .line 64
    :cond_16
    invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->matchingTrunkCode(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    .line 65
    .local v3, "trunk":Ljava/lang/String;
    if-eqz v3, :cond_25

    .line 66
    move-object v1, v3

    .line 67
    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v4

    invoke-virtual {v0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object v0

    .line 71
    .end local v3    # "trunk":Ljava/lang/String;
    :cond_25
    :goto_25
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_2b
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    const/4 v5, 0x1

    if-eqz v4, :cond_40

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lim/tpelyyftgw/phoneformat/RuleSet;

    .line 72
    .local v4, "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    invoke-virtual {v4, v0, v2, v1, v5}, Lim/tpelyyftgw/phoneformat/RuleSet;->format(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;

    move-result-object v5

    .line 73
    .local v5, "phone":Ljava/lang/String;
    if-eqz v5, :cond_3f

    .line 74
    return-object v5

    .line 76
    .end local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    .end local v5    # "phone":Ljava/lang/String;
    :cond_3f
    goto :goto_2b

    .line 78
    :cond_40
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_46
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    const/4 v6, 0x0

    if-eqz v4, :cond_5b

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lim/tpelyyftgw/phoneformat/RuleSet;

    .line 79
    .restart local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    invoke-virtual {v4, v0, v2, v1, v6}, Lim/tpelyyftgw/phoneformat/RuleSet;->format(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;

    move-result-object v6

    .line 80
    .local v6, "phone":Ljava/lang/String;
    if-eqz v6, :cond_5a

    .line 81
    return-object v6

    .line 83
    .end local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    .end local v6    # "phone":Ljava/lang/String;
    :cond_5a
    goto :goto_46

    .line 85
    :cond_5b
    if-eqz v2, :cond_71

    invoke-virtual {v0}, Ljava/lang/String;->length()I

    move-result v3

    if-eqz v3, :cond_71

    .line 86
    const/4 v3, 0x2

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

    aput-object v2, v3, v6

    aput-object v0, v3, v5

    const-string v4, "%s %s"

    invoke-static {v4, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v3

    return-object v3

    .line 89
    :cond_71
    return-object p1
.end method

.method isValidPhoneNumber(Ljava/lang/String;)Z
    .registers 9
    .param p1, "orig"    # Ljava/lang/String;

    .line 129
    move-object v0, p1

    .line 130
    .local v0, "str":Ljava/lang/String;
    const/4 v1, 0x0

    .line 131
    .local v1, "trunkPrefix":Ljava/lang/String;
    const/4 v2, 0x0

    .line 132
    .local v2, "intlPrefix":Ljava/lang/String;
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;

    invoke-virtual {v0, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v3

    if-eqz v3, :cond_16

    .line 133
    iget-object v2, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;

    .line 134
    invoke-virtual {v2}, Ljava/lang/String;->length()I

    move-result v3

    invoke-virtual {v0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object v0

    goto :goto_25

    .line 136
    :cond_16
    invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->matchingTrunkCode(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v3

    .line 137
    .local v3, "trunk":Ljava/lang/String;
    if-eqz v3, :cond_25

    .line 138
    move-object v1, v3

    .line 139
    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v4

    invoke-virtual {v0, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;

    move-result-object v0

    .line 143
    .end local v3    # "trunk":Ljava/lang/String;
    :cond_25
    :goto_25
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_2b
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    const/4 v5, 0x1

    if-eqz v4, :cond_40

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lim/tpelyyftgw/phoneformat/RuleSet;

    .line 144
    .local v4, "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    invoke-virtual {v4, v0, v2, v1, v5}, Lim/tpelyyftgw/phoneformat/RuleSet;->isValid(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z

    move-result v6

    .line 145
    .local v6, "valid":Z
    if-eqz v6, :cond_3f

    .line 146
    return v5

    .line 148
    .end local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    .end local v6    # "valid":Z
    :cond_3f
    goto :goto_2b

    .line 150
    :cond_40
    iget-object v3, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;

    invoke-virtual {v3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v3

    :goto_46
    invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z

    move-result v4

    const/4 v6, 0x0

    if-eqz v4, :cond_5b

    invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v4

    check-cast v4, Lim/tpelyyftgw/phoneformat/RuleSet;

    .line 151
    .restart local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    invoke-virtual {v4, v0, v2, v1, v6}, Lim/tpelyyftgw/phoneformat/RuleSet;->isValid(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Z

    move-result v6

    .line 152
    .restart local v6    # "valid":Z
    if-eqz v6, :cond_5a

    .line 153
    return v5

    .line 155
    .end local v4    # "set":Lim/tpelyyftgw/phoneformat/RuleSet;
    .end local v6    # "valid":Z
    :cond_5a
    goto :goto_46

    .line 157
    :cond_5b
    return v6
.end method

.method matchingAccessCode(Ljava/lang/String;)Ljava/lang/String;
    .registers 5
    .param p1, "str"    # Ljava/lang/String;

    .line 38
    iget-object v0, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->intlPrefixes:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_1a

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    .line 39
    .local v1, "code":Ljava/lang/String;
    invoke-virtual {p1, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v2

    if-eqz v2, :cond_19

    .line 40
    return-object v1

    .line 42
    .end local v1    # "code":Ljava/lang/String;
    :cond_19
    goto :goto_6

    .line 43
    :cond_1a
    const/4 v0, 0x0

    return-object v0
.end method

.method matchingTrunkCode(Ljava/lang/String;)Ljava/lang/String;
    .registers 5
    .param p1, "str"    # Ljava/lang/String;

    .line 47
    iget-object v0, p0, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->trunkPrefixes:Ljava/util/ArrayList;

    invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_1a

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljava/lang/String;

    .line 48
    .local v1, "code":Ljava/lang/String;
    invoke-virtual {p1, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z

    move-result v2

    if-eqz v2, :cond_19

    .line 49
    return-object v1

    .line 51
    .end local v1    # "code":Ljava/lang/String;
    :cond_19
    goto :goto_6

    .line 53
    :cond_1a
    const/4 v0, 0x0

    return-object v0
.end method