mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-27 06:35:39 +00:00
Merge pull request #7791 from JosJuice/android-show-files
Android: Show files in the directory picker
This commit is contained in:
commit
286aafd4ed
@ -4,10 +4,7 @@ import android.net.Uri;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.content.FileProvider;
|
import android.support.v4.content.FileProvider;
|
||||||
import android.util.TypedValue;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.dolphinemu.dolphinemu.R;
|
import org.dolphinemu.dolphinemu.R;
|
||||||
@ -15,9 +12,15 @@ import org.dolphinemu.dolphinemu.R;
|
|||||||
import com.nononsenseapps.filepicker.FilePickerFragment;
|
import com.nononsenseapps.filepicker.FilePickerFragment;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
public class CustomFilePickerFragment extends FilePickerFragment
|
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
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Uri toUri(@NonNull final File file)
|
public Uri toUri(@NonNull final File file)
|
||||||
@ -41,4 +44,33 @@ public class CustomFilePickerFragment extends FilePickerFragment
|
|||||||
cancel.setVisibility(View.GONE);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user