package androidx.documentfile.provider; import android.net.Uri; import android.util.Log; import android.webkit.MimeTypeMap; import androidx.annotation.Nullable; import c.d.b.a.a; import java.io.File; import java.io.IOException; import java.util.ArrayList; public class RawDocumentFile extends DocumentFile { private File mFile; public RawDocumentFile(@Nullable DocumentFile documentFile, File file) { super(documentFile); this.mFile = file; } private static boolean deleteContents(File file) { File[] listFiles = file.listFiles(); boolean z2 = true; if (listFiles != null) { for (File file2 : listFiles) { if (file2.isDirectory()) { z2 &= deleteContents(file2); } if (!file2.delete()) { Log.w("DocumentFile", "Failed to delete " + file2); z2 = false; } } } return z2; } private static String getTypeForName(String str) { String mimeTypeFromExtension; int lastIndexOf = str.lastIndexOf(46); return (lastIndexOf < 0 || (mimeTypeFromExtension = MimeTypeMap.getSingleton().getMimeTypeFromExtension(str.substring(lastIndexOf + 1).toLowerCase())) == null) ? "application/octet-stream" : mimeTypeFromExtension; } @Override // androidx.documentfile.provider.DocumentFile public boolean canRead() { return this.mFile.canRead(); } @Override // androidx.documentfile.provider.DocumentFile public boolean canWrite() { return this.mFile.canWrite(); } @Override // androidx.documentfile.provider.DocumentFile @Nullable public DocumentFile createDirectory(String str) { File file = new File(this.mFile, str); if (file.isDirectory() || file.mkdir()) { return new RawDocumentFile(this, file); } return null; } @Override // androidx.documentfile.provider.DocumentFile @Nullable public DocumentFile createFile(String str, String str2) { String extensionFromMimeType = MimeTypeMap.getSingleton().getExtensionFromMimeType(str); if (extensionFromMimeType != null) { str2 = a.u(str2, ".", extensionFromMimeType); } File file = new File(this.mFile, str2); try { file.createNewFile(); return new RawDocumentFile(this, file); } catch (IOException e) { Log.w("DocumentFile", "Failed to createFile: " + e); return null; } } @Override // androidx.documentfile.provider.DocumentFile public boolean delete() { deleteContents(this.mFile); return this.mFile.delete(); } @Override // androidx.documentfile.provider.DocumentFile public boolean exists() { return this.mFile.exists(); } @Override // androidx.documentfile.provider.DocumentFile public String getName() { return this.mFile.getName(); } @Override // androidx.documentfile.provider.DocumentFile @Nullable public String getType() { if (this.mFile.isDirectory()) { return null; } return getTypeForName(this.mFile.getName()); } @Override // androidx.documentfile.provider.DocumentFile public Uri getUri() { return Uri.fromFile(this.mFile); } @Override // androidx.documentfile.provider.DocumentFile public boolean isDirectory() { return this.mFile.isDirectory(); } @Override // androidx.documentfile.provider.DocumentFile public boolean isFile() { return this.mFile.isFile(); } @Override // androidx.documentfile.provider.DocumentFile public boolean isVirtual() { return false; } @Override // androidx.documentfile.provider.DocumentFile public long lastModified() { return this.mFile.lastModified(); } @Override // androidx.documentfile.provider.DocumentFile public long length() { return this.mFile.length(); } @Override // androidx.documentfile.provider.DocumentFile public DocumentFile[] listFiles() { ArrayList arrayList = new ArrayList(); File[] listFiles = this.mFile.listFiles(); if (listFiles != null) { for (File file : listFiles) { arrayList.add(new RawDocumentFile(this, file)); } } return (DocumentFile[]) arrayList.toArray(new DocumentFile[arrayList.size()]); } @Override // androidx.documentfile.provider.DocumentFile public boolean renameTo(String str) { File file = new File(this.mFile.getParentFile(), str); if (!this.mFile.renameTo(file)) { return false; } this.mFile = file; return true; } }