From 8135fe42bfa36df72c427e8d567aad2182e14372 Mon Sep 17 00:00:00 2001 From: Kumar Damani Date: Tue, 23 Apr 2019 14:30:30 -0400 Subject: removing some unnecessary files from mobile --- mobile/screens/GreetingPage.js | 183 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 mobile/screens/GreetingPage.js (limited to 'mobile/screens/GreetingPage.js') diff --git a/mobile/screens/GreetingPage.js b/mobile/screens/GreetingPage.js new file mode 100644 index 0000000..0bfa63b --- /dev/null +++ b/mobile/screens/GreetingPage.js @@ -0,0 +1,183 @@ +import React, { Component } from 'react'; +import { Text, View, Alert, StyleSheet, Button, AppRegistry, Navigator, TouchableHighlight, Platform} from 'react-native'; +import { Ionicons } from '@expo/vector-icons'; +import { createStackNavigator, createAppContainer } from 'react-navigation'; +import { Location, Permissions, Constants } from 'expo'; + +export default class GreetingPage extends Component { + state = { + isLoading: false, + errorMessage: null, + locationResult: null, + }; + + moveToFormPage = async () => { + this.setState({isLoading: true}); + // ask location services to allow location access to THIS app. + // Note: location services itself must still be enabled for this! + const {status} = await Permissions.askAsync(Permissions.LOCATION); + if (status === 'granted') { + // try to actually get the location asynchronously - a Promise + Location.getCurrentPositionAsync({enableHighAccuracy: true}).then((position) => { + this.setState({locationResult: position.coords}, () => { + this.props.navigation.navigate('FormPage', + {coordinates : [ + this.state.locationResult.longitude, + this.state.locationResult.latitude] + }); + }); + // since we are guaranteed to have the location here, its safe to load the full view + this.setState({isLoading: false}); + // move to form page + }).catch((e) => { + this.setState({isLoading: false}); + alert(e + ' Please make sure your location (GPS) is turned on.'); + }); + + } else { + // if the user pressed "Deny" or something on the promt + throw new Error('Location permission not granted'); + } + }; + + moveToMapPage = () => { + this.props.navigation.navigate('MapPage'); + } + + moveToMapPage = () => { + this.props.navigation.navigate('MapPage'); + } + + + render() { + // acts like the way
does in JavaScript + //style={...} stores properties about where you want the component to be placed + //and how you want it to look. It's similar to adding CSS styles to HTML elements + //when creating web pages + + // initialy show a loading screen when trying to get location on load + if (this.state.isLoading) { + return ( + + + + Trying to get location... + + + + ) + } + + return ( + + + + + + See a homeless person who might need help? {"\n\n"}TELL US!! + + + Tell us where they are ⬇ {"\n\n"}(And don't worry, we won't force you to share your location) + + + + { this.moveToFormPage() }}> + + + + + + Use Current Location + + + + + + + + + + + + { this.moveToMapPage() }}> + + + + + Drop Pin + + + + + + + + + + + + ); + } +} + + +const styles = StyleSheet.create( { + container: { + flex: 1, + flexDirection: 'column', + backgroundColor: '#40739e', + alignItems: 'stretch' + }, + titleContainer: { + flex: 4, + //position: 'absolute', + marginTop: 100, + //flexGrow: 1 + }, + title: { + color: '#FFF', + padding: 35, + textAlign: 'center', + opacity: 0.9, + fontSize: 24, + fontStyle: 'italic', + }, + subtitle: { + color: "#FFF" , + padding: 20, + textAlign: "center", + fontSize: 18, + }, + current_location_title: { + color: '#FFF', + textAlign: 'center', + opacity: 0.9, + fontSize: 20 + }, + first_button_container: { + flex: 1, + //position: 'absolute', + //marginTop: 360, + backgroundColor: '#c0392b', + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'stretch' + }, + press_button: { + flexDirection: 'row', + justifyContent: 'space-between', + // padding:5, + alignItems: 'center' + }, + second_button_container: { + flex: 1, + backgroundColor: '#535c68', + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'stretch' + } +}) -- cgit v1.2.3