GeoResultParser.smali
.class public final Lcom/google/zxing/client/result/GeoResultParser;
.super Lcom/google/zxing/client/result/ResultParser;
.source "GeoResultParser.java"
# static fields
.field private static final GEO_URL_PATTERN:Ljava/util/regex/Pattern;
# direct methods
.method static constructor <clinit>()V
.registers 2
.line 34
nop
.line 35
const-string v0, "geo:([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?(.*))?"
const/4 v1, 0x2
invoke-static {v0, v1}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;I)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/zxing/client/result/GeoResultParser;->GEO_URL_PATTERN:Ljava/util/regex/Pattern;
.line 34
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 32
invoke-direct {p0}, Lcom/google/zxing/client/result/ResultParser;-><init>()V
return-void
.end method
# virtual methods
.method public parse(Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/GeoParsedResult;
.registers 21
.param p1, "result" # Lcom/google/zxing/Result;
.line 39
invoke-static/range {p1 .. p1}, Lcom/google/zxing/client/result/GeoResultParser;->getMassagedText(Lcom/google/zxing/Result;)Ljava/lang/String;
move-result-object v1
.line 40
.local v1, "rawText":Ljava/lang/CharSequence;
sget-object v0, Lcom/google/zxing/client/result/GeoResultParser;->GEO_URL_PATTERN:Ljava/util/regex/Pattern;
invoke-virtual {v0, v1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
const/4 v2, 0x0
move-object v3, v2
.line 41
.local v3, "matcher":Ljava/util/regex/Matcher;
move-object v3, v0
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
move-result v0
if-nez v0, :cond_14
.line 42
return-object v2
.line 45
:cond_14
const/4 v0, 0x4
invoke-virtual {v3, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v12
.line 51
.local v12, "query":Ljava/lang/String;
const/4 v0, 0x1
:try_start_1a
invoke-virtual {v3, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v4
const-wide/16 v6, 0x0
move-wide v8, v6
.line 52
.local v8, "latitude":D
move-wide v13, v4
.end local v8 # "latitude":D
.local v13, "latitude":D
const-wide v8, 0x4056800000000000L # 90.0
cmpl-double v0, v4, v8
if-gtz v0, :cond_81
const-wide v4, -0x3fa9800000000000L # -90.0
cmpg-double v0, v13, v4
if-gez v0, :cond_39
goto :goto_81
.line 55
:cond_39
const/4 v0, 0x2
invoke-virtual {v3, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v4
move-wide v8, v6
.line 56
.local v8, "longitude":D
move-wide v15, v4
.end local v8 # "longitude":D
.local v15, "longitude":D
const-wide v8, 0x4066800000000000L # 180.0
cmpl-double v0, v4, v8
if-gtz v0, :cond_80
const-wide v4, -0x3f99800000000000L # -180.0
cmpg-double v0, v15, v4
if-gez v0, :cond_57
goto :goto_80
.line 59
:cond_57
const/4 v0, 0x3
invoke-virtual {v3, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
if-nez v4, :cond_63
.line 60
const-wide/16 v4, 0x0
move-wide/from16 v17, v4
.local v4, "altitude":D
goto :goto_74
.line 62
.end local v4 # "altitude":D
:cond_63
invoke-virtual {v3, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v4
:try_end_6b
.catch Ljava/lang/NumberFormatException; {:try_start_1a .. :try_end_6b} :catch_82
move-wide v8, v6
.line 63
.local v8, "altitude":D
move-wide v8, v4
cmpg-double v0, v4, v6
if-gez v0, :cond_72
.line 64
return-object v2
.line 69
:cond_72
move-wide/from16 v17, v8
.line 70
.end local v8 # "altitude":D
.local v17, "altitude":D
:goto_74
new-instance v0, Lcom/google/zxing/client/result/GeoParsedResult;
move-object v4, v0
move-wide v5, v13
move-wide v7, v15
move-wide/from16 v9, v17
move-object v11, v12
invoke-direct/range {v4 .. v11}, Lcom/google/zxing/client/result/GeoParsedResult;-><init>(DDDLjava/lang/String;)V
return-object v0
.line 57
.end local v17 # "altitude":D
:cond_80
:goto_80
return-object v2
.line 53
.end local v15 # "longitude":D
:cond_81
:goto_81
return-object v2
.line 67
.end local v13 # "latitude":D
:catch_82
move-exception v0
.line 68
return-object v2
.end method
.method public bridge synthetic parse(Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult;
.registers 2
.line 32
invoke-virtual {p0, p1}, Lcom/google/zxing/client/result/GeoResultParser;->parse(Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/GeoParsedResult;
move-result-object p1
return-object p1
.end method