diff options
| author | Santo Cariotti <santo@dcariotti.me> | 2024-09-10 11:36:52 +0200 | 
|---|---|---|
| committer | Santo Cariotti <santo@dcariotti.me> | 2024-09-10 11:36:52 +0200 | 
| commit | 6278b157578527ae784a844d4ff1b7f82afcca0e (patch) | |
| tree | 93390b49c2499f98c1dd1964baf60a7ef38f7304 | |
| parent | 74db176b2c6a74a4e94a57a835dbdd385ba76b97 (diff) | |
Track the moving activity using the speed location field
| -rw-r--r-- | app/(tabs)/index.tsx | 29 | 
1 files changed, 20 insertions, 9 deletions
| diff --git a/app/(tabs)/index.tsx b/app/(tabs)/index.tsx index b5bddcc..251bb90 100644 --- a/app/(tabs)/index.tsx +++ b/app/(tabs)/index.tsx @@ -236,25 +236,36 @@ export default function HomeScreen() {      return `${date.toDateString()} ${date.getHours()}:${(date.getMinutes() < 10 ? "0" : "") + date.getMinutes()}`;    }; -  const updateLocation = async (coords: LatLng) => { +  const updateLocation = async (coords: LatLng, speed: number) => {      setCoordinates({        latitude: coords.latitude,        longitude: coords.longitude,      });      if (region.longitude == 0 && region.latitude == 0) { -    setRegion({ -      latitude: coords.latitude, -      longitude: coords.longitude, -      latitudeDelta: 0.03, -      longitudeDelta: 0.03, -    }); +      setRegion({ +        latitude: coords.latitude, +        longitude: coords.longitude, +        latitudeDelta: 0.03, +        longitudeDelta: 0.03, +      });      }      if (!token || !userId) return;      try { +      let movingActivity: string; +      if (speed == 0) { +        movingActivity = "STILL"; +      } else if (speed < 1.5) { +        movingActivity = "WALKING"; +      } else if (speed >= 1.5 && speed < 5) { +        movingActivity = "RUNNING"; +      } else { +        movingActivity = "IN_VEHICLE"; +      } +        const response = await fetch(          `${process.env.EXPO_PUBLIC_API_URL}/graphql`,          { @@ -275,7 +286,7 @@ export default function HomeScreen() {                input: {                  latitude: coords.latitude,                  longitude: coords.longitude, -                movingActivity: 'STILL', +                movingActivity,                },              },            }), @@ -357,7 +368,7 @@ export default function HomeScreen() {          if (status === "granted") {            setInterval(async () => {              const location = await Location.getCurrentPositionAsync({}); -            updateLocation(location.coords); +            updateLocation(location.coords, location.coords.speed);            }, 2000);            await Location.startLocationUpdatesAsync(LOCATION_TASK_NAME, { | 
