mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
156 lines
4.8 KiB
Java
156 lines
4.8 KiB
Java
package androidx.documentfile.provider;
|
|
|
|
import android.net.Uri;
|
|
import android.util.Log;
|
|
import android.webkit.MimeTypeMap;
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
|
|
/* loaded from: classes.dex */
|
|
class RawDocumentFile extends DocumentFile {
|
|
private File mFile;
|
|
|
|
@Override // androidx.documentfile.provider.DocumentFile
|
|
public boolean isVirtual() {
|
|
return false;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public RawDocumentFile(DocumentFile documentFile, File file) {
|
|
super(documentFile);
|
|
this.mFile = file;
|
|
}
|
|
|
|
@Override // androidx.documentfile.provider.DocumentFile
|
|
public DocumentFile createFile(String str, String str2) {
|
|
String extensionFromMimeType = MimeTypeMap.getSingleton().getExtensionFromMimeType(str);
|
|
if (extensionFromMimeType != null) {
|
|
str2 = 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 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
|
|
public Uri getUri() {
|
|
return Uri.fromFile(this.mFile);
|
|
}
|
|
|
|
@Override // androidx.documentfile.provider.DocumentFile
|
|
public String getName() {
|
|
return this.mFile.getName();
|
|
}
|
|
|
|
@Override // androidx.documentfile.provider.DocumentFile
|
|
public String getType() {
|
|
if (this.mFile.isDirectory()) {
|
|
return null;
|
|
}
|
|
return getTypeForName(this.mFile.getName());
|
|
}
|
|
|
|
@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 long lastModified() {
|
|
return this.mFile.lastModified();
|
|
}
|
|
|
|
@Override // androidx.documentfile.provider.DocumentFile
|
|
public long length() {
|
|
return this.mFile.length();
|
|
}
|
|
|
|
@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
|
|
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 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;
|
|
}
|
|
|
|
private static String getTypeForName(String str) {
|
|
int lastIndexOf = str.lastIndexOf(46);
|
|
if (lastIndexOf < 0) {
|
|
return "application/octet-stream";
|
|
}
|
|
String mimeTypeFromExtension = MimeTypeMap.getSingleton().getMimeTypeFromExtension(str.substring(lastIndexOf + 1).toLowerCase());
|
|
return mimeTypeFromExtension != null ? mimeTypeFromExtension : "application/octet-stream";
|
|
}
|
|
|
|
private static boolean deleteContents(File file) {
|
|
File[] listFiles = file.listFiles();
|
|
boolean z = true;
|
|
if (listFiles != null) {
|
|
for (File file2 : listFiles) {
|
|
if (file2.isDirectory()) {
|
|
z &= deleteContents(file2);
|
|
}
|
|
if (!file2.delete()) {
|
|
Log.w("DocumentFile", "Failed to delete " + file2);
|
|
z = false;
|
|
}
|
|
}
|
|
}
|
|
return z;
|
|
}
|
|
}
|