discord-jadx/app/src/main/java/androidx/documentfile/provider/DocumentFile.java

91 lines
2.4 KiB
Java

package androidx.documentfile.provider;
import android.content.Context;
import android.net.Uri;
import android.provider.DocumentsContract;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.io.File;
public abstract class DocumentFile {
public static final String TAG = "DocumentFile";
@Nullable
private final DocumentFile mParent;
public DocumentFile(@Nullable DocumentFile documentFile) {
this.mParent = documentFile;
}
@NonNull
public static DocumentFile fromFile(@NonNull File file) {
return new RawDocumentFile(null, file);
}
@Nullable
public static DocumentFile fromSingleUri(@NonNull Context context, @NonNull Uri uri) {
return new SingleDocumentFile(null, context, uri);
}
@Nullable
public static DocumentFile fromTreeUri(@NonNull Context context, @NonNull Uri uri) {
return new TreeDocumentFile(null, context, DocumentsContract.buildDocumentUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri)));
}
public static boolean isDocumentUri(@NonNull Context context, @Nullable Uri uri) {
return DocumentsContract.isDocumentUri(context, uri);
}
public abstract boolean canRead();
public abstract boolean canWrite();
@Nullable
public abstract DocumentFile createDirectory(@NonNull String str);
@Nullable
public abstract DocumentFile createFile(@NonNull String str, @NonNull String str2);
public abstract boolean delete();
public abstract boolean exists();
@Nullable
public DocumentFile findFile(@NonNull String str) {
DocumentFile[] listFiles = listFiles();
for (DocumentFile documentFile : listFiles) {
if (str.equals(documentFile.getName())) {
return documentFile;
}
}
return null;
}
@Nullable
public abstract String getName();
@Nullable
public DocumentFile getParentFile() {
return this.mParent;
}
@Nullable
public abstract String getType();
@NonNull
public abstract Uri getUri();
public abstract boolean isDirectory();
public abstract boolean isFile();
public abstract boolean isVirtual();
public abstract long lastModified();
public abstract long length();
@NonNull
public abstract DocumentFile[] listFiles();
public abstract boolean renameTo(@NonNull String str);
}