diff --git a/mobile/android/app/app.iml b/mobile/android/app/app.iml
index d5b763e..9379f70 100644
--- a/mobile/android/app/app.iml
+++ b/mobile/android/app/app.iml
@@ -150,5 +150,6 @@
+
\ No newline at end of file
diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle
index 91603a9..f10634d 100644
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -164,6 +164,7 @@ dependencies {
compile 'com.amazonaws:aws-android-sdk-cognito:2.2.+'
compile 'com.amazonaws:aws-android-sdk-cognitoidentityprovider:2.2.+'
compile project(':react-native-maps')
+ compile project(':react-native-image-picker')
}
// Run this once to be able to run the application with BUCK
diff --git a/mobile/android/app/src/main/AndroidManifest.xml b/mobile/android/app/src/main/AndroidManifest.xml
index 890a954..89e4f1b 100644
--- a/mobile/android/app/src/main/AndroidManifest.xml
+++ b/mobile/android/app/src/main/AndroidManifest.xml
@@ -7,6 +7,7 @@
+
getPackages() {
return Arrays.asList(
+ new MainReactPackage(),
new ReactViroPackage(ReactViroPackage.ViroPlatform.GVR),
new MapsPackage(),
- new MainReactPackage()
+ new ImagePickerPackage()
);
}
diff --git a/mobile/android/settings.gradle b/mobile/android/settings.gradle
index 99a09ad..8278951 100644
--- a/mobile/android/settings.gradle
+++ b/mobile/android/settings.gradle
@@ -10,3 +10,6 @@ project(':react_viro').projectDir = new File('../node_modules/react-viro/android
include ':react-native-maps'
project(':react-native-maps').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-maps/lib/android')
+
+include ':react-native-image-picker'
+project(':react-native-image-picker').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-image-picker/android')
diff --git a/mobile/package-lock.json b/mobile/package-lock.json
index 4925812..1800f8f 100644
--- a/mobile/package-lock.json
+++ b/mobile/package-lock.json
@@ -5418,6 +5418,11 @@
"prop-types": "15.6.1"
}
},
+ "react-native-image-picker": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmjs.org/react-native-image-picker/-/react-native-image-picker-0.26.7.tgz",
+ "integrity": "sha1-rS7pV/f2zAE5aJPqA9hMsq2y43Y="
+ },
"react-native-iphone-x-helper": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/react-native-iphone-x-helper/-/react-native-iphone-x-helper-1.0.2.tgz",
diff --git a/mobile/package.json b/mobile/package.json
index 7e6d708..362252e 100644
--- a/mobile/package.json
+++ b/mobile/package.json
@@ -26,6 +26,7 @@
"react": "^16.2.0",
"react-form-binder": "^1.2.0",
"react-native": "^0.49.3",
+ "react-native-image-picker": "^0.26.7",
"react-native-iphone-x-helper": "^1.0.2",
"react-native-keyboard-spacer": "^0.4.1",
"react-native-maps": "^0.20.1",
diff --git a/mobile/src/Home/Home.js b/mobile/src/Home/Home.js
index 1b44c6a..e3e35f9 100644
--- a/mobile/src/Home/Home.js
+++ b/mobile/src/Home/Home.js
@@ -47,6 +47,7 @@ export class Home extends React.Component {
[
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
PermissionsAndroid.PERMISSIONS.CAMERA,
+ PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
],
{
title: versionInfo.title,
diff --git a/mobile/src/ui/PhotoButton.js b/mobile/src/ui/PhotoButton.js
deleted file mode 100644
index e69de29..0000000
diff --git a/mobile/src/ui/PhotoPanel.js b/mobile/src/ui/PhotoPanel.js
index e06d41f..78a7364 100644
--- a/mobile/src/ui/PhotoPanel.js
+++ b/mobile/src/ui/PhotoPanel.js
@@ -8,6 +8,7 @@ import {
Dimensions,
} from "react-native"
import { Icon } from "."
+import ImagePicker from "react-native-image-picker"
import autobind from "autobind-decorator"
const getScreenPortraitDimensions = () => {
@@ -20,6 +21,36 @@ const getScreenPortraitDimensions = () => {
}
export class PhotoPanel extends Component {
+ @autobind
+ handlePhotoPress() {
+ ImagePicker.showImagePicker(
+ {
+ title: "Select Photo",
+ storageOptions: {
+ skipBackup: true,
+ path: "photos",
+ },
+ },
+ (response) => {
+ console.log("Response = ", response)
+
+ if (response.didCancel) {
+ console.log("User cancelled image picker")
+ } else if (response.error) {
+ console.log("ImagePicker Error: ", response.error)
+ } else if (response.customButton) {
+ console.log("User tapped custom button: ", response.customButton)
+ } else {
+ let source = { uri: response.uri }
+
+ // You can also display the image using data:
+ // let source = { uri: 'data:image/jpeg;base64,' + response.data };
+ console.log(source)
+ }
+ }
+ )
+ }
+
render() {
const { screenWidth, screenHeight } = getScreenPortraitDimensions()
const photoWidth = screenHeight / 4
@@ -62,7 +93,8 @@ export class PhotoPanel extends Component {
borderColor: "gray",
borderRadius: 4,
justifyContent: "center",
- }}>
+ }}
+ onPress={this.handlePhotoPress}>
))}