Browse Source

Handle directory creation failure gracefully.

Miku AuahDark 3 years ago
parent
commit
96acf0a891

+ 5 - 0
app/src/main/java/org/love2d/android/GameActivity.java

@@ -135,6 +135,11 @@ public class GameActivity extends SDLActivity {
         super.onPause();
         super.onPause();
     }
     }
 
 
+    @Keep
+    public static DisplayMetrics getDisplayMetrics() {
+        return getDisplayDPI();
+    }
+
     @Keep
     @Keep
     public boolean hasEmbeddedGame() {
     public boolean hasEmbeddedGame() {
         AssetManager am = getAssets();
         AssetManager am = getAssets();

+ 8 - 11
app/src/normal/java/org/love2d/android/MainActivity.java

@@ -10,6 +10,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
 import android.content.Intent;
 import android.content.Intent;
 import android.os.Build;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.Menu;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.MenuItem;
@@ -23,6 +24,7 @@ import java.util.concurrent.Executors;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipFile;
 
 
 public class MainActivity extends AppCompatActivity {
 public class MainActivity extends AppCompatActivity {
+    private static final String TAG = "MainActivity";
 
 
     private Executor executor = Executors.newSingleThreadExecutor();
     private Executor executor = Executors.newSingleThreadExecutor();
 
 
@@ -95,24 +97,19 @@ public class MainActivity extends AppCompatActivity {
     }
     }
 
 
     private void scanGames(GameListAdapter adapter, ConstraintLayout noGameText, SwipeRefreshLayout swipeRefreshLayout) {
     private void scanGames(GameListAdapter adapter, ConstraintLayout noGameText, SwipeRefreshLayout swipeRefreshLayout) {
-        final MainActivity current = this;
-
         executor.execute(() -> {
         executor.execute(() -> {
             File extDir = getExternalFilesDir("games");
             File extDir = getExternalFilesDir("games");
 
 
             if (!extDir.isDirectory()) {
             if (!extDir.isDirectory()) {
                 if (!extDir.mkdir()) {
                 if (!extDir.mkdir()) {
                     // Scan failure, abort
                     // Scan failure, abort
-                    if (swipeRefreshLayout != null) {
-                        swipeRefreshLayout.setRefreshing(false);
-                    }
+                    runOnUiThread(() -> {
+                        if (swipeRefreshLayout != null) {
+                            swipeRefreshLayout.setRefreshing(false);
+                        }
+                    });
 
 
-                    new AlertDialog.Builder(current)
-                        .setTitle("Scan error")
-                        .setMessage("Scan failure")
-                        .setPositiveButton(R.string.ok, (dialog1, which) -> { })
-                        .create()
-                        .show();
+                    Log.e(TAG, "Directory creation failure.");
                     return;
                     return;
                 }
                 }
             }
             }