ADD week 5
This commit is contained in:
7
02-Easy5/E5/sources/androidx/documentfile/R.java
Normal file
7
02-Easy5/E5/sources/androidx/documentfile/R.java
Normal file
@ -0,0 +1,7 @@
|
||||
package androidx.documentfile;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public final class R {
|
||||
private R() {
|
||||
}
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
package androidx.documentfile.provider;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.provider.DocumentsContract;
|
||||
import java.io.File;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
public abstract class DocumentFile {
|
||||
static final String TAG = "DocumentFile";
|
||||
private final DocumentFile mParent;
|
||||
|
||||
public abstract boolean canRead();
|
||||
|
||||
public abstract boolean canWrite();
|
||||
|
||||
public abstract DocumentFile createDirectory(String str);
|
||||
|
||||
public abstract DocumentFile createFile(String str, String str2);
|
||||
|
||||
public abstract boolean delete();
|
||||
|
||||
public abstract boolean exists();
|
||||
|
||||
public abstract String getName();
|
||||
|
||||
public DocumentFile getParentFile() {
|
||||
return this.mParent;
|
||||
}
|
||||
|
||||
public abstract String getType();
|
||||
|
||||
public abstract Uri getUri();
|
||||
|
||||
public abstract boolean isDirectory();
|
||||
|
||||
public abstract boolean isFile();
|
||||
|
||||
public abstract boolean isVirtual();
|
||||
|
||||
public abstract long lastModified();
|
||||
|
||||
public abstract long length();
|
||||
|
||||
public abstract DocumentFile[] listFiles();
|
||||
|
||||
public abstract boolean renameTo(String str);
|
||||
|
||||
DocumentFile(DocumentFile documentFile) {
|
||||
this.mParent = documentFile;
|
||||
}
|
||||
|
||||
public static DocumentFile fromFile(File file) {
|
||||
return new RawDocumentFile(null, file);
|
||||
}
|
||||
|
||||
public static DocumentFile fromSingleUri(Context context, Uri uri) {
|
||||
return new SingleDocumentFile(null, context, uri);
|
||||
}
|
||||
|
||||
public static DocumentFile fromTreeUri(Context context, Uri uri) {
|
||||
return new TreeDocumentFile(null, context, DocumentsContract.buildDocumentUriUsingTree(uri, DocumentsContract.getTreeDocumentId(uri)));
|
||||
}
|
||||
|
||||
public static boolean isDocumentUri(Context context, Uri uri) {
|
||||
return DocumentsContract.isDocumentUri(context, uri);
|
||||
}
|
||||
|
||||
public DocumentFile findFile(String str) {
|
||||
for (DocumentFile documentFile : listFiles()) {
|
||||
if (str.equals(documentFile.getName())) {
|
||||
return documentFile;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,137 @@
|
||||
package androidx.documentfile.provider;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.provider.DocumentsContract;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
class DocumentsContractApi19 {
|
||||
private static final int FLAG_VIRTUAL_DOCUMENT = 512;
|
||||
private static final String TAG = "DocumentFile";
|
||||
|
||||
public static boolean isVirtual(Context context, Uri uri) {
|
||||
return DocumentsContract.isDocumentUri(context, uri) && (getFlags(context, uri) & 512) != 0;
|
||||
}
|
||||
|
||||
public static String getName(Context context, Uri uri) {
|
||||
return queryForString(context, uri, "_display_name", null);
|
||||
}
|
||||
|
||||
private static String getRawType(Context context, Uri uri) {
|
||||
return queryForString(context, uri, "mime_type", null);
|
||||
}
|
||||
|
||||
public static String getType(Context context, Uri uri) {
|
||||
String rawType = getRawType(context, uri);
|
||||
if ("vnd.android.document/directory".equals(rawType)) {
|
||||
return null;
|
||||
}
|
||||
return rawType;
|
||||
}
|
||||
|
||||
public static long getFlags(Context context, Uri uri) {
|
||||
return queryForLong(context, uri, "flags", 0L);
|
||||
}
|
||||
|
||||
public static boolean isDirectory(Context context, Uri uri) {
|
||||
return "vnd.android.document/directory".equals(getRawType(context, uri));
|
||||
}
|
||||
|
||||
public static boolean isFile(Context context, Uri uri) {
|
||||
String rawType = getRawType(context, uri);
|
||||
return ("vnd.android.document/directory".equals(rawType) || TextUtils.isEmpty(rawType)) ? false : true;
|
||||
}
|
||||
|
||||
public static long lastModified(Context context, Uri uri) {
|
||||
return queryForLong(context, uri, "last_modified", 0L);
|
||||
}
|
||||
|
||||
public static long length(Context context, Uri uri) {
|
||||
return queryForLong(context, uri, "_size", 0L);
|
||||
}
|
||||
|
||||
public static boolean canRead(Context context, Uri uri) {
|
||||
return context.checkCallingOrSelfUriPermission(uri, 1) == 0 && !TextUtils.isEmpty(getRawType(context, uri));
|
||||
}
|
||||
|
||||
public static boolean canWrite(Context context, Uri uri) {
|
||||
if (context.checkCallingOrSelfUriPermission(uri, 2) != 0) {
|
||||
return false;
|
||||
}
|
||||
String rawType = getRawType(context, uri);
|
||||
int queryForInt = queryForInt(context, uri, "flags", 0);
|
||||
if (TextUtils.isEmpty(rawType)) {
|
||||
return false;
|
||||
}
|
||||
if ((queryForInt & 4) != 0) {
|
||||
return true;
|
||||
}
|
||||
if (!"vnd.android.document/directory".equals(rawType) || (queryForInt & 8) == 0) {
|
||||
return (TextUtils.isEmpty(rawType) || (queryForInt & 2) == 0) ? false : true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean exists(Context context, Uri uri) {
|
||||
Cursor cursor = null;
|
||||
try {
|
||||
cursor = context.getContentResolver().query(uri, new String[]{"document_id"}, null, null, null);
|
||||
return cursor.getCount() > 0;
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "Failed query: " + e);
|
||||
return false;
|
||||
} finally {
|
||||
closeQuietly(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
private static String queryForString(Context context, Uri uri, String str, String str2) {
|
||||
ContentResolver contentResolver = context.getContentResolver();
|
||||
Cursor cursor = null;
|
||||
try {
|
||||
cursor = contentResolver.query(uri, new String[]{str}, null, null, null);
|
||||
return (!cursor.moveToFirst() || cursor.isNull(0)) ? str2 : cursor.getString(0);
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "Failed query: " + e);
|
||||
return str2;
|
||||
} finally {
|
||||
closeQuietly(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
private static int queryForInt(Context context, Uri uri, String str, int i) {
|
||||
return (int) queryForLong(context, uri, str, i);
|
||||
}
|
||||
|
||||
private static long queryForLong(Context context, Uri uri, String str, long j) {
|
||||
ContentResolver contentResolver = context.getContentResolver();
|
||||
Cursor cursor = null;
|
||||
try {
|
||||
cursor = contentResolver.query(uri, new String[]{str}, null, null, null);
|
||||
return (!cursor.moveToFirst() || cursor.isNull(0)) ? j : cursor.getLong(0);
|
||||
} catch (Exception e) {
|
||||
Log.w(TAG, "Failed query: " + e);
|
||||
return j;
|
||||
} finally {
|
||||
closeQuietly(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
private static void closeQuietly(AutoCloseable autoCloseable) {
|
||||
if (autoCloseable != null) {
|
||||
try {
|
||||
autoCloseable.close();
|
||||
} catch (RuntimeException e) {
|
||||
throw e;
|
||||
} catch (Exception unused) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private DocumentsContractApi19() {
|
||||
}
|
||||
}
|
@ -0,0 +1,155 @@
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
@ -0,0 +1,101 @@
|
||||
package androidx.documentfile.provider;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.provider.DocumentsContract;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
class SingleDocumentFile extends DocumentFile {
|
||||
private Context mContext;
|
||||
private Uri mUri;
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public Uri getUri() {
|
||||
return this.mUri;
|
||||
}
|
||||
|
||||
SingleDocumentFile(DocumentFile documentFile, Context context, Uri uri) {
|
||||
super(documentFile);
|
||||
this.mContext = context;
|
||||
this.mUri = uri;
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public DocumentFile createFile(String str, String str2) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public DocumentFile createDirectory(String str) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public String getName() {
|
||||
return DocumentsContractApi19.getName(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public String getType() {
|
||||
return DocumentsContractApi19.getType(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean isDirectory() {
|
||||
return DocumentsContractApi19.isDirectory(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean isFile() {
|
||||
return DocumentsContractApi19.isFile(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean isVirtual() {
|
||||
return DocumentsContractApi19.isVirtual(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public long lastModified() {
|
||||
return DocumentsContractApi19.lastModified(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public long length() {
|
||||
return DocumentsContractApi19.length(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean canRead() {
|
||||
return DocumentsContractApi19.canRead(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean canWrite() {
|
||||
return DocumentsContractApi19.canWrite(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean delete() {
|
||||
try {
|
||||
return DocumentsContract.deleteDocument(this.mContext.getContentResolver(), this.mUri);
|
||||
} catch (Exception unused) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean exists() {
|
||||
return DocumentsContractApi19.exists(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public DocumentFile[] listFiles() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean renameTo(String str) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
@ -0,0 +1,162 @@
|
||||
package androidx.documentfile.provider;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.provider.DocumentsContract;
|
||||
import android.util.Log;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/* loaded from: classes.dex */
|
||||
class TreeDocumentFile extends DocumentFile {
|
||||
private Context mContext;
|
||||
private Uri mUri;
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public Uri getUri() {
|
||||
return this.mUri;
|
||||
}
|
||||
|
||||
TreeDocumentFile(DocumentFile documentFile, Context context, Uri uri) {
|
||||
super(documentFile);
|
||||
this.mContext = context;
|
||||
this.mUri = uri;
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public DocumentFile createFile(String str, String str2) {
|
||||
Uri createFile = createFile(this.mContext, this.mUri, str, str2);
|
||||
if (createFile != null) {
|
||||
return new TreeDocumentFile(this, this.mContext, createFile);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static Uri createFile(Context context, Uri uri, String str, String str2) {
|
||||
try {
|
||||
return DocumentsContract.createDocument(context.getContentResolver(), uri, str, str2);
|
||||
} catch (Exception unused) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public DocumentFile createDirectory(String str) {
|
||||
Uri createFile = createFile(this.mContext, this.mUri, "vnd.android.document/directory", str);
|
||||
if (createFile != null) {
|
||||
return new TreeDocumentFile(this, this.mContext, createFile);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public String getName() {
|
||||
return DocumentsContractApi19.getName(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public String getType() {
|
||||
return DocumentsContractApi19.getType(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean isDirectory() {
|
||||
return DocumentsContractApi19.isDirectory(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean isFile() {
|
||||
return DocumentsContractApi19.isFile(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean isVirtual() {
|
||||
return DocumentsContractApi19.isVirtual(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public long lastModified() {
|
||||
return DocumentsContractApi19.lastModified(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public long length() {
|
||||
return DocumentsContractApi19.length(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean canRead() {
|
||||
return DocumentsContractApi19.canRead(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean canWrite() {
|
||||
return DocumentsContractApi19.canWrite(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean delete() {
|
||||
try {
|
||||
return DocumentsContract.deleteDocument(this.mContext.getContentResolver(), this.mUri);
|
||||
} catch (Exception unused) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean exists() {
|
||||
return DocumentsContractApi19.exists(this.mContext, this.mUri);
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public DocumentFile[] listFiles() {
|
||||
ContentResolver contentResolver = this.mContext.getContentResolver();
|
||||
Uri uri = this.mUri;
|
||||
Uri buildChildDocumentsUriUsingTree = DocumentsContract.buildChildDocumentsUriUsingTree(uri, DocumentsContract.getDocumentId(uri));
|
||||
ArrayList arrayList = new ArrayList();
|
||||
Cursor cursor = null;
|
||||
try {
|
||||
try {
|
||||
cursor = contentResolver.query(buildChildDocumentsUriUsingTree, new String[]{"document_id"}, null, null, null);
|
||||
while (cursor.moveToNext()) {
|
||||
arrayList.add(DocumentsContract.buildDocumentUriUsingTree(this.mUri, cursor.getString(0)));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.w("DocumentFile", "Failed query: " + e);
|
||||
}
|
||||
Uri[] uriArr = (Uri[]) arrayList.toArray(new Uri[arrayList.size()]);
|
||||
DocumentFile[] documentFileArr = new DocumentFile[uriArr.length];
|
||||
for (int i = 0; i < uriArr.length; i++) {
|
||||
documentFileArr[i] = new TreeDocumentFile(this, this.mContext, uriArr[i]);
|
||||
}
|
||||
return documentFileArr;
|
||||
} finally {
|
||||
closeQuietly(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
private static void closeQuietly(AutoCloseable autoCloseable) {
|
||||
if (autoCloseable != null) {
|
||||
try {
|
||||
autoCloseable.close();
|
||||
} catch (RuntimeException e) {
|
||||
throw e;
|
||||
} catch (Exception unused) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // androidx.documentfile.provider.DocumentFile
|
||||
public boolean renameTo(String str) {
|
||||
try {
|
||||
Uri renameDocument = DocumentsContract.renameDocument(this.mContext.getContentResolver(), this.mUri, str);
|
||||
if (renameDocument != null) {
|
||||
this.mUri = renameDocument;
|
||||
return true;
|
||||
}
|
||||
} catch (Exception unused) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user