Got initial directory picking working

This commit is contained in:
Corbin Crutchley 2020-06-25 17:35:35 -07:00
parent 9e74b6f345
commit 8b2e47bcc7
7 changed files with 60 additions and 6370 deletions

View File

@ -1,20 +0,0 @@
package com.rndirectorypicker;
import android.os.Build;
import android.graphics.Color;
import android.view.View;
import android.view.Window;
import android.app.Activity;
public class DirectoryPicker {
/**
* For usage in the React Module
*/
public static void changeBarColors(final Activity activity, final Boolean isDarkMode, final String translucentLightStr, final String translucentDarkStr) {
if (activity == null) {
return;
}
final Window window = activity.getWindow();
}
}

View File

@ -1,6 +1,13 @@
package com.rndirectorypicker;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
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;
@ -8,12 +15,20 @@ 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;
public class DirectoryPickerModule extends ReactContextBaseJavaModule {
private static final String ERROR_NO_ACTIVITY = "E_NO_ACTIVITY";
private static final String ERROR_NO_ACTIVITY_MESSAGE = "Tried to change the navigation bar while not attached to an Activity";
private Callback onDone;
private static final int RQS_OPEN_DOCUMENT_TREE = 2;
public DirectoryPickerModule(ReactApplicationContext reactContext) {
super(reactContext);
getReactApplicationContext().addActivityEventListener(new ActivityEventListener());
}
@Override
@ -22,12 +37,39 @@ public class DirectoryPickerModule extends ReactContextBaseJavaModule {
}
@ReactMethod
public void changeBarColors(final Boolean isDarkMode, Promise promise) {
DirectoryPicker.changeBarColors(
getCurrentActivity(),
isDarkMode,
"",
""
);
public void selectDirectory(final Callback onDone) {
Activity activity = getCurrentActivity();
if (activity == null) {
return;
}
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
activity.startActivityForResult(intent, RQS_OPEN_DOCUMENT_TREE);
this.onDone = onDone;
}
private class ActivityEventListener implements com.facebook.react.bridge.ActivityEventListener {
@Override
public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {
this.onActivityResult(requestCode, resultCode, data);
}
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();
Log.i("MYTAG", String.format("uriTree %s", uriTree.toString()));
}
}
@Override
public void onNewIntent(Intent intent) {
}
}
}

View File

@ -1,13 +1,9 @@
import { NativeModules } from "react-native";
const { ImmersiveBars } = NativeModules;
const { DirectoryPicker } = NativeModules;
const changeBarColors = (
isDarkMode = false,
translucentLightStr = "",
translucentDarkStr = "",
) => {
ImmersiveBars.changeBarColors(isDarkMode, translucentLightStr, translucentDarkStr);
const selectDirectory = (onDone) => {
DirectoryPicker.selectDirectory(onDone);
};
export { changeBarColors };
export { selectDirectory };

8
index.d.ts vendored
View File

@ -1,7 +1,5 @@
declare module "react-native-immersive-bars" {
export function changeBarColors(
isDarkMode: boolean,
translucentLightStr?: string,
translucentDarkStr?: string
declare module "react-native-directory-picker" {
export function selectDirectory(
onDone: () => {},
): void;
}

View File

@ -1,3 +1,3 @@
const changeBarColors = () => {};
const selectDirectory = () => {};
export { changeBarColors };
export { selectDirectory };

6325
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -26,8 +26,5 @@
"peerDependencies": {
"react-native": ">=0.57.0"
},
"homepage": "https://github.com/crutchcorn/react-native-immersive-bars#readme",
"devDependencies": {
"react-native": "^0.62.2"
}
"homepage": "https://github.com/crutchcorn/react-native-immersive-bars#readme"
}