mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-28 01:47:13 +00:00
Merge pull request #18890 from hrydgard/gradle-upgrade
Gradle upgrade again
This commit is contained in:
commit
70cc5da62f
@ -16,10 +16,8 @@ import android.os.storage.StorageManager;
|
||||
import android.content.ContentResolver;
|
||||
import android.database.Cursor;
|
||||
import android.provider.DocumentsContract;
|
||||
import android.os.Environment;
|
||||
import androidx.documentfile.provider.DocumentFile;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Locale;
|
||||
import java.util.UUID;
|
||||
@ -44,7 +42,6 @@ public class PpssppActivity extends NativeActivity {
|
||||
private static final int STORAGE_ERROR_DISK_FULL = -3;
|
||||
private static final int STORAGE_ERROR_ALREADY_EXISTS = -4;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void CheckABIAndLoadLibrary() {
|
||||
if (Build.CPU_ABI.equals("armeabi")) {
|
||||
m_hasUnsupportedABI = true;
|
||||
@ -53,7 +50,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
System.loadLibrary("ppsspp_jni");
|
||||
libraryLoaded = true;
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
Log.e(TAG, "LoadLibrary failed, UnsatifiedLinkError: " + e.toString());
|
||||
Log.e(TAG, "LoadLibrary failed, UnsatifiedLinkError: " + e);
|
||||
m_hasNoNativeBinary = true;
|
||||
}
|
||||
}
|
||||
@ -79,7 +76,6 @@ public class PpssppActivity extends NativeActivity {
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
if (m_hasUnsupportedABI || m_hasNoNativeBinary) {
|
||||
new Thread() {
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void run() {
|
||||
Looper.prepare();
|
||||
@ -162,7 +158,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
}
|
||||
return filePfd.detachFd(); // Take ownership of the fd.
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "openContentUri exception: " + e.toString());
|
||||
Log.e(TAG, "openContentUri exception: " + e);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -175,6 +171,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
DocumentsContract.Document.COLUMN_LAST_MODIFIED
|
||||
};
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.KITKAT)
|
||||
private String cursorToString(Cursor c) {
|
||||
final int flags = c.getInt(2);
|
||||
// Filter out any virtual or partial nonsense.
|
||||
@ -197,6 +194,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
return str + size + "|" + documentName + "|" + lastModified;
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
private long directorySizeRecursion(Uri uri) {
|
||||
Cursor c = null;
|
||||
try {
|
||||
@ -214,7 +212,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
|
||||
// Buffer the URIs so we only have one cursor active at once. I don't trust the storage framework
|
||||
// to handle more than one...
|
||||
ArrayList<Uri> childDirs = new ArrayList<Uri>();
|
||||
ArrayList<Uri> childDirs = new ArrayList<>();
|
||||
|
||||
while (c.moveToNext()) {
|
||||
final String mimeType = c.getString(2);
|
||||
@ -249,6 +247,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
}
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
public long computeRecursiveDirectorySize(String uriString) {
|
||||
try {
|
||||
Uri uri = Uri.parse(uriString);
|
||||
@ -256,14 +255,16 @@ public class PpssppActivity extends NativeActivity {
|
||||
return totalSize;
|
||||
}
|
||||
catch (Exception e) {
|
||||
Log.e(TAG, "computeRecursiveSize exception: " + e.toString());
|
||||
Log.e(TAG, "computeRecursiveSize exception: " + e);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Maybe add a cheaper version that doesn't extract all the file information?
|
||||
// TODO: Replace with a proper query:
|
||||
// * https://stackoverflow.com/questions/42186820/documentfile-is-very-slow
|
||||
// * https://stackoverflow.com/q
|
||||
// uestions/42186820/documentfile-is-very-slow
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
public String[] listContentUriDir(String uriString) {
|
||||
Cursor c = null;
|
||||
try {
|
||||
@ -273,6 +274,9 @@ public class PpssppActivity extends NativeActivity {
|
||||
uri, DocumentsContract.getDocumentId(uri));
|
||||
final ArrayList<String> listing = new ArrayList<>();
|
||||
c = resolver.query(childrenUri, columns, null, null, null);
|
||||
if (c == null) {
|
||||
return new String[]{ "X" };
|
||||
}
|
||||
while (c.moveToNext()) {
|
||||
String str = cursorToString(c);
|
||||
if (str != null) {
|
||||
@ -287,7 +291,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
// a FileNotFoundException if the directory doesn't exist.
|
||||
return new String[]{ "X" };
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "listContentUriDir exception: " + e.toString());
|
||||
Log.e(TAG, "listContentUriDir exception: " + e);
|
||||
return new String[]{ "X" };
|
||||
} finally {
|
||||
if (c != null) {
|
||||
@ -308,7 +312,7 @@ public class PpssppActivity extends NativeActivity {
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "contentUriCreateDirectory exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriCreateDirectory exception: " + e);
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
@ -322,11 +326,11 @@ public class PpssppActivity extends NativeActivity {
|
||||
DocumentFile createdFile = documentFile.createFile("application/octet-stream", fileName);
|
||||
return createdFile != null ? STORAGE_ERROR_SUCCESS : STORAGE_ERROR_UNKNOWN;
|
||||
} else {
|
||||
Log.e(TAG, "contentUriCreateFile: fromTreeUri returned null");
|
||||
Log.e(TAG, "contentUriCreateFile: fromTreeUrisv returned null");
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "contentUriCreateFile exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriCreateFile exception: " + e);
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
@ -341,26 +345,28 @@ public class PpssppActivity extends NativeActivity {
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "contentUriRemoveFile exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriRemoveFile exception: " + e);
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: The destination is the parent directory! This means that contentUriCopyFile
|
||||
// cannot rename things as part of the operation.
|
||||
@TargetApi(Build.VERSION_CODES.N)
|
||||
public int contentUriCopyFile(String srcFileUri, String dstParentDirUri) {
|
||||
try {
|
||||
Uri srcUri = Uri.parse(srcFileUri);
|
||||
Uri dstParentUri = Uri.parse(dstParentDirUri);
|
||||
return DocumentsContract.copyDocument(getContentResolver(), srcUri, dstParentUri) != null ? STORAGE_ERROR_SUCCESS : STORAGE_ERROR_UNKNOWN;
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "contentUriCopyFile exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriCopyFile exception: " + e);
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
// NOTE: The destination is the parent directory! This means that contentUriCopyFile
|
||||
// cannot rename things as part of the operation.
|
||||
@TargetApi(Build.VERSION_CODES.N_MR1)
|
||||
public int contentUriMoveFile(String srcFileUri, String srcParentDirUri, String dstParentDirUri) {
|
||||
try {
|
||||
Uri srcUri = Uri.parse(srcFileUri);
|
||||
@ -368,11 +374,12 @@ public class PpssppActivity extends NativeActivity {
|
||||
Uri dstParentUri = Uri.parse(dstParentDirUri);
|
||||
return DocumentsContract.moveDocument(getContentResolver(), srcUri, srcParentUri, dstParentUri) != null ? STORAGE_ERROR_SUCCESS : STORAGE_ERROR_UNKNOWN;
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "contentUriMoveFile exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriMoveFile exception: " + e);
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
public int contentUriRenameFileTo(String fileUri, String newName) {
|
||||
try {
|
||||
Uri uri = Uri.parse(fileUri);
|
||||
@ -380,10 +387,11 @@ public class PpssppActivity extends NativeActivity {
|
||||
// Instead we use the DocumentsContract API directly.
|
||||
// See https://stackoverflow.com/questions/37168200/android-5-0-new-sd-card-access-api-documentfile-renameto-unsupportedoperation.
|
||||
Uri newUri = DocumentsContract.renameDocument(getContentResolver(), uri, newName);
|
||||
// NOTE: we don't use the returned newUri for anything right now.
|
||||
return STORAGE_ERROR_SUCCESS;
|
||||
} catch (Exception e) {
|
||||
// TODO: More detailed exception processing.
|
||||
Log.e(TAG, "contentUriRenameFile exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriRenameFile exception: " + e);
|
||||
return STORAGE_ERROR_UNKNOWN;
|
||||
}
|
||||
}
|
||||
@ -391,7 +399,9 @@ public class PpssppActivity extends NativeActivity {
|
||||
private static void closeQuietly(AutoCloseable closeable) {
|
||||
if (closeable != null) {
|
||||
try {
|
||||
closeable.close();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
closeable.close();
|
||||
}
|
||||
} catch (RuntimeException rethrown) {
|
||||
throw rethrown;
|
||||
} catch (Exception ignored) {
|
||||
@ -401,17 +411,26 @@ public class PpssppActivity extends NativeActivity {
|
||||
|
||||
// Probably slightly faster than contentUriGetFileInfo.
|
||||
// Smaller difference now than before I changed that one to a query...
|
||||
@TargetApi(Build.VERSION_CODES.KITKAT)
|
||||
public boolean contentUriFileExists(String fileUri) {
|
||||
Cursor c = null;
|
||||
try {
|
||||
Uri uri = Uri.parse(fileUri);
|
||||
c = getContentResolver().query(uri, new String[] { DocumentsContract.Document.COLUMN_DOCUMENT_ID }, null, null, null);
|
||||
return c.getCount() > 0;
|
||||
if (c != null) {
|
||||
return c.getCount() > 0;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Log.w(TAG, "Failed query: " + e);
|
||||
return false;
|
||||
} finally {
|
||||
closeQuietly(c);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
||||
closeQuietly(c);
|
||||
} else if (c != null) {
|
||||
c.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -421,14 +440,13 @@ public class PpssppActivity extends NativeActivity {
|
||||
Uri uri = Uri.parse(fileName);
|
||||
final ContentResolver resolver = getContentResolver();
|
||||
c = resolver.query(uri, columns, null, null, null);
|
||||
if (c.moveToNext()) {
|
||||
String str = cursorToString(c);
|
||||
return str;
|
||||
if (c != null && c.moveToNext()) {
|
||||
return cursorToString(c);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "contentUriGetFileInfo exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriGetFileInfo exception: " + e);
|
||||
return null;
|
||||
} finally {
|
||||
if (c != null) {
|
||||
@ -440,11 +458,11 @@ public class PpssppActivity extends NativeActivity {
|
||||
// The example in Android documentation uses this.getFilesDir for path.
|
||||
// There's also a way to beg the OS for more space, which might clear caches, but
|
||||
// let's just not bother with that for now.
|
||||
@TargetApi(Build.VERSION_CODES.M)
|
||||
|
||||
public long contentUriGetFreeStorageSpace(String fileName) {
|
||||
try {
|
||||
Uri uri = Uri.parse(fileName);
|
||||
StorageManager storageManager = getApplicationContext().getSystemService(StorageManager.class);
|
||||
|
||||
ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "r");
|
||||
if (pfd == null) {
|
||||
Log.w(TAG, "Failed to get free storage space from URI: " + fileName);
|
||||
@ -457,20 +475,19 @@ public class PpssppActivity extends NativeActivity {
|
||||
} catch (Exception e) {
|
||||
// FileNotFoundException | ErrnoException e
|
||||
// Log.getStackTraceString(e)
|
||||
Log.e(TAG, "contentUriGetFreeStorageSpace exception: " + e.toString());
|
||||
Log.e(TAG, "contentUriGetFreeStorageSpace exception: " + e);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.O)
|
||||
public long filePathGetFreeStorageSpace(String filePath) {
|
||||
try {
|
||||
StorageManager storageManager = getApplicationContext().getSystemService(StorageManager.class);
|
||||
File file = new File(filePath);
|
||||
UUID volumeUUID = storageManager.getUuidForPath(file);
|
||||
long availableBytes = storageManager.getAllocatableBytes(volumeUUID);
|
||||
return availableBytes;
|
||||
return storageManager.getAllocatableBytes(volumeUUID);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "filePathGetFreeStorageSpace exception: " + e.toString());
|
||||
Log.e(TAG, "filePathGetFreeStorageSpace exception: " + e);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:8.2.1'
|
||||
classpath 'com.android.tools.build:gradle:8.2.2'
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user