Skip to content
This repository was archived by the owner on Apr 25, 2023. It is now read-only.

Commit 419202a

Browse files
committed
WIP
1 parent 8b2e47b commit 419202a

File tree

3 files changed

+33
-8
lines changed

3 files changed

+33
-8
lines changed

README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,27 @@
66
[![Our npm path](https://badgen.net/npm/v/react-native-directory-picker)](https://www.npmjs.com/package/react-native-directory-picker/)
77

88
</div>
9+
10+
## Install
11+
12+
```
13+
npm i --save react-native-directory-picker
14+
```
15+
16+
Or
17+
18+
```
19+
yarn add react-native-directory-picker
20+
```
21+
22+
## Usage
23+
24+
### Usage in JavaScript
25+
26+
```jsx
27+
import {selectDirectory} from 'react-native-immersive-bars';
28+
29+
// ...
30+
31+
selectDirectory((path) => console.log(`The path is ${path}`));
32+
```

android/src/main/java/com/rndirectorypicker/DirectoryPickerModule.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
package com.rndirectorypicker;
22

3+
import android.annotation.TargetApi;
34
import android.app.Activity;
45
import android.content.Intent;
56
import android.net.Uri;
6-
import android.support.v7.app.AppCompatActivity;
7+
import android.os.Build;
8+
import android.provider.DocumentsContract;
79
import android.util.Log;
810

9-
import com.facebook.react.bridge.Arguments;
1011
import com.facebook.react.bridge.Callback;
1112
import com.facebook.react.bridge.ReactApplicationContext;
1213
import com.facebook.react.bridge.ReactContextBaseJavaModule;
1314
import com.facebook.react.bridge.ReactMethod;
14-
import com.facebook.react.bridge.Promise;
15-
import com.facebook.react.bridge.WritableMap;
16-
import com.facebook.react.uimanager.IllegalViewOperationException;
1715

1816
import static android.app.Activity.RESULT_OK;
1917

@@ -49,22 +47,25 @@ public void selectDirectory(final Callback onDone) {
4947
this.onDone = onDone;
5048
}
5149

52-
5350
private class ActivityEventListener implements com.facebook.react.bridge.ActivityEventListener {
5451

5552
@Override
5653
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {
5754
this.onActivityResult(requestCode, resultCode, data);
5855
}
5956

57+
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
6058
public void onActivityResult(int requestCode, int resultCode, Intent data) {
6159
Log.i("MYTAG", String.format("requestCode %s", requestCode));
6260
Log.i("MYTAG", String.format("resultCode %s", resultCode));
6361

6462
if(resultCode == RESULT_OK && requestCode == RQS_OPEN_DOCUMENT_TREE){
6563
Uri uriTree = data.getData();
64+
Uri docUriTree = DocumentsContract.buildDocumentUriUsingTree(uriTree, DocumentsContract.getTreeDocumentId(uriTree));
65+
66+
Log.i("MYTAG", String.format("docUriTree %s", docUriTree));
6667

67-
Log.i("MYTAG", String.format("uriTree %s", uriTree.toString()));
68+
onDone.invoke(docUriTree.toString());
6869
}
6970
}
7071

index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
declare module "react-native-directory-picker" {
22
export function selectDirectory(
3-
onDone: () => {},
3+
onDone: (path: string) => void,
44
): void;
55
}

0 commit comments

Comments
 (0)