diff options
| author | JosJuice <josjuice@gmail.com> | 2019-02-16 18:11:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-16 18:11:20 +0100 |
| commit | 286aafd4ed2949f0b93230fee969c6a32fe75f07 (patch) | |
| tree | 771d13874ca8f2eaf09842c4eb3aebedf30a0a92 /Source/Android/app/src/main/java | |
| parent | b5c3881fe703287c4f883ca42a3b931bb6594854 (diff) | |
| parent | c520a033be313b59d7545be01f33d4b7dd539f4d (diff) | |
Merge pull request #7791 from JosJuice/android-show-files
Android: Show files in the directory picker
Diffstat (limited to 'Source/Android/app/src/main/java')
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java index 372d9854ca..8197dfc955 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/CustomFilePickerFragment.java @@ -4,10 +4,7 @@ import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.content.FileProvider; -import android.util.TypedValue; -import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; import android.widget.TextView; import org.dolphinemu.dolphinemu.R; @@ -15,9 +12,15 @@ import org.dolphinemu.dolphinemu.R; import com.nononsenseapps.filepicker.FilePickerFragment; import java.io.File; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; public class CustomFilePickerFragment extends FilePickerFragment { + private static final Set<String> extensions = new HashSet<>(Arrays.asList( + "gcm", "tgc", "iso", "ciso", "gcz", "wbfs", "wad", "dol", "elf")); + @NonNull @Override public Uri toUri(@NonNull final File file) @@ -41,4 +44,33 @@ public class CustomFilePickerFragment extends FilePickerFragment cancel.setVisibility(View.GONE); } } + + @Override + protected boolean isItemVisible(@NonNull final File file) + { + // Some users jump to the conclusion that Dolphin isn't able to detect their + // files if the files don't show up in the file picker when mode == MODE_DIR. + // To avoid this, show files even when the user needs to select a directory. + + return (showHiddenItems || !file.isHidden()) && + (file.isDirectory() || + extensions.contains(fileExtension(file.getName()).toLowerCase())); + } + + @Override + public boolean isCheckable(@NonNull final File file) + { + // We need to make a small correction to the isCheckable logic due to + // overriding isItemVisible to show files when mode == MODE_DIR. + // AbstractFilePickerFragment always treats files as checkable when + // allowExistingFile == true, but we don't want files to be checkable when mode == MODE_DIR. + + return super.isCheckable(file) && !(mode == MODE_DIR && file.isFile()); + } + + private static String fileExtension(@NonNull String filename) + { + int i = filename.lastIndexOf('.'); + return i < 0 ? "" : filename.substring(i + 1); + } } |
