Releases: RoverPlatform/rover-android
Releases · RoverPlatform/rover-android
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
Changelog
NOTE: This release includes a breaking change. In addition to setting it up in your Manifest, you must now specify your app's Associated Domain from your Rover Settings to CoreAssembler() as a parameter:
Rover.initialize(
CoreAssembler(
/* ... */
associatedDomains = listOf("myapp.rover.io")
)
/* ... */
)
Bug Fixes
#302 Present Website in external browser would always match as a Campaign URL.
v2.2.0
Changelog
Enhancements
- Migrate installation identifier when upgrading from Rover Android SDK 1.x to SDK 2.x;
- Made sync GraphQL queries more explicit about ordering (#254 and #279);
- WorkManager-powered background sync can now be disabled (286);
- Add new Advertising module for correlating Advertising ID from Google AdMob (#288);
- Ensure graceful failure for various intent callbacks for location, push, etc. when Rover has not been initialized rather than explicitly crashing (#289);
- Bump Google dependencies to latest versions (#290).
Bug Fixes
- Geofences should track transitions only once (#259);
- Solve Google dependency order issues preventing building a clean tree on a new machine;
- Influence Tracking now more robust (#265);
- Boolean attribute values in UserInfo and elsewhere would not restore correctly (#285);
- Notification Center would always display the empty state screen (#296);
- Close button on Experience screen toolbars still being displayed when set to Back Button Only;
- Rover logger usage when Rover not initialized falls back gracefully;
- App Updates were not getting tracked correctly.
v2.1.8
CHANGELOG
This resolves one issue associated with the v2.1.7 release.
- When Rover SDK was integrated into an app that already had an FCM push token, the SDK would incorrectly attempt to reset the token rather than re-requesting it.
Note that this includes an API breaking change.
In your Rover.initialize(...)
line, you need to change the invocation of NotificationsAssembler
.
Replace:
// INCORRECT OLD CODE
resetPushToken = {
FirebaseInstanceId.getInstance().deleteInstanceId()
FirebaseInstanceId.getInstance().token
}
with:
requestPushToken = { tokenFutureCallback ->
FirebaseInstanceId.getInstance().instanceId.addOnCompleteListener { task ->
tokenFutureCallback(task.result?.token)
}
}