diff --git a/love/src/main/AndroidManifest.xml b/love/src/main/AndroidManifest.xml
index 8078c41d..b89f63a3 100644
--- a/love/src/main/AndroidManifest.xml
+++ b/love/src/main/AndroidManifest.xml
@@ -1,3 +1,5 @@
-
+
+
+
diff --git a/love/src/main/java/org/love2d/android/GameActivity.java b/love/src/main/java/org/love2d/android/GameActivity.java
index 8265b587..de9faecc 100644
--- a/love/src/main/java/org/love2d/android/GameActivity.java
+++ b/love/src/main/java/org/love2d/android/GameActivity.java
@@ -54,16 +54,14 @@ import androidx.annotation.Keep;
import androidx.core.app.ActivityCompat;
public class GameActivity extends SDLActivity {
- private static DisplayMetrics metrics = new DisplayMetrics();
+ private static DisplayMetrics metrics = null;
private static String gamePath = "";
- private static Context context;
private static Vibrator vibrator = null;
protected final int[] externalStorageRequestDummy = new int[1];
protected final int[] recordAudioRequestDummy = new int[1];
public static final int EXTERNAL_STORAGE_REQUEST_CODE = 2;
public static final int RECORD_AUDIO_REQUEST_CODE = 3;
private static boolean immersiveActive = false;
- private static boolean mustCacheArchive = false;
private static boolean needToCopyGameInArchive = false;
private boolean storagePermissionUnnecessary = false;
private boolean shortEdgesMode = false;
@@ -106,11 +104,9 @@ public class GameActivity extends SDLActivity {
protected void onCreate(Bundle savedInstanceState) {
Log.d("GameActivity", "started");
- context = this.getApplicationContext();
-
- int res = context.checkCallingOrSelfPermission(Manifest.permission.VIBRATE);
+ int res = checkCallingOrSelfPermission(Manifest.permission.VIBRATE);
if (res == PackageManager.PERMISSION_GRANTED) {
- vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+ vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
} else {
Log.d("GameActivity", "Vibration disabled: could not get vibration permission.");
}
@@ -118,12 +114,12 @@ public class GameActivity extends SDLActivity {
// These 2 variables must be reset or it will use the existing value.
gamePath = "";
storagePermissionUnnecessary = false;
- embed = context.getResources().getBoolean(R.bool.embed);
+ embed = getResources().getBoolean(R.bool.embed);
handleIntent(this.getIntent());
super.onCreate(savedInstanceState);
- getWindowManager().getDefaultDisplay().getMetrics(metrics);
+ metrics = getResources().getDisplayMetrics();
// Set low-latency audio values
nativeSetDefaultStreamValues(getAudioFreq(), getAudioSMP());
@@ -169,7 +165,7 @@ public class GameActivity extends SDLActivity {
try {
String filename = "game.love";
String[] pathSegments = path.split("/");
- if (pathSegments != null && pathSegments.length > 0) {
+ if (pathSegments.length > 0) {
filename = pathSegments[pathSegments.length - 1];
}
@@ -217,10 +213,10 @@ public class GameActivity extends SDLActivity {
// so that we can load it from native LÖVE code
AssetManager assetManager = getAssets();
InputStream gameStream = assetManager.open("game.love");
+ String destinationFile = this.getCacheDir().getPath() + "/game.love";
- String destination_file = this.getCacheDir().getPath() + "/game.love";
- if (mustCacheArchive && copyAssetFile(gameStream, destination_file))
- gamePath = destination_file;
+ if (copyAssetFile(gameStream, destinationFile))
+ gamePath = destinationFile;
else
gamePath = "game.love";
storagePermissionUnnecessary = true;
@@ -338,29 +334,29 @@ public class GameActivity extends SDLActivity {
*
* @return true if successful
*/
- boolean copyAssetFile(InputStream source_stream, String destinationFileName) {
+ boolean copyAssetFile(InputStream source, String destinationFileName) {
boolean success = false;
- BufferedOutputStream destination_stream = null;
+ BufferedOutputStream destination = null;
try {
- destination_stream = new BufferedOutputStream(new FileOutputStream(destinationFileName, false));
+ destination = new BufferedOutputStream(new FileOutputStream(destinationFileName, false));
} catch (IOException e) {
Log.d("GameActivity", "Could not open destination file: " + e.getMessage());
}
// perform the copying
- int chunk_read = 0;
+ int chunk_read;
int bytes_written = 0;
- assert (source_stream != null && destination_stream != null);
+ assert (source != null && destination != null);
try {
byte[] buf = new byte[1024];
- chunk_read = source_stream.read(buf);
+ chunk_read = source.read(buf);
do {
- destination_stream.write(buf, 0, chunk_read);
+ destination.write(buf, 0, chunk_read);
bytes_written += chunk_read;
- chunk_read = source_stream.read(buf);
+ chunk_read = source.read(buf);
} while (chunk_read != -1);
} catch (IOException e) {
Log.d("GameActivity", "Copying failed:" + e.getMessage());
@@ -368,8 +364,8 @@ public class GameActivity extends SDLActivity {
// close streams
try {
- if (source_stream != null) source_stream.close();
- if (destination_stream != null) destination_stream.close();
+ source.close();
+ destination.close();
success = true;
} catch (IOException e) {
Log.d("GameActivity", "Copying failed: " + e.getMessage());
@@ -449,7 +445,7 @@ public class GameActivity extends SDLActivity {
}
case RECORD_AUDIO_REQUEST_CODE: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- Log.d("GameActivity", "Mic ermission granted");
+ Log.d("GameActivity", "Mic permission granted");
} else {
Log.d("GameActivity", "Did not get mic permission.");
}