MaterialFilePicker

Additional

Language
Java
Version
N/A
Created
Oct 22, 2015
Updated
Feb 9, 2018
Owner
  (nbsp-team)
Contributors
Dima Merkurev (dimorinny)
lukaville
Asha (ashqal)
artemnikitin
Daniel Morales (GrenderG)
frogggias
Diego Francisco Concepción (costular)
frankyxcs
owniz
9
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.