From 357b17e972e706bc166cfbb98b065c8c5c208b2d Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Sun, 4 Dec 2016 01:04:19 +0100 Subject: [PATCH] Improve setup of symlinks to external storage The context.getExternalFilesDirs(null) call may return several elements, and some of them may be null. --- app/src/main/java/com/termux/app/TermuxInstaller.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/termux/app/TermuxInstaller.java b/app/src/main/java/com/termux/app/TermuxInstaller.java index 2506c509..6e372bc0 100644 --- a/app/src/main/java/com/termux/app/TermuxInstaller.java +++ b/app/src/main/java/com/termux/app/TermuxInstaller.java @@ -257,9 +257,13 @@ final class TermuxInstaller { Os.symlink(moviesDir.getAbsolutePath(), new File(storageDir, "movies").getAbsolutePath()); final File[] dirs = context.getExternalFilesDirs(null); - if (dirs != null && dirs.length >= 2) { - final File externalDir = dirs[1]; - Os.symlink(externalDir.getAbsolutePath(), new File(storageDir, "external").getAbsolutePath()); + if (dirs != null && dirs.length > 1) { + for (int i = 1; i < dirs.length; i++) { + File dir = dirs[i]; + if (dir == null) continue; + String symlinkName = "external-" + i; + Os.symlink(dir.getAbsolutePath(), new File(storageDir, symlinkName).getAbsolutePath()); + } } } catch (Exception e) { Log.e(LOG_TAG, "Error setting up link", e);