PhoneFormat.smali
.class public Lim/tpelyyftgw/phoneformat/PhoneFormat;
.super Ljava/lang/Object;
.source "PhoneFormat.java"
# static fields
.field private static volatile Instance:Lim/tpelyyftgw/phoneformat/PhoneFormat;
# instance fields
.field public buffer:Ljava/nio/ByteBuffer;
.field public callingCodeCountries:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;>;"
}
.end annotation
.end field
.field public callingCodeData:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Lim/tpelyyftgw/phoneformat/CallingCodeInfo;",
">;"
}
.end annotation
.end field
.field public callingCodeOffsets:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field public countryCallingCode:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field public data:[B
.field public defaultCallingCode:Ljava/lang/String;
.field public defaultCountry:Ljava/lang/String;
.field private initialzed:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 49
const/4 v0, 0x0
sput-object v0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->Instance:Lim/tpelyyftgw/phoneformat/PhoneFormat;
return-void
.end method
.method public constructor <init>()V
.registers 2
.line 96
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 40
const/4 v0, 0x0
iput-boolean v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->initialzed:Z
.line 97
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->init(Ljava/lang/String;)V
.line 98
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 3
.param p1, "countryCode" # Ljava/lang/String;
.line 100
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 40
const/4 v0, 0x0
iput-boolean v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->initialzed:Z
.line 101
invoke-virtual {p0, p1}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->init(Ljava/lang/String;)V
.line 102
return-void
.end method
.method public static getInstance()Lim/tpelyyftgw/phoneformat/PhoneFormat;
.registers 3
.line 52
sget-object v0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->Instance:Lim/tpelyyftgw/phoneformat/PhoneFormat;
.line 53
.local v0, "localInstance":Lim/tpelyyftgw/phoneformat/PhoneFormat;
if-nez v0, :cond_19
.line 54
const-class v1, Lim/tpelyyftgw/phoneformat/PhoneFormat;
monitor-enter v1
.line 55
:try_start_7
sget-object v2, Lim/tpelyyftgw/phoneformat/PhoneFormat;->Instance:Lim/tpelyyftgw/phoneformat/PhoneFormat;
move-object v0, v2
.line 56
if-nez v0, :cond_14
.line 57
new-instance v2, Lim/tpelyyftgw/phoneformat/PhoneFormat;
invoke-direct {v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;-><init>()V
move-object v0, v2
sput-object v2, Lim/tpelyyftgw/phoneformat/PhoneFormat;->Instance:Lim/tpelyyftgw/phoneformat/PhoneFormat;
.line 59
:cond_14
monitor-exit v1
goto :goto_19
:catchall_16
move-exception v2
monitor-exit v1
:try_end_18
.catchall {:try_start_7 .. :try_end_18} :catchall_16
throw v2
.line 61
:cond_19
:goto_19
return-object v0
.end method
.method public static strip(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p0, "str" # Ljava/lang/String;
.line 65
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 66
.local v0, "res":Ljava/lang/StringBuilder;
const-string v1, "0123456789+*#"
.line 67
.local v1, "phoneChars":Ljava/lang/String;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result v2
add-int/lit8 v2, v2, -0x1
.local v2, "i":I
:goto_d
if-ltz v2, :cond_21
.line 68
add-int/lit8 v3, v2, 0x1
invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->substring(II)Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_1e
.line 69
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
.line 67
:cond_1e
add-int/lit8 v2, v2, -0x1
goto :goto_d
.line 72
.end local v2 # "i":I
:cond_21
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
return-object v2
.end method
.method public static stripExceptNumbers(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "str" # Ljava/lang/String;
.line 93
const/4 v0, 0x0
invoke-static {p0, v0}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->stripExceptNumbers(Ljava/lang/String;Z)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static stripExceptNumbers(Ljava/lang/String;Z)Ljava/lang/String;
.registers 6
.param p0, "str" # Ljava/lang/String;
.param p1, "includePlus" # Z
.line 76
if-nez p0, :cond_4
.line 77
const/4 v0, 0x0
return-object v0
.line 79
:cond_4
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0, p0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 80
.local v0, "res":Ljava/lang/StringBuilder;
const-string v1, "0123456789"
.line 81
.local v1, "phoneChars":Ljava/lang/String;
if-eqz p1, :cond_1e
.line 82
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "+"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 84
:cond_1e
invoke-virtual {v0}, Ljava/lang/StringBuilder;->length()I
move-result v2
add-int/lit8 v2, v2, -0x1
.local v2, "i":I
:goto_24
if-ltz v2, :cond_38
.line 85
add-int/lit8 v3, v2, 0x1
invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->substring(II)Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v3
if-nez v3, :cond_35
.line 86
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->deleteCharAt(I)Ljava/lang/StringBuilder;
.line 84
:cond_35
add-int/lit8 v2, v2, -0x1
goto :goto_24
.line 89
.end local v2 # "i":I
:cond_38
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
return-object v2
.end method
# virtual methods
.method public callingCodeForCountryCode(Ljava/lang/String;)Ljava/lang/String;
.registers 4
.param p1, "countryCode" # Ljava/lang/String;
.line 158
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->countryCallingCode:Ljava/util/HashMap;
invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
return-object v0
.end method
.method public callingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
.registers 27
.param p1, "callingCode" # Ljava/lang/String;
.line 356
move-object/from16 v0, p0
move-object/from16 v1, p1
iget-object v2, v0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeData:Ljava/util/HashMap;
invoke-virtual {v2, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
.line 357
.local v2, "res":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-nez v2, :cond_1a0
.line 358
iget-object v3, v0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeOffsets:Ljava/util/HashMap;
invoke-virtual {v3, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/Integer;
.line 359
.local v3, "num":Ljava/lang/Integer;
if-eqz v3, :cond_19e
.line 360
iget-object v4, v0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->data:[B
.line 361
.local v4, "bytes":[B
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v5
.line 362
.local v5, "start":I
move v6, v5
.line 363
.local v6, "offset":I
new-instance v7, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
invoke-direct {v7}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;-><init>()V
move-object v2, v7
.line 364
iput-object v1, v2, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->callingCode:Ljava/lang/String;
.line 365
iget-object v7, v0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeCountries:Ljava/util/HashMap;
invoke-virtual {v7, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/util/ArrayList;
iput-object v7, v2, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->countries:Ljava/util/ArrayList;
.line 366
iget-object v7, v0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeData:Ljava/util/HashMap;
invoke-virtual {v7, v1, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 368
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value16(I)S
move-result v7
.line 369
.local v7, "block1Len":I
const/4 v8, 0x2
add-int/2addr v6, v8
.line 371
add-int/2addr v6, v8
.line 372
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value16(I)S
move-result v9
.line 373
.local v9, "block2Len":I
add-int/2addr v6, v8
.line 375
add-int/2addr v6, v8
.line 376
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value16(I)S
move-result v10
.line 377
.local v10, "setCnt":I
add-int/2addr v6, v8
.line 379
add-int/2addr v6, v8
.line 381
new-instance v11, Ljava/util/ArrayList;
const/4 v12, 0x5
invoke-direct {v11, v12}, Ljava/util/ArrayList;-><init>(I)V
.line 383
.local v11, "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
:goto_4f
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->valueString(I)Ljava/lang/String;
move-result-object v13
move-object v14, v13
.local v14, "str":Ljava/lang/String;
invoke-virtual {v13}, Ljava/lang/String;->length()I
move-result v13
const/4 v15, 0x1
if-eqz v13, :cond_65
.line 384
invoke-virtual {v11, v14}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 385
invoke-virtual {v14}, Ljava/lang/String;->length()I
move-result v13
add-int/2addr v13, v15
add-int/2addr v6, v13
goto :goto_4f
.line 387
:cond_65
iput-object v11, v2, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->trunkPrefixes:Ljava/util/ArrayList;
.line 388
add-int/2addr v6, v15
.line 390
new-instance v13, Ljava/util/ArrayList;
invoke-direct {v13, v12}, Ljava/util/ArrayList;-><init>(I)V
move-object v11, v13
.line 391
:goto_6e
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->valueString(I)Ljava/lang/String;
move-result-object v12
move-object v14, v12
invoke-virtual {v12}, Ljava/lang/String;->length()I
move-result v12
if-eqz v12, :cond_83
.line 392
invoke-virtual {v11, v14}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 393
invoke-virtual {v14}, Ljava/lang/String;->length()I
move-result v12
add-int/2addr v12, v15
add-int/2addr v6, v12
goto :goto_6e
.line 395
:cond_83
iput-object v11, v2, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->intlPrefixes:Ljava/util/ArrayList;
.line 397
new-instance v12, Ljava/util/ArrayList;
invoke-direct {v12, v10}, Ljava/util/ArrayList;-><init>(I)V
.line 398
.local v12, "ruleSets":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/phoneformat/RuleSet;>;"
add-int v6, v5, v7
.line 399
const/4 v13, 0x0
.local v13, "s":I
:goto_8d
if-ge v13, v10, :cond_18f
.line 400
new-instance v16, Lim/tpelyyftgw/phoneformat/RuleSet;
invoke-direct/range {v16 .. v16}, Lim/tpelyyftgw/phoneformat/RuleSet;-><init>()V
move-object/from16 v17, v16
.line 401
.local v17, "ruleSet":Lim/tpelyyftgw/phoneformat/RuleSet;
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value16(I)S
move-result v15
move-object/from16 v8, v17
.end local v17 # "ruleSet":Lim/tpelyyftgw/phoneformat/RuleSet;
.local v8, "ruleSet":Lim/tpelyyftgw/phoneformat/RuleSet;
iput v15, v8, Lim/tpelyyftgw/phoneformat/RuleSet;->matchLen:I
.line 402
add-int/lit8 v6, v6, 0x2
.line 403
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value16(I)S
move-result v15
.line 404
.local v15, "ruleCnt":I
const/16 v17, 0x2
add-int/lit8 v6, v6, 0x2
.line 405
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1, v15}, Ljava/util/ArrayList;-><init>(I)V
.line 406
.local v1, "rules":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/phoneformat/PhoneRule;>;"
const/16 v17, 0x0
move/from16 v24, v17
move-object/from16 v17, v3
move/from16 v3, v24
.local v3, "r":I
.local v17, "num":Ljava/lang/Integer;
:goto_b5
if-ge v3, v15, :cond_171
.line 407
new-instance v19, Lim/tpelyyftgw/phoneformat/PhoneRule;
invoke-direct/range {v19 .. v19}, Lim/tpelyyftgw/phoneformat/PhoneRule;-><init>()V
move-object/from16 v20, v19
.line 408
.local v20, "rule":Lim/tpelyyftgw/phoneformat/PhoneRule;
move/from16 v19, v10
.end local v10 # "setCnt":I
.local v19, "setCnt":I
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value32(I)I
move-result v10
move-object/from16 v21, v11
move-object/from16 v11, v20
.end local v20 # "rule":Lim/tpelyyftgw/phoneformat/PhoneRule;
.local v11, "rule":Lim/tpelyyftgw/phoneformat/PhoneRule;
.local v21, "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
iput v10, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->minVal:I
.line 409
add-int/lit8 v6, v6, 0x4
.line 410
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value32(I)I
move-result v10
iput v10, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->maxVal:I
.line 411
add-int/lit8 v6, v6, 0x4
.line 412
add-int/lit8 v10, v6, 0x1
.end local v6 # "offset":I
.local v10, "offset":I
aget-byte v6, v4, v6
iput v6, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->byte8:I
.line 413
add-int/lit8 v6, v10, 0x1
.end local v10 # "offset":I
.restart local v6 # "offset":I
aget-byte v10, v4, v10
iput v10, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->maxLen:I
.line 414
add-int/lit8 v10, v6, 0x1
.end local v6 # "offset":I
.restart local v10 # "offset":I
aget-byte v6, v4, v6
iput v6, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->otherFlag:I
.line 415
add-int/lit8 v6, v10, 0x1
.end local v10 # "offset":I
.restart local v6 # "offset":I
aget-byte v10, v4, v10
iput v10, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->prefixLen:I
.line 416
add-int/lit8 v10, v6, 0x1
.end local v6 # "offset":I
.restart local v10 # "offset":I
aget-byte v6, v4, v6
iput v6, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->flag12:I
.line 417
add-int/lit8 v6, v10, 0x1
.end local v10 # "offset":I
.restart local v6 # "offset":I
aget-byte v10, v4, v10
iput v10, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->flag13:I
.line 418
invoke-virtual {v0, v6}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value16(I)S
move-result v10
.line 419
.local v10, "strOffset":I
const/16 v18, 0x2
add-int/lit8 v6, v6, 0x2
.line 420
add-int v20, v5, v7
add-int v20, v20, v9
move-object/from16 v22, v4
.end local v4 # "bytes":[B
.local v22, "bytes":[B
add-int v4, v20, v10
invoke-virtual {v0, v4}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->valueString(I)Ljava/lang/String;
move-result-object v4
iput-object v4, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->format:Ljava/lang/String;
.line 422
iget-object v4, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->format:Ljava/lang/String;
const-string v0, "[["
invoke-virtual {v4, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v0
.line 423
.local v0, "openPos":I
const/4 v4, -0x1
if-eq v0, v4, :cond_147
.line 424
iget-object v4, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->format:Ljava/lang/String;
move/from16 v20, v5
.end local v5 # "start":I
.local v20, "start":I
const-string v5, "]]"
invoke-virtual {v4, v5}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v4
.line 425
.local v4, "closePos":I
move/from16 v18, v6
const/4 v5, 0x2
.end local v6 # "offset":I
.local v18, "offset":I
new-array v6, v5, [Ljava/lang/Object;
iget-object v5, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->format:Ljava/lang/String;
move/from16 v23, v7
.end local v7 # "block1Len":I
.local v23, "block1Len":I
const/4 v7, 0x0
invoke-virtual {v5, v7, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v5
aput-object v5, v6, v7
iget-object v5, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->format:Ljava/lang/String;
add-int/lit8 v7, v4, 0x2
invoke-virtual {v5, v7}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v5
const/4 v7, 0x1
aput-object v5, v6, v7
const-string v5, "%s%s"
invoke-static {v5, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
iput-object v5, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->format:Ljava/lang/String;
goto :goto_14d
.line 423
.end local v4 # "closePos":I
.end local v18 # "offset":I
.end local v20 # "start":I
.end local v23 # "block1Len":I
.restart local v5 # "start":I
.restart local v6 # "offset":I
.restart local v7 # "block1Len":I
:cond_147
move/from16 v20, v5
move/from16 v18, v6
move/from16 v23, v7
.line 428
.end local v5 # "start":I
.end local v6 # "offset":I
.end local v7 # "block1Len":I
.restart local v18 # "offset":I
.restart local v20 # "start":I
.restart local v23 # "block1Len":I
:goto_14d
invoke-virtual {v1, v11}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 430
iget-boolean v4, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->hasIntlPrefix:Z
if-eqz v4, :cond_158
.line 431
const/4 v4, 0x1
iput-boolean v4, v8, Lim/tpelyyftgw/phoneformat/RuleSet;->hasRuleWithIntlPrefix:Z
goto :goto_159
.line 430
:cond_158
const/4 v4, 0x1
.line 433
:goto_159
iget-boolean v5, v11, Lim/tpelyyftgw/phoneformat/PhoneRule;->hasTrunkPrefix:Z
if-eqz v5, :cond_15f
.line 434
iput-boolean v4, v8, Lim/tpelyyftgw/phoneformat/RuleSet;->hasRuleWithTrunkPrefix:Z
.line 406
.end local v0 # "openPos":I
.end local v10 # "strOffset":I
.end local v11 # "rule":Lim/tpelyyftgw/phoneformat/PhoneRule;
:cond_15f
add-int/lit8 v3, v3, 0x1
move-object/from16 v0, p0
move/from16 v6, v18
move/from16 v10, v19
move/from16 v5, v20
move-object/from16 v11, v21
move-object/from16 v4, v22
move/from16 v7, v23
goto/16 :goto_b5
.end local v18 # "offset":I
.end local v19 # "setCnt":I
.end local v20 # "start":I
.end local v21 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
.end local v22 # "bytes":[B
.end local v23 # "block1Len":I
.local v4, "bytes":[B
.restart local v5 # "start":I
.restart local v6 # "offset":I
.restart local v7 # "block1Len":I
.local v10, "setCnt":I
.local v11, "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
:cond_171
move-object/from16 v22, v4
move/from16 v20, v5
move/from16 v23, v7
move/from16 v19, v10
move-object/from16 v21, v11
const/4 v4, 0x1
.line 437
.end local v3 # "r":I
.end local v4 # "bytes":[B
.end local v5 # "start":I
.end local v7 # "block1Len":I
.end local v10 # "setCnt":I
.end local v11 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
.restart local v19 # "setCnt":I
.restart local v20 # "start":I
.restart local v21 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
.restart local v22 # "bytes":[B
.restart local v23 # "block1Len":I
iput-object v1, v8, Lim/tpelyyftgw/phoneformat/RuleSet;->rules:Ljava/util/ArrayList;
.line 438
invoke-virtual {v12, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 399
.end local v1 # "rules":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/phoneformat/PhoneRule;>;"
.end local v8 # "ruleSet":Lim/tpelyyftgw/phoneformat/RuleSet;
.end local v15 # "ruleCnt":I
add-int/lit8 v13, v13, 0x1
const/4 v8, 0x2
const/4 v15, 0x1
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v3, v17
move-object/from16 v4, v22
goto/16 :goto_8d
.end local v17 # "num":Ljava/lang/Integer;
.end local v19 # "setCnt":I
.end local v20 # "start":I
.end local v21 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
.end local v22 # "bytes":[B
.end local v23 # "block1Len":I
.local v3, "num":Ljava/lang/Integer;
.restart local v4 # "bytes":[B
.restart local v5 # "start":I
.restart local v7 # "block1Len":I
.restart local v10 # "setCnt":I
.restart local v11 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
:cond_18f
move-object/from16 v17, v3
move-object/from16 v22, v4
move/from16 v20, v5
move/from16 v23, v7
move/from16 v19, v10
move-object/from16 v21, v11
.line 440
.end local v3 # "num":Ljava/lang/Integer;
.end local v4 # "bytes":[B
.end local v5 # "start":I
.end local v7 # "block1Len":I
.end local v10 # "setCnt":I
.end local v11 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
.end local v13 # "s":I
.restart local v17 # "num":Ljava/lang/Integer;
.restart local v19 # "setCnt":I
.restart local v20 # "start":I
.restart local v21 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
.restart local v22 # "bytes":[B
.restart local v23 # "block1Len":I
iput-object v12, v2, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->ruleSets:Ljava/util/ArrayList;
goto :goto_1a0
.line 359
.end local v6 # "offset":I
.end local v9 # "block2Len":I
.end local v12 # "ruleSets":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Lim/tpelyyftgw/phoneformat/RuleSet;>;"
.end local v14 # "str":Ljava/lang/String;
.end local v17 # "num":Ljava/lang/Integer;
.end local v19 # "setCnt":I
.end local v20 # "start":I
.end local v21 # "strs":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
.end local v22 # "bytes":[B
.end local v23 # "block1Len":I
.restart local v3 # "num":Ljava/lang/Integer;
:cond_19e
move-object/from16 v17, v3
.line 444
.end local v3 # "num":Ljava/lang/Integer;
:cond_1a0
:goto_1a0
return-object v2
.end method
.method public countriesForCallingCode(Ljava/lang/String;)Ljava/util/ArrayList;
.registers 3
.param p1, "callingCode" # Ljava/lang/String;
.line 162
const-string v0, "+"
invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_d
.line 163
const/4 v0, 0x1
invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p1
.line 166
:cond_d
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeCountries:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/ArrayList;
return-object v0
.end method
.method public defaultCallingCode()Ljava/lang/String;
.registers 2
.line 154
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCountry:Ljava/lang/String;
invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeForCountryCode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public desensitization(Ljava/lang/String;)Ljava/lang/String;
.registers 12
.param p1, "orig" # Ljava/lang/String;
.line 244
const-string v0, "+"
iget-boolean v1, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->initialzed:Z
if-nez v1, :cond_7
.line 245
return-object p1
.line 248
:cond_7
:try_start_7
invoke-static {p1}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->strip(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 250
.local v1, "str":Ljava/lang/String;
invoke-virtual {v1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
const/4 v3, 0x1
if-eqz v2, :cond_31
.line 251
invoke-virtual {v1, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
.line 252
.local v2, "rest":Ljava/lang/String;
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->findCallingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v3
.line 253
.local v3, "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-eqz v3, :cond_30
.line 254
invoke-virtual {v3, v2}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->desensitization(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
.line 255
.local v4, "phone":Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.line 257
.end local v4 # "phone":Ljava/lang/String;
:cond_30
return-object p1
.line 260
.end local v2 # "rest":Ljava/lang/String;
.end local v3 # "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
:cond_31
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCallingCode:Ljava/lang/String;
invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v0
.line 261
.local v0, "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-nez v0, :cond_3a
.line 262
return-object p1
.line 265
:cond_3a
invoke-virtual {v0, v1}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->matchingAccessCode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 266
.local v2, "accessCode":Ljava/lang/String;
if-eqz v2, :cond_6a
.line 267
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v4
invoke-virtual {v1, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v4
.line 268
.local v4, "rest":Ljava/lang/String;
move-object v5, v4
.line 269
.local v5, "phone":Ljava/lang/String;
invoke-virtual {p0, v4}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->findCallingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v6
.line 270
.local v6, "info2":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-eqz v6, :cond_54
.line 271
invoke-virtual {v6, v4}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->desensitization(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
move-object v5, v7
.line 274
:cond_54
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v7
if-nez v7, :cond_5b
.line 275
return-object v2
.line 277
:cond_5b
const-string v7, "%s %s"
const/4 v8, 0x2
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
aput-object v2, v8, v9
aput-object v5, v8, v3
invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
return-object v3
.line 280
.end local v4 # "rest":Ljava/lang/String;
.end local v5 # "phone":Ljava/lang/String;
.end local v6 # "info2":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
:cond_6a
invoke-virtual {v0, v1}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->desensitization(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
:try_end_6e
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_6e} :catch_6f
return-object v3
.line 283
.end local v0 # "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
.end local v1 # "str":Ljava/lang/String;
.end local v2 # "accessCode":Ljava/lang/String;
:catch_6f
move-exception v0
.line 284
.local v0, "e":Ljava/lang/Exception;
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 285
return-object p1
.end method
.method public findCallingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
.registers 6
.param p1, "str" # Ljava/lang/String;
.line 170
const/4 v0, 0x0
.line 171
.local v0, "res":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
const/4 v1, 0x0
.local v1, "i":I
:goto_2
const/4 v2, 0x3
if-ge v1, v2, :cond_1c
.line 172
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v2
if-ge v1, v2, :cond_1c
.line 173
const/4 v2, 0x0
add-int/lit8 v3, v1, 0x1
invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v0
.line 174
if-eqz v0, :cond_19
.line 175
goto :goto_1c
.line 171
:cond_19
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 182
.end local v1 # "i":I
:cond_1c
:goto_1c
return-object v0
.end method
.method public format(Ljava/lang/String;)Ljava/lang/String;
.registers 12
.param p1, "orig" # Ljava/lang/String;
.line 192
const-string v0, "+"
iget-boolean v1, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->initialzed:Z
if-nez v1, :cond_7
.line 193
return-object p1
.line 196
:cond_7
:try_start_7
invoke-static {p1}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->strip(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 198
.local v1, "str":Ljava/lang/String;
invoke-virtual {v1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
const/4 v3, 0x1
if-eqz v2, :cond_31
.line 199
invoke-virtual {v1, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
.line 200
.local v2, "rest":Ljava/lang/String;
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->findCallingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v3
.line 201
.local v3, "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-eqz v3, :cond_30
.line 202
invoke-virtual {v3, v2}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->format(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
.line 203
.local v4, "phone":Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.line 205
.end local v4 # "phone":Ljava/lang/String;
:cond_30
return-object p1
.line 208
.end local v2 # "rest":Ljava/lang/String;
.end local v3 # "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
:cond_31
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCallingCode:Ljava/lang/String;
invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v0
.line 209
.local v0, "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-nez v0, :cond_3a
.line 210
return-object p1
.line 213
:cond_3a
invoke-virtual {v0, v1}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->matchingAccessCode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 214
.local v2, "accessCode":Ljava/lang/String;
if-eqz v2, :cond_6a
.line 215
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v4
invoke-virtual {v1, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v4
.line 216
.local v4, "rest":Ljava/lang/String;
move-object v5, v4
.line 217
.local v5, "phone":Ljava/lang/String;
invoke-virtual {p0, v4}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->findCallingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v6
.line 218
.local v6, "info2":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-eqz v6, :cond_54
.line 219
invoke-virtual {v6, v4}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->format(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
move-object v5, v7
.line 222
:cond_54
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v7
if-nez v7, :cond_5b
.line 223
return-object v2
.line 225
:cond_5b
const-string v7, "%s %s"
const/4 v8, 0x2
new-array v8, v8, [Ljava/lang/Object;
const/4 v9, 0x0
aput-object v2, v8, v9
aput-object v5, v8, v3
invoke-static {v7, v8}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
return-object v3
.line 228
.end local v4 # "rest":Ljava/lang/String;
.end local v5 # "phone":Ljava/lang/String;
.end local v6 # "info2":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
:cond_6a
invoke-virtual {v0, v1}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->format(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
:try_end_6e
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_6e} :catch_6f
return-object v3
.line 231
.end local v0 # "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
.end local v1 # "str":Ljava/lang/String;
.end local v2 # "accessCode":Ljava/lang/String;
:catch_6f
move-exception v0
.line 232
.local v0, "e":Ljava/lang/Exception;
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 233
return-object p1
.end method
.method public init(Ljava/lang/String;)V
.registers 10
.param p1, "countryCode" # Ljava/lang/String;
.line 105
const/4 v0, 0x0
.line 106
.local v0, "stream":Ljava/io/InputStream;
const/4 v1, 0x0
.line 108
.local v1, "bos":Ljava/io/ByteArrayOutputStream;
:try_start_2
sget-object v2, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-virtual {v2}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v2
const-string v3, "PhoneFormats.dat"
invoke-virtual {v2, v3}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v2
move-object v0, v2
.line 109
new-instance v2, Ljava/io/ByteArrayOutputStream;
invoke-direct {v2}, Ljava/io/ByteArrayOutputStream;-><init>()V
move-object v1, v2
.line 110
const/16 v2, 0x400
new-array v3, v2, [B
.line 112
.local v3, "buf":[B
:goto_19
const/4 v4, 0x0
invoke-virtual {v0, v3, v4, v2}, Ljava/io/InputStream;->read([BII)I
move-result v5
move v6, v5
.local v6, "len":I
const/4 v7, -0x1
if-eq v5, v7, :cond_26
.line 113
invoke-virtual {v1, v3, v4, v6}, Ljava/io/ByteArrayOutputStream;->write([BII)V
goto :goto_19
.line 115
:cond_26
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v2
iput-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->data:[B
.line 116
invoke-static {v2}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer;
move-result-object v2
iput-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->buffer:Ljava/nio/ByteBuffer;
.line 117
sget-object v4, Ljava/nio/ByteOrder;->LITTLE_ENDIAN:Ljava/nio/ByteOrder;
invoke-virtual {v2, v4}, Ljava/nio/ByteBuffer;->order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
:try_end_37
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_37} :catch_8e
.catchall {:try_start_2 .. :try_end_37} :catchall_8c
.line 123
.end local v3 # "buf":[B
.end local v6 # "len":I
nop
.line 124
:try_start_38
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
:try_end_3b
.catch Ljava/lang/Exception; {:try_start_38 .. :try_end_3b} :catch_3c
.line 128
goto :goto_40
.line 126
:catch_3c
move-exception v2
.line 127
.local v2, "e":Ljava/lang/Exception;
invoke-static {v2}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 130
.end local v2 # "e":Ljava/lang/Exception;
:goto_40
if-eqz v0, :cond_4b
.line 131
:try_start_42
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:try_end_45
.catch Ljava/lang/Exception; {:try_start_42 .. :try_end_45} :catch_46
goto :goto_4b
.line 133
:catch_46
move-exception v2
.line 134
.restart local v2 # "e":Ljava/lang/Exception;
invoke-static {v2}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 136
.end local v2 # "e":Ljava/lang/Exception;
goto :goto_4c
.line 135
:cond_4b
:goto_4b
nop
.line 138
:goto_4c
if-eqz p1, :cond_57
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v2
if-eqz v2, :cond_57
.line 139
iput-object p1, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCountry:Ljava/lang/String;
goto :goto_65
.line 141
:cond_57
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v2
.line 142
.local v2, "loc":Ljava/util/Locale;
invoke-virtual {v2}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v3
iput-object v3, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCountry:Ljava/lang/String;
.line 144
.end local v2 # "loc":Ljava/util/Locale;
:goto_65
new-instance v2, Ljava/util/HashMap;
const/16 v3, 0xff
invoke-direct {v2, v3}, Ljava/util/HashMap;-><init>(I)V
iput-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeOffsets:Ljava/util/HashMap;
.line 145
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2, v3}, Ljava/util/HashMap;-><init>(I)V
iput-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeCountries:Ljava/util/HashMap;
.line 146
new-instance v2, Ljava/util/HashMap;
const/16 v4, 0xa
invoke-direct {v2, v4}, Ljava/util/HashMap;-><init>(I)V
iput-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeData:Ljava/util/HashMap;
.line 147
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2, v3}, Ljava/util/HashMap;-><init>(I)V
iput-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->countryCallingCode:Ljava/util/HashMap;
.line 149
invoke-virtual {p0}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->parseDataHeader()V
.line 150
const/4 v2, 0x1
iput-boolean v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->initialzed:Z
.line 151
return-void
.line 122
:catchall_8c
move-exception v2
goto :goto_ab
.line 118
:catch_8e
move-exception v2
.line 119
.local v2, "e":Ljava/lang/Exception;
:try_start_8f
invoke-virtual {v2}, Ljava/lang/Exception;->printStackTrace()V
:try_end_92
.catchall {:try_start_8f .. :try_end_92} :catchall_8c
.line 123
if-eqz v1, :cond_9d
.line 124
:try_start_94
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
:try_end_97
.catch Ljava/lang/Exception; {:try_start_94 .. :try_end_97} :catch_98
goto :goto_9d
.line 126
:catch_98
move-exception v3
.line 127
.local v3, "e":Ljava/lang/Exception;
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
goto :goto_9e
.line 128
.end local v3 # "e":Ljava/lang/Exception;
:cond_9d
:goto_9d
nop
.line 130
:goto_9e
if-eqz v0, :cond_a9
.line 131
:try_start_a0
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:try_end_a3
.catch Ljava/lang/Exception; {:try_start_a0 .. :try_end_a3} :catch_a4
goto :goto_a9
.line 133
:catch_a4
move-exception v3
.line 134
.restart local v3 # "e":Ljava/lang/Exception;
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
goto :goto_aa
.line 135
.end local v3 # "e":Ljava/lang/Exception;
:cond_a9
:goto_a9
nop
.line 120
:goto_aa
return-void
.line 123
.end local v2 # "e":Ljava/lang/Exception;
:goto_ab
if-eqz v1, :cond_b6
.line 124
:try_start_ad
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
:try_end_b0
.catch Ljava/lang/Exception; {:try_start_ad .. :try_end_b0} :catch_b1
goto :goto_b6
.line 126
:catch_b1
move-exception v3
.line 127
.restart local v3 # "e":Ljava/lang/Exception;
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
goto :goto_b7
.line 128
.end local v3 # "e":Ljava/lang/Exception;
:cond_b6
:goto_b6
nop
.line 130
:goto_b7
if-eqz v0, :cond_c2
.line 131
:try_start_b9
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:try_end_bc
.catch Ljava/lang/Exception; {:try_start_b9 .. :try_end_bc} :catch_bd
goto :goto_c2
.line 133
:catch_bd
move-exception v3
.line 134
.restart local v3 # "e":Ljava/lang/Exception;
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
goto :goto_c3
.line 135
.end local v3 # "e":Ljava/lang/Exception;
:cond_c2
:goto_c2
nop
.line 136
:goto_c3
goto :goto_c5
:goto_c4
throw v2
:goto_c5
goto :goto_c4
.end method
.method public isPhoneNumberValid(Ljava/lang/String;)Z
.registers 10
.param p1, "phoneNumber" # Ljava/lang/String;
.line 290
iget-boolean v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->initialzed:Z
const/4 v1, 0x1
if-nez v0, :cond_6
.line 291
return v1
.line 293
:cond_6
invoke-static {p1}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->strip(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 295
.local v0, "str":Ljava/lang/String;
const-string v2, "+"
invoke-virtual {v0, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
const/4 v3, 0x0
if-eqz v2, :cond_26
.line 296
invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v2
.line 297
.local v2, "rest":Ljava/lang/String;
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->findCallingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v4
.line 298
.local v4, "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-eqz v4, :cond_24
invoke-virtual {v4, v2}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->isValidPhoneNumber(Ljava/lang/String;)Z
move-result v5
if-eqz v5, :cond_24
goto :goto_25
:cond_24
const/4 v1, 0x0
:goto_25
return v1
.line 300
.end local v2 # "rest":Ljava/lang/String;
.end local v4 # "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
:cond_26
iget-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCallingCode:Ljava/lang/String;
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v2
.line 301
.local v2, "info":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-nez v2, :cond_2f
.line 302
return v3
.line 305
:cond_2f
invoke-virtual {v2, v0}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->matchingAccessCode(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
.line 306
.local v4, "accessCode":Ljava/lang/String;
if-eqz v4, :cond_53
.line 307
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v5
invoke-virtual {v0, v5}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v5
.line 308
.local v5, "rest":Ljava/lang/String;
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v6
if-eqz v6, :cond_52
.line 309
invoke-virtual {p0, v5}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->findCallingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
move-result-object v6
.line 310
.local v6, "info2":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
if-eqz v6, :cond_50
invoke-virtual {v6, v5}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->isValidPhoneNumber(Ljava/lang/String;)Z
move-result v7
if-eqz v7, :cond_50
goto :goto_51
:cond_50
const/4 v1, 0x0
:goto_51
return v1
.line 312
.end local v6 # "info2":Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
:cond_52
return v3
.line 315
.end local v5 # "rest":Ljava/lang/String;
:cond_53
invoke-virtual {v2, v0}, Lim/tpelyyftgw/phoneformat/CallingCodeInfo;->isValidPhoneNumber(Ljava/lang/String;)Z
move-result v1
return v1
.end method
.method public parseDataHeader()V
.registers 10
.line 448
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value32(I)I
move-result v0
.line 449
.local v0, "count":I
mul-int/lit8 v1, v0, 0xc
add-int/lit8 v1, v1, 0x4
.line 450
.local v1, "base":I
const/4 v2, 0x4
.line 451
.local v2, "spot":I
const/4 v3, 0x0
.local v3, "i":I
:goto_b
if-ge v3, v0, :cond_53
.line 452
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->valueString(I)Ljava/lang/String;
move-result-object v4
.line 453
.local v4, "callingCode":Ljava/lang/String;
add-int/lit8 v2, v2, 0x4
.line 454
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->valueString(I)Ljava/lang/String;
move-result-object v5
.line 455
.local v5, "country":Ljava/lang/String;
add-int/lit8 v2, v2, 0x4
.line 456
invoke-virtual {p0, v2}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->value32(I)I
move-result v6
add-int/2addr v6, v1
.line 457
.local v6, "offset":I
add-int/lit8 v2, v2, 0x4
.line 459
iget-object v7, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCountry:Ljava/lang/String;
invoke-virtual {v5, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_2a
.line 460
iput-object v4, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCallingCode:Ljava/lang/String;
.line 463
:cond_2a
iget-object v7, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->countryCallingCode:Ljava/util/HashMap;
invoke-virtual {v7, v5, v4}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 465
iget-object v7, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeOffsets:Ljava/util/HashMap;
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v8
invoke-virtual {v7, v4, v8}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 466
iget-object v7, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeCountries:Ljava/util/HashMap;
invoke-virtual {v7, v4}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/util/ArrayList;
.line 467
.local v7, "countries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
if-nez v7, :cond_4d
.line 468
new-instance v8, Ljava/util/ArrayList;
invoke-direct {v8}, Ljava/util/ArrayList;-><init>()V
move-object v7, v8
.line 469
iget-object v8, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeCountries:Ljava/util/HashMap;
invoke-virtual {v8, v4, v7}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 471
:cond_4d
invoke-virtual {v7, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 451
.end local v4 # "callingCode":Ljava/lang/String;
.end local v5 # "country":Ljava/lang/String;
.end local v6 # "offset":I
.end local v7 # "countries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Ljava/lang/String;>;"
add-int/lit8 v3, v3, 0x1
goto :goto_b
.line 474
.end local v3 # "i":I
:cond_53
iget-object v3, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->defaultCallingCode:Ljava/lang/String;
if-eqz v3, :cond_5a
.line 475
invoke-virtual {p0, v3}, Lim/tpelyyftgw/phoneformat/PhoneFormat;->callingCodeInfo(Ljava/lang/String;)Lim/tpelyyftgw/phoneformat/CallingCodeInfo;
.line 477
:cond_5a
return-void
.end method
.method value16(I)S
.registers 4
.param p1, "offset" # I
.line 330
add-int/lit8 v0, p1, 0x2
iget-object v1, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->data:[B
array-length v1, v1
if-gt v0, v1, :cond_13
.line 331
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 332
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->getShort()S
move-result v0
return v0
.line 334
:cond_13
const/4 v0, 0x0
return v0
.end method
.method value32(I)I
.registers 4
.param p1, "offset" # I
.line 321
add-int/lit8 v0, p1, 0x4
iget-object v1, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->data:[B
array-length v1, v1
if-gt v0, v1, :cond_13
.line 322
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v0, p1}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 323
iget-object v0, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->buffer:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->getInt()I
move-result v0
return v0
.line 325
:cond_13
const/4 v0, 0x0
return v0
.end method
.method public valueString(I)Ljava/lang/String;
.registers 7
.param p1, "offset" # I
.line 340
const-string v0, ""
move v1, p1
.local v1, "a":I
:goto_3
:try_start_3
iget-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->data:[B
array-length v2, v2
if-ge v1, v2, :cond_20
.line 341
iget-object v2, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->data:[B
aget-byte v2, v2, v1
if-nez v2, :cond_1d
.line 342
sub-int v2, v1, p1
if-ne p1, v2, :cond_13
.line 343
return-object v0
.line 345
:cond_13
new-instance v2, Ljava/lang/String;
iget-object v3, p0, Lim/tpelyyftgw/phoneformat/PhoneFormat;->data:[B
sub-int v4, v1, p1
invoke-direct {v2, v3, p1, v4}, Ljava/lang/String;-><init>([BII)V
:try_end_1c
.catch Ljava/lang/Exception; {:try_start_3 .. :try_end_1c} :catch_21
return-object v2
.line 340
:cond_1d
add-int/lit8 v1, v1, 0x1
goto :goto_3
.line 348
.end local v1 # "a":I
:cond_20
return-object v0
.line 349
:catch_21
move-exception v1
.line 350
.local v1, "e":Ljava/lang/Exception;
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
.line 351
return-object v0
.end method