Skip to content

chore: add core location types, config, and EventBus event#654

Open
Shahroz16 wants to merge 2 commits intofeat/real-time-locationfrom
feat/location-core-types
Open

chore: add core location types, config, and EventBus event#654
Shahroz16 wants to merge 2 commits intofeat/real-time-locationfrom
feat/location-core-types

Conversation

@Shahroz16
Copy link
Contributor

@Shahroz16 Shahroz16 commented Feb 15, 2026

Summary

  • Add LocationModuleConfig with enableLocationTracking flag and Builder pattern
  • Add internal location types: AuthorizationStatus, LocationGranularity, LocationProviderError, LocationSnapshot
  • Add internal LocationProvider interface and LocationRequestException for provider abstraction
  • Add TrackLocationEvent / LocationData to the core Event sealed class for inter-module communication
  • Add LOCATION_UPDATE event name constant
  • Wire DataPipeline to subscribe to TrackLocationEvent and track as "Location Update" with lat/lng properties

This PR lays the foundation for the location module by establishing the type system, configuration, and the EventBus contract between the location module and DataPipeline. No public location API is exposed yet.


Note

Medium Risk
Introduces a new cross-module event type and begins emitting location tracking events (including lat/lng), which can impact analytics data and privacy expectations if published inadvertently.

Overview
Adds a location foundation across modules: LocationModuleConfig now supports an enableLocationTracking flag (with builder + default module constructor), and the location module introduces internal provider abstractions and framework-agnostic location/authorization types.

Extends the core Event bus contract with TrackLocationEvent + LocationData, adds EventNames.LOCATION_UPDATE, and wires DataPipelines to subscribe to location events and emit a "Location Update" track event with lat/lng properties.

Written by Cursor Bugbot for commit 7843bc0. This will update automatically on new commits. Configure here.

Add foundational location types and wiring needed by subsequent location
features:

- LocationModuleConfig: enableLocationTracking flag with Builder
- LocationData / TrackLocationEvent in core Event sealed class
- LocationSnapshot, AuthorizationStatus, LocationProviderError,
  LocationGranularity types in location module
- LocationProviding interface abstracting platform location services
- LocationRequestException for structured error propagation
- DataPipeline subscription for TrackLocationEvent -> "Location Update"
- LOCATION_UPDATE event name constant

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Feb 15, 2026

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


@codecov
Copy link

codecov bot commented Feb 15, 2026

Codecov Report

❌ Patch coverage is 6.66667% with 14 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (feat/real-time-location@eb4d17e). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...ines/src/main/kotlin/io/customer/sdk/CustomerIO.kt 11.11% 8 Missing ⚠️
...main/kotlin/io/customer/sdk/communication/Event.kt 0.00% 6 Missing ⚠️
Additional details and impacted files
@@                    Coverage Diff                     @@
##             feat/real-time-location     #654   +/-   ##
==========================================================
  Coverage                           ?   68.20%           
  Complexity                         ?      760           
==========================================================
  Files                              ?      142           
  Lines                              ?     4322           
  Branches                           ?      582           
==========================================================
  Hits                               ?     2948           
  Misses                             ?     1148           
  Partials                           ?      226           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

github-actions bot commented Feb 15, 2026

Build available to test
Version: feat-location-core-types-SNAPSHOT
Repository: https://central.sonatype.com/repository/maven-snapshots/

@github-actions
Copy link

  • java_layout: feat/location-core-types (1771176763)

@github-actions
Copy link

  • kotlin_compose: feat/location-core-types (1771176757)

@github-actions
Copy link

github-actions bot commented Feb 15, 2026

📏 SDK Binary Size Comparison Report

Module Last Recorded Size Current Size Change in Size
core 29.88 KB 30.63 KB ⬆️ +0.75KB
datapipelines 39.12 KB 39.17 KB ⬆️ +0.05KB
messagingpush 30.25 KB 30.25 KB ✅ No Change
messaginginapp 106.69 KB 106.69 KB ✅ No Change
tracking-migration 22.89 KB 22.89 KB ✅ No Change

@github-actions
Copy link

  • java_layout: feat/location-core-types (1771177662)

@github-actions
Copy link

  • kotlin_compose: feat/location-core-types (1771177668)

@Shahroz16 Shahroz16 self-assigned this Feb 15, 2026
@Shahroz16 Shahroz16 marked this pull request as ready for review February 16, 2026 09:07
@Shahroz16 Shahroz16 requested a review from a team as a code owner February 16, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant