MaterialFilePicker

Additional

Language
Java
Version
N/A
Created
Oct 22, 2015
Updated
Apr 24, 2018
Owner
  (nbsp-team)
Contributors
Dima Merkurev (dimorinny)
lukaville
Asha (ashqal)
artemnikitin
Daniel Morales (GrenderG)
frogggias
Diego Francisco Concepción (costular)
frankyxcs
owniz
prscX
10
Activity
Badge
Generate
Download
Source code
APK file

Blurb

Material File Picker

Material file picker library for Android

Using

Add repository url and dependency in application module gradle file:

repositories {
    maven {
        url  "http://dl.bintray.com/lukaville/maven" 
    }
}

dependencies {
    compile 'com.nbsp:library:1.8'
}

Open file picker:

new MaterialFilePicker()
    .withActivity(this)
    .withRequestCode(1)
    .withFilter(Pattern.compile(".*\\.txt$")) // Filtering files and directories by file name using regexp
    .withFilterDirectories(true) // Set directories filterable (false by default)
    .withHiddenFiles(true) // Show hidden files and folders
    .start();

or

Intent intent = new Intent(this, FilePickerActivity.class);
intent.putExtra(FilePickerActivity.ARG_FILE_FILTER, Pattern.compile(".*\\.txt$"));
intent.putExtra(FilePickerActivity.ARG_DIRECTORIES_FILTER, true);
intent.putExtra(FilePickerActivity.ARG_SHOW_HIDDEN, true);
startActivityForResult(intent, 1);

Override on activity result:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 1 && resultCode == RESULT_OK) {
        String filePath = data.getStringExtra(FilePickerActivity.RESULT_FILE_PATH);
        // Do anything with file
    }
}

Runtime permissions:

You should handle runtime permissions in activity, from what you called Material File Picker. Look here for example code.

Third Party Bindings

React Native

You may now use this library with React Native via the module here