.class public Lcom/moji/postcard/presenter/PostCardExifAsyncTask; .super Lcom/moji/tool/thread/task/MJAsyncTask; .source "PostCardExifAsyncTask.java" # annotations .annotation system Ldalvik/annotation/Signature; value = { "Lcom/moji/tool/thread/task/MJAsyncTask<", "Ljava/lang/Integer;", "Ljava/lang/Integer;", "Ljava/lang/Integer;", ">;" } .end annotation # instance fields .field private a:Lcom/moji/postcard/domian/PostCardItem; .field private b:Landroid/content/Context; .field private c:Ljava/lang/Runnable; # direct methods .method public constructor (Lcom/moji/tool/thread/ThreadPriority;Lcom/moji/postcard/domian/PostCardItem;Landroid/content/Context;Ljava/lang/Runnable;)V .locals 0 .line 26 invoke-direct {p0, p1}, Lcom/moji/tool/thread/task/MJAsyncTask;->(Lcom/moji/tool/thread/ThreadPriority;)V .line 27 iput-object p2, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a:Lcom/moji/postcard/domian/PostCardItem; .line 28 iput-object p3, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->b:Landroid/content/Context; .line 29 iput-object p4, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->c:Ljava/lang/Runnable; return-void .end method .method private a(Ljava/lang/String;Ljava/lang/String;)D .locals 12 .line 113 invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 const-wide/16 v1, 0x0 if-eqz v0, :cond_0 return-wide v1 :cond_0 const-string v0, "," .line 116 invoke-virtual {p1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-eqz v0, :cond_7 const-string v0, "/" invoke-virtual {p1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z move-result v0 if-nez v0, :cond_1 goto/16 :goto_1 .line 119 :cond_1 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 const/4 v3, 0x1 if-gt v0, v3, :cond_2 return-wide v1 .line 124 :cond_2 invoke-static {p2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_4 const-string v0, "W" .line 125 invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_3 const-string v0, "S" invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p2 if-eqz p2, :cond_4 :cond_3 const/4 p2, 0x0 goto :goto_0 :cond_4 const/4 p2, 0x1 :goto_0 const/16 v0, 0x2d .line 129 invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C move-result v2 if-ne v0, v2, :cond_5 .line 131 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p2 invoke-virtual {p1, v3, p2}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 const/4 p2, 0x0 :cond_5 const-string v0, "," .line 133 invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object p1 .line 134 aget-object v0, p1, v1 const-string v2, "/" invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object v0 .line 135 aget-object v2, p1, v3 const-string v4, "/" invoke-virtual {v2, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object v2 const/4 v4, 0x2 .line 136 aget-object p1, p1, v4 const-string v4, "/" invoke-virtual {p1, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object p1 .line 137 aget-object v4, v0, v1 invoke-static {v4}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v4 aget-object v0, v0, v3 invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v6 div-double/2addr v4, v6 aget-object v0, v2, v1 .line 138 invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v6 aget-object v0, v2, v3 invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v8 const-wide/high16 v10, 0x404e000000000000L # 60.0 mul-double v8, v8, v10 div-double/2addr v6, v8 add-double/2addr v4, v6 aget-object v0, p1, v1 .line 139 invoke-static {v0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v0 aget-object p1, p1, v3 invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v2 const-wide v6, 0x40ac200000000000L # 3600.0 mul-double v2, v2, v6 div-double/2addr v0, v2 add-double/2addr v4, v0 if-eqz p2, :cond_6 return-wide v4 :cond_6 neg-double p1, v4 return-wide p1 :cond_7 :goto_1 return-wide v1 .end method .method private a(Ljava/lang/String;)Landroid/graphics/Point; .locals 2 .line 148 new-instance v0, Landroid/graphics/BitmapFactory$Options; invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;->()V const/4 v1, 0x1 .line 149 iput-boolean v1, v0, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z .line 150 invoke-static {p1, v0}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; .line 151 new-instance p1, Landroid/graphics/Point; invoke-direct {p1}, Landroid/graphics/Point;->()V .line 152 iget v1, v0, Landroid/graphics/BitmapFactory$Options;->outWidth:I iput v1, p1, Landroid/graphics/Point;->x:I .line 153 iget v0, v0, Landroid/graphics/BitmapFactory$Options;->outHeight:I iput v0, p1, Landroid/graphics/Point;->y:I return-object p1 .end method .method private a(Lcom/moji/postcard/domian/PostCardItem;)V .locals 7 .line 53 :try_start_0 new-instance v0, Landroid/media/ExifInterface; iget-object v1, p1, Lcom/moji/postcard/domian/PostCardItem;->originalUri:Landroid/net/Uri; invoke-virtual {v1}, Landroid/net/Uri;->getPath()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Landroid/media/ExifInterface;->(Ljava/lang/String;)V const-string v1, "ImageWidth" .line 54 invoke-virtual {v0, v1}, Landroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v2, "ImageLength" .line 55 invoke-virtual {v0, v2}, Landroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 57 invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v3 if-nez v3, :cond_3 invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v3 if-eqz v3, :cond_0 goto :goto_1 .line 62 :cond_0 invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v1 .line 63 invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v2 if-lez v1, :cond_2 if-gtz v2, :cond_1 goto :goto_0 :cond_1 move v6, v2 move v2, v1 move v1, v6 goto :goto_2 .line 65 :cond_2 :goto_0 iget-object v1, p1, Lcom/moji/postcard/domian/PostCardItem;->originalUri:Landroid/net/Uri; invoke-virtual {v1}, Landroid/net/Uri;->getPath()Ljava/lang/String; move-result-object v1 invoke-direct {p0, v1}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a(Ljava/lang/String;)Landroid/graphics/Point; move-result-object v1 .line 66 iget v2, v1, Landroid/graphics/Point;->x:I .line 67 iget v1, v1, Landroid/graphics/Point;->y:I goto :goto_2 .line 58 :cond_3 :goto_1 iget-object v1, p1, Lcom/moji/postcard/domian/PostCardItem;->originalUri:Landroid/net/Uri; invoke-virtual {v1}, Landroid/net/Uri;->getPath()Ljava/lang/String; move-result-object v1 invoke-direct {p0, v1}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a(Ljava/lang/String;)Landroid/graphics/Point; move-result-object v1 .line 59 iget v2, v1, Landroid/graphics/Point;->x:I .line 60 iget v1, v1, Landroid/graphics/Point;->y:I :goto_2 const-string v3, "Orientation" const/4 v4, 0x0 .line 70 invoke-virtual {v0, v3, v4}, Landroid/media/ExifInterface;->getAttributeInt(Ljava/lang/String;I)I move-result v3 const/4 v4, 0x6 if-eq v3, v4, :cond_5 const/16 v4, 0x8 if-ne v3, v4, :cond_4 goto :goto_3 :cond_4 move v6, v2 move v2, v1 move v1, v6 .line 76 :cond_5 :goto_3 iput v1, p1, Lcom/moji/postcard/domian/PostCardItem;->picture_width:I .line 77 iput v2, p1, Lcom/moji/postcard/domian/PostCardItem;->picture_height:I const-string v1, "GPSLongitude" .line 78 invoke-virtual {v0, v1}, Landroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 const-string v2, "GPSLatitude" .line 79 invoke-virtual {v0, v2}, Landroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v2 .line 80 invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v3 if-nez v3, :cond_7 invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v3 if-eqz v3, :cond_6 goto :goto_4 :cond_6 const-string v3, "GPSLongitudeRef" .line 83 invoke-virtual {v0, v3}, Landroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v3 const-string v4, "GPSLatitudeRef" .line 84 invoke-virtual {v0, v4}, Landroid/media/ExifInterface;->getAttribute(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 .line 85 invoke-direct {p0, v2, v0}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a(Ljava/lang/String;Ljava/lang/String;)D move-result-wide v4 iput-wide v4, p1, Lcom/moji/postcard/domian/PostCardItem;->latitude:D .line 86 invoke-direct {p0, v1, v3}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a(Ljava/lang/String;Ljava/lang/String;)D move-result-wide v0 iput-wide v0, p1, Lcom/moji/postcard/domian/PostCardItem;->longitude:D goto :goto_5 .line 81 :cond_7 :goto_4 invoke-direct {p0, p1}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->b(Lcom/moji/postcard/domian/PostCardItem;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_5 :catch_0 move-exception p1 const-string v0, "PostCardExifAsyncTask" .line 89 invoke-static {v0, p1}, Lcom/moji/tool/log/MJLogger;->a(Ljava/lang/String;Ljava/lang/Throwable;)V :goto_5 return-void .end method .method private b(Lcom/moji/postcard/domian/PostCardItem;)V .locals 9 const/4 v0, 0x2 .line 94 new-array v0, v0, [Ljava/lang/String; const-string v1, "latitude" const/4 v7, 0x0 aput-object v1, v0, v7 const-string v1, "longitude" const/4 v8, 0x1 aput-object v1, v0, v8 .line 97 iget-object v1, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->b:Landroid/content/Context; invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 sget-object v2, Landroid/provider/MediaStore$Images$Media;->EXTERNAL_CONTENT_URI:Landroid/net/Uri; const-string v4, "_data=?" new-array v5, v8, [Ljava/lang/String; iget-object v3, p1, Lcom/moji/postcard/domian/PostCardItem;->originalUri:Landroid/net/Uri; .line 100 invoke-virtual {v3}, Landroid/net/Uri;->getPath()Ljava/lang/String; move-result-object v3 aput-object v3, v5, v7 const/4 v6, 0x0 move-object v3, v0 .line 97 invoke-virtual/range {v1 .. v6}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; move-result-object v1 if-eqz v1, :cond_1 .line 103 :goto_0 invoke-interface {v1}, Landroid/database/Cursor;->moveToNext()Z move-result v2 if-eqz v2, :cond_0 .line 104 aget-object v2, v0, v7 invoke-interface {v1, v2}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I move-result v2 invoke-interface {v1, v2}, Landroid/database/Cursor;->getDouble(I)D move-result-wide v2 iput-wide v2, p1, Lcom/moji/postcard/domian/PostCardItem;->latitude:D .line 105 aget-object v2, v0, v8 invoke-interface {v1, v2}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I move-result v2 invoke-interface {v1, v2}, Landroid/database/Cursor;->getDouble(I)D move-result-wide v2 iput-wide v2, p1, Lcom/moji/postcard/domian/PostCardItem;->longitude:D goto :goto_0 .line 107 :cond_0 invoke-interface {v1}, Landroid/database/Cursor;->close()V :cond_1 return-void .end method # virtual methods .method protected varargs a([Ljava/lang/Integer;)Ljava/lang/Integer; .locals 0 .line 39 iget-object p1, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a:Lcom/moji/postcard/domian/PostCardItem; invoke-direct {p0, p1}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a(Lcom/moji/postcard/domian/PostCardItem;)V const/4 p1, 0x0 return-object p1 .end method .method protected bridge synthetic a([Ljava/lang/Object;)Ljava/lang/Object; .locals 0 .line 20 check-cast p1, [Ljava/lang/Integer; invoke-virtual {p0, p1}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a([Ljava/lang/Integer;)Ljava/lang/Integer; move-result-object p1 return-object p1 .end method .method protected a()V .locals 0 return-void .end method .method protected a(Ljava/lang/Integer;)V .locals 0 .line 45 iget-object p1, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->c:Ljava/lang/Runnable; if-eqz p1, :cond_0 .line 46 iget-object p1, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->c:Ljava/lang/Runnable; invoke-interface {p1}, Ljava/lang/Runnable;->run()V const/4 p1, 0x0 .line 47 iput-object p1, p0, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->c:Ljava/lang/Runnable; :cond_0 return-void .end method .method protected bridge synthetic a(Ljava/lang/Object;)V .locals 0 .line 20 check-cast p1, Ljava/lang/Integer; invoke-virtual {p0, p1}, Lcom/moji/postcard/presenter/PostCardExifAsyncTask;->a(Ljava/lang/Integer;)V return-void .end method