.class public Lcom/luck/picture/lib/tools/MediaUtils; .super Ljava/lang/Object; .source "MediaUtils.java" # direct methods .method public constructor ()V .registers 1 .line 27 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static createImagePathUri(Landroid/content/Context;Ljava/lang/String;)Landroid/net/Uri; .registers 8 const/4 v0, 0x1 .line 36 new-array v0, v0, [Landroid/net/Uri; const/4 v1, 0x0 const/4 v2, 0x0 aput-object v1, v0, v2 .line 37 invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String; move-result-object v1 .line 38 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v3 invoke-static {v3, v4}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; move-result-object v3 .line 39 invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v4 if-eqz v4, :cond_1a move-object p1, v3 .line 41 :cond_1a new-instance v4, Landroid/content/ContentValues; const/4 v5, 0x3 invoke-direct {v4, v5}, Landroid/content/ContentValues;->(I)V .line 42 const-string v5, "_display_name" invoke-virtual {v4, v5, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V .line 43 const-string p1, "datetaken" invoke-virtual {v4, p1, v3}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V .line 44 const-string p1, "mime_type" const-string v3, "image/jpeg" invoke-virtual {v4, p1, v3}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V .line 46 const-string p1, "mounted" invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_4a .line 47 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 const-string p1, "external" .line 48 invoke-static {p1}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 invoke-virtual {p0, p1, v4}, Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri; move-result-object p0 aput-object p0, v0, v2 goto :goto_5a .line 50 :cond_4a invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 const-string p1, "internal" .line 51 invoke-static {p1}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 invoke-virtual {p0, p1, v4}, Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri; move-result-object p0 aput-object p0, v0, v2 .line 53 :goto_5a aget-object p0, v0, v2 return-object p0 .end method .method public static createImageVideoUri(Landroid/content/Context;Ljava/lang/String;)Landroid/net/Uri; .registers 8 const/4 v0, 0x1 .line 64 new-array v0, v0, [Landroid/net/Uri; const/4 v1, 0x0 const/4 v2, 0x0 aput-object v1, v0, v2 .line 65 invoke-static {}, Landroid/os/Environment;->getExternalStorageState()Ljava/lang/String; move-result-object v1 .line 66 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v3 invoke-static {v3, v4}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; move-result-object v3 .line 67 invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result v4 if-eqz v4, :cond_1a move-object p1, v3 .line 69 :cond_1a new-instance v4, Landroid/content/ContentValues; const/4 v5, 0x3 invoke-direct {v4, v5}, Landroid/content/ContentValues;->(I)V .line 70 const-string v5, "_display_name" invoke-virtual {v4, v5, p1}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V .line 71 const-string p1, "datetaken" invoke-virtual {v4, p1, v3}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V .line 72 const-string p1, "mime_type" const-string v3, "video/mp4" invoke-virtual {v4, p1, v3}, Landroid/content/ContentValues;->put(Ljava/lang/String;Ljava/lang/String;)V .line 74 const-string p1, "mounted" invoke-virtual {v1, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_4a .line 75 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 const-string p1, "external" .line 76 invoke-static {p1}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 invoke-virtual {p0, p1, v4}, Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri; move-result-object p0 aput-object p0, v0, v2 goto :goto_5a .line 78 :cond_4a invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 const-string p1, "internal" .line 79 invoke-static {p1}, Landroid/provider/MediaStore$Files;->getContentUri(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 invoke-virtual {p0, p1, v4}, Landroid/content/ContentResolver;->insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri; move-result-object p0 aput-object p0, v0, v2 .line 81 :goto_5a aget-object p0, v0, v2 return-object p0 .end method .method public static extractDuration(Landroid/content/Context;ZLjava/lang/String;)J .registers 3 if-eqz p1, :cond_b .line 93 invoke-static {p2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 invoke-static {p0, p1}, Lcom/luck/picture/lib/tools/MediaUtils;->getLocalDuration(Landroid/content/Context;Landroid/net/Uri;)J move-result-wide p0 goto :goto_f .line 94 :cond_b invoke-static {p2}, Lcom/luck/picture/lib/tools/MediaUtils;->getLocalDuration(Ljava/lang/String;)J move-result-wide p0 :goto_f return-wide p0 .end method .method public static getLastImageId(Landroid/content/Context;Z)I .registers 9 .line 265 const-string v3, "_data like ?" const/4 v6, -0x1 :try_start_3 invoke-static {p0}, Lcom/luck/picture/lib/tools/PictureFileUtils;->getDCIMCameraPath(Landroid/content/Context;)Ljava/lang/String; move-result-object v0 .line 266 const-string v5, "_id DESC" const/4 v1, 0x1 .line 270 new-array v4, v1, [Ljava/lang/String; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, "%" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 const/4 v1, 0x0 aput-object v0, v4, v1 .line 271 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v0 if-eqz p1, :cond_2b .line 272 sget-object p0, Landroid/provider/MediaStore$Video$Media;->EXTERNAL_CONTENT_URI:Landroid/net/Uri; goto :goto_2d .line 273 :cond_2b sget-object p0, Landroid/provider/MediaStore$Images$Media;->EXTERNAL_CONTENT_URI:Landroid/net/Uri; :goto_2d move-object v1, p0 const/4 v2, 0x0 .line 271 invoke-virtual/range {v0 .. v5}, 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 p0 .line 275 invoke-interface {p0}, Landroid/database/Cursor;->moveToFirst()Z move-result v0 :try_end_37 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_37} :catch_6a if-eqz v0, :cond_69 .line 276 const-string v0, "_id" if-eqz p1, :cond_42 .line 277 :try_start_3d invoke-interface {p0, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I move-result v0 goto :goto_46 .line 278 :cond_42 invoke-interface {p0, v0}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I move-result v0 .line 276 :goto_46 invoke-interface {p0, v0}, Landroid/database/Cursor;->getInt(I)I move-result v0 if-eqz p1, :cond_53 .line 280 const-string p1, "duration" invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I move-result p1 goto :goto_59 .line 281 :cond_53 const-string p1, "date_added" invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndex(Ljava/lang/String;)I move-result p1 .line 279 :goto_59 invoke-interface {p0, p1}, Landroid/database/Cursor;->getLong(I)J move-result-wide v1 .line 282 invoke-static {v1, v2}, Lcom/luck/picture/lib/tools/DateUtils;->dateDiffer(J)I move-result p1 .line 283 invoke-interface {p0}, Landroid/database/Cursor;->close()V :try_end_64 .catch Ljava/lang/Exception; {:try_start_3d .. :try_end_64} :catch_6a const/16 p0, 0x1e if-gt p1, p0, :cond_69 move v6, v0 :cond_69 return v6 :catch_6a move-exception p0 .line 290 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V return v6 .end method .method private static getLocalDuration(Landroid/content/Context;Landroid/net/Uri;)J .registers 3 .line 120 :try_start_0 new-instance v0, Landroid/media/MediaMetadataRetriever; invoke-direct {v0}, Landroid/media/MediaMetadataRetriever;->()V .line 121 invoke-virtual {v0, p0, p1}, Landroid/media/MediaMetadataRetriever;->setDataSource(Landroid/content/Context;Landroid/net/Uri;)V const/16 p0, 0x9 .line 123 invoke-virtual {v0, p0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object p0 .line 122 invoke-static {p0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide p0 :try_end_12 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_12} :catch_13 return-wide p0 :catch_13 move-exception p0 .line 125 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V const-wide/16 p0, 0x0 return-wide p0 .end method .method private static getLocalDuration(Ljava/lang/String;)J .registers 3 .line 137 :try_start_0 new-instance v0, Landroid/media/MediaMetadataRetriever; invoke-direct {v0}, Landroid/media/MediaMetadataRetriever;->()V .line 138 invoke-virtual {v0, p0}, Landroid/media/MediaMetadataRetriever;->setDataSource(Ljava/lang/String;)V const/16 p0, 0x9 .line 140 invoke-virtual {v0, p0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object p0 .line 139 invoke-static {p0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v0 :try_end_12 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_12} :catch_13 return-wide v0 :catch_13 move-exception p0 .line 142 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V const-wide/16 v0, 0x0 return-wide v0 .end method .method public static getLocalImageSizeToAndroidQ(Landroid/content/Context;Ljava/lang/String;)[I .registers 5 const/4 v0, 0x2 .line 178 new-array v0, v0, [I .line 180 :try_start_3 sget v1, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v2, 0x1a if-lt v1, v2, :cond_3e .line 181 invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; move-result-object p0 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 .line 182 invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 const/4 v1, 0x0 invoke-virtual {p0, p1, v1, v1, v1}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor; move-result-object p0 if-eqz p0, :cond_3e .line 185 invoke-interface {p0}, Landroid/database/Cursor;->moveToFirst()Z .line 186 const-string p1, "width" invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I move-result p1 invoke-interface {p0, p1}, Landroid/database/Cursor;->getInt(I)I move-result p1 const/4 v1, 0x0 aput p1, v0, v1 .line 188 const-string p1, "height" invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I move-result p1 invoke-interface {p0, p1}, Landroid/database/Cursor;->getInt(I)I move-result p0 const/4 p1, 0x1 aput p0, v0, p1 :try_end_39 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_39} :catch_3a goto :goto_3e :catch_3a move-exception p0 .line 193 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V :cond_3e :goto_3e return-object v0 .end method .method public static getLocalImageWidthOrHeight(Ljava/lang/String;)[I .registers 5 const/4 v0, 0x2 .line 244 new-array v0, v0, [I .line 246 :try_start_3 new-instance v1, Landroid/graphics/BitmapFactory$Options; invoke-direct {v1}, Landroid/graphics/BitmapFactory$Options;->()V const/4 v2, 0x1 .line 247 iput-boolean v2, v1, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z .line 248 invoke-static {p0, v1}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap; .line 249 iget p0, v1, Landroid/graphics/BitmapFactory$Options;->outWidth:I const/4 v3, 0x0 aput p0, v0, v3 .line 250 iget p0, v1, Landroid/graphics/BitmapFactory$Options;->outHeight:I aput p0, v0, v2 :try_end_17 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_17} :catch_18 goto :goto_1c :catch_18 move-exception p0 .line 252 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V :goto_1c return-object v0 .end method .method public static getLocalVideoSize(Landroid/content/Context;Landroid/net/Uri;)[I .registers 4 const/4 v0, 0x2 .line 224 new-array v0, v0, [I .line 226 :try_start_3 new-instance v1, Landroid/media/MediaMetadataRetriever; invoke-direct {v1}, Landroid/media/MediaMetadataRetriever;->()V .line 227 invoke-virtual {v1, p0, p1}, Landroid/media/MediaMetadataRetriever;->setDataSource(Landroid/content/Context;Landroid/net/Uri;)V const/16 p0, 0x12 .line 229 invoke-virtual {v1, p0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object p0 .line 228 invoke-static {p0}, Lcom/luck/picture/lib/tools/ValueOf;->toInt(Ljava/lang/Object;)I move-result p0 const/4 p1, 0x0 aput p0, v0, p1 const/16 p0, 0x13 .line 231 invoke-virtual {v1, p0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object p0 .line 230 invoke-static {p0}, Lcom/luck/picture/lib/tools/ValueOf;->toInt(Ljava/lang/Object;)I move-result p0 const/4 p1, 0x1 aput p0, v0, p1 :try_end_25 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_25} :catch_26 goto :goto_2a :catch_26 move-exception p0 .line 233 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V :goto_2a return-object v0 .end method .method public static getLocalVideoSize(Ljava/lang/String;)[I .registers 4 const/4 v0, 0x2 .line 204 new-array v0, v0, [I .line 206 :try_start_3 new-instance v1, Landroid/media/MediaMetadataRetriever; invoke-direct {v1}, Landroid/media/MediaMetadataRetriever;->()V .line 207 invoke-virtual {v1, p0}, Landroid/media/MediaMetadataRetriever;->setDataSource(Ljava/lang/String;)V const/16 p0, 0x12 .line 209 invoke-virtual {v1, p0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object p0 .line 208 invoke-static {p0}, Lcom/luck/picture/lib/tools/ValueOf;->toInt(Ljava/lang/Object;)I move-result p0 const/4 v2, 0x0 aput p0, v0, v2 const/16 p0, 0x13 .line 211 invoke-virtual {v1, p0}, Landroid/media/MediaMetadataRetriever;->extractMetadata(I)Ljava/lang/String; move-result-object p0 .line 210 invoke-static {p0}, Lcom/luck/picture/lib/tools/ValueOf;->toInt(Ljava/lang/Object;)I move-result p0 const/4 v1, 0x1 aput p0, v0, v1 :try_end_25 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_25} :catch_26 goto :goto_2a :catch_26 move-exception p0 .line 213 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V :goto_2a return-object v0 .end method .method public static getLocalVideoSizeToAndroidQ(Landroid/content/Context;Ljava/lang/String;)[I .registers 5 const/4 v0, 0x2 .line 153 new-array v0, v0, [I .line 155 :try_start_3 sget v1, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v2, 0x1a if-lt v1, v2, :cond_3e .line 156 invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; move-result-object p0 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 invoke-static {p1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 const/4 v1, 0x0 invoke-virtual {p0, p1, v1, v1, v1}, Landroid/content/ContentResolver;->query(Landroid/net/Uri;[Ljava/lang/String;Landroid/os/Bundle;Landroid/os/CancellationSignal;)Landroid/database/Cursor; move-result-object p0 if-eqz p0, :cond_3e .line 159 invoke-interface {p0}, Landroid/database/Cursor;->moveToFirst()Z .line 160 const-string p1, "width" invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I move-result p1 invoke-interface {p0, p1}, Landroid/database/Cursor;->getInt(I)I move-result p1 const/4 v1, 0x0 aput p1, v0, v1 .line 162 const-string p1, "height" invoke-interface {p0, p1}, Landroid/database/Cursor;->getColumnIndexOrThrow(Ljava/lang/String;)I move-result p1 invoke-interface {p0, p1}, Landroid/database/Cursor;->getInt(I)I move-result p0 const/4 p1, 0x1 aput p0, v0, p1 :try_end_39 .catch Ljava/lang/Exception; {:try_start_3 .. :try_end_39} :catch_3a goto :goto_3e :catch_3a move-exception p0 .line 167 invoke-virtual {p0}, Ljava/lang/Exception;->printStackTrace()V :cond_3e :goto_3e return-object v0 .end method .method public static isLongImg(Lcom/luck/picture/lib/entity/LocalMedia;)Z .registers 3 const/4 v0, 0x0 if-eqz p0, :cond_10 .line 105 invoke-virtual {p0}, Lcom/luck/picture/lib/entity/LocalMedia;->getWidth()I move-result v1 .line 106 invoke-virtual {p0}, Lcom/luck/picture/lib/entity/LocalMedia;->getHeight()I move-result p0 mul-int/lit8 v1, v1, 0x3 if-le p0, v1, :cond_10 const/4 v0, 0x1 :cond_10 return v0 .end method