Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Track user position infrastructure + Desktop & iOS & Android tracking backend #2678

Merged
merged 24 commits into from
Jun 21, 2023

Conversation

tomasMizera
Copy link
Collaborator

@tomasMizera tomasMizera commented Apr 24, 2023

Position tracking infrastructure implementation 🚀
Adds:

  • position tracking manager class to handle the tracking
  • new drawer for position tracking
  • infrastructure for different tracking backends (we need native implementations for mobile platforms - thus, we create AbstractTrackingBackend)
    • supports use of signal/slot connection (for desktop) and direct function calls (for mobiles - signal/slot is stopped when app is in background )
  • desktop implementation of tracking backend - InternalTrackingBackend - it uses PositionKit to get position updates
  • 2 new variables tracking_end_time and tracking_start_time (working only when tracking)

Simple architecture overview:

image

User interface:

New tracking drawer Default attributes of tracked feature Active tracking - tracked path

@tomasMizera tomasMizera changed the title WIP: Track user position - Desktop position provider Track user position infrastructure + Desktop tracking backend Apr 26, 2023
@tomasMizera tomasMizera marked this pull request as ready for review April 26, 2023 12:01
Copy link
Contributor

@PeterPetrik PeterPetrik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM , just small questions/suggestions.

it would be good to add that architecture picture to developer docs

app/activeproject.cpp Outdated Show resolved Hide resolved
app/activeproject.h Show resolved Hide resolved
app/inpututils.h Outdated Show resolved Hide resolved
app/position/tracking/positiontrackingmanager.cpp Outdated Show resolved Hide resolved
app/test/testposition.cpp Outdated Show resolved Hide resolved
* Add native iOS CLLocationManager tracking backend

* remove commented out code

* remove debug log

* fix cmake format

* exclude ios tracking backend from other builds
@tomasMizera tomasMizera changed the title Track user position infrastructure + Desktop tracking backend Track user position infrastructure + Desktop & iOS tracking backend Jun 20, 2023
Copy link
Contributor

@PeterPetrik PeterPetrik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏

* android tracking provider

* fix macro elif

* Stop foreground service when tracking stops + make status updates more robust + have a way to communicate status updates from foreground service

* Update java files to include time and distance intervals + make the code nicer

* Add copyright headers and remove debug log
@tomasMizera tomasMizera changed the title Track user position infrastructure + Desktop & iOS tracking backend Track user position infrastructure + Desktop & iOS & Android tracking backend Jun 21, 2023
@tomasMizera tomasMizera merged commit f7f5868 into master Jun 21, 2023
@tomasMizera tomasMizera deleted the Track-user-position_CU-861md4uxd branch June 21, 2023 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants