diff --git a/README.md b/README.md index 686e99f..3f96095 100644 --- a/README.md +++ b/README.md @@ -6,3 +6,27 @@ [![Our npm path](https://badgen.net/npm/v/react-native-directory-picker)](https://www.npmjs.com/package/react-native-directory-picker/) + +## Install + +``` +npm i --save react-native-directory-picker +``` + +Or + +``` +yarn add react-native-directory-picker +``` + +## Usage + +### Usage in JavaScript + +```jsx +import {selectDirectory} from 'react-native-immersive-bars'; + +// ... + +selectDirectory((path) => console.log(`The path is ${path}`)); +``` diff --git a/android/src/main/java/com/rndirectorypicker/DirectoryPickerModule.java b/android/src/main/java/com/rndirectorypicker/DirectoryPickerModule.java index 4cfb189..36c0f3d 100644 --- a/android/src/main/java/com/rndirectorypicker/DirectoryPickerModule.java +++ b/android/src/main/java/com/rndirectorypicker/DirectoryPickerModule.java @@ -1,19 +1,17 @@ package com.rndirectorypicker; +import android.annotation.TargetApi; import android.app.Activity; import android.content.Intent; import android.net.Uri; -import android.support.v7.app.AppCompatActivity; +import android.os.Build; +import android.provider.DocumentsContract; import android.util.Log; -import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.Promise; -import com.facebook.react.bridge.WritableMap; -import com.facebook.react.uimanager.IllegalViewOperationException; import static android.app.Activity.RESULT_OK; @@ -49,7 +47,6 @@ public class DirectoryPickerModule extends ReactContextBaseJavaModule { this.onDone = onDone; } - private class ActivityEventListener implements com.facebook.react.bridge.ActivityEventListener { @Override @@ -57,14 +54,18 @@ public class DirectoryPickerModule extends ReactContextBaseJavaModule { this.onActivityResult(requestCode, resultCode, data); } + @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void onActivityResult(int requestCode, int resultCode, Intent data) { Log.i("MYTAG", String.format("requestCode %s", requestCode)); Log.i("MYTAG", String.format("resultCode %s", resultCode)); if(resultCode == RESULT_OK && requestCode == RQS_OPEN_DOCUMENT_TREE){ Uri uriTree = data.getData(); + Uri docUriTree = DocumentsContract.buildDocumentUriUsingTree(uriTree, DocumentsContract.getTreeDocumentId(uriTree)); - Log.i("MYTAG", String.format("uriTree %s", uriTree.toString())); + Log.i("MYTAG", String.format("docUriTree %s", docUriTree)); + + onDone.invoke(docUriTree.toString()); } } diff --git a/index.d.ts b/index.d.ts index cd18fad..fd179ab 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,5 +1,5 @@ declare module "react-native-directory-picker" { export function selectDirectory( - onDone: () => {}, + onDone: (path: string) => void, ): void; }