.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 public static constructor ()V .locals 2 const-string v0, "geo:([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?(.*))?" const/4 v1, 0x2 .line 1 invoke-static {v0, v1}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;I)Ljava/util/regex/Pattern; move-result-object v0 .line 2 sput-object v0, Lcom/google/zxing/client/result/GeoResultParser;->GEO_URL_PATTERN:Ljava/util/regex/Pattern; return-void .end method .method public constructor ()V .locals 0 .line 1 invoke-direct {p0}, Lcom/google/zxing/client/result/ResultParser;->()V return-void .end method # virtual methods .method public parse(Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/GeoParsedResult; .locals 12 .line 2 invoke-static {p1}, Lcom/google/zxing/client/result/ResultParser;->getMassagedText(Lcom/google/zxing/Result;)Ljava/lang/String; move-result-object p1 .line 3 sget-object v0, Lcom/google/zxing/client/result/GeoResultParser;->GEO_URL_PATTERN:Ljava/util/regex/Pattern; invoke-virtual {v0, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object p1 .line 4 invoke-virtual {p1}, Ljava/util/regex/Matcher;->matches()Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_0 return-object v1 :cond_0 const/4 v0, 0x4 .line 5 invoke-virtual {p1, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object v9 const/4 v0, 0x1 .line 6 :try_start_0 invoke-virtual {p1, 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 v3 const-wide v5, 0x4056800000000000L # 90.0 cmpl-double v0, v3, v5 if-gtz v0, :cond_5 const-wide v5, -0x3fa9800000000000L # -90.0 cmpg-double v0, v3, v5 if-gez v0, :cond_1 goto :goto_1 :cond_1 const/4 v0, 0x2 .line 7 invoke-virtual {p1, 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 v5 const-wide v7, 0x4066800000000000L # 180.0 cmpl-double v0, v5, v7 if-gtz v0, :cond_5 const-wide v7, -0x3f99800000000000L # -180.0 cmpg-double v0, v5, v7 if-gez v0, :cond_2 goto :goto_1 :cond_2 const/4 v0, 0x3 .line 8 invoke-virtual {p1, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object v2 const-wide/16 v7, 0x0 if-nez v2, :cond_3 goto :goto_0 .line 9 :cond_3 invoke-virtual {p1, v0}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v10 :try_end_0 .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0 cmpg-double p1, v10, v7 if-gez p1, :cond_4 return-object v1 :cond_4 move-wide v7, v10 .line 10 :goto_0 new-instance p1, Lcom/google/zxing/client/result/GeoParsedResult; move-object v2, p1 invoke-direct/range {v2 .. v9}, Lcom/google/zxing/client/result/GeoParsedResult;->(DDDLjava/lang/String;)V return-object p1 :catch_0 :cond_5 :goto_1 return-object v1 .end method .method public bridge synthetic parse(Lcom/google/zxing/Result;)Lcom/google/zxing/client/result/ParsedResult; .locals 0 .line 1 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