From ea15132d598a000e7723e2079766b17bc952aeff Mon Sep 17 00:00:00 2001 From: John Lyon-Smith Date: Thu, 28 Jun 2018 08:32:00 -0700 Subject: [PATCH] Revert to user location from map with better GPS accuracy --- mobile/src/Home/Home.js | 45 +++++++------------------ mobile/src/Home/images/location.png | Bin 1558 -> 0 bytes mobile/src/Home/images/location@2x.png | Bin 3497 -> 0 bytes mobile/src/Home/images/location@3x.png | Bin 5629 -> 0 bytes mobile/src/config.js | 8 ++--- mobile/src/ui/Geolocation.js | 35 ++++++++++--------- 6 files changed, 34 insertions(+), 54 deletions(-) delete mode 100644 mobile/src/Home/images/location.png delete mode 100644 mobile/src/Home/images/location@2x.png delete mode 100644 mobile/src/Home/images/location@3x.png diff --git a/mobile/src/Home/Home.js b/mobile/src/Home/Home.js index 6e53813..e906bd6 100644 --- a/mobile/src/Home/Home.js +++ b/mobile/src/Home/Home.js @@ -1,10 +1,7 @@ import React from "react" import { - StyleSheet, Text, - TextInput, SectionList, - Image, View, TouchableOpacity, TouchableHighlight, @@ -31,12 +28,8 @@ import KeyboardSpacer from "react-native-keyboard-spacer" import hardhatPinImage from "./images/hardhat-pin.png" import clipboardPinImage from "./images/clipboard-pin.png" import questionPinImage from "./images/question-pin.png" -import locationImage from "./images/location.png" import moment from "moment" -const neverAskForLocationPermissionKeyName = "NeverAskForLocationPermission" -const neverAskForCameraKeyName = "NeverAskForCameraPermission" - export class Home extends React.Component { constructor(props) { super(props) @@ -48,8 +41,8 @@ export class Home extends React.Component { showWorkItems: true, haveCameraPermission: false, haveLocationPermission: false, - currentPosition: null, } + this.currentPosition = null this.isMapReady = false this.goToRegionWhenReady = false this.region = null @@ -97,6 +90,7 @@ export class Home extends React.Component { } ) } else { + navigator.geolocation.requestAuthorization() this.state.haveLocationPermission = true this.state.haveCameraPermission = true } @@ -176,8 +170,8 @@ export class Home extends React.Component { } handleWorkItemsListPress() { - if (this.state.currentPosition) { - const { coords } = this.state.currentPosition + if (this.currentPosition) { + const { coords } = this.currentPosition this.props.history.push( `/workItemList?latLng=${coords.latitude},${coords.longitude}` @@ -210,13 +204,13 @@ export class Home extends React.Component { } handleGlassesPress() { - const { sections: workItems, currentPosition } = this.state + const { sections: workItems } = this.state - if (currentPosition) { + if (this.currentPosition) { const { latitude: latitude1, longitude: longitude1, - } = currentPosition.coords + } = this.currentPosition.coords let closestWorkItem = config.alwaysShowWorkItemInAR ? workItems[0] : null let shortestDistance = config.minDistanceToItem @@ -248,10 +242,8 @@ export class Home extends React.Component { } handleMyLocationPress() { - const { currentPosition } = this.state - - if (currentPosition && this.isMapReady) { - const { coords } = currentPosition + if (this.currentPosition && this.isMapReady) { + const { coords } = this.currentPosition this.mapView.animateToCoordinate({ latitude: coords.latitude, @@ -281,14 +273,12 @@ export class Home extends React.Component { } handlePositionUpdate(position) { - this.setState({ currentPosition: position }) + this.currentPosition = position } getCoordinateDistance(coordinate) { - const { currentPosition } = this.state - - if (currentPosition) { - const { coords } = currentPosition + if (this.currentPosition) { + const { coords } = this.currentPosition const { latitude, longitude } = coordinate return ( @@ -313,7 +303,6 @@ export class Home extends React.Component { waitModal, haveCameraPermission, haveLocationPermission, - currentPosition, } = this.state return ( @@ -340,7 +329,7 @@ export class Home extends React.Component { showWorkItems && { height: "40%" }, !showWorkItems && { flexGrow: 1 }, ]} - showsUserLocation={false} + showsUserLocation showsBuildings={false} showsTraffic={false} showsIndoors={false} @@ -376,14 +365,6 @@ export class Home extends React.Component { ))} - {currentPosition && ( - - )} 1;-vdPMVT~|A|wY6*OXw}w4n=ZyQX_`N8 z=lAG~_q|k2tFQwn_ug~QJ?GqW&pYRYvHuygE6}eYUZ9RJ4S4e8No!M6Q)YH{w&-%X zgr$A(qzpLpJb*xLWo2brXJ@Cgu&{8O$z&?k>2&Lf4r3&U$K#=BG&=3``ECvl4&KASnTx3sjheD(s$ zp-4;d@opdxXsoNNTZ=V_Jg7YYnQ{8>~~^fh^8fi@GK;0?fBcktlB?5?h^CWFCXY#iq7qu@Fzk-0gN>$;rw2mZo7sDJFOW;2!hz^z=u$ zxw*S&o`Cs9ruqDmxcSCihRA;|Xf;gy^bO(m2iw>KHS@)b7r&~hsriHG(ibAffaH1# zxB^oCI)7*}#)MgbtTjd}e?tyokNsyLZ1&!x}>A^0EO~7>^t|vWG@R zpnUn0`0DsWmO=Ct!#BT*1^pB+{6PxpqN`W0zD6|U5J5ITN6~7@%F5cxGvD&CH9w9e z--73P);unfCw>tN)I6o7rQ3;SAe0P%5&G8FRtH7Bk!S826mvxq!qZkdpPXZ6*QC;e zbWx|-Y(^k!pd1PeWo2b{UO2rY`~4ov~&9?+3X6b87-0QI5Ou6?0oS@gA8WCI{qLzN6w zD*-w!z5YuA9pweJs8A?`M3ndnnAhu_=b3Uc1Qd^#0_%(dGM@s*#>OOl@@E*Iot+Kv z9JaMAl4VX#r#w%pbEl2@)x3RueW1l*0NfKffBw8%&9pP0dDXPltoJySa;Pvp=;`TE z7!aoR%CoSr@Q7DXyF-{sPkU0i_`Ou;m3B6(E=;4Nqqph2RFGs3VBsGa7#QaTZ#1(g z88OMzRx&pkSmfASN$17Wr%#WP98}9EPe2QQeSQ6{NF=hrEBSCc^X%QiW_VgEbG??u zn%@!rR`&rE{D zMU600mB$o;O^s`$wzl@t#KgoD$;Vz?&hr?Ncs5ew>7X~NrtYPP)(W`oW$B&Q#k|40 zER)JKZ@k2pNs9NDF!#qhg!^mKlAF->_Vz1Oab3hbO(;EqYybp6Ac_$ssoav`;o-Nf zRx9##5`-d5gEH&!Gs8T!WSK@5Dcrz<fVqPL#yLPR=y1KfTmXm}Cb~Gf4N(WlXp>+_`ht4;?!68wr^t{Fe|(PRfq>3S6` z%;9jjE?>TUlip6UR%T3f3f`xGbFt|@hBi14nMwd;lfBmL&Lb=@5g)JCxqK^bEz4nQ35^&WEw{K zIncXV2{!_%Ysx%)`0$1U2M(;Kroxnwkzu6nIgK(~h!h1Wx*wfAd-fsWgIFv!OJ~rO z&JiN-!;1>#v|iQ&paWop>b%707*qo IM6N<$g1;^K#sB~S diff --git a/mobile/src/Home/images/location@2x.png b/mobile/src/Home/images/location@2x.png deleted file mode 100644 index 5d3e909dea01bd9b75c929a561a7cfeab0af9e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3497 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 X;XbgBqxrkp00000NkvXXu0mjfYQmGX diff --git a/mobile/src/Home/images/location@3x.png b/mobile/src/Home/images/location@3x.png deleted file mode 100644 index 724ba210acd446359975278ae2095d77faed049a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5629 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 { this.props.onUpdate(position) + + if (this.props.watch) { + ;(this.watchId = navigator.geolocation.watchPosition((position) => + this.props.onUpdate(position) + )), + null, + { distanceFilter: 5, maximumAge: 0, enableHighAccuracy: true } + } }, null, { distanceFilter: 5, maximumAge: 0, enableHighAccuracy: true } ) } + componentWillUnmount() { + if (this.watchId !== -1) { + navigator.geolocation.clearWatch(this.watchId) + navigator.geolocation.stopObserving() + this.watchId = -1 + } + } + render() { return null }