Skip to content

Commit cc85377

Browse files
committed
Add option to show hidden files and folders
1 parent 4b9a19b commit cc85377

File tree

4 files changed

+33
-5
lines changed

4 files changed

+33
-5
lines changed

library/src/main/java/com/nbsp/materialfilepicker/MaterialFilePicker.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class MaterialFilePicker {
1717
private Boolean mDirectoriesFilter = false;
1818
private String mRootPath;
1919
private String mCurrentPath;
20+
private Boolean mShowHidden = false;
2021

2122
public MaterialFilePicker() {}
2223

@@ -50,6 +51,11 @@ public MaterialFilePicker withPath(String path) {
5051
return this;
5152
}
5253

54+
public MaterialFilePicker withHiddenFiles(boolean show) {
55+
mShowHidden = show;
56+
return this;
57+
}
58+
5359
public void start() {
5460
if (mActivity == null) {
5561
throw new RuntimeException("You must pass activity by calling withActivity method");
@@ -74,6 +80,8 @@ public void start() {
7480
intent.putExtra(FilePickerActivity.ARG_CURRENT_PATH, mCurrentPath);
7581
}
7682

83+
intent.putExtra(FilePickerActivity.ARG_SHOW_HIDDEN, mShowHidden);
84+
7785
mActivity.startActivityForResult(intent, mRequestCode);
7886
}
7987
}

library/src/main/java/com/nbsp/materialfilepicker/ui/DirectoryFragment.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,16 @@ interface FileClickListener {
2727
private static final String ARG_FILE_PATH = "arg_file_path";
2828
private static final String ARG_FILE_FILTER = "arg_regexp_file_filter";
2929
private static final String ARG_DIRECTORIES_FILTER = "arg_directories_filter";
30+
private static final String ARG_SHOW_HIDDEN = "arg_show_hidden";
3031

3132
private View mEmptyView;
3233
private String mPath;
3334

3435
@Nullable private Pattern mFileFilter;
3536
private boolean mDirectoryFilter;
3637

38+
private boolean mShowHidden;
39+
3740
private EmptyRecyclerView mDirectoryRecyclerView;
3841
private DirectoryAdapter mDirectoryAdapter;
3942
private FileClickListener mFileClickListener;
@@ -51,13 +54,15 @@ public void onDetach() {
5154
mFileClickListener = null;
5255
}
5356

54-
public static DirectoryFragment getInstance(String path, @Nullable Pattern filter, boolean directoriesFilter) {
57+
public static DirectoryFragment getInstance(
58+
String path, @Nullable Pattern filter, boolean directoriesFilter, boolean showHidden) {
5559
DirectoryFragment instance = new DirectoryFragment();
5660

5761
Bundle args = new Bundle();
5862
args.putString(ARG_FILE_PATH, path);
5963
args.putSerializable(ARG_FILE_FILTER, filter);
6064
args.putBoolean(ARG_DIRECTORIES_FILTER, directoriesFilter);
65+
args.putBoolean(ARG_SHOW_HIDDEN, showHidden);
6166
instance.setArguments(args);
6267

6368
return instance;
@@ -80,7 +85,8 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
8085
}
8186

8287
private void initFilesList() {
83-
mDirectoryAdapter = new DirectoryAdapter(getActivity(), FileUtils.getFileListByDirPath(mPath, mFileFilter, mDirectoryFilter));
88+
mDirectoryAdapter = new DirectoryAdapter(getActivity(),
89+
FileUtils.getFileListByDirPath(mPath, mFileFilter, mDirectoryFilter, mShowHidden));
8490

8591
mDirectoryAdapter.setOnItemClickListener(new DirectoryAdapter.OnItemClickListener() {
8692
@Override
@@ -102,5 +108,6 @@ private void initArgs() {
102108
}
103109
mDirectoryFilter = getArguments().getBoolean(ARG_DIRECTORIES_FILTER);
104110
mFileFilter = (Pattern) getArguments().getSerializable(ARG_FILE_FILTER);
111+
mShowHidden = getArguments().getBoolean(ARG_SHOW_HIDDEN, false);
105112
}
106113
}

library/src/main/java/com/nbsp/materialfilepicker/ui/FilePickerActivity.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class FilePickerActivity extends AppCompatActivity implements DirectoryFr
2626
public static final String ARG_DIRECTORIES_FILTER = "arg_directories_filter";
2727
public static final String ARG_START_PATH = "arg_start_path";
2828
public static final String ARG_CURRENT_PATH = "arg_current_path";
29+
public static final String ARG_SHOW_HIDDEN = "arg_show_hidden";
2930

3031
public static final String STATE_START_PATH = "state_start_path";
3132
private static final String STATE_CURRENT_PATH = "state_current_path";
@@ -40,6 +41,8 @@ public class FilePickerActivity extends AppCompatActivity implements DirectoryFr
4041
private Pattern mFileFilter;
4142
private boolean mDirectoriesFilter;
4243

44+
private boolean mShowHidden;
45+
4346
@Override
4447
protected void onCreate(Bundle savedInstanceState) {
4548
super.onCreate(savedInstanceState);
@@ -78,6 +81,10 @@ private void initArguments() {
7881
mCurrentPath = currentPath;
7982
}
8083
}
84+
85+
if (getIntent().hasExtra(ARG_SHOW_HIDDEN)) {
86+
mShowHidden = getIntent().getBooleanExtra(ARG_SHOW_HIDDEN, false);
87+
}
8188
}
8289

8390
private void initToolbar() {
@@ -106,7 +113,8 @@ private void initViews() {
106113

107114
private void initFragment() {
108115
getFragmentManager().beginTransaction()
109-
.add(R.id.container, DirectoryFragment.getInstance(mStartPath, mFileFilter, mDirectoriesFilter))
116+
.add(R.id.container, DirectoryFragment.getInstance(
117+
mStartPath, mFileFilter, mDirectoriesFilter, mShowHidden))
110118
.commit();
111119
}
112120

@@ -122,7 +130,8 @@ private void updateTitle() {
122130

123131
private void addFragmentToBackStack(String path) {
124132
getFragmentManager().beginTransaction()
125-
.replace(R.id.container, DirectoryFragment.getInstance(path, mFileFilter, mDirectoriesFilter))
133+
.replace(R.id.container, DirectoryFragment.getInstance(
134+
path, mFileFilter, mDirectoriesFilter, mShowHidden))
126135
.addToBackStack(null)
127136
.commit();
128137
}

library/src/main/java/com/nbsp/materialfilepicker/utils/FileUtils.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,18 @@
1515
public class FileUtils {
1616
public static List<File> getFileListByDirPath(String path,
1717
@Nullable Pattern fileFilter,
18-
boolean directoriesFilter) {
18+
boolean directoriesFilter,
19+
boolean showHidden) {
1920
File directory = new File(path);
2021
List<File> resultFiles = new ArrayList<>();
2122

2223
File[] files = directory.listFiles();
2324
if (files != null && files.length > 0) {
2425
for (File f : files) {
2526
if (f.isHidden()) {
27+
if (showHidden) {
28+
resultFiles.add(f);
29+
}
2630
continue;
2731
}
2832

0 commit comments

Comments
 (0)