.class Landroidx/documentfile/provider/DocumentsContractApi19; .super Ljava/lang/Object; .source "DocumentsContractApi19.java" # static fields .field private static final FLAG_VIRTUAL_DOCUMENT:I = 0x200 .field private static final TAG:Ljava/lang/String; = "DocumentFile" # direct methods .method private constructor ()V .registers 1 .line 213 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static canRead(Landroid/content/Context;Landroid/net/Uri;)Z .registers 5 const/4 v0, 0x1 .line 94 invoke-virtual {p0, p1, v0}, Landroid/content/Context;->checkCallingOrSelfUriPermission(Landroid/net/Uri;I)I move-result v1 const/4 v2, 0x0 if-eqz v1, :cond_9 return v2 .line 100 :cond_9 invoke-static {p0, p1}, Landroidx/documentfile/provider/DocumentsContractApi19;->getRawType(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; move-result-object p0 invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result p0 if-eqz p0, :cond_14 return v2 :cond_14 return v0 .end method .method public static canWrite(Landroid/content/Context;Landroid/net/Uri;)Z .registers 6 const/4 v0, 0x2 .line 109 invoke-virtual {p0, p1, v0}, Landroid/content/Context;->checkCallingOrSelfUriPermission(Landroid/net/Uri;I)I move-result v1 const/4 v2, 0x0 if-eqz v1, :cond_9 return v2 .line 114 :cond_9 invoke-static {p0, p1}, Landroidx/documentfile/provider/DocumentsContractApi19;->getRawType(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; move-result-object v1 .line 115 const-string v3, "flags" invoke-static {p0, p1, v3, v2}, Landroidx/documentfile/provider/DocumentsContractApi19;->queryForInt(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;I)I move-result p0 .line 118 invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result p1 if-eqz p1, :cond_1a return v2 :cond_1a and-int/lit8 p1, p0, 0x4 const/4 v3, 0x1 if-eqz p1, :cond_20 return v3 .line 127 :cond_20 const-string p1, "vnd.android.document/directory" invoke-virtual {p1, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_2d and-int/lit8 p1, p0, 0x8 if-eqz p1, :cond_2d return v3 .line 131 :cond_2d invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result p1 if-nez p1, :cond_37 and-int/2addr p0, v0 if-eqz p0, :cond_37 return v3 :cond_37 return v2 .end method .method private static closeQuietly(Ljava/lang/AutoCloseable;)V .registers 1 if-eqz p0, :cond_8 .line 205 :try_start_2 invoke-interface {p0}, Ljava/lang/AutoCloseable;->close()V :try_end_5 .catch Ljava/lang/RuntimeException; {:try_start_2 .. :try_end_5} :catch_6 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_8 goto :goto_8 :catch_6 move-exception p0 .line 207 throw p0 :catch_8 :cond_8 :goto_8 return-void .end method .method public static exists(Landroid/content/Context;Landroid/net/Uri;)Z .registers 11 const-string v0, "Failed query: " .line 141 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 const/4 p0, 0x1 const/4 v7, 0x0 const/4 v8, 0x0 .line 145 :try_start_9 new-array v3, p0, [Ljava/lang/String; const-string v2, "document_id" aput-object v2, v3, v7 const/4 v5, 0x0 const/4 v6, 0x0 const/4 v4, 0x0 move-object v2, p1 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 v8 .line 147 invoke-interface {v8}, Landroid/database/Cursor;->getCount()I move-result p1 :try_end_1b .catch Ljava/lang/Exception; {:try_start_9 .. :try_end_1b} :catch_25 .catchall {:try_start_9 .. :try_end_1b} :catchall_23 if-lez p1, :cond_1e goto :goto_1f :cond_1e move p0, v7 .line 152 :goto_1f invoke-static {v8}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return p0 :catchall_23 move-exception p0 goto :goto_3c :catch_25 move-exception p0 .line 149 :try_start_26 const-string p1, "DocumentFile" new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I :try_end_38 .catchall {:try_start_26 .. :try_end_38} :catchall_23 .line 152 invoke-static {v8}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return v7 :goto_3c invoke-static {v8}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V throw p0 .end method .method public static getFlags(Landroid/content/Context;Landroid/net/Uri;)J .registers 5 .line 68 const-string v0, "flags" const-wide/16 v1, 0x0 invoke-static {p0, p1, v0, v1, v2}, Landroidx/documentfile/provider/DocumentsContractApi19;->queryForLong(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;J)J move-result-wide p0 return-wide p0 .end method .method public static getName(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; .registers 4 .line 49 const-string v0, "_display_name" const/4 v1, 0x0 invoke-static {p0, p1, v0, v1}, Landroidx/documentfile/provider/DocumentsContractApi19;->queryForString(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private static getRawType(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; .registers 4 .line 54 const-string v0, "mime_type" const/4 v1, 0x0 invoke-static {p0, p1, v0, v1}, Landroidx/documentfile/provider/DocumentsContractApi19;->queryForString(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static getType(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; .registers 2 .line 59 invoke-static {p0, p1}, Landroidx/documentfile/provider/DocumentsContractApi19;->getRawType(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; move-result-object p0 .line 60 const-string p1, "vnd.android.document/directory" invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_d const/4 p0, 0x0 :cond_d return-object p0 .end method .method public static isDirectory(Landroid/content/Context;Landroid/net/Uri;)Z .registers 3 .line 72 const-string v0, "vnd.android.document/directory" invoke-static {p0, p1}, Landroidx/documentfile/provider/DocumentsContractApi19;->getRawType(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; move-result-object p0 invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p0 return p0 .end method .method public static isFile(Landroid/content/Context;Landroid/net/Uri;)Z .registers 2 .line 76 invoke-static {p0, p1}, Landroidx/documentfile/provider/DocumentsContractApi19;->getRawType(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String; move-result-object p0 .line 77 const-string p1, "vnd.android.document/directory" invoke-virtual {p1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result p1 if-nez p1, :cond_15 invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z move-result p0 if-eqz p0, :cond_13 goto :goto_15 :cond_13 const/4 p0, 0x1 return p0 :cond_15 :goto_15 const/4 p0, 0x0 return p0 .end method .method public static isVirtual(Landroid/content/Context;Landroid/net/Uri;)Z .registers 6 .line 40 invoke-static {p0, p1}, Landroid/provider/DocumentsContract;->isDocumentUri(Landroid/content/Context;Landroid/net/Uri;)Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_8 return v1 .line 44 :cond_8 invoke-static {p0, p1}, Landroidx/documentfile/provider/DocumentsContractApi19;->getFlags(Landroid/content/Context;Landroid/net/Uri;)J move-result-wide p0 const-wide/16 v2, 0x200 and-long/2addr p0, v2 const-wide/16 v2, 0x0 cmp-long p0, p0, v2 if-eqz p0, :cond_16 const/4 v1, 0x1 :cond_16 return v1 .end method .method public static lastModified(Landroid/content/Context;Landroid/net/Uri;)J .registers 5 .line 85 const-string v0, "last_modified" const-wide/16 v1, 0x0 invoke-static {p0, p1, v0, v1, v2}, Landroidx/documentfile/provider/DocumentsContractApi19;->queryForLong(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;J)J move-result-wide p0 return-wide p0 .end method .method public static length(Landroid/content/Context;Landroid/net/Uri;)J .registers 5 .line 89 const-string v0, "_size" const-wide/16 v1, 0x0 invoke-static {p0, p1, v0, v1, v2}, Landroidx/documentfile/provider/DocumentsContractApi19;->queryForLong(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;J)J move-result-wide p0 return-wide p0 .end method .method private static queryForInt(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;I)I .registers 6 int-to-long v0, p3 .line 179 invoke-static {p0, p1, p2, v0, v1}, Landroidx/documentfile/provider/DocumentsContractApi19;->queryForLong(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;J)J move-result-wide p0 long-to-int p0, p0 return p0 .end method .method private static queryForLong(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;J)J .registers 13 const-string v0, "Failed query: " .line 184 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 const/4 p0, 0x1 const/4 v7, 0x0 .line 188 :try_start_8 new-array v3, p0, [Ljava/lang/String; const/4 p0, 0x0 aput-object p2, v3, p0 const/4 v5, 0x0 const/4 v6, 0x0 const/4 v4, 0x0 move-object v2, p1 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 v7 .line 189 invoke-interface {v7}, Landroid/database/Cursor;->moveToFirst()Z move-result p1 if-eqz p1, :cond_29 invoke-interface {v7, p0}, Landroid/database/Cursor;->isNull(I)Z move-result p1 if-nez p1, :cond_29 .line 190 invoke-interface {v7, p0}, Landroid/database/Cursor;->getLong(I)J move-result-wide p0 :try_end_25 .catch Ljava/lang/Exception; {:try_start_8 .. :try_end_25} :catch_2f .catchall {:try_start_8 .. :try_end_25} :catchall_2d .line 198 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return-wide p0 :cond_29 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return-wide p3 :catchall_2d move-exception p0 goto :goto_46 :catch_2f move-exception p0 .line 195 :try_start_30 const-string p1, "DocumentFile" new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I :try_end_42 .catchall {:try_start_30 .. :try_end_42} :catchall_2d .line 198 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return-wide p3 :goto_46 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V throw p0 .end method .method private static queryForString(Landroid/content/Context;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .registers 12 const-string v0, "Failed query: " .line 159 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object v1 const/4 p0, 0x1 const/4 v7, 0x0 .line 163 :try_start_8 new-array v3, p0, [Ljava/lang/String; const/4 p0, 0x0 aput-object p2, v3, p0 const/4 v5, 0x0 const/4 v6, 0x0 const/4 v4, 0x0 move-object v2, p1 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 v7 .line 164 invoke-interface {v7}, Landroid/database/Cursor;->moveToFirst()Z move-result p1 if-eqz p1, :cond_29 invoke-interface {v7, p0}, Landroid/database/Cursor;->isNull(I)Z move-result p1 if-nez p1, :cond_29 .line 165 invoke-interface {v7, p0}, Landroid/database/Cursor;->getString(I)Ljava/lang/String; move-result-object p0 :try_end_25 .catch Ljava/lang/Exception; {:try_start_8 .. :try_end_25} :catch_2f .catchall {:try_start_8 .. :try_end_25} :catchall_2d .line 173 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return-object p0 :cond_29 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return-object p3 :catchall_2d move-exception p0 goto :goto_46 :catch_2f move-exception p0 .line 170 :try_start_30 const-string p1, "DocumentFile" new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-static {p1, p0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I :try_end_42 .catchall {:try_start_30 .. :try_end_42} :catchall_2d .line 173 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V return-object p3 :goto_46 invoke-static {v7}, Landroidx/documentfile/provider/DocumentsContractApi19;->closeQuietly(Ljava/lang/AutoCloseable;)V throw p0 .end method