mirror of
https://github.com/love2d/love-android.git
synced 2026-08-12 00:20:57 +02:00
Minor reformat and fix.
This commit is contained in:
@@ -20,11 +20,6 @@
|
||||
|
||||
package org.love2d.android;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
|
||||
import org.libsdl.app.SDLActivity;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -43,6 +38,11 @@ import android.util.Log;
|
||||
import android.view.DisplayCutout;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.Keep;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
|
||||
import org.libsdl.app.SDLActivity;
|
||||
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -75,7 +75,7 @@ public class GameActivity extends SDLActivity {
|
||||
|
||||
@Override
|
||||
protected String[] getLibraries() {
|
||||
return new String[] {
|
||||
return new String[]{
|
||||
"c++_shared",
|
||||
"SDL2",
|
||||
"oboe",
|
||||
@@ -193,15 +193,12 @@ public class GameActivity extends SDLActivity {
|
||||
}
|
||||
}
|
||||
|
||||
if (inputStream != null) {
|
||||
try {
|
||||
inputStream.close();
|
||||
} catch (IOException e) {
|
||||
// Ignored
|
||||
}
|
||||
try {
|
||||
inputStream.close();
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
|
||||
return inputStream != null;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Keep
|
||||
@@ -235,7 +232,7 @@ public class GameActivity extends SDLActivity {
|
||||
HashMap<String, Boolean> map = buildFileTree(getAssets(), "", new HashMap<>());
|
||||
ArrayList<String> result = new ArrayList<>();
|
||||
|
||||
for (Map.Entry<String, Boolean> data: map.entrySet()) {
|
||||
for (Map.Entry<String, Boolean> data : map.entrySet()) {
|
||||
result.add((data.getValue() ? "d" : "f") + data.getKey());
|
||||
}
|
||||
|
||||
@@ -418,13 +415,12 @@ public class GameActivity extends SDLActivity {
|
||||
// Mark as file
|
||||
map.put(dir, true);
|
||||
|
||||
// This Object comparison is intentional.
|
||||
if (strippedDir != dir) {
|
||||
if (!strippedDir.equals(dir)) {
|
||||
map.put(strippedDir, true);
|
||||
}
|
||||
|
||||
if (list != null) {
|
||||
for (String path: list) {
|
||||
for (String path : list) {
|
||||
buildFileTree(assetManager, dir + path + "/", map);
|
||||
}
|
||||
}
|
||||
@@ -440,6 +436,10 @@ public class GameActivity extends SDLActivity {
|
||||
|
||||
try {
|
||||
ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "r");
|
||||
if (pfd == null) {
|
||||
throw new RuntimeException("pfd is null");
|
||||
}
|
||||
|
||||
fd = pfd.dup().detachFd();
|
||||
pfd.close();
|
||||
} catch (Exception e) {
|
||||
@@ -453,12 +453,14 @@ public class GameActivity extends SDLActivity {
|
||||
String scheme = game.getScheme();
|
||||
String path = game.getPath();
|
||||
|
||||
if (scheme.equals("content")) {
|
||||
// Convert the URI to file descriptor.
|
||||
args = new String[] {"/love2d://fd/" + convertToFileDescriptor(game)};
|
||||
} else if (scheme.equals("file")) {
|
||||
// Regular file, pass as-is.
|
||||
args = new String[] {path};
|
||||
if (scheme != null) {
|
||||
if (scheme.equals("content")) {
|
||||
// Convert the URI to file descriptor.
|
||||
args = new String[]{"/love2d://fd/" + convertToFileDescriptor(game)};
|
||||
} else if (scheme.equals("file")) {
|
||||
// Regular file, pass as-is.
|
||||
args = new String[]{path};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,14 +20,15 @@
|
||||
|
||||
package org.love2d.android;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
public class AboutActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
@@ -45,7 +46,11 @@ public class AboutActivity extends AppCompatActivity {
|
||||
});
|
||||
|
||||
// Set version
|
||||
TextView versionText = findViewById(R.id.textView4);
|
||||
versionText.setText(getString(R.string.version_info, BuildConfig.VERSION_NAME));
|
||||
try {
|
||||
String version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
|
||||
TextView versionText = findViewById(R.id.textView4);
|
||||
versionText.setText(getString(R.string.version_info, version));
|
||||
} catch (PackageManager.NameNotFoundException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Modified for use with LOVE by the LOVE Development Team
|
||||
* Copyright (C) 2023 LOVE Development Team
|
||||
* Modified for use with LOVE by the LOVE Development Team
|
||||
* Copyright (C) 2023 LOVE Development Team
|
||||
*/
|
||||
|
||||
package org.love2d.android;
|
||||
@@ -29,7 +29,6 @@ import android.database.MatrixCursor;
|
||||
import android.graphics.Point;
|
||||
import android.os.Build;
|
||||
import android.os.CancellationSignal;
|
||||
import android.os.Handler;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.provider.DocumentsContract.Document;
|
||||
import android.provider.DocumentsContract.Root;
|
||||
@@ -42,15 +41,11 @@ import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Objects;
|
||||
import java.util.PriorityQueue;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Manages documents and exposes them to the Android system for sharing.
|
||||
@@ -61,25 +56,25 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
// Use these as the default columns to return information about a root if no specific
|
||||
// columns are requested in a query.
|
||||
private static final String[] DEFAULT_ROOT_PROJECTION = new String[]{
|
||||
Root.COLUMN_ROOT_ID,
|
||||
Root.COLUMN_MIME_TYPES,
|
||||
Root.COLUMN_FLAGS,
|
||||
Root.COLUMN_ICON,
|
||||
Root.COLUMN_TITLE,
|
||||
Root.COLUMN_SUMMARY,
|
||||
Root.COLUMN_DOCUMENT_ID,
|
||||
Root.COLUMN_AVAILABLE_BYTES
|
||||
Root.COLUMN_ROOT_ID,
|
||||
Root.COLUMN_MIME_TYPES,
|
||||
Root.COLUMN_FLAGS,
|
||||
Root.COLUMN_ICON,
|
||||
Root.COLUMN_TITLE,
|
||||
Root.COLUMN_SUMMARY,
|
||||
Root.COLUMN_DOCUMENT_ID,
|
||||
Root.COLUMN_AVAILABLE_BYTES
|
||||
};
|
||||
|
||||
// Use these as the default columns to return information about a document if no specific
|
||||
// columns are requested in a query.
|
||||
private static final String[] DEFAULT_DOCUMENT_PROJECTION = new String[]{
|
||||
Document.COLUMN_DOCUMENT_ID,
|
||||
Document.COLUMN_MIME_TYPE,
|
||||
Document.COLUMN_DISPLAY_NAME,
|
||||
Document.COLUMN_LAST_MODIFIED,
|
||||
Document.COLUMN_FLAGS,
|
||||
Document.COLUMN_SIZE
|
||||
Document.COLUMN_DOCUMENT_ID,
|
||||
Document.COLUMN_MIME_TYPE,
|
||||
Document.COLUMN_DISPLAY_NAME,
|
||||
Document.COLUMN_LAST_MODIFIED,
|
||||
Document.COLUMN_FLAGS,
|
||||
Document.COLUMN_SIZE
|
||||
};
|
||||
|
||||
// No official policy on how many to return, but make sure you do limit the number of recent
|
||||
@@ -120,19 +115,13 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
// documents will show up in the "Recents" category. FLAG_SUPPORTS_SEARCH allows users
|
||||
// to search all documents the application shares. FLAG_SUPPORTS_IS_CHILD allows
|
||||
// testing parent child relationships, available after SDK 21 (Lollipop).
|
||||
if (SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
|
||||
row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE |
|
||||
Root.FLAG_SUPPORTS_RECENTS |
|
||||
Root.FLAG_SUPPORTS_SEARCH);
|
||||
} else {
|
||||
row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE |
|
||||
Root.FLAG_SUPPORTS_RECENTS |
|
||||
Root.FLAG_SUPPORTS_SEARCH |
|
||||
Root.FLAG_SUPPORTS_IS_CHILD);
|
||||
}
|
||||
row.add(Root.COLUMN_FLAGS, Root.FLAG_SUPPORTS_CREATE |
|
||||
Root.FLAG_SUPPORTS_RECENTS |
|
||||
Root.FLAG_SUPPORTS_SEARCH |
|
||||
Root.FLAG_SUPPORTS_IS_CHILD);
|
||||
|
||||
// COLUMN_TITLE is the root title (e.g. what will be displayed to identify your provider).
|
||||
row.add(Root.COLUMN_TITLE, getContext().getApplicationInfo().loadLabel(getContext().getPackageManager()).toString());
|
||||
row.add(Root.COLUMN_TITLE, Objects.requireNonNull(getContext()).getApplicationInfo().loadLabel(getContext().getPackageManager()).toString());
|
||||
|
||||
// This document id must be unique within this provider and consistent across time. The
|
||||
// system picker UI may save it and refer to it later.
|
||||
@@ -149,7 +138,7 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
|
||||
@Override
|
||||
public Cursor queryRecentDocuments(String rootId, String[] projection)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "queryRecentDocuments");
|
||||
|
||||
// This implementation walks a local file structure to find the most recently
|
||||
@@ -181,7 +170,11 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
final File file = pending.removeFirst();
|
||||
if (file.isDirectory()) {
|
||||
// If it's a directory, add all its children to the unprocessed list
|
||||
Collections.addAll(pending, file.listFiles());
|
||||
File[] files = file.listFiles();
|
||||
|
||||
if (files != null) {
|
||||
Collections.addAll(pending, files);
|
||||
}
|
||||
} else {
|
||||
// If it's a file, add it to the ordered queue.
|
||||
lastModifiedFiles.add(file);
|
||||
@@ -200,7 +193,7 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
|
||||
@Override
|
||||
public Cursor querySearchDocuments(String rootId, String query, String[] projection)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "querySearchDocuments");
|
||||
|
||||
// Create a cursor with the requested projection, or the default projection.
|
||||
@@ -225,7 +218,11 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
final File file = pending.removeFirst();
|
||||
if (file.isDirectory()) {
|
||||
// If it's a directory, add all its children to the unprocessed list
|
||||
Collections.addAll(pending, file.listFiles());
|
||||
File[] files = file.listFiles();
|
||||
|
||||
if (files != null) {
|
||||
Collections.addAll(pending, files);
|
||||
}
|
||||
} else {
|
||||
// If it's a file and it matches, add it to the result cursor.
|
||||
if (file.getName().toLowerCase().contains(query)) {
|
||||
@@ -239,18 +236,18 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
@Override
|
||||
public AssetFileDescriptor openDocumentThumbnail(String documentId, Point sizeHint,
|
||||
CancellationSignal signal)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "openDocumentThumbnail");
|
||||
|
||||
final File file = getFileForDocId(documentId);
|
||||
final ParcelFileDescriptor pfd =
|
||||
ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
|
||||
ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
|
||||
return new AssetFileDescriptor(pfd, 0, AssetFileDescriptor.UNKNOWN_LENGTH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Cursor queryDocument(String documentId, String[] projection)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "queryDocument");
|
||||
|
||||
// Create a cursor with the requested projection, or the default projection.
|
||||
@@ -263,14 +260,18 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
public Cursor queryChildDocuments(String parentDocumentId, String[] projection,
|
||||
String sortOrder) throws FileNotFoundException {
|
||||
Log.v(TAG, "queryChildDocuments, parentDocumentId: " +
|
||||
parentDocumentId +
|
||||
" sortOrder: " +
|
||||
sortOrder);
|
||||
parentDocumentId +
|
||||
" sortOrder: " +
|
||||
sortOrder);
|
||||
|
||||
final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection));
|
||||
final File parent = getFileForDocId(parentDocumentId);
|
||||
for (File file : parent.listFiles()) {
|
||||
includeFile(result, null, file);
|
||||
File[] files = parent.listFiles();
|
||||
|
||||
if (files != null) {
|
||||
for (File file : files) {
|
||||
includeFile(result, null, file);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -292,22 +293,18 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
@Override
|
||||
public boolean isChildDocument(String parentDocumentId, String documentId) {
|
||||
Log.v(TAG, "isChildDocument");
|
||||
if(documentId.startsWith(parentDocumentId)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return documentId.startsWith(parentDocumentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String createDocument(String documentId, String mimeType, String displayName)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "createDocument");
|
||||
|
||||
File parent = getFileForDocId(documentId);
|
||||
File file = new File(parent.getPath(), displayName);
|
||||
int conflictId = 1;
|
||||
while(file.exists()) {
|
||||
while (file.exists()) {
|
||||
file = new File(parent.getPath(), displayName + "(" + conflictId++ + ")");
|
||||
}
|
||||
try {
|
||||
@@ -321,18 +318,18 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
|
||||
if (!wasNewFileCreated) {
|
||||
throw new FileNotFoundException("Failed to create document with name " +
|
||||
displayName + " and documentId " + documentId);
|
||||
displayName + " and documentId " + documentId);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new FileNotFoundException("Failed to create document with name " +
|
||||
displayName + " and documentId " + documentId);
|
||||
displayName + " and documentId " + documentId);
|
||||
}
|
||||
return getDocIdForFile(file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String renameDocument(String documentId, String displayName)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "renameDocument");
|
||||
if (displayName == null) {
|
||||
throw new FileNotFoundException("Failed to rename document, new name is null");
|
||||
@@ -373,7 +370,7 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
|
||||
@Override
|
||||
public void removeDocument(String documentId, String parentDocumentId)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "removeDocument");
|
||||
File parent = getFileForDocId(parentDocumentId);
|
||||
File file = getFileForDocId(documentId);
|
||||
@@ -411,14 +408,14 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
Log.v(TAG, "copyDocument with document parent");
|
||||
if (!isChildDocument(sourceParentDocumentId, sourceDocumentId)) {
|
||||
throw new FileNotFoundException("Failed to copy document with id " +
|
||||
sourceDocumentId + ". Parent is not: " + sourceParentDocumentId);
|
||||
sourceDocumentId + ". Parent is not: " + sourceParentDocumentId);
|
||||
}
|
||||
return copyDocument(sourceDocumentId, targetParentDocumentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String copyDocument(String sourceDocumentId, String targetParentDocumentId)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
Log.v(TAG, "copyDocument");
|
||||
|
||||
File parent = getFileForDocId(targetParentDocumentId);
|
||||
@@ -426,13 +423,13 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
File newFile = new File(parent.getPath(), oldFile.getName());
|
||||
try {
|
||||
int conflictId = 1;
|
||||
while(newFile.exists()) {
|
||||
while (newFile.exists()) {
|
||||
newFile = new File(parent.getPath(), oldFile.getName() + "(" + conflictId++ + ")");
|
||||
}
|
||||
// Create the new File to copy into
|
||||
boolean wasNewFileCreated = false;
|
||||
boolean isDirectory = Document.MIME_TYPE_DIR.equals(getTypeForFile(oldFile));
|
||||
if(isDirectory) {
|
||||
if (isDirectory) {
|
||||
if (newFile.mkdir()) {
|
||||
if (newFile.setWritable(true) && newFile.setReadable(true)) {
|
||||
wasNewFileCreated = true;
|
||||
@@ -448,13 +445,13 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
|
||||
if (!wasNewFileCreated) {
|
||||
throw new FileNotFoundException("Failed to copy document " + sourceDocumentId +
|
||||
". Could not create new file.");
|
||||
". Could not create new file.");
|
||||
}
|
||||
|
||||
if(!isDirectory) {
|
||||
if (!isDirectory) {
|
||||
// Copy the bytes into the new file
|
||||
try (InputStream inStream = new FileInputStream(oldFile)) {
|
||||
try (OutputStream outStream = new FileOutputStream(newFile)) {
|
||||
try (FileInputStream inStream = new FileInputStream(oldFile)) {
|
||||
try (FileOutputStream outStream = new FileOutputStream(newFile)) {
|
||||
// Transfer bytes from in to out
|
||||
byte[] buf = new byte[16384]; // disk: 8-64k
|
||||
int len;
|
||||
@@ -466,7 +463,7 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new FileNotFoundException("Failed to copy document: " + sourceDocumentId +
|
||||
". " + e.getMessage());
|
||||
". " + e.getMessage());
|
||||
}
|
||||
return getDocIdForFile(newFile);
|
||||
}
|
||||
@@ -478,7 +475,7 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
try {
|
||||
// Copy document, insisting that the parent is correct
|
||||
String newDocumentId = copyDocument(sourceDocumentId, sourceParentDocumentId,
|
||||
targetParentDocumentId);
|
||||
targetParentDocumentId);
|
||||
// Remove old document
|
||||
removeDocument(sourceDocumentId, sourceParentDocumentId);
|
||||
return newDocumentId;
|
||||
@@ -530,7 +527,7 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
final int lastDot = name.lastIndexOf('.');
|
||||
if (lastDot >= 0) {
|
||||
final String extension = name.substring(lastDot + 1);
|
||||
if(extension == "love") {
|
||||
if (extension.equals("love")) {
|
||||
return "application/x-love-game";
|
||||
}
|
||||
final String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
|
||||
@@ -575,10 +572,9 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
* @param result the cursor to modify
|
||||
* @param docId the document ID representing the desired file (may be null if given file)
|
||||
* @param file the File object representing the desired file (may be null if given docID)
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
private void includeFile(MatrixCursor result, String docId, File file)
|
||||
throws FileNotFoundException {
|
||||
throws FileNotFoundException {
|
||||
if (docId == null) {
|
||||
docId = getDocIdForFile(file);
|
||||
} else {
|
||||
@@ -597,11 +593,8 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
// FLAG_SUPPORTS_DELETE
|
||||
flags |= Document.FLAG_SUPPORTS_WRITE;
|
||||
flags |= Document.FLAG_SUPPORTS_DELETE;
|
||||
flags |= Document.FLAG_SUPPORTS_RENAME;
|
||||
|
||||
// Add SDK specific flags if appropriate
|
||||
if (SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
flags |= Document.FLAG_SUPPORTS_RENAME;
|
||||
}
|
||||
if (SDK_INT >= Build.VERSION_CODES.N) {
|
||||
flags |= Document.FLAG_SUPPORTS_REMOVE;
|
||||
flags |= Document.FLAG_SUPPORTS_MOVE;
|
||||
@@ -619,8 +612,8 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
|
||||
final MatrixCursor.RowBuilder row = result.newRow();
|
||||
row.add(Document.COLUMN_DOCUMENT_ID, docId);
|
||||
if(file.getAbsolutePath() == mBaseDir.getAbsolutePath()) {
|
||||
row.add(Document.COLUMN_DISPLAY_NAME, getContext().getApplicationInfo().loadLabel(getContext().getPackageManager()).toString());
|
||||
if (file.getAbsolutePath().equals(mBaseDir.getAbsolutePath())) {
|
||||
row.add(Document.COLUMN_DISPLAY_NAME, Objects.requireNonNull(getContext()).getApplicationInfo().loadLabel(getContext().getPackageManager()).toString());
|
||||
} else {
|
||||
row.add(Document.COLUMN_DISPLAY_NAME, displayName);
|
||||
}
|
||||
@@ -630,7 +623,7 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
row.add(Document.COLUMN_FLAGS, flags);
|
||||
|
||||
// Add a custom icon
|
||||
if(mimeType == "application/x-love-game") {
|
||||
if (mimeType.equals("application/x-love-game")) {
|
||||
row.add(Document.COLUMN_ICON, R.drawable.love);
|
||||
} else {
|
||||
row.add(Document.COLUMN_ICON, null);
|
||||
@@ -642,7 +635,6 @@ public class LoveDocumentsProvider extends DocumentsProvider {
|
||||
*
|
||||
* @param docId the document ID representing the desired file
|
||||
* @return a File represented by the given document ID
|
||||
* @throws java.io.FileNotFoundException
|
||||
*/
|
||||
private File getFileForDocId(String docId) throws FileNotFoundException {
|
||||
File target = mBaseDir;
|
||||
|
||||
@@ -20,15 +20,6 @@
|
||||
|
||||
package org.love2d.android;
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -40,6 +31,15 @@ import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.activity.result.ActivityResultLauncher;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -74,7 +74,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
GameListAdapter adapter = new GameListAdapter();
|
||||
|
||||
// Set refresh listener
|
||||
// Set refresh listener
|
||||
swipeLayout.setOnRefreshListener(() -> {
|
||||
scanGames(adapter, noGameText, swipeLayout);
|
||||
});
|
||||
@@ -99,7 +99,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
// Handle item selection
|
||||
if (itemId == R.id.optionItem) {
|
||||
openFileLauncher.launch(new String[] {"*/*"});
|
||||
openFileLauncher.launch(new String[]{"*/*"});
|
||||
return true;
|
||||
} else if (itemId == R.id.optionItem2) {
|
||||
Intent intent = new Intent(this, GameActivity.class);
|
||||
@@ -120,7 +120,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
private AlertDialog getGameFolderDialog() {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this)
|
||||
.setTitle(getString(R.string.game_folder))
|
||||
.setPositiveButton(R.string.ok, (dialog1, which) -> { });
|
||||
.setPositiveButton(R.string.ok, (dialog1, which) -> {
|
||||
});
|
||||
StringBuilder message = new StringBuilder()
|
||||
.append(getString(R.string.game_folder_location, getPackageName()))
|
||||
.append("\n\n");
|
||||
@@ -211,7 +212,8 @@ public class MainActivity extends AppCompatActivity {
|
||||
ZipFile zip = new ZipFile(file, ZipFile.OPEN_READ);
|
||||
valid = zip.getEntry("main.lua") != null;
|
||||
zip.close();
|
||||
} catch (IOException ignored) { }
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
|
||||
return valid;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user