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

[BUG][Physical Device] - onHeartbeat and onLocation event listeners works on iOS but not Android #2246

Closed
JaredHightower-Tendrel opened this issue Jan 8, 2025 · 1 comment

Comments

@JaredHightower-Tendrel
Copy link

JaredHightower-Tendrel commented Jan 8, 2025

Your Environment

  • License Status: Purchased a license on 1/7/2025
  • Plugin version: ^4.18.3
  • Platform: Android
  • OS version: Phone 1: Version 11, Phone 2: unknown
  • Device manufacturer / model: Phone 1: Nokia Model TA1323, Phone 2: Zebra
  • React Native version: 0.75.3
  • Expo SDK Version: 51.0.39
  • Plugin config (see code block below)
function RootLayout() {
...

const handleStartSession = () => {
  if (!isAlwaysEnabled) {
        BackgroundGeolocation.stop();
        return BackgroundGeolocation.requestPermission();
      }

      BackgroundGeolocation.start();

      const checkInLocation = await BackgroundGeolocation.getCurrentPosition({
        samples: 1,
      });

      executedEvent({
        locationData: checkInLocation,
        ...,
      });
}

const handleEndSession = () => {
 BackgroundGeolocation.removeListeners();

  BackgroundGeolocation.stop()
    .then(() => {
      console.log("BackgroundGeolocation stopped successfully");
    })
    .catch(error => {
      console.warn("Failed to stop BackgroundGeolocation: ", error);
    });

}

 useEffect(() => {
    const onLocation = BackgroundGeolocation.onLocation(location => {
      console.log("[root - onLocation - trigger - event] - 📍", {
        activity: location.event,
        isMoving: location.is_moving,
      });

      if (location.is_moving) {
        console.log(
          "[root - onLocation - onLocation] Device has just started MOVING 🏃",
          JSON.stringify(location, null, 2),
        );
        executedEvent({
          locationData: location,
          ....,
        });
      }
    });

    const onHeartbeat = BackgroundGeolocation.onHeartbeat(async () => {
      console.log("[root - onHeartbeat - trigger - event] - ✅");
      const location = await BackgroundGeolocation.getCurrentPosition({
        samples: 1,
        persist: true,
      });

      executedEvent({
        locationData: location,
        ...,
      });
    });

    const onMotionChange = BackgroundGeolocation.onMotionChange(event => {
      if (event.isMoving) {
        console.log(
          "[root - onMotionChange] Device has just started MOVING 🏃",
          JSON.stringify(event.location, null, 2),
        );
      } else {
        console.log("[root - onMotionChange] Device is STATIONARY: 🚷 ");
      }
    });

    BackgroundGeolocation.logger.getLog().then(logs => {
      console.log("BackgroundGeolocation logs: ", logs);
    });

    BackgroundGeolocation.ready({
      activityType: BackgroundGeolocation.ACTIVITY_TYPE_OTHER,
      desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_HIGH,
      logLevel: BackgroundGeolocation.LOG_LEVEL_VERBOSE,
      distanceFilter: 4, // minimum distance between location updates in meters
      elasticityMultiplier: 10,
      debug: Platform.OS === "android", // enable this to hear sounds for background-geolocation life-cycle.
      stopOnTerminate: false, // Allow the background-service to continue tracking when user closes the app.
      startOnBoot: true, // Auto start tracking when device is powered-up.
      heartbeatInterval: 15, // How often to send a heartbeat to the server in seconds.
      preventSuspend: true, // Prevent the app from being suspended while in the background
      allowIdenticalLocations: true,
      stopTimeout: 1,
      stationaryRadius: 25,
      pausesLocationUpdatesAutomatically: undefined,
      showsBackgroundLocationIndicator: true,
      backgroundPermissionRationale: {
        title: "Allow background location updates",
        message: "Required for continuous location tracking",
        positiveAction: "Accept",
        negativeAction: "Cancel",
      },
      locationAuthorizationRequest: "Always",
    })
      .then(state => {
        console.log(
          "- BackgroundGeolocation is configured and ready: ",
          state.enabled,
        );
      })
      .catch(error => {
        console.error("BackgroundGeolocation error: ", error);
      });

    return () => {
      onMotionChange.remove();
      onLocation.remove();
      onHeartbeat.remove();
    };
  }, []);

...
return (
  .... // handleStartSession and handleEndSession <Buttons />
)
}

Expected Behavior

Method Context: executedEvent is an internal SDK we use to send location updates to our backend.
The URL prop for .ready() will NOT work for our use case.

  • Device is STATIONARY 🚷 expected Android & iOS behavior: When the app is moved to the background, I expect each new event to play a HEARTBEAT notification sound and log that event via my executedEvent({....})
  • Device is MOVING 🏃 expected Android & iOS behavior: When the app is moved to the background, I expect each new event to play a LOCATION_RECORDED notification sound and log that event via my executedEvent({....})

Actual Behavior

Method Context: executedEvent is an internal SDK we use to send location updates to our backend.
The URL prop for .ready() will NOT work for our use case.

  • Device is STATIONARY 🚷 expected iOS behavior: Archived ✅
  • Device is MOVING 🏃 expected iOS behavior: Archived ✅
  • Device is STATIONARY 🚷 expected Android behavior: Failed 🚫
    • A HEARTBEAT notification sound is heard but events are not being logged via executedEvent({....})
  • Device is MOVING 🏃 expected Android behavior: Failed 🚫
    • A LOCATION_RECORDED notification sound is heard but events are not being logged via executedEvent({....})

Steps to Reproduce

  1. Use code in code block above to test behavior on physical device
  2. Replace executedEvent with logs

Context

Mainly trying to get events to log on both iOS and Android when in STATIONARY or Moving modes

Debug logs

Logs

01-08 11:45:28.907 DEBUG [TSSQLiteAppender$c run] 
  ℹ️  Cleared logs older than 72 hours
01-08 11:45:28.907 DEBUG [LoggerFacade$a a] ℹ️   Persist config, dirty: []
01-08 11:45:31.048 DEBUG [TSGeofenceManager$d run] evaluation buffer timer elapsed
01-08 11:45:32.217 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 11:45:32.228 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 11:47:03.529 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 11:47:03.577 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 11:47:04.185 INFO [LocationAuthorization withPermission] 
  🔵  LocationAuthorization: Requesting permission
01-08 11:47:07.210 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 11:47:08.823 INFO [LocationAuthorization$j onPermissionGranted] 
  ✅  LocationAuthorization: Permission granted
01-08 11:47:08.874 DEBUG [ForegroundNotification createNotificationChannel] NotificationChannel{mId='com.tendrel.rtlsTSLocationManager', mName=TSLocationManager, mDescription=, mImportance=1, mBypassDnd=false, mLockscreenVisibility=-1, mSound=null, mLights=false, mLightColor=0, mVibration=null, mUserLockedFields=0, mFgServiceShown=false, mVibrationEnabled=false, mShowBadge=false, mDeleted=false, mGroup='null', mAudioAttributes=null, mBlockableSystem=false, mAllowBubbles=true, mImportanceLockedByOEM=false, mImportanceLockedDefaultApp=false}
01-08 11:47:08.920 DEBUG [AbstractService a] 
  🎾  start [LocationRequestService  startId: 1, eventCount: 1]
01-08 11:47:08.931 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 11:47:08.932 INFO [SingleLocationRequest startUpdatingLocation] 
  🔵  [SingleLocationRequest start, action: 2, requestId: 1]
01-08 11:47:08.937 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 1, eventCount: 0, sticky: true]
01-08 11:47:08.951 DEBUG [TSLocationManager a] 
  ℹ️  Clear last odometer location
01-08 11:47:08.956 DEBUG [TSGeofenceManager c] 
  🔴  Stop monitoring geofences
01-08 11:47:08.960 INFO [ActivityRecognitionService stop] 
  🔴  Stop motion-activity updates
01-08 11:47:08.965 INFO [HeartbeatService stop] 
  🔴  Stop heartbeat
01-08 11:47:08.966 DEBUG [HttpService stopMonitoringConnectivityChanges] 
  🔴  Stop monitoring connectivity changes
01-08 11:47:11.432 DEBUG [AbstractService a] 
  🎾  2:1 [LocationRequestService  startId: 2, eventCount: 1]
01-08 11:47:11.435 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 1 (2320ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672144,-122.388269 hAcc=12 et=+8d21h30m42s548ms alt=8.100000381469727 vAcc=1 sAcc=2 bAcc=45 {Bundle[{noGPSLocation=Location[fused 47.672144,-122.388269 hAcc=12 et=+8d21h30m42s548ms alt=8.100000381469727 vAcc=1 sAcc=??? bAcc=??? {Bundle[mParcelledData.dataSize=1420]}], requestId=1}]}], time: 1736354829115

01-08 11:47:11.442 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 11:47:11.443 DEBUG [TSLocationManager a] Median accuracy: 11.519
01-08 11:47:11.450 DEBUG [AbstractService b] 
  🎾  STOP [LocationRequestService startId: 3, eventCount: 2]
01-08 11:47:11.451 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 3, eventCount: 1, sticky: false]
01-08 11:47:11.521 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 2, eventCount: 0, sticky: false]
01-08 11:47:11.739 DEBUG [AbstractService f] 
  ⚙️︎  LocationRequestService.stopSelfResult(3): true
01-08 11:47:11.759 DEBUG [AbstractService onDestroy] 
  🔴  LocationRequestService stopped
01-08 11:47:24.500 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 2 (12500ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672136,-122.388263 hAcc=7 et=+8d21h30m45s433ms alt=8.100000381469727 vel=0.15004218 bear=154.04434 vAcc=2 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736354832000

01-08 11:47:24.502 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 11:47:24.503 DEBUG [TSLocationManager a] Median accuracy: 9.443
01-08 11:47:39.465 DEBUG [TSLocationManager a] 
  ℹ️  Clear last odometer location
01-08 11:47:39.465 INFO [LocationAuthorization withBackgroundPermission] 
  🔵  LocationAuthorization: Requesting Background permission
01-08 11:47:39.467 DEBUG [TSGeofenceManager c] 
  🔴  Stop monitoring geofences
01-08 11:47:39.467 INFO [ActivityRecognitionService stop] 
  🔴  Stop motion-activity updates
01-08 11:47:39.472 INFO [HeartbeatService stop] 
  🔴  Stop heartbeat
01-08 11:47:39.476 DEBUG [HttpService stopMonitoringConnectivityChanges] 
  🔴  Stop monitoring connectivity changes
01-08 11:47:40.266 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 11:47:42.957 INFO [LocationAuthorization$j onPermissionGranted] 
  ✅  LocationAuthorization: Permission granted
01-08 11:47:43.020 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 11:47:43.194 DEBUG [TSLocationManagerActivity a] locationsettings
01-08 11:47:43.196 DEBUG [TSConfig translateDesiredAccuracy] translateDesiredAccuracy (true): -1
01-08 11:47:43.315 DEBUG [TSLocationManagerActivity onDestroy] locationsettings
01-08 11:47:45.066 DEBUG [LocationAuthorization withBackgroundPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 11:47:45.082 INFO [TSGeofenceManager start] 
  🎾  Start monitoring geofences
01-08 11:47:45.093 DEBUG [HttpService startMonitoringConnectivityChanges] 
  🎾  Start monitoring connectivity changes
01-08 11:47:45.097 DEBUG [DeviceSettings startMonitoringPowerSaveChanges] 
  🎾  Start monitoring powersave changes
01-08 11:47:45.102 INFO [ActivityRecognitionService start] 
  🎾  Start motion-activity updates
01-08 11:47:45.110 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 3 (33109ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672136,-122.388263 hAcc=7 et=+8d21h30m45s433ms alt=8.100000381469727 vel=0.15004218 bear=154.04434 vAcc=2 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736354832000

01-08 11:47:45.112 INFO [HeartbeatService start] 
  🎾  Start heartbeat (15s)
01-08 11:47:45.112 INFO [HeartbeatService start] 
  🎾  Start heartbeat (15s)
01-08 11:47:45.113 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 11:47:45.113 DEBUG [TSLocationManager a] Median accuracy: 7.367
01-08 11:47:45.115 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:47:45.120 INFO [TSScheduleManager cancelOneShot] 
  ⏰ Cancel OneShot: HEARTBEAT
01-08 11:47:45.123 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: c347b2fd-322c-4854-9eaf-58d0350df65a
01-08 11:47:45.124 INFO [TrackingService changePace] 
  🔵  setPace: false → false
01-08 11:47:45.125 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:47:45.130 INFO [TrackingService changePace] 
  🔵  setPace: false → false
01-08 11:47:45.132 DEBUG [TSLocationManagerActivity start] Action 'locationsettings' already pending <IGNORED>
01-08 11:47:45.139 INFO [TSProviderManager a] 
╔═════════════════════════════════════════════
║ Location-provider change: true
╠═════════════════════════════════════════════
╟─ GPS: true
╟─ Network: true
╟─ AP Mode: false

01-08 11:47:45.140 DEBUG [TSGeofenceManager$e run] 
╔═════════════════════════════════════════════
║ TSGeofenceManager monitoring 0/0
╠═════════════════════════════════════════════
╚═════════════════════════════════════════════
01-08 11:47:45.142 DEBUG [HttpService a] 
╔═════════════════════════════════════════════
║ 📶  Connectivity change: connected? true
╠═════════════════════════════════════════════

01-08 11:47:45.152 WARN [TSLocationManager onSingleLocationResult] 
  ℹ️  Failed to find SingleLocationRequest.  Request ignored.
01-08 11:47:45.155 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 5 (33154ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672136,-122.388263 hAcc=7 et=+8d21h30m45s433ms alt=8.100000381469727 vel=0.15004218 bear=154.04434 vAcc=2 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736354832000

01-08 11:47:45.156 DEBUG [TSLocationManager a] Median accuracy: 7.367
01-08 11:47:45.159 DEBUG [LocationAuthorization withPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 11:47:45.164 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ providerchange LocationResult: 6 (33163ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672136,-122.388263 hAcc=7 et=+8d21h30m45s433ms alt=8.100000381469727 vel=0.15004218 bear=154.04434 vAcc=2 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736354832000

01-08 11:47:45.164 DEBUG [TSLocationManager a] Median accuracy: 7.367
01-08 11:47:45.169 DEBUG [LocationAuthorization withPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 11:47:45.191 DEBUG [AbstractService a] 
  🎾  start [LocationRequestService  startId: 1, eventCount: 1]
01-08 11:47:45.193 INFO [SingleLocationRequest startUpdatingLocation] 
  🔵  [SingleLocationRequest start, action: 1, requestId: 5]
01-08 11:47:45.195 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 1, eventCount: 0, sticky: true]
01-08 11:47:45.199 DEBUG [AbstractService a] 
  🎾  start [LocationRequestService  startId: 2, eventCount: 1]
01-08 11:47:45.199 INFO [SingleLocationRequest startUpdatingLocation] 
  🔵  [SingleLocationRequest start, action: 3, requestId: 6]
01-08 11:47:45.201 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 2, eventCount: 0, sticky: true]
01-08 11:47:45.305 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 11:47:45.340 DEBUG [TSLocationManagerActivity a] locationsettings
01-08 11:47:45.341 DEBUG [TSConfig translateDesiredAccuracy] translateDesiredAccuracy (true): -1
01-08 11:47:45.399 DEBUG [AbstractService a] 
  🎾  start [ActivityRecognitionService  startId: 1, eventCount: 1]
01-08 11:47:45.404 DEBUG [ActivityRecognitionService a] 
  🚘 ️DetectedActivity [type=STILL, confidence=97]
01-08 11:47:45.416 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [ActivityRecognitionService startId: 1, eventCount: 0, sticky: false]
01-08 11:47:45.469 DEBUG [TSLocationManagerActivity onDestroy] locationsettings
01-08 11:47:45.620 DEBUG [AbstractService f] 
  ⚙️︎  ActivityRecognitionService.stopSelfResult(1): true
01-08 11:47:45.627 DEBUG [AbstractService onDestroy] 
  🔴  ActivityRecognitionService stopped
01-08 11:47:47.493 DEBUG [AbstractService a] 
  🎾  3:6 [LocationRequestService  startId: 3, eventCount: 1]
01-08 11:47:47.495 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ providerchange LocationResult: 6 (2233ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672134,-122.388257 hAcc=13 et=+8d21h31m18s695ms alt=8.100000381469727 vAcc=1 sAcc=2 bAcc=45 {Bundle[{noGPSLocation=Location[fused 47.672134,-122.388257 hAcc=13 et=+8d21h31m18s695ms alt=8.100000381469727 vAcc=1 sAcc=??? bAcc=??? {Bundle[mParcelledData.dataSize=1636]}], requestId=6}]}], time: 1736354865262

01-08 11:47:47.497 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired providerchange position
01-08 11:47:47.497 DEBUG [TSLocationManager a] Median accuracy: 7.367
01-08 11:47:47.501 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 2f2f930c-6a29-4eea-bd1e-ab0f1fead200
01-08 11:47:47.503 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 3, eventCount: 1, sticky: false]
01-08 11:47:47.503 DEBUG [AbstractService a] 
  🎾  1:5 [LocationRequestService  startId: 4, eventCount: 1]
01-08 11:47:47.505 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 5 (2242ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672134,-122.388257 hAcc=13 et=+8d21h31m18s695ms alt=8.100000381469727 vAcc=1 sAcc=2 bAcc=45 {Bundle[{noGPSLocation=Location[fused 47.672134,-122.388257 hAcc=13 et=+8d21h31m18s695ms alt=8.100000381469727 vAcc=1 sAcc=??? bAcc=??? {Bundle[mParcelledData.dataSize=1636]}], requestId=5}]}], time: 1736354865262

01-08 11:47:47.506 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired motionchange position, isMoving: false
01-08 11:47:47.507 DEBUG [TSLocationManager a] Median accuracy: 7.367
01-08 11:47:47.512 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 4, eventCount: 0, sticky: false]
01-08 11:47:47.513 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 0970759b-7700-4ffe-b18e-50cd323e2e97
01-08 11:47:47.524 DEBUG [TSLocationManager$c onLocation] 
  ℹ️  Distance from last location: 21.197573
01-08 11:47:47.529 DEBUG [TSGeofenceManager startMonitoringStationaryRegion] 
  🎾  Start monitoring stationary region (radius: 150.0m 47.6721336,-122.3882568 hAcc=13.319)
01-08 11:47:47.539 DEBUG [AbstractService b] 
  🎾  STOP [LocationRequestService startId: 5, eventCount: 1]
01-08 11:47:47.540 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 5, eventCount: 0, sticky: false]
01-08 11:47:47.543 DEBUG [AbstractService b] 
  🎾  STOP [LocationRequestService startId: 6, eventCount: 1]
01-08 11:47:47.543 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 6, eventCount: 0, sticky: false]
01-08 11:47:47.551 DEBUG [AbstractService a] 
  🎾  motionchange [TrackingService  startId: 1, eventCount: 1]
01-08 11:47:47.558 INFO [TrackingService k] 
╔═════════════════════════════════════════════
║ TrackingService motionchange: false
╠═════════════════════════════════════════════

01-08 11:47:47.561 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [TrackingService startId: 1, eventCount: 0, sticky: false]
01-08 11:47:47.807 DEBUG [AbstractService f] 
  ⚙️︎  LocationRequestService.stopSelfResult(6): true
01-08 11:47:47.811 DEBUG [AbstractService f] 
  ⚙️︎  TrackingService.stopSelfResult(1): true
01-08 11:47:47.814 DEBUG [AbstractService onDestroy] 
  🔴  LocationRequestService stopped
01-08 11:47:47.815 DEBUG [AbstractService onDestroy] 
  🔴  TrackingService stopped
01-08 11:47:55.150 INFO [TSScheduleManager oneShot] 
  ⏰ Oneshot TERMINATE_EVENT is already pending
01-08 11:47:55.470 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 11:47:55.474 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 11:47:55.812 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 11:47:55.828 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 11:48:00.152 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:48:00.169 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:48:00.172 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:48:15.196 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:48:15.199 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:48:15.205 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:48:31.495 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:48:31.504 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:48:31.521 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:48:48.477 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:48:48.489 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:48:48.496 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:49:04.486 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:49:04.491 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:49:04.496 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:49:20.468 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:49:20.471 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:49:20.480 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:49:36.508 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:49:36.519 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:49:36.530 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:49:52.479 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:49:52.493 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:49:52.499 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:50:07.505 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:50:07.510 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:50:07.512 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:50:23.469 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:50:23.472 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:50:23.481 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:50:39.466 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:50:39.474 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:50:39.478 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:50:55.447 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:50:55.450 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:50:55.453 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:51:10.488 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:51:10.495 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:51:10.499 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:51:26.029 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:51:26.035 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:51:26.050 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:51:42.487 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:51:42.491 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:51:42.503 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:51:58.470 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:51:58.474 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:51:58.482 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:52:13.516 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:52:13.521 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:52:13.527 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:52:29.475 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:52:29.477 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:52:29.481 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:52:45.421 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:52:45.423 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:52:45.429 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:53:01.442 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:53:01.444 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:53:01.450 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:53:17.469 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:53:17.478 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:53:17.486 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:53:24.023 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 11:53:24.131 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 11:53:27.027 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 7 (25553ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672128,-122.388262 hAcc=100 et=+8d21h36m34s906ms etAcc=0 alt=8.100000381469727 vAcc=100 sAcc=??? bAcc=??? {Bundle[{}]}], time: 1736355181473

01-08 11:53:27.040 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 11:53:27.041 DEBUG [TSLocationManager a] Median accuracy: 9.443
01-08 11:53:27.048 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 01be3ed7-c27f-4150-8d95-63f63caced0a
01-08 11:53:27.077 DEBUG [TSLocationManager a] 
  ℹ️  Clear last odometer location
01-08 11:53:27.080 DEBUG [TSGeofenceManager c] 
  🔴  Stop monitoring geofences
01-08 11:53:27.080 DEBUG [TSGeofenceManager stopMonitoringStationaryRegion] 
  🔴  Stop monitoring stationary region
01-08 11:53:27.087 INFO [ActivityRecognitionService stop] 
  🔴  Stop motion-activity updates
01-08 11:53:27.089 INFO [HeartbeatService stop] 
  🔴  Stop heartbeat
01-08 11:53:27.091 INFO [TSScheduleManager cancelOneShot] 
  ⏰ Cancel OneShot: HEARTBEAT
01-08 11:53:27.095 DEBUG [HttpService stopMonitoringConnectivityChanges] 
  🔴  Stop monitoring connectivity changes
01-08 11:53:27.096 DEBUG [DeviceSettings stopMonitoringPowerSaveChanges] 
  🔴  Stop monitoring powersave changes
01-08 11:53:53.503 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 11:53:53.528 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 11:59:20.468 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 11:59:20.532 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 11:59:21.873 DEBUG [LocationAuthorization withBackgroundPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 11:59:21.897 INFO [TSGeofenceManager start] 
  🎾  Start monitoring geofences
01-08 11:59:21.901 DEBUG [HttpService startMonitoringConnectivityChanges] 
  🎾  Start monitoring connectivity changes
01-08 11:59:21.904 DEBUG [DeviceSettings startMonitoringPowerSaveChanges] 
  🎾  Start monitoring powersave changes
01-08 11:59:21.906 INFO [ActivityRecognitionService start] 
  🎾  Start motion-activity updates
01-08 11:59:21.909 DEBUG [HttpService a] 
╔═════════════════════════════════════════════
║ 📶  Connectivity change: connected? true
╠═════════════════════════════════════════════

01-08 11:59:21.919 INFO [HeartbeatService start] 
  🎾  Start heartbeat (15s)
01-08 11:59:21.920 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:59:21.924 INFO [TrackingService changePace] 
  🔵  setPace: false → false
01-08 11:59:21.985 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 8 (380511ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672128,-122.388262 hAcc=100 et=+8d21h36m34s906ms etAcc=0 alt=8.100000381469727 vAcc=100 sAcc=??? bAcc=??? {Bundle[{}]}], time: 1736355181473

01-08 11:59:21.987 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 11:59:21.988 DEBUG [TSLocationManager a] Median accuracy: 11.519
01-08 11:59:22.008 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 9 (380534ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672128,-122.388262 hAcc=100 et=+8d21h36m34s906ms etAcc=0 alt=8.100000381469727 vAcc=100 sAcc=??? bAcc=??? {Bundle[{}]}], time: 1736355181473

01-08 11:59:22.008 DEBUG [TSLocationManager a] Median accuracy: 12.419001
01-08 11:59:22.017 DEBUG [LocationAuthorization withPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 11:59:22.062 DEBUG [AbstractService a] 
  🎾  start [LocationRequestService  startId: 1, eventCount: 1]
01-08 11:59:22.064 INFO [SingleLocationRequest startUpdatingLocation] 
  🔵  [SingleLocationRequest start, action: 1, requestId: 9]
01-08 11:59:22.066 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 1, eventCount: 0, sticky: true]
01-08 11:59:22.118 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 11:59:22.216 DEBUG [TSLocationManagerActivity a] locationsettings
01-08 11:59:22.218 DEBUG [TSConfig translateDesiredAccuracy] translateDesiredAccuracy (true): -1
01-08 11:59:22.392 DEBUG [TSLocationManagerActivity onDestroy] locationsettings
01-08 11:59:24.817 DEBUG [AbstractService a] 
  🎾  1:9 [LocationRequestService  startId: 2, eventCount: 1]
01-08 11:59:24.821 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 9 (2647ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672145,-122.388249 hAcc=12 et=+8d21h42m55s606ms alt=8.100000381469727 vAcc=1 sAcc=2 bAcc=45 {Bundle[{noGPSLocation=Location[fused 47.672145,-122.388249 hAcc=12 et=+8d21h42m55s606ms alt=8.100000381469727 vAcc=1 sAcc=??? bAcc=??? {Bundle[mParcelledData.dataSize=1372]}], requestId=9}]}], time: 1736355562173

01-08 11:59:24.828 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired motionchange position, isMoving: false
01-08 11:59:24.831 DEBUG [TSLocationManager a] Median accuracy: 11.528
01-08 11:59:24.850 DEBUG [AbstractService b] 
  🎾  STOP [LocationRequestService startId: 3, eventCount: 2]
01-08 11:59:24.853 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 3, eventCount: 1, sticky: false]
01-08 11:59:24.868 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [LocationRequestService startId: 2, eventCount: 0, sticky: false]
01-08 11:59:24.869 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 4b667d07-6599-407d-8403-9d7b7ee7440c
01-08 11:59:24.872 DEBUG [TSGeofenceManager startMonitoringStationaryRegion] 
  🎾  Start monitoring stationary region (radius: 150.0m 47.6721446,-122.3882487 hAcc=11.528)
01-08 11:59:24.886 DEBUG [AbstractService a] 
  🎾  motionchange [TrackingService  startId: 1, eventCount: 1]
01-08 11:59:24.892 INFO [TrackingService k] 
╔═════════════════════════════════════════════
║ TrackingService motionchange: false
╠═════════════════════════════════════════════

01-08 11:59:24.894 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [TrackingService startId: 1, eventCount: 0, sticky: false]
01-08 11:59:25.077 DEBUG [AbstractService f] 
  ⚙️︎  LocationRequestService.stopSelfResult(3): true
01-08 11:59:25.077 DEBUG [AbstractService onDestroy] 
  🔴  LocationRequestService stopped
01-08 11:59:25.099 DEBUG [AbstractService f] 
  ⚙️︎  TrackingService.stopSelfResult(1): true
01-08 11:59:25.106 DEBUG [AbstractService onDestroy] 
  🔴  TrackingService stopped
01-08 11:59:25.218 DEBUG [AbstractService a] 
  🎾  start [ActivityRecognitionService  startId: 1, eventCount: 1]
01-08 11:59:25.221 DEBUG [ActivityRecognitionService a] 
  🚘 ️DetectedActivity [type=STILL, confidence=79]
01-08 11:59:25.224 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [ActivityRecognitionService startId: 1, eventCount: 0, sticky: false]
01-08 11:59:25.430 DEBUG [AbstractService f] 
  ⚙️︎  ActivityRecognitionService.stopSelfResult(1): true
01-08 11:59:25.432 DEBUG [AbstractService onDestroy] 
  🔴  ActivityRecognitionService stopped
01-08 11:59:32.157 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 11:59:32.158 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 11:59:35.611 DEBUG [AbstractService a] 
  🎾  start [ActivityRecognitionService  startId: 1, eventCount: 1]
01-08 11:59:35.628 DEBUG [ActivityRecognitionService a] *** wasMoving: false, nowMoving: false, startedMoving: false, justStopped; false
01-08 11:59:35.628 INFO [ActivityRecognitionService a] 
╔═════════════════════════════════════════════
║ Motion Transition Result
╠═════════════════════════════════════════════
╟─ 🔴  EXIT: walking
╟─ 🎾  ENTER: still
╚═════════════════════════════════════════════
01-08 11:59:35.629 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [ActivityRecognitionService startId: 1, eventCount: 0, sticky: false]
01-08 11:59:35.834 DEBUG [AbstractService f] 
  ⚙️︎  ActivityRecognitionService.stopSelfResult(1): true
01-08 11:59:35.835 DEBUG [AbstractService onDestroy] 
  🔴  ActivityRecognitionService stopped
01-08 11:59:36.948 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:59:36.952 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:59:36.956 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 11:59:51.971 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 11:59:51.973 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 11:59:51.983 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:00:06.991 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:00:06.994 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:00:07.000 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:00:22.021 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:00:22.028 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:00:22.031 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:00:37.045 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:00:37.050 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:00:37.054 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:00:38.613 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 10 (73671ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672111,-122.388229 hAcc=11 et=+8d21h42m58s374ms alt=8.100000381469727 vel=0.59832466 bear=158.70662 vAcc=2 sAcc=2 bAcc=45 {Bundle[{}]}], time: 1736355564941

01-08 12:00:38.616 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:00:38.617 DEBUG [TSLocationManager a] Median accuracy: 10.968
01-08 12:00:38.625 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: e0de5ad8-97ef-4499-9bb1-ca6a77e35d3f
01-08 12:00:38.676 DEBUG [TSLocationManager a] 
  ℹ️  Clear last odometer location
01-08 12:00:38.677 DEBUG [TSGeofenceManager c] 
  🔴  Stop monitoring geofences
01-08 12:00:38.677 DEBUG [TSGeofenceManager stopMonitoringStationaryRegion] 
  🔴  Stop monitoring stationary region
01-08 12:00:38.679 INFO [ActivityRecognitionService stop] 
  🔴  Stop motion-activity updates
01-08 12:00:38.681 INFO [HeartbeatService stop] 
  🔴  Stop heartbeat
01-08 12:00:38.683 INFO [TSScheduleManager cancelOneShot] 
  ⏰ Cancel OneShot: HEARTBEAT
01-08 12:00:38.689 DEBUG [HttpService stopMonitoringConnectivityChanges] 
  🔴  Stop monitoring connectivity changes
01-08 12:00:38.691 DEBUG [DeviceSettings stopMonitoringPowerSaveChanges] 
  🔴  Stop monitoring powersave changes
01-08 12:01:11.889 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 12:01:11.898 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 12:01:22.049 INFO [LoggerFacade$a a] 
╔═════════════════════════════════════════════
║ TSLocationManager version: 3.6.5 (440)
╠═════════════════════════════════════════════
╟─ Zebra Technologies TC26 @ 10 (react)
{
  "activityRecognitionInterval": 10000,
  "allowIdenticalLocations": true,
  "authorization": {},
  "autoSync": true,
  "autoSyncThreshold": 0,
  "backgroundPermissionRationale": {
    "title": "Allow background location updates",
    "message": "Required for continuous location tracking",
    "positiveAction": "Accept",
    "negativeAction": "Cancel"
  },
  "batchSync": false,
  "configUrl": "",
  "crashDetector": {
    "enabled": false,
    "accelerometerThresholdHigh": 20,
    "accelerometerThresholdLow": 4.5,
    "gyroscopeThresholdHigh": 20,
    "gyroscopeThresholdLow": 4.5
  },
  "debug": false,
  "deferTime": 0,
  "desiredAccuracy": -1,
  "desiredOdometerAccuracy": 100,
  "disableAutoSyncOnCellular": false,
  "disableElasticity": false,
  "disableLocationAuthorizationAlert": false,
  "disableMotionActivityUpdates": false,
  "disableProviderChangeRecord": false,
  "disableStopDetection": false,
  "distanceFilter": 4,
  "elasticityMultiplier": 10,
  "enableHeadless": false,
  "enableTimestampMeta": false,
  "extras": {},
  "fastestLocationUpdateInterval": -1,
  "foregroundService": true,
  "geofenceInitialTriggerEntry": true,
  "geofenceModeHighAccuracy": false,
  "geofenceProximityRadius": 1000,
  "geofenceTemplate": "",
  "headers": {},
  "headlessJobService": "com.transistorsoft.rnbackgroundgeolocation.HeadlessTask",
  "heartbeatInterval": 15,
  "httpRootProperty": "location",
  "httpTimeout": 60000,
  "isMoving": false,
  "locationAuthorizationRequest": "Always",
  "locationTemplate": "",
  "locationTimeout": 60,
  "locationUpdateInterval": 1000,
  "locationsOrderDirection": "ASC",
  "logLevel": 5,
  "logMaxDays": 3,
  "maxBatchSize": -1,
  "maxDaysToPersist": 1,
  "maxMonitoredGeofences": 97,
  "maxRecordsToPersist": -1,
  "method": "POST",
  "minimumActivityRecognitionConfidence": 75,
  "motionTriggerDelay": 0,
  "notification": {
    "layout": "",
    "title": "",
    "text": "Location Service activated",
    "color": "",
    "channelName": "TSLocationManager",
    "channelId": "",
    "smallIcon": "",
    "largeIcon": "",
    "priority": -1,
    "sticky": false,
    "strings": {},
    "actions": []
  },
  "params": {},
  "persist": true,
  "persistMode": 2,
  "schedule": [],
  "scheduleUseAlarmManager": false,
  "speedJumpFilter": 300,
  "startOnBoot": true,
  "stationaryRadius": 25,
  "stopAfterElapsedMinutes": 0,
  "stopOnStationary": false,
  "stopOnTerminate": false,
  "stopTimeout": 1,
  "triggerActivities": "in_vehicle, on_bicycle, on_foot, running, walking",
  "url": "",
  "useSignificantChangesOnly": false,
  "enabled": false,
  "schedulerEnabled": false,
  "trackingMode": 1,
  "odometer": 0,
  "isFirstBoot": false,
  "didLaunchInBackground": false,
  "didDeviceReboot": false
}
01-08 12:01:22.050 INFO [LoggerFacade$a a] 
╔═════════════════════════════════════════════
║ DEVICE SENSORS
╠═════════════════════════════════════════════
╟─ ✅  ACCELEROMETER: {Sensor name="LSM6DSM Accelerometer", vendor="STMicroelectronics", version=1, type=1, maxRange=78.4532, resolution=0.0023956299, power=0.15, minDelay=2500}
╟─ ✅  GYROSCOPE: {Sensor name="LSM6DSM Gyroscope", vendor="STMicroelectronics", version=1, type=4, maxRange=34.906586, resolution=0.0012207031, power=0.45, minDelay=2500}
╟─ ⚠️  MAGNETOMETER:  none.  Motion-detection system performance will be degraded
╟─ ✅  SIGNIFICANT_MOTION: {Sensor name="Significant Motion Detector", vendor="QTI", version=2, type=17, maxRange=1.0, resolution=1.0, power=0.1499939, minDelay=-1}
╚═════════════════════════════════════════════
01-08 12:01:22.051 DEBUG [TSSQLiteAppender$c run] 
  ℹ️  Cleared logs older than 72 hours
01-08 12:01:22.230 DEBUG [LifecycleManager onCreate] ☯️  onCreate
01-08 12:01:22.231 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 12:01:22.232 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 12:01:22.233 INFO [BackgroundGeolocation <init>] 
  ✅  Google Play Services: connected (version code:12451000)
01-08 12:01:22.246 INFO [TSProviderManager startMonitoring] 
  🎾  Start monitoring location-provider changes
01-08 12:01:22.268 DEBUG [SQLiteLocationDAO prune] 
  ℹ️  PRUNE -1 days
01-08 12:01:23.999 DEBUG [TSConfig e] ℹ️   Persist config, dirty: [allowIdenticalLocations, backgroundPermissionRationale, backgroundPermissionRationale.title, backgroundPermissionRationale.message, backgroundPermissionRationale.positiveAction, backgroundPermissionRationale.negativeAction, desiredAccuracy, distanceFilter, elasticityMultiplier, extras, headers, headlessJobService, heartbeatInterval, logLevel, params, schedule, startOnBoot, stopOnTerminate, stopTimeout]
01-08 12:01:24.243 DEBUG [TSGeofenceManager$d run] evaluation buffer timer elapsed
01-08 12:01:27.310 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 1 (122368ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672111,-122.388229 hAcc=11 et=+8d21h42m58s374ms alt=8.100000381469727 vel=0.59832466 bear=158.70662 vAcc=2 sAcc=2 bAcc=45 {Bundle[{}]}], time: 1736355564941

01-08 12:01:27.315 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:01:27.316 DEBUG [TSLocationManager a] Median accuracy: 10.968
01-08 12:01:35.865 DEBUG [LocationAuthorization withBackgroundPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 12:01:35.874 INFO [TSGeofenceManager start] 
  🎾  Start monitoring geofences
01-08 12:01:35.879 DEBUG [HttpService startMonitoringConnectivityChanges] 
  🎾  Start monitoring connectivity changes
01-08 12:01:35.890 DEBUG [DeviceSettings startMonitoringPowerSaveChanges] 
  🎾  Start monitoring powersave changes
01-08 12:01:35.890 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 2 (1954ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672081,-122.388272 hAcc=10 et=+8d21h45m7s369ms alt=8.100000381469727 vel=0.3593581 bear=158.97827 vAcc=1 sAcc=2 bAcc=45 {Bundle[{}]}], time: 1736355693936

01-08 12:01:35.893 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:01:35.895 DEBUG [TSLocationManager a] Median accuracy: 10.535
01-08 12:01:35.897 INFO [ActivityRecognitionService start] 
  🎾  Start motion-activity updates
01-08 12:01:35.899 DEBUG [HttpService a] 
╔═════════════════════════════════════════════
║ 📶  Connectivity change: connected? true
╠═════════════════════════════════════════════

01-08 12:01:35.905 INFO [HeartbeatService start] 
  🎾  Start heartbeat (15s)
01-08 12:01:35.907 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 8bf4a605-7976-46d7-bf44-642cb0e8839d
01-08 12:01:35.912 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:01:35.916 INFO [TrackingService changePace] 
  🔵  setPace: false → false
01-08 12:01:35.951 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 3 (2015ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672081,-122.388272 hAcc=10 et=+8d21h45m7s369ms alt=8.100000381469727 vel=0.3593581 bear=158.97827 vAcc=1 sAcc=2 bAcc=45 {Bundle[{}]}], time: 1736355693936

01-08 12:01:35.953 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired motionchange position, isMoving: false
01-08 12:01:35.954 DEBUG [TSLocationManager a] Median accuracy: 10.102
01-08 12:01:35.961 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: bf79d0f2-8b3f-4d91-9600-ccf58209e6c1
01-08 12:01:35.970 DEBUG [TSGeofenceManager startMonitoringStationaryRegion] 
  🎾  Start monitoring stationary region (radius: 150.0m 47.6720805,-122.3882721 hAcc=10.102)
01-08 12:01:35.993 DEBUG [AbstractService a] 
  🎾  motionchange [TrackingService  startId: 1, eventCount: 1]
01-08 12:01:35.994 INFO [TrackingService k] 
╔═════════════════════════════════════════════
║ TrackingService motionchange: false
╠═════════════════════════════════════════════

01-08 12:01:35.997 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [TrackingService startId: 1, eventCount: 0, sticky: false]
01-08 12:01:36.088 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 12:01:36.142 DEBUG [TSLocationManagerActivity a] locationsettings
01-08 12:01:36.143 DEBUG [TSConfig translateDesiredAccuracy] translateDesiredAccuracy (true): -1
01-08 12:01:36.211 DEBUG [AbstractService f] 
  ⚙️︎  TrackingService.stopSelfResult(1): true
01-08 12:01:36.230 DEBUG [AbstractService onDestroy] 
  🔴  TrackingService stopped
01-08 12:01:36.320 DEBUG [TSLocationManagerActivity onDestroy] locationsettings
01-08 12:01:43.946 DEBUG [AbstractService a] 
  🎾  start [ActivityRecognitionService  startId: 1, eventCount: 1]
01-08 12:01:43.951 DEBUG [ActivityRecognitionService a] 
  🚘 ️DetectedActivity [type=STILL, confidence=100]
01-08 12:01:43.961 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [ActivityRecognitionService startId: 1, eventCount: 0, sticky: false]
01-08 12:01:44.170 DEBUG [AbstractService f] 
  ⚙️︎  ActivityRecognitionService.stopSelfResult(1): true
01-08 12:01:44.172 DEBUG [AbstractService onDestroy] 
  🔴  ActivityRecognitionService stopped
01-08 12:01:46.117 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 12:01:46.118 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 12:01:50.930 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:01:50.938 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:01:50.941 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:02:05.951 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:02:05.957 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:02:05.960 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:02:13.759 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 12:02:14.469 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 12:02:14.472 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 12:02:20.968 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:02:20.970 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:02:20.976 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:02:23.819 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 12:02:23.820 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 12:02:35.998 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:02:36.003 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:02:36.009 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:02:51.039 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:02:51.041 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:02:51.054 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:03:06.073 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:03:06.082 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:03:06.085 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:03:21.109 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:03:21.124 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:03:21.128 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:03:28.328 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 12:03:28.352 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 12:03:30.287 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 4 (77349ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672038,-122.388261 hAcc=9 et=+8d21h45m46s370ms alt=8.100000381469727 vel=1.2250842 bear=178.62132 vAcc=1 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736355732937

01-08 12:03:30.290 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:03:30.291 DEBUG [TSLocationManager a] Median accuracy: 10.535
01-08 12:03:30.297 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: d528d981-aad6-4005-ab92-ab27e955d6a1
01-08 12:03:30.325 DEBUG [TSLocationManager a] 
  ℹ️  Clear last odometer location
01-08 12:03:30.331 DEBUG [TSGeofenceManager stopMonitoringStationaryRegion] 
  🔴  Stop monitoring stationary region
01-08 12:03:30.331 DEBUG [TSGeofenceManager c] 
  🔴  Stop monitoring geofences
01-08 12:03:30.334 INFO [ActivityRecognitionService stop] 
  🔴  Stop motion-activity updates
01-08 12:03:30.336 INFO [HeartbeatService stop] 
  🔴  Stop heartbeat
01-08 12:03:30.338 INFO [TSScheduleManager cancelOneShot] 
  ⏰ Cancel OneShot: HEARTBEAT
01-08 12:03:30.340 DEBUG [HttpService stopMonitoringConnectivityChanges] 
  🔴  Stop monitoring connectivity changes
01-08 12:03:30.341 DEBUG [DeviceSettings stopMonitoringPowerSaveChanges] 
  🔴  Stop monitoring powersave changes
01-08 12:17:20.108 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 12:17:20.131 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 12:49:10.563 INFO [LoggerFacade$a a] 
╔═════════════════════════════════════════════
║ TSLocationManager version: 3.6.5 (440)
╠═════════════════════════════════════════════
╟─ Zebra Technologies TC26 @ 10 (react)
{
  "activityRecognitionInterval": 10000,
  "allowIdenticalLocations": true,
  "authorization": {},
  "autoSync": true,
  "autoSyncThreshold": 0,
  "backgroundPermissionRationale": {
    "title": "Allow background location updates",
    "message": "Required for continuous location tracking",
    "positiveAction": "Accept",
    "negativeAction": "Cancel"
  },
  "batchSync": false,
  "configUrl": "",
  "crashDetector": {
    "enabled": false,
    "accelerometerThresholdHigh": 20,
    "accelerometerThresholdLow": 4.5,
    "gyroscopeThresholdHigh": 20,
    "gyroscopeThresholdLow": 4.5
  },
  "debug": false,
  "deferTime": 0,
  "desiredAccuracy": -1,
  "desiredOdometerAccuracy": 100,
  "disableAutoSyncOnCellular": false,
  "disableElasticity": false,
  "disableLocationAuthorizationAlert": false,
  "disableMotionActivityUpdates": false,
  "disableProviderChangeRecord": false,
  "disableStopDetection": false,
  "distanceFilter": 4,
  "elasticityMultiplier": 10,
  "enableHeadless": false,
  "enableTimestampMeta": false,
  "extras": {},
  "fastestLocationUpdateInterval": -1,
  "foregroundService": true,
  "geofenceInitialTriggerEntry": true,
  "geofenceModeHighAccuracy": false,
  "geofenceProximityRadius": 1000,
  "geofenceTemplate": "",
  "headers": {},
  "headlessJobService": "com.transistorsoft.rnbackgroundgeolocation.HeadlessTask",
  "heartbeatInterval": 15,
  "httpRootProperty": "location",
  "httpTimeout": 60000,
  "isMoving": false,
  "locationAuthorizationRequest": "Always",
  "locationTemplate": "",
  "locationTimeout": 60,
  "locationUpdateInterval": 1000,
  "locationsOrderDirection": "ASC",
  "logLevel": 5,
  "logMaxDays": 3,
  "maxBatchSize": -1,
  "maxDaysToPersist": 1,
  "maxMonitoredGeofences": 97,
  "maxRecordsToPersist": -1,
  "method": "POST",
  "minimumActivityRecognitionConfidence": 75,
  "motionTriggerDelay": 0,
  "notification": {
    "layout": "",
    "title": "",
    "text": "Location Service activated",
    "color": "",
    "channelName": "TSLocationManager",
    "channelId": "",
    "smallIcon": "",
    "largeIcon": "",
    "priority": -1,
    "sticky": false,
    "strings": {},
    "actions": []
  },
  "params": {},
  "persist": true,
  "persistMode": 2,
  "schedule": [],
  "scheduleUseAlarmManager": false,
  "speedJumpFilter": 300,
  "startOnBoot": true,
  "stationaryRadius": 25,
  "stopAfterElapsedMinutes": 0,
  "stopOnStationary": false,
  "stopOnTerminate": false,
  "stopTimeout": 1,
  "triggerActivities": "in_vehicle, on_bicycle, on_foot, running, walking",
  "url": "",
  "useSignificantChangesOnly": false,
  "enabled": false,
  "schedulerEnabled": false,
  "trackingMode": 1,
  "odometer": 0,
  "isFirstBoot": false,
  "didLaunchInBackground": false,
  "didDeviceReboot": false
}
01-08 12:49:10.567 INFO [TSConfig print] 
╔═════════════════════════════════════════════
║ DEVICE SENSORS
╠═════════════════════════════════════════════
╟─ ✅  ACCELEROMETER: {Sensor name="LSM6DSM Accelerometer", vendor="STMicroelectronics", version=1, type=1, maxRange=78.4532, resolution=0.0023956299, power=0.15, minDelay=2500}
╟─ ✅  GYROSCOPE: {Sensor name="LSM6DSM Gyroscope", vendor="STMicroelectronics", version=1, type=4, maxRange=34.906586, resolution=0.0012207031, power=0.45, minDelay=2500}
╟─ ⚠️  MAGNETOMETER:  none.  Motion-detection system performance will be degraded
╟─ ✅  SIGNIFICANT_MOTION: {Sensor name="Significant Motion Detector", vendor="QTI", version=2, type=17, maxRange=1.0, resolution=1.0, power=0.1499939, minDelay=-1}
╚═════════════════════════════════════════════
01-08 12:49:10.570 INFO [BootReceiver b] 
╔═════════════════════════════════════════════
║ BootReceiver: com.tendrel.rtls
╠═════════════════════════════════════════════
╟─ android.intent.action.MY_PACKAGE_REPLACED

01-08 12:49:10.570 DEBUG [TSSQLiteAppender$c run] 
  ℹ️  Cleared logs older than 72 hours
01-08 12:49:10.593 INFO [BackgroundGeolocation <init>] 
  ✅  Google Play Services: connected (version code:12451000)
01-08 12:49:10.593 DEBUG [LifecycleManager onCreate] ☯️  onCreate
01-08 12:49:10.651 DEBUG [LifecycleManager b] 
╔═════════════════════════════════════════════
║ ☯️  HeadlessMode? true
╠═════════════════════════════════════════════

01-08 12:49:10.667 INFO [TSProviderManager startMonitoring] 
  🎾  Start monitoring location-provider changes
01-08 12:49:10.682 DEBUG [TSGeofenceManager d] ℹ️  Persist monitored geofences: []
01-08 12:49:10.697 DEBUG [SQLiteLocationDAO prune] 
  ℹ️  PRUNE -1 days
01-08 12:49:10.968 DEBUG [TSGeofenceManager$d run] evaluation buffer timer elapsed
01-08 12:49:13.422 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 12:49:13.425 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 12:49:15.626 DEBUG [TSConfig e] ℹ️   Persist config, dirty: [allowIdenticalLocations, backgroundPermissionRationale, backgroundPermissionRationale.title, backgroundPermissionRationale.message, backgroundPermissionRationale.positiveAction, backgroundPermissionRationale.negativeAction, desiredAccuracy, distanceFilter, elasticityMultiplier, extras, headers, headlessJobService, heartbeatInterval, logLevel, params, schedule, startOnBoot, stopOnTerminate, stopTimeout]
01-08 12:49:15.878 DEBUG [TSGeofenceManager$d run] evaluation buffer timer elapsed
01-08 12:49:18.914 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 1 (84457ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672129,-122.388252 hAcc=100 et=+8d22h31m27s889ms etAcc=0 alt=8.100000381469727 vAcc=100 sAcc=??? bAcc=??? {Bundle[{}]}], time: 1736358474456

01-08 12:49:19.260 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:49:19.261 DEBUG [TSLocationManager a] Median accuracy: 100.0
01-08 12:49:25.359 DEBUG [LocationAuthorization withBackgroundPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 12:49:25.379 INFO [TSGeofenceManager start] 
  🎾  Start monitoring geofences
01-08 12:49:25.379 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 2 (2439ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672086,-122.388249 hAcc=9 et=+8d22h32m56s372ms alt=6.599999904632568 vel=1.10627 bear=182.88979 vAcc=1 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736358562939

01-08 12:49:25.383 DEBUG [HttpService startMonitoringConnectivityChanges] 
  🎾  Start monitoring connectivity changes
01-08 12:49:25.388 DEBUG [DeviceSettings startMonitoringPowerSaveChanges] 
  🎾  Start monitoring powersave changes
01-08 12:49:25.390 INFO [ActivityRecognitionService start] 
  🎾  Start motion-activity updates
01-08 12:49:25.392 DEBUG [HttpService a] 
╔═════════════════════════════════════════════
║ 📶  Connectivity change: connected? true
╠═════════════════════════════════════════════

01-08 12:49:25.400 INFO [HeartbeatService start] 
  🎾  Start heartbeat (15s)
01-08 12:49:25.401 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:49:25.404 INFO [TrackingService changePace] 
  🔵  setPace: false → false
01-08 12:49:25.405 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:49:25.406 DEBUG [TSLocationManager a] Median accuracy: 54.575
01-08 12:49:25.431 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 3 (2491ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672086,-122.388249 hAcc=9 et=+8d22h32m56s372ms alt=6.599999904632568 vel=1.10627 bear=182.88979 vAcc=1 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736358562939

01-08 12:49:25.433 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired motionchange position, isMoving: false
01-08 12:49:25.434 DEBUG [TSLocationManager a] Median accuracy: 9.15
01-08 12:49:25.442 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 9c73fd65-de7f-4aab-93c3-41fafc3aceeb
01-08 12:49:25.448 DEBUG [TSGeofenceManager startMonitoringStationaryRegion] 
  🎾  Start monitoring stationary region (radius: 150.0m 47.6720856,-122.3882487 hAcc=9.15)
01-08 12:49:25.477 DEBUG [AbstractService a] 
  🎾  motionchange [TrackingService  startId: 1, eventCount: 1]
01-08 12:49:25.479 INFO [TrackingService k] 
╔═════════════════════════════════════════════
║ TrackingService motionchange: false
╠═════════════════════════════════════════════

01-08 12:49:25.482 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [TrackingService startId: 1, eventCount: 0, sticky: false]
01-08 12:49:25.605 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 12:49:25.666 DEBUG [TSLocationManagerActivity a] locationsettings
01-08 12:49:25.667 DEBUG [TSConfig translateDesiredAccuracy] translateDesiredAccuracy (true): -1
01-08 12:49:25.710 DEBUG [AbstractService f] 
  ⚙️︎  TrackingService.stopSelfResult(1): true
01-08 12:49:25.742 DEBUG [AbstractService onDestroy] 
  🔴  TrackingService stopped
01-08 12:49:25.862 DEBUG [TSLocationManagerActivity onDestroy] locationsettings
01-08 12:49:35.651 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 12:49:35.652 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 12:49:40.439 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:49:40.445 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:49:40.448 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:49:55.476 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:49:55.485 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:49:55.494 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:49:59.912 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 4 (2981ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672092,-122.388289 hAcc=7 et=+8d22h33m30s363ms alt=6.599999904632568 vel=0.034103476 vAcc=2 sAcc=0 bAcc=??? {Bundle[{}]}], time: 1736358596930

01-08 12:49:59.935 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:49:59.936 DEBUG [TSLocationManager a] Median accuracy: 9.15
01-08 12:49:59.940 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 709fe60f-b33e-4ea3-a735-4a02915fd4e1
01-08 12:49:59.962 DEBUG [TSLocationManager a] 
  ℹ️  Clear last odometer location
01-08 12:49:59.962 DEBUG [TSGeofenceManager c] 
  🔴  Stop monitoring geofences
01-08 12:49:59.963 DEBUG [TSGeofenceManager stopMonitoringStationaryRegion] 
  🔴  Stop monitoring stationary region
01-08 12:49:59.968 INFO [ActivityRecognitionService stop] 
  🔴  Stop motion-activity updates
01-08 12:49:59.972 INFO [HeartbeatService stop] 
  🔴  Stop heartbeat
01-08 12:49:59.973 INFO [TSScheduleManager cancelOneShot] 
  ⏰ Cancel OneShot: HEARTBEAT
01-08 12:49:59.976 DEBUG [HttpService stopMonitoringConnectivityChanges] 
  🔴  Stop monitoring connectivity changes
01-08 12:49:59.977 DEBUG [DeviceSettings stopMonitoringPowerSaveChanges] 
  🔴  Stop monitoring powersave changes
01-08 12:50:12.789 DEBUG [LocationAuthorization withBackgroundPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 12:50:12.792 INFO [TSGeofenceManager start] 
  🎾  Start monitoring geofences
01-08 12:50:12.796 DEBUG [HttpService startMonitoringConnectivityChanges] 
  🎾  Start monitoring connectivity changes
01-08 12:50:12.800 DEBUG [DeviceSettings startMonitoringPowerSaveChanges] 
  🎾  Start monitoring powersave changes
01-08 12:50:12.803 INFO [ActivityRecognitionService start] 
  🎾  Start motion-activity updates
01-08 12:50:12.808 INFO [HeartbeatService start] 
  🎾  Start heartbeat (15s)
01-08 12:50:12.810 DEBUG [HttpService a] 
╔═════════════════════════════════════════════
║ 📶  Connectivity change: connected? true
╠═════════════════════════════════════════════

01-08 12:50:12.813 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:50:12.815 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 5 (884ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672102,-122.388275 hAcc=9 et=+8d22h33m45s363ms alt=6.599999904632568 vel=0.12864332 bear=60.53539 vAcc=2 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736358611930

01-08 12:50:12.815 INFO [TrackingService changePace] 
  🔵  setPace: false → false
01-08 12:50:12.843 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:50:12.844 DEBUG [TSLocationManager a] Median accuracy: 9.15
01-08 12:50:12.856 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 0792cecf-74fa-437f-9dcc-c08758833516
01-08 12:50:12.868 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 6 (937ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672102,-122.388275 hAcc=9 et=+8d22h33m45s363ms alt=6.599999904632568 vel=0.12864332 bear=60.53539 vAcc=2 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736358611930

01-08 12:50:12.870 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired motionchange position, isMoving: false
01-08 12:50:12.871 DEBUG [TSLocationManager a] Median accuracy: 8.863
01-08 12:50:12.877 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: fd4d1267-9daf-4144-b866-19b6129e5bf3
01-08 12:50:12.894 DEBUG [TSGeofenceManager startMonitoringStationaryRegion] 
  🎾  Start monitoring stationary region (radius: 150.0m 47.6721022,-122.3882754 hAcc=8.576)
01-08 12:50:12.910 DEBUG [AbstractService a] 
  🎾  motionchange [TrackingService  startId: 1, eventCount: 1]
01-08 12:50:12.910 INFO [TrackingService k] 
╔═════════════════════════════════════════════
║ TrackingService motionchange: false
╠═════════════════════════════════════════════

01-08 12:50:12.913 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [TrackingService startId: 1, eventCount: 0, sticky: false]
01-08 12:50:12.983 DEBUG [AbstractService a] 
  🎾  start [ActivityRecognitionService  startId: 1, eventCount: 1]
01-08 12:50:12.984 DEBUG [ActivityRecognitionService a] 
  🚘 ️DetectedActivity [type=STILL, confidence=100]
01-08 12:50:12.988 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [ActivityRecognitionService startId: 1, eventCount: 0, sticky: false]
01-08 12:50:13.008 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 12:50:13.052 DEBUG [TSLocationManagerActivity a] locationsettings
01-08 12:50:13.053 DEBUG [TSConfig translateDesiredAccuracy] translateDesiredAccuracy (true): -1
01-08 12:50:13.132 DEBUG [AbstractService f] 
  ⚙️︎  TrackingService.stopSelfResult(1): true
01-08 12:50:13.157 DEBUG [AbstractService onDestroy] 
  🔴  TrackingService stopped
01-08 12:50:13.200 DEBUG [AbstractService f] 
  ⚙️︎  ActivityRecognitionService.stopSelfResult(1): true
01-08 12:50:13.202 DEBUG [AbstractService onDestroy] 
  🔴  ActivityRecognitionService stopped
01-08 12:50:13.213 DEBUG [TSLocationManagerActivity onDestroy] locationsettings
01-08 12:50:21.246 INFO [TSScheduleManager oneShot] 
  ⏰ Oneshot TERMINATE_EVENT is already pending
01-08 12:50:21.975 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 12:50:21.978 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 12:50:23.055 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 12:50:23.056 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 12:50:27.841 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:50:27.844 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:50:27.854 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:50:42.883 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:50:42.887 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:50:42.893 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:50:58.431 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:50:58.441 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:50:58.445 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:51:14.446 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:51:14.456 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:51:14.464 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:51:29.483 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:51:29.491 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:51:29.496 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:51:44.516 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:51:44.522 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:51:44.529 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:51:59.559 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:51:59.567 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:51:59.577 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:52:14.589 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:52:14.593 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:52:14.599 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:52:29.606 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:52:29.608 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:52:29.614 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:52:44.637 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:52:44.648 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:52:44.652 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:52:59.676 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:52:59.681 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:52:59.689 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:53:14.706 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:53:14.713 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:53:14.727 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:53:29.748 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:53:29.761 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:53:29.767 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:53:44.791 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:53:44.797 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:53:44.807 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:53:59.831 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:53:59.840 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:53:59.847 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:54:14.872 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:54:14.877 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:54:14.887 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:54:29.911 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:54:29.921 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:54:29.930 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:54:44.938 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:54:44.942 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:54:44.945 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:54:59.953 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:54:59.955 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:54:59.962 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:55:14.964 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:55:14.969 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:55:14.972 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:55:30.001 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:55:30.007 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:55:30.016 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:55:45.041 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:55:45.046 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:55:45.051 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:56:00.059 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:56:00.061 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:56:00.065 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:56:15.091 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:56:15.101 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:56:15.105 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:56:30.119 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:56:30.122 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:56:30.132 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:56:45.140 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:56:45.152 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:56:45.164 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:57:00.182 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:57:00.190 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:57:00.195 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:57:01.603 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 12:57:01.771 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 12:57:15.207 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:57:15.214 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:57:15.217 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:57:30.225 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 12:57:30.230 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 12:57:30.234 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 12:57:35.352 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 7 (2416ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672114,-122.388278 hAcc=9 et=+8d22h41m6s365ms alt=6.199999809265137 vel=0.09869212 vAcc=1 sAcc=0 bAcc=??? {Bundle[{}]}], time: 1736359052932

01-08 12:57:35.386 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 12:57:35.388 DEBUG [TSLocationManager a] Median accuracy: 8.576
01-08 12:57:35.399 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: 44d81d79-123d-4492-be11-240503c4cd55
01-08 12:57:35.455 DEBUG [TSLocationManager a] 
  ℹ️  Clear last odometer location
01-08 12:57:35.456 DEBUG [TSGeofenceManager c] 
  🔴  Stop monitoring geofences
01-08 12:57:35.458 DEBUG [TSGeofenceManager stopMonitoringStationaryRegion] 
  🔴  Stop monitoring stationary region
01-08 12:57:35.459 INFO [ActivityRecognitionService stop] 
  🔴  Stop motion-activity updates
01-08 12:57:35.461 INFO [HeartbeatService stop] 
  🔴  Stop heartbeat
01-08 12:57:35.462 INFO [TSScheduleManager cancelOneShot] 
  ⏰ Cancel OneShot: HEARTBEAT
01-08 12:57:35.464 DEBUG [HttpService stopMonitoringConnectivityChanges] 
  🔴  Stop monitoring connectivity changes
01-08 12:57:35.465 DEBUG [DeviceSettings stopMonitoringPowerSaveChanges] 
  🔴  Stop monitoring powersave changes
01-08 12:57:42.859 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 12:57:42.866 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 13:01:45.806 INFO [LoggerFacade$a a] 
╔═════════════════════════════════════════════
║ TSLocationManager version: 3.6.5 (440)
╠═════════════════════════════════════════════
╟─ Zebra Technologies TC26 @ 10 (react)
{
  "activityRecognitionInterval": 10000,
  "allowIdenticalLocations": true,
  "authorization": {},
  "autoSync": true,
  "autoSyncThreshold": 0,
  "backgroundPermissionRationale": {
    "title": "Allow background location updates",
    "message": "Required for continuous location tracking",
    "positiveAction": "Accept",
    "negativeAction": "Cancel"
  },
  "batchSync": false,
  "configUrl": "",
  "crashDetector": {
    "enabled": false,
    "accelerometerThresholdHigh": 20,
    "accelerometerThresholdLow": 4.5,
    "gyroscopeThresholdHigh": 20,
    "gyroscopeThresholdLow": 4.5
  },
  "debug": true,
  "deferTime": 0,
  "desiredAccuracy": -1,
  "desiredOdometerAccuracy": 100,
  "disableAutoSyncOnCellular": false,
  "disableElasticity": false,
  "disableLocationAuthorizationAlert": false,
  "disableMotionActivityUpdates": false,
  "disableProviderChangeRecord": false,
  "disableStopDetection": false,
  "distanceFilter": 4,
  "elasticityMultiplier": 10,
  "enableHeadless": false,
  "enableTimestampMeta": false,
  "extras": {},
  "fastestLocationUpdateInterval": -1,
  "foregroundService": true,
  "geofenceInitialTriggerEntry": true,
  "geofenceModeHighAccuracy": false,
  "geofenceProximityRadius": 1000,
  "geofenceTemplate": "",
  "headers": {},
  "headlessJobService": "com.transistorsoft.rnbackgroundgeolocation.HeadlessTask",
  "heartbeatInterval": 15,
  "httpRootProperty": "location",
  "httpTimeout": 60000,
  "isMoving": false,
  "locationAuthorizationRequest": "Always",
  "locationTemplate": "",
  "locationTimeout": 60,
  "locationUpdateInterval": 1000,
  "locationsOrderDirection": "ASC",
  "logLevel": 5,
  "logMaxDays": 3,
  "maxBatchSize": -1,
  "maxDaysToPersist": 1,
  "maxMonitoredGeofences": 97,
  "maxRecordsToPersist": -1,
  "method": "POST",
  "minimumActivityRecognitionConfidence": 75,
  "motionTriggerDelay": 0,
  "notification": {
    "layout": "",
    "title": "",
    "text": "Location Service activated",
    "color": "",
    "channelName": "TSLocationManager",
    "channelId": "",
    "smallIcon": "",
    "largeIcon": "",
    "priority": -1,
    "sticky": false,
    "strings": {},
    "actions": []
  },
  "params": {},
  "persist": true,
  "persistMode": 2,
  "schedule": [],
  "scheduleUseAlarmManager": false,
  "speedJumpFilter": 300,
  "startOnBoot": true,
  "stationaryRadius": 25,
  "stopAfterElapsedMinutes": 0,
  "stopOnStationary": false,
  "stopOnTerminate": false,
  "stopTimeout": 1,
  "triggerActivities": "in_vehicle, on_bicycle, on_foot, running, walking",
  "url": "",
  "useSignificantChangesOnly": false,
  "enabled": false,
  "schedulerEnabled": false,
  "trackingMode": 1,
  "odometer": 0,
  "isFirstBoot": false,
  "didLaunchInBackground": false,
  "didDeviceReboot": false
}
01-08 13:01:45.809 INFO [LoggerFacade$a a] 
╔═════════════════════════════════════════════
║ DEVICE SENSORS
╠═════════════════════════════════════════════
╟─ ✅  ACCELEROMETER: {Sensor name="LSM6DSM Accelerometer", vendor="STMicroelectronics", version=1, type=1, maxRange=78.4532, resolution=0.0023956299, power=0.15, minDelay=2500}
╟─ ✅  GYROSCOPE: {Sensor name="LSM6DSM Gyroscope", vendor="STMicroelectronics", version=1, type=4, maxRange=34.906586, resolution=0.0012207031, power=0.45, minDelay=2500}
╟─ ⚠️  MAGNETOMETER:  none.  Motion-detection system performance will be degraded
╟─ ✅  SIGNIFICANT_MOTION: {Sensor name="Significant Motion Detector", vendor="QTI", version=2, type=17, maxRange=1.0, resolution=1.0, power=0.1499939, minDelay=-1}
╚═════════════════════════════════════════════
01-08 13:01:45.810 INFO [LoggerFacade$a a] 
╔═════════════════════════════════════════════
║ BootReceiver: com.tendrel.rtls
╠═════════════════════════════════════════════
╟─ android.intent.action.MY_PACKAGE_REPLACED

01-08 13:01:45.810 DEBUG [LoggerFacade$a a] ☯️  onCreate
01-08 13:01:45.811 INFO [LoggerFacade$a a] 
  ✅  Google Play Services: connected (version code:12451000)
01-08 13:01:45.811 DEBUG [TSSQLiteAppender$c run] 
  ℹ️  Cleared logs older than 72 hours
01-08 13:01:45.849 INFO [TSProviderManager startMonitoring] 
  🎾  Start monitoring location-provider changes
01-08 13:01:45.858 DEBUG [TSGeofenceManager d] ℹ️  Persist monitored geofences: []
01-08 13:01:45.870 DEBUG [SQLiteLocationDAO prune] 
  ℹ️  PRUNE -1 days
01-08 13:01:45.888 DEBUG [LifecycleManager b] 
╔═════════════════════════════════════════════
║ ☯️  HeadlessMode? true
╠═════════════════════════════════════════════

01-08 13:01:46.148 DEBUG [TSGeofenceManager$d run] evaluation buffer timer elapsed
01-08 13:01:46.401 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 13:01:46.404 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 13:01:48.498 DEBUG [TSConfig e] ℹ️   Persist config, dirty: [allowIdenticalLocations, backgroundPermissionRationale, backgroundPermissionRationale.title, backgroundPermissionRationale.message, backgroundPermissionRationale.positiveAction, backgroundPermissionRationale.negativeAction, debug, desiredAccuracy, distanceFilter, elasticityMultiplier, headlessJobService, heartbeatInterval, logLevel, startOnBoot, stopOnTerminate, stopTimeout]
01-08 13:01:48.740 DEBUG [TSGeofenceManager$d run] evaluation buffer timer elapsed
01-08 13:01:51.718 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 1 (253785ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672102,-122.388289 hAcc=9 et=+8d22h41m11s364ms alt=6.199999809265137 vel=0.13673805 bear=222.27673 vAcc=1 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736359057931

01-08 13:01:51.929 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 13:01:51.930 DEBUG [TSLocationManager a] Median accuracy: 8.576
01-08 13:01:56.027 DEBUG [LocationAuthorization withBackgroundPermission] 
  ℹ️  LocationAuthorization: Permission granted
01-08 13:01:56.035 INFO [TSGeofenceManager start] 
  🎾  Start monitoring geofences
01-08 13:01:56.039 DEBUG [HttpService startMonitoringConnectivityChanges] 
  🎾  Start monitoring connectivity changes
01-08 13:01:56.042 DEBUG [DeviceSettings startMonitoringPowerSaveChanges] 
  🎾  Start monitoring powersave changes
01-08 13:01:56.045 DEBUG [HttpService a] 
╔═════════════════════════════════════════════
║ 📶  Connectivity change: connected? true
╠═════════════════════════════════════════════

01-08 13:01:56.058 INFO [ActivityRecognitionService start] 
  🎾  Start motion-activity updates
01-08 13:01:56.060 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ getCurrentPosition LocationResult: 2 (122ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672184,-122.388207 hAcc=18 et=+8d22h45m29s370ms alt=6.599999904632568 vel=1.1859423 bear=43.694397 vAcc=1 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736359315937

01-08 13:01:56.063 INFO [HeartbeatService start] 
  🎾  Start heartbeat (15s)
01-08 13:01:56.065 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 13:01:56.069 INFO [TrackingService changePace] 
  🔵  setPace: false → false
01-08 13:01:56.093 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired current position
01-08 13:01:56.093 DEBUG [TSLocationManager a] Median accuracy: 13.165
01-08 13:01:56.127 INFO [TSLocationManager a] 
╔═════════════════════════════════════════════
║ motionchange LocationResult: 3 (190ms old)
╠═════════════════════════════════════════════
╟─ 📍  Location[fused 47.672184,-122.388207 hAcc=18 et=+8d22h45m29s370ms alt=6.599999904632568 vel=1.1859423 bear=43.694397 vAcc=1 sAcc=0 bAcc=45 {Bundle[{}]}], time: 1736359315937

01-08 13:01:56.129 INFO [TSLocationManager onSingleLocationResult] 
  🔵  Acquired motionchange position, isMoving: false
01-08 13:01:56.130 DEBUG [TSLocationManager a] Median accuracy: 17.754
01-08 13:01:56.143 INFO [SQLiteLocationDAO persist] 
  ✅  INSERT: c1ce68ac-1a54-4c56-b071-79517ff5dd8c
01-08 13:01:56.146 DEBUG [TSGeofenceManager startMonitoringStationaryRegion] 
  🎾  Start monitoring stationary region (radius: 150.0m 47.6721839,-122.3882067 hAcc=17.754)
01-08 13:01:56.174 DEBUG [AbstractService a] 
  🎾  motionchange [TrackingService  startId: 1, eventCount: 1]
01-08 13:01:56.176 INFO [TrackingService k] 
╔═════════════════════════════════════════════
║ TrackingService motionchange: false
╠═════════════════════════════════════════════

01-08 13:01:56.178 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [TrackingService startId: 1, eventCount: 0, sticky: false]
01-08 13:01:56.252 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 13:01:56.325 DEBUG [TSLocationManagerActivity a] locationsettings
01-08 13:01:56.326 DEBUG [TSConfig translateDesiredAccuracy] translateDesiredAccuracy (true): -1
01-08 13:01:56.409 DEBUG [AbstractService f] 
  ⚙️︎  TrackingService.stopSelfResult(1): true
01-08 13:01:56.434 DEBUG [AbstractService onDestroy] 
  🔴  TrackingService stopped
01-08 13:01:56.512 DEBUG [AbstractService a] 
  🎾  start [ActivityRecognitionService  startId: 1, eventCount: 1]
01-08 13:01:56.519 DEBUG [ActivityRecognitionService a] 
  🚘 ️DetectedActivity [type=UNKNOWN, confidence=40]
01-08 13:01:56.525 DEBUG [AbstractService a] 
  ⚙️︎   FINISH [ActivityRecognitionService startId: 1, eventCount: 0, sticky: false]
01-08 13:01:56.534 DEBUG [TSLocationManagerActivity onDestroy] locationsettings
01-08 13:01:56.730 DEBUG [AbstractService f] 
  ⚙️︎  ActivityRecognitionService.stopSelfResult(1): true
01-08 13:01:56.731 DEBUG [AbstractService onDestroy] 
  🔴  ActivityRecognitionService stopped
01-08 13:01:57.966 INFO [TSScheduleManager oneShot] 
  ⏰ Oneshot TERMINATE_EVENT is already pending
01-08 13:01:58.665 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 13:02:07.357 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 13:02:07.385 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 13:02:09.793 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 13:02:11.039 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 13:02:11.200 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 13:02:11.492 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 13:02:11.511 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 13:02:11.513 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 13:02:12.960 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 13:02:13.658 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 13:02:15.855 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 13:02:15.895 INFO [TSScheduleManager oneShot] 
  ⏰ Oneshot TERMINATE_EVENT is already pending
01-08 13:02:16.614 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 13:02:16.616 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 13:02:22.990 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: TERMINATE_EVENT
╠═════════════════════════════════════════════

01-08 13:02:22.991 DEBUG [TerminateEvent$a onChange] 
  ℹ️  TERMINATE_EVENT ignored (MainActivity is still active).
01-08 13:02:26.527 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 13:02:26.545 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 13:02:26.547 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 13:02:34.137 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 13:02:34.178 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 13:02:34.582 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: TERMINATE_EVENT in 10000ms (jobID: -1708771588)
01-08 13:02:35.278 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 13:02:38.779 DEBUG [LifecycleManager onResume] ☯️  onResume
01-08 13:02:39.790 INFO [TSScheduleManager oneShot] 
  ⏰ Oneshot TERMINATE_EVENT is already pending
01-08 13:02:40.479 DEBUG [LifecycleManager onPause] ☯️  onPause
01-08 13:02:40.482 DEBUG [LifecycleManager onStop] ☯️  onStop
01-08 13:02:41.561 INFO [ScheduleEvent a] 
╔═════════════════════════════════════════════
║ ⏰ OneShot event fired: HEARTBEAT
╠═════════════════════════════════════════════

01-08 13:02:41.564 INFO [TSScheduleManager oneShot] 
  ⏰ Scheduled OneShot: HEARTBEAT in 15000ms (jobID: -1307475748)
01-08 13:02:41.570 DEBUG [HeartbeatService onHeartbeat] ❤️
01-08 13:02:43.024 DEBUG [LifecycleManager onStart] ☯️  onStart
01-08 13:02:43.059 DEBUG [LifecycleManager onResume] ☯️  onResume

@JaredHightower-Tendrel JaredHightower-Tendrel changed the title [Physical Device] - onHeartbeat event listener works on iOS but not Android [Physical Device] - onHeartbeat and onLocation event listeners works on iOS but not Android Jan 8, 2025
@JaredHightower-Tendrel JaredHightower-Tendrel changed the title [Physical Device] - onHeartbeat and onLocation event listeners works on iOS but not Android [Physical Device][BUG] - onHeartbeat and onLocation event listeners works on iOS but not Android Jan 8, 2025
@JaredHightower-Tendrel JaredHightower-Tendrel changed the title [Physical Device][BUG] - onHeartbeat and onLocation event listeners works on iOS but not Android [BUG][Physical Device] - onHeartbeat and onLocation event listeners works on iOS but not Android Jan 8, 2025
@JaredHightower-Tendrel
Copy link
Author

This matter is now resolved, and no additional assistance is required.

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

No branches or pull requests

1 participant