From 2ec60eb2ea66aca787eb82a2cf9214af460e4d46 Mon Sep 17 00:00:00 2001 From: Anders Jenbo Date: Tue, 13 Jun 2023 15:57:00 +0200 Subject: [PATCH] Perform additional null checks in ExternalFilesManager (#6203) --- .../devilutionx/ExternalFilesManager.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/android-project/app/src/main/java/org/diasurgical/devilutionx/ExternalFilesManager.java b/android-project/app/src/main/java/org/diasurgical/devilutionx/ExternalFilesManager.java index 96d6f7ec3..fa9864633 100644 --- a/android-project/app/src/main/java/org/diasurgical/devilutionx/ExternalFilesManager.java +++ b/android-project/app/src/main/java/org/diasurgical/devilutionx/ExternalFilesManager.java @@ -59,20 +59,28 @@ public class ExternalFilesManager { if (Build.VERSION.SDK_INT >= 19) { File[] externalDirs = context.getExternalFilesDirs(null); - for (int i = 0; i < externalDirs.length; i++) { - File dir = externalDirs[i]; + for (File dir : externalDirs) { + if (dir == null) { + continue; + } File[] iniFiles = dir.listFiles((dir1, name) -> name.equals("diablo.ini")); - if (iniFiles.length > 0) + if (iniFiles != null && iniFiles.length > 0) { return dir.getAbsolutePath(); + } } - for (int i = 0; i < externalDirs.length; i++) { - File dir = externalDirs[i]; - if (dir.listFiles().length > 0) + for (File dir : externalDirs) { + if (dir == null) { + continue; + } + File[] lastFiles = dir.listFiles(); + if (lastFiles != null && lastFiles.length > 0) { return dir.getAbsolutePath(); + } } } + // Fallback to the primary external storage directory return context.getExternalFilesDir(null).getAbsolutePath(); }