Implemented enhancements:
- Improved Publisher Presence: Amalgamate History and Emit Events #1038
- Improved Publisher Presence: Network Connectivity Tests #1037
- Improved Publisher Presence: Presence History #1036
- Improved Publisher Presence: Boilerplate #1035
Fixed bugs:
- Extended disconnection after long period of connectivity #1039
Closed issues:
- Add Status to Readme #1048
- Subscriber NetworkConnectivityTests: EnterFailedWithNonFatalNack #1017
- Subscriber NetworkConnectivityTests: UpdateFailedWithNonFatalNack #1018
- Subscriber NetworkConnectivityTests: TCPConnectionUnresponsive #1016
Merged pull requests:
- Add beta notice to readme #1049 (AndyTWF)
- additional faults enabled in subscribers NetworkConnectivityTests #1046 (davyskiba)
- Extended publisher presence API #1045 (AndyTWF)
- Bump ably-java to 1.2.27 #1044 (AndyTWF)
- Publisher presence events #1042 (AndyTWF)
- Disallow online state for subscriber active fatal fault #1041 (lawrence-forooghian)
- Error info constants #1040 (AndyTWF)
- Add network connectivity tests assertions on new publisher presence state API #1034 (lawrence-forooghian)
- Fetch history #1033 (davyskiba)
- Subscriber extended publisher presence #1032 (AndyTWF)
- Subscriber connection unresponsive #1031 (davyskiba)
- Subscriber enter failed fault #1023 (davyskiba)
Breaking changes:
- Subscriber: do not attempt to update presence data when channel is suspended #980
Fixed bugs:
- ErrorInformation must not enforce non-nullability #1014
- Memory leak connected to the Mapbox SDK #810
Closed issues:
- Handling invalid values from mapbox #1004
- Remove
ConnectionException
from docstrings ofPublisher.add/track
#995 - Handle update presence retries in the WorkerQueue #962
- Fix memory leaks on publisher example apps #815
- Modify AddTrackableFailedWorker implementation to provide a result #546
Merged pull requests:
- Upgrade to Mapbox Navigation SDK 2.11.0 #1027 (lawrence-forooghian)
- Fix subscriber app crashes #1026 (AndyTWF)
- Update ably_core_version to 1.2.26 #1022 (ikbalkaya)
- Unify invalid mapbox values handling #1011 (davyskiba)
- Update resolution retry #1000 (davyskiba)
- Fix memory leak issue #812 (ikbalkaya)
Fixed bugs:
- Re-adding a trackable results in trackable being offline #989
- Re-added trackable does not enter or subscribe to presenc #988
- Re-adding trackable immediately after removing it causes NullPointerException #984
- Exceptions thrown inside a block passed to
DefaultAbly
’sscope.launch()
are suppressed #909
Closed issues:
- Remove
ConnectionException
from docstrings ofPublisher.add/track
#995 - Improve the version
1.5.1
to1.6.0
migration guide #974 - Remove workaround for handling failed connection when adding a trackable #898
Merged pull requests:
- Remove
ConnectionException
from docstrings ofPublisher.add/track
#997 (lawrence-forooghian) - Add migration guides for 1.6.0 and 1.6.1 #996 (lawrence-forooghian)
- Test exceptions #994 (davyskiba)
- Fix issues re-adding trackable #990 (AndyTWF)
Merged pull requests:
This release adds additional enhancements to operational stability, for publishers in particular, when running on a devices with unreliable network connectivity.
Please see:
Implemented enhancements:
- Wait for Ably connection to leave the "suspended" state before performing operations on Ably #973
- Make publisher.track() and publisher.add() return instantly #966
Fixed bugs:
- Handle presence.enter() retries in a special way #972
- Remove
connect()
andattach()
timeouts fromDefaultAbly
#948 - Non-fatal errors responses for
presence.enter()
cause Publisher to throw exceptions #907 - Publisher can get into a bad state if offline for > 2 minutes #906
- Publisher apps reporting "Timeout was thrown when waiting for channel to attach" #859
Closed issues:
- Flakey test: faultBeforeAddingTrackable[DisconnectWithFailedResume] #961
- Presence operations are invalidly reattempted after a failed resume #951
- Add
Publisher.start()
andPublisher.stop()
coverage toNetworkConnectivityTest
#939 - Adding trackable just before fallback reconnection results in multiple exceptions #863
Merged pull requests:
- Increase ably-java core version to 1.2.24 #982 (ikbalkaya)
- 973 check channel state #981 (davyskiba)
- Configure the Subscribing Example Project for Firebase App Distribution #979 (QuintinWillison)
- Fix minor issue in the adhoc example app publishing workflow #978 (QuintinWillison)
- Make some fixes and improvements to recent
DefaultAbly
test changes #977 (lawrence-forooghian) - Add pointers to sites that can be used to verify Maven Central releases #976 (QuintinWillison)
- Add workflow to allow us to adhoc-publish the example apps #969 (QuintinWillison)
- Remove timeouts from attach and connect #965 (KacperKluka)
This release enhances operational stability, for publishers in particular, when running on a devices with unreliable network connectivity.
Please see: Upgrade / Migration Guide from v.1.5.1
Implemented enhancements:
Fixed bugs:
- Exceptions thrown for new publishing requests when offline #871
- Retry behaviour improvements for Ably API calls #927
Publisher.remove\(\)
fails during several connectivity faults #905- Adding a trackable stalls forever if presence.enter() is interrupted by a disconnection #896
- Publisher crashes when location data has NaN value #861
- Subscriber, upon losing connectivity, continues to show the Publisher as online #835
- Subscriber, upon losing connectivity, continues to show the Publisher as online #833
- Unexpected exceptions fail the worker queue and silently break the SDK #830
- Fix the logic responsible for deciding if an enhanced location update is predicted #828
- Java users cannot build a publisher due to type issue #826
- NPE from ably-java SDK #809
Closed issues:
- Investigate TODO comment in
DropAction
fault regarding "limit" #934 - Reduce publisher location check polling interval #946
- Flakey test: com.ably.tracking.publisher.NetworkConnectivityTests > faultDuringTracking[NullTransportFault] #943
- Make
NetworkConnectivityTests
verify expected side-effects of operations publisher SDK claims was successful #925 - Reduce complexity of state transition assertions in
NetworkConnectivityTests
#901 connect - when channel fetched is in DETACHED state and attach fails
causes emulator to hang #900createAndStartPublisherAndSubscriberAndWaitUntilDataEnds
IndexOutOfBoundsException #899- Flakey test:
when an unexpected exception is thrown by worker's async work, the queue should call worker's unexpected async exception method
#888 - Investigate documented
ConnectionException
thrown byPublisher.Builder.start
and how users are meant to handle it #876 - Investigate
ConnectionException
thrown byPublisher.stop
and whether we can remove it #873 - Try simulating networking problems during core use cases #865
- Sending presence leave event times out whilst still connected #862
shouldNotEmitPublisherPresenceFalseIfPublisherIsPresentFromTheStart
(PublisherAndSubscriberTests
) failing with "first publisherPresence value should be true" #845staticTokenAuthenticationShouldCreateWorkingConnectionBetweenPublisherAndSubscriber
(AuthenticationTests
) failing with "Expectation 'subscriber received a location update' unfulfilled." #844- Replace deprecated
package
attribute in manifest file #837 - Test issue for sync #834
- Enable logging in the example apps by default #818
- Update workflows to stop using the
set-output
command #817 - Update workflows to stop using Node.js 12 actions #816
- Refactor Publisher EventQueue to match Subscriber #781
- Consider if we should allow to create multiple publisher instances #464
- Flakey Test:
createAndStartPublisherAndSubscriberAndWaitUntilDataEnds
(PublisherAndSubscriberTests
) #259
Merged pull requests:
- 871 add exceptions #938 (davyskiba)
- Use random trackable ids in integration tests #968 (AndyTWF)
NetworkingConnectivityTest
fixes #960 (jaley)- Example App Distribution documentation #959 (QuintinWillison)
- Release/1.6.0 beta.1 #956 (QuintinWillison)
- Upload Publishing Example App to Firebase for Distribution to Testers #955 (QuintinWillison)
- Fix
publish.stop\(\)
hang when no trackables added #952 (jaley) - Increase back-off when querying history in test #949 (AndyTWF)
- Reenable disconnect failed resume faults #947 (ikbalkaya)
- Change publisher and subscriber stop operation to always succeed #945 (KacperKluka)
- Fix flakey publisher test #944 (AndyTWF)
- Change publisher's remove operation to always succeed #942 (KacperKluka)
- Reset fault state for each test function #941 (jaley)
- Upgrade core Ably SDK dependency to version
1.2.23
#940 (QuintinWillison) - Switch to CIO ktor engine #937 (jaley)
- Improve testing in respect of JVM version underlying Gradle #936 (QuintinWillison)
- setting log level for test location source AblyRealtime instance #935 (davyskiba)
- Improve
NetworkingConnectivityTest
assertions #933 (jaley) - Fix swapped error codes when creating the malformed message exception #930 (KacperKluka)
- Add methods for detecting retriable and fatal Ably exceptions #929 (KacperKluka)
- 901 simplify transition assertions #916 (davyskiba)
- Upgrade build tools to make Layer 7 proxy branch work #915 (QuintinWillison)
- Write further unit tests for
DefaultAbly
#914 (lawrence-forooghian) - wait for publisher emissions before performing test assertion #911 (AndyTWF)
- Update workflow status badges #904 (QuintinWillison)
- Add mapbox testing information to contributing guide #895 (AndyTWF)
- Wrap
ably-java
’sChannelStateChange
in our own type #894 (lawrence-forooghian) - Publisher and Subscriber builders start method throws exception descr… #893 (davyskiba)
- Use different locations in test data file #892 (AndyTWF)
- Add timeout on verification in WorkerQueueTest #890 (AndyTWF)
- Document Java version requirements for running
./gradlew
#889 (lawrence-forooghian) - coroutines and coroutines-test dependency updated to 1.6.4 #887 (davyskiba)
- Layer 7 Proxy for Network Connectivity Tests #886 (jaley)
- Subscriber gets immediate publisher online state flakey test #884 (QuintinWillison)
- Upgrade Mapbox Nav SDK to version 2.10.0 #881 (KacperKluka)
- Upgrade Ably core SDK dependency to improve testing capability #880 (QuintinWillison)
- Write black-box tests for
DefaultAbly.connect
#878 (lawrence-forooghian) - Add dedicated unexpected error handling to certain workers #877 (KacperKluka)
- Static token auth flakey test #875 (QuintinWillison)
- Remove
TimeoutCancellationException
fromPublisher.stop
#874 (lawrence-forooghian) - Handle unexpected exceptions in the worker queue #872 (KacperKluka)
- Networking connectivity integration test using local proxy #866 (jaley)
Implemented enhancements:
- Provide a fix/option for intermittent connection issue on publisher #803
Fixed bugs:
- Fix crash when publisher tries to modify its internal state after being stopped #808
- Fix not re-entering presence after connection is recovered via "Upgrade ably-java to 1.2.20" #822 (KacperKluka)
Merged pull requests:
- Check publisher state before emitting state on flow #820 (ikbalkaya)
- Allow to specify the remainPresentFor Ably transport parameter #806 (KacperKluka)
Implemented enhancements:
- Missing interface for tokenRequest Authentication instance creation in the Java facade #297, in #787 (KacperKluka)
- Add LocationAnimator for the Java API #790, in #791 (KacperKluka)
- Add missing methods to the Subscriber Java API #788, in #789 (KacperKluka)
- Update documentation regarding the Java verision of the AAT #707, in #793 (KacperKluka)
- Add logs connected to the lifecycle of publisher and subscriber SDKs #804, in #813 (KacperKluka)
- Add token-based auth configuration that do not require to specify client ID #768 (KacperKluka)
Fixed bugs:
- Fix NPE related to ably-java usage #805, in #807 (KacperKluka)
- Publisher failing with
IllegalStateException
: Already resumed, but proposed with updatekotlin.Unit
#799, in #800 (KacperKluka) - Refactor the Ably wrapper to be more secure and error-proof #440, in #782 (davyskiba)
Improved Subscriber behaviour:
- Wait for the presence data sync before returning a subscriber instance #792, implemented in #794 (KacperKluka)
Implemented enhancements:
- Upgrade Mapbox SDK to 2.8.0 GA version #770
Fixed bugs:
- Handle properly the error paths for the callback based auth #743
- The publisher should close the Ably connection when it has no trackables #170
Closed issues:
- Refactor the event queue in the CoreSubscriber #660
Implemented enhancements:
- Make the client ID an optional parameter if users use a token-based auth #766
Version 1.4.0 of the Ably Asset Tracking SDKs for Android uses the Mapbox Navigation SDK in version 2.8.0 which enables users to use it together with the newest Mapbox Map SDK in version 10.8.0.
Implemented enhancements:
- Upgrade Mapbox to 2.8.0 #759
Merged pull requests:
Implemented enhancements:
- Upgrade Mapbox Nav SDK to the GA 2.7.0 version #742
Fixed bugs:
- CoreLocationAnimator progress may be bigger than 100% #751
- Fix the waitForChannelReconnection() method implementation #744
Merged pull requests:
- Expose publisher presence flow from the subscriber SDK #754 (KacperKluka)
- Fix location animator progress exceeding 100% #752 (KacperKluka)
- Update builder examples for publisher and subscriber in the README #750 (KacperKluka)
- Fix the waitForChannelReconnection() method implementation #749 (KacperKluka)
- Upgrade Mapbox to 2.7.0 #748 (KacperKluka)
- Add known limitations section to the README #747 (KacperKluka)
Implemented enhancements:
- Add support for the "environment" Ably client option #739
Fixed bugs:
- Bad location updates when predictions are enabled #734
Merged pull requests:
- Update camera less frequently in the subscriber example app #737 (KacperKluka)
- Always disable the predictions mechanism #733 (KacperKluka)
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Full Changelog from version 1.1.0 RC 7 (last pre-release)
Full Changelog from version 1.0.0 (last release)
Implemented enhancements:
- Allow to enable and disable the cycling profile #726
Fixed bugs:
- Validate messages received from Ably #691
- Publisher service notification disappearing after stopping the publisher #528
Closed issues:
- Add option to enable or disable the cycling profile in the publisher example app #728
Merged pull requests:
- Upgrade Mapbox Nav SDK to 2.7.0 #727 (KacperKluka)
- Add documentation about location animator flows #725 (KacperKluka)
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Implemented enhancements:
- Request new auth token when channel attach fails due to permission failure #695
- Change authentication callback functions to suspending functions #686
- Allow to configure the interval of camera updates for the location animator #685
- Allow to configure the intentional delay of the location animator #684
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Fixed bugs:
- ConnectionException after waking up a device with subscriber running #702
Merged pull requests:
- Wait for the suspended channel to reconnect before performing an operation #710 (KacperKluka)
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Fixed bugs:
- Removing and adding new trackable with the same name leads to an exception #701
- Exception handling issues when connecting to Ably #700
- EnhancedLocationUpdate equals returns true for different locations #694
- Fix Java-WebSockets security issue #688
- Fix gson dependency vulnerability #687
Merged pull requests:
- Fix error when trying to connect to a previously closed channel #708 (KacperKluka)
- Fix exception throwing issues when connecting to Ably #699 (KacperKluka)
- Fix location updates equals implementation #697 (KacperKluka)
- Update ably-android version to 1.2.14 #693 (KacperKluka)
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Fixed bugs:
- Fatal error when adding a trackable after removing all previous ones #676
Closed issues:
- Upgrade
ably-java
dependency to version 1.2.12 #669
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Fixed bugs:
- Handle exception when getting presence messages but channel is in the suspended state #663
- Handle the "Connection resume failed" exception from ably-java #662
Closed issues:
- Refactor / simplify event queue that is implemented in CorePublisher #522
Merged pull requests:
- Handle connection resume exception #665 (KacperKluka)
- Improve add trackable process #664 (KacperKluka)
- Add timeout to stopping the publisher #661 (KacperKluka)
- Integration: Refactor event queue #607 (KacperKluka)
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Implemented enhancements:
- Upgrade Mapbox dependencies #642
Closed issues:
- Add a toggle in the example subscription app that would hide/show the raw locations marker on the map #649
Merged pull requests:
- Add dialog with animation options in the subscriber example app #653 (KacperKluka)
- Upgrade Mapbox to version 2.3.0 and other dependencies to the newest versions #652 (KacperKluka)
Version 1.1 of the Ably Asset Tracking SDKs for Android brings changes to both the publishing and subscribing SDKs, and their corresponding example apps, that make the subscriber's marker animate much more smoothly.
Implemented enhancements:
- Include the latest Mapbox profile to the build #631
- Send batches of location updates #626
- Update
ably-android
dependency to version 1.2.11 #624
Fixed bugs:
- Trackable channel rewind doesn't work properly after sending resolution data from the Publisher #638
Closed issues:
- Use the next location update intervals to make the marker movement smoother in the example app #634
- Add constant location engine resolution to the publisher example app #633
Merged pull requests:
- Add a migration guide to version 1.1.0 in the README file #646 (KacperKluka)
- Add animations module with location animators #645 (KacperKluka)
- Enable sending resolution from publisher example app by default #644 (KacperKluka)
- Make map marker animations smoother #643 (KacperKluka)
- Use the new asset tracking Mapbox profile snapshot #641 (KacperKluka)
- Send publisher resolution data via presence data #640 (KacperKluka)
- Update the Ably SDK to the version 1.2.11 #637 (KacperKluka)
- Allow to specify the constant location engine resolution in the publisher example app #636 (KacperKluka)
- Add next location update intervals to the Subscriber API #629 (KacperKluka)
- Send resolution data from publisher #628 (KacperKluka)
- Enable setting a constant location engine resolution #627 (KacperKluka)
The Ably Asset Tracking SDKs for Android are out of Beta! 🎉
Implemented enhancements:
- Add timestamps to logs #530
Fixed bugs:
- The destination from previously active trackable is not cleared if the new active trackable has no destination #588
Closed issues:
- Store app preferences key in a non-translatable string resources file #502
- Release to Maven Central #318
Merged pull requests:
- Add timestamps to log statements #600 (KacperKluka)
- Add info about installing the AAT SDK from the Maven Central repository #598 (KacperKluka)
- Clear route when the new active trackable does not have a destination #594 (KacperKluka)
- Publish to the MavenCentral #592 (KacperKluka)
- Move untranslatable strings to a separate file #579 (KacperKluka)
Fixed bugs:
- API documentation is missing in the released SDK #571
Merged pull requests:
- Add sources and javadoc JARs to the published library #580 (KacperKluka)
- Add callback for retrieving the raw history data from Mapbox #576 (KacperKluka)
Implemented enhancements:
- Migrate to Mapbox v2 #573
- Allow to set a trackable destination in the publisher example app #534
- Display the horizontal accuracy of locations in the subscriber example app #533
- Add display of the SkippedLocations to the Example Subsriber app #490
Fixed bugs:
- Zooming does not improve resolution: Resolution-type events does not get sent. #535
Closed issues:
- Add option to select routing profile in the Publisher Example app #332
- Make ResolutionConstraints an interface (right now it is a sealed class) #299
- Decide from which location type should the last known location be chosen #79
Merged pull requests:
- Migrate to Mapbox v2 #574 (KacperKluka)
- Show skipped locations in the subscriber example app #567 (KacperKluka)
- Add information about removing notification when stopping the publisher #566 (KacperKluka)
- Fix presence messages parsing if presence data is in JSON object format #565 (KacperKluka)
- Change ResolutionConstraints to an interface #562 (KacperKluka)
- Show accuracy circles for raw and enhanced markers in the subscriber app #560 (KacperKluka)
- Set routing profile in the publisher example app #553 (KacperKluka)
- Set trackable destination in the publisher example app #552 (KacperKluka)
Implemented enhancements:
- Clear the route when destination is reached #536
- Allow to disable predictions in the Mapbox SDK #532
Merged pull requests:
- Clear the route when the destination is reached #548 (KacperKluka)
- Allow to disable the enhanced location predictions in the publisher #547 (KacperKluka)
Implemented enhancements:
- Add log statements to both SDKs #524
- Display resolution information in the example apps #510
- Send resolution to subscriber #509
Fixed bugs:
- Calling remove() should remove a trackable that isn't finished being added #450
Closed issues:
- Information about using SDK as a dependency in Gradle #348
- Update docs for DefaultResolutionConstraints #305
- Document the Event classes that are used in both SDKs #260
- Document the public interfaces exposed from LocationUpdateModels.kt in core-sdk #144
Merged pull requests:
- Fix NPE when converting Ably's ChannelStateChange to AAT's one #527 (KacperKluka)
- Add log statements to publisher SDK #526 (KacperKluka)
- Add GitHub Packages installation instruction to the README #523 (KacperKluka)
- Add documentation for the core publisher and core subscriber events #521 (KacperKluka)
- Fix DefaultResolutionConstraints docs #519 (KacperKluka)
- Add documentation for the public location update classes #518 (KacperKluka)
- Show publisher's resolution in the subscriber example app #517 (KacperKluka)
- Send resolution data from publisher to subscribers #515 (KacperKluka)
- Remove unfinished trackable when remove called #506 (ikbalkaya)
Implemented enhancements:
- Add raw location information for DEBUG capabilities #489
Fixed bugs:
- Ensure only one active instance of MapboxNavigation is created #463
- Project doesn't build under JDK 16 #462
- Add and track methods called with an already added trackable repeat some of the adding logic #458
- Detach from a channel when a trackable is removed #438
- Code execution freezes when adding a trackable #403
Closed issues:
- Remove code connected to trip metadata from the Publisher SDK #431
- Conform ReadMe and Contributing Documents #393
Merged pull requests:
- Add raw locations to the Subscriber SDK #495 (KacperKluka)
- Send raw locations from the Publisher #493 (KacperKluka)
- Start replaying recorded trip when the trip is started #428 (KacperKluka)
Implemented enhancements:
- Implement
RSC7d
(Ably-Agent header) #395
Fixed bugs:
- Specify channel modes to limit the amount of unnecessary data being sent and received over Ably #412
- EnhancedLocationUpdate timestamps do not represent real world time #387
Merged pull requests:
- Update Ably SDK to 1.2.8 #420 (KacperKluka)
- Use real world timestamps for enhanced location updates #416 (KacperKluka)
- Use channel modes to avoid unnecessary channel attachements #413 (KacperKluka)
- Report AAT version through Ably Agent Header #410 (KacperKluka)
Implemented enhancements:
- Update ably-android library #404
- App Obfuscation causes invalid keys to be serialised into transmitted JSON #396
Closed issues:
- Prepare Proguard configuration #50
Merged pull requests:
- Update Ably SDK to 1.2.7 #405 (KacperKluka)
- Add proguard configuration #399 (KacperKluka)
- Explicitly specify DTO field names during serialization #398 (KacperKluka)
Implemented enhancements:
- Add a map to the Android Publisher example #377
- Explore a way to not have 2 background notifications when SDK is used on Android 9+ #358
Fixed bugs:
- Publishing app crashes on Android API 21 #359
- Subscriber app tracking UI text overlapping #345
- Missing emit to log from within MapException catch block #338
- When an invalid Ably key is used when building an example app there is no log message explaining what is not working #335
- Handle exception thrown when sending enhanced location update fails #213
Closed issues:
- Send trip start and trip end events on a meta channel from Publisher SDK (Android) #374
- Check if we should pass client ID when using the AblySimulationLocationEngine #232
- Start using the new Kotlin JVM IR Backend #202
- Improve CorePublisher active Trackable state management #195
Merged pull requests:
- Show custom notification for Mapbox trip service #389 (KacperKluka)
- Remove previousState from ConnectionStateChange #385 (KacperKluka)
- Log mapbox exception when setting destination fails #384 (KacperKluka)
- Add a map to the Android Publisher example #382 (KacperKluka)
- Fix overlapping text in subscriber example app #381 (KacperKluka)
- Increase minSdk to 24 for example apps #380 (KacperKluka)
- Send failed location updates #379 (KacperKluka)
- Update Kotlin to 1.5.0 #370 (KacperKluka)
Merged pull requests:
- Downgrade Mapbox to 1.6.1 #369 (KacperKluka)
- Send trip start and trip end events on a meta channel from Publisher SDK #357 (KacperKluka)
Implemented enhancements:
- Channel Namespace #327
Fixed bugs:
- Exceptions are not routed meaningfully #201
Closed issues:
- Simple Log Handler #347
- Replace Android Location type with our own location type #337
- Make a decision regarding wether we expose portable type in addition to Android specific Location type via our APIs #287
- add capability to the SDK to support JWT flow + examples #285
- Lint Gradle Groovy scripts #8
Merged pull requests:
- Apply presence data hotfix to the main branch #356 (KacperKluka)
- Increase the distance value compensation added to mocked locations in tests #351 (KacperKluka)
- Use ScrollView in publisher kotlin app to fix entering tracking ID #344 (ben-xD)
- Remove battery level from LocationUpdate #343 (KacperKluka)
- Replace Android location type with our own location type #341 (KacperKluka)
- Add JWT authentication support #340 (KacperKluka)
- Add simple log handler #339 (KacperKluka)
- Rename and refactor java example apps modules #333 (KacperKluka)
- Allow TokenParams and TokenRequest capability to be null #331 (KacperKluka)
- Bring back section about secrets to the readme. #330 (kavalerov)
- Add prefix to Ably channel names #329 (KacperKluka)
- Redesign publisher example app #323 (KacperKluka)
- Redesign subscriber example app #322 (KacperKluka)
- Links to Asset Tracking content - ably-asset-tracking-android #321 (ramiro-nd)
- Upgrade ably-android version #315 (QuintinWillison)
- Add missing error routing #311 (KacperKluka)
Merged pull requests:
Merged pull requests:
- Fix crash when presence data is missing or in wrong format #354 (KacperKluka)
Fixed bugs:
- Keep zoom level when auto centering in the subscriber example app #306
- Handle exception thrown when subscribing for presence messages fails in publisher #214
Closed issues:
- Change names of client type values from presence data #300
- Release to package manager #286
- Add tests that check if different resolutions have impact on the number of sent locations #280
- Move internal classes to the common module #271
- Make DTO class definitions easier to identify in the codebase #165
Merged pull requests:
- Publish to Maven GitHub Packages #317 (QuintinWillison)
- Replace jCenter repository with maven Central #316 (QuintinWillison)
- Replace interpolated string definitions with plain literals #314 (QuintinWillison)
- Remove empty proguard configuration files to reduce noise #312 (QuintinWillison)
- Change presence client types values to match naming convention #310 (KacperKluka)
- Handle error when subscribing for presence messages fails #308 (KacperKluka)
- Keep the zoom level when auto centering the camera position #307 (KacperKluka)
- Split out contributing guide #304 (QuintinWillison)
- Add tests for publisher resolution and frequency of sent messages #303 (KacperKluka)
- Annotate DTO classes #302 (KacperKluka)
- Move shared classes that shouldn't be exposed to the common module #301 (KacperKluka)
- Remove the metadata field from the Trackable class #294 (KacperKluka)
- Create a test-common module for shared unit tests code #282 (KacperKluka)
Implemented enhancements:
- Handle stopped state of the Subscriber #227
- Update Mapbox dependency to Nav 2.0 #225
- Token-based Ably Realtime Authentication #171
- Unify approach of GPS location updates on iOS and Android #223
Fixed bugs:
- Fix location history test files #258
- Emit the current channel state when attaching a channel state listener #257
- Don't modify Publisher state outside of it's events queue thread #256
- Change the order of actions when closing a channel in the Ably wrapper #246
- Use Ably and channel state when determining the trackable state in the Subscriber SDK #238
- Handle errors when starting Subscriber and Publisher #237
- Change the order of actions when removing a trackable from the Publisher #228
- Unify the way of deciding if a location update should be sent in the Publisher #236
- Fix calling suspend functions from Subscriber events queue #226
- Handle exception thrown when connection to the channel on subscriber start #215
- Android Publisher example app crashes when iOS Subscriber broadcasts resolution request #206
Closed issues:
- Remove unused metadata field from the Trackable class #293
- Allow to specify the default resolution and trackables resolution in the publisher example app #277
- Don't expose GeoJsonMessage in the API #272
- Add a button that will focus the map on the asset location in the Subscriber example app #242
- Show the zoom level controls on the map in the Subscriber example app #241
- Start method of Publisher and Subscriber SDKs should be async #240
- Subscriber should be able to request no resolution after creation #239
- Remove unnecessary isStopped check from handling StopEvent in the Publisher #231
- Improve Publisher stop #230
- Consider adding @Throws annotation to the API methods #229
- Rename AblyException to ConnectionException #218
- Fix comments in the README file #217
- Decide whether we should use battery level when comparing LocationUpdate objects #210
- Improve adding trackable flow in the publisher example app #209
- Unify the way of parsing enums sent over Ably channels across all platforms #207
- Simplify location history version field #198
- Rename AssetStatus #197
- Remove superfluous prefix from PublisherState inner class #196
- Trackables should be comparable by id, not by all fields #187
- Create shared location history file format that can be used in Android and iOS #184
- Reflect tracked asset state in publisher example app #183
- App crashes when replaying file from background #181
- Android: Send elevation and battery level of the device as part of the update #176
- Move Ably to common project and share between subscriber and publisher #167
- Remove the need to keep a reference to the "native" publisher or subscriber instance for Java users #166
- Introduce simpler state model for publisher and subscriber #164
- Investigate upgrading to Kotlin 1.4 #163
- Refactor our Java interfaces for callbacks to use CompletableFuture #162
- Refactor our Kotlin interfaces for event streaming to use Asynchronous Flow #161
- Consider renaming the locations method on the publisher builder #145
- Only dispatch events to main queue when they're intended as direct callbacks to the SDK user #135
- Channel state observability #133
- Move DebugConfiguration interfaces out to become part of standard API #132
- Create another module for shared utilities that are used only in tests #128
- Generate API documentation #122
- Consider whether clearer delineation is required between public and internal #118
- Decide which builders fields are required to create Publisher and Subscriber objects #116
- Implement proper strategy for publisher stop #110
- Improve fallback logic in resolution policy's resolve method #104
- Reduce amount of fields in DefaultPublisher #103
- Consider making the delineation between publisher and resolution policy interfaces clearer #87
- Reflect tracked asset state in publisher example app #82
- Refine approach for error reporting #81
- Decide on "filter out" vs "batched together" for location updates #66
- Move code from core module "common" package to a separate gradle module #58
- Revisit Ably / Connection Configuration Naming #55
- Move shared interfaces and classes from both SDKs to the core module #54
- Fill unit testing gaps for the publisher builder #46
- Allow event dispatch Looper to be specified explicitly in the SDK API #31
- Decide whether we want to keep the debug features in the final SDK version #19
- Check if AssetPublisher is started from a main thread #18
Merged pull requests:
- Remove the metadata field from the Trackable class #294 (KacperKluka)
- Add skipped location updates to the LocationUpdate #292 (KacperKluka)
- Automatically center the camera on the marker position in subscriber example app #289 (KacperKluka)
- Only run deployment fail step on docs workflow if needed #284 (QuintinWillison)
- Replace hard-coded repository URL components #283 (QuintinWillison)
- Add optional Firebase Crashlytics integration to the publisher example app #281 (KacperKluka)
- Setting resolution for publisher and trackables in the publisher example app #279 (KacperKluka)
- Allow to add trackable from the trackable id input keyboard #278 (KacperKluka)
- Show zoom buttons in the subscriber example app #275 (KacperKluka)
- Update Mapbox to version 2.0 #274 (KacperKluka)
- Run MapboxNavigation calls in the main thread #273 (KacperKluka)
- Update code present in the README #270 (KacperKluka)
- Use batteryLevel when comparing location updates #266 (KacperKluka)
- Upgrade to Kotlin 1.4 #265 (KacperKluka)
- Throw an exception if the publisher state is accessed after it is disposed #264 (KacperKluka)
- Add docs workflow #263 (QuintinWillison)
- Change actions order when removing a trackable from the Publisher #262 (KacperKluka)
- Change actions order when disconnecting from Ably channel #261 (KacperKluka)
- Clear the Publisher state after it is stopped #255 (KacperKluka)
- Remove redundant isStopped check in the CorePublisher #254 (KacperKluka)
- Allow the Subscriber to request no resolution from the Publisher #253 (KacperKluka)
- Use Ably and channel state when determining the trackable state in Subscriber SDK #252 (KacperKluka)
- Handle subscriber in the stopped state #250 (KacperKluka)
- Handle errors when starting Publisher and Subscriber #249 (KacperKluka)
- Change start to be an asynchronous function for Subscriber #248 (KacperKluka)
- Unify approach of GPS location updates #247 (KacperKluka)
- Add @Throws annotation to inform Java users about thrown exceptions #245 (KacperKluka)
- Rename AblyException to ConnectionException #244 (KacperKluka)
- Require only one of the two resolution checks to be passed in order to send a location update #243 (KacperKluka)
- Fix modifying Publisher state from the Ably's disconnect callback #224 (KacperKluka)
- Add token based authentication #222 (KacperKluka)
- Fix location history test files #221 (KacperKluka)
- Fix emitting trackable state in the publisher SDK #220 (KacperKluka)
- Fix subscriber not receiving any location updates #219 (KacperKluka)
- Unify the way of parsing enums sent over Ably channels #208 (KacperKluka)
- Simplify location history version field #205 (KacperKluka)
- Move Ably wrapper to the common module #204 (KacperKluka)
- Stopping strategy for the Publisher #203 (KacperKluka)
- Renaming a few classes #200 (KacperKluka)
- Decide which builder fields are required #199 (KacperKluka)
- Observe state of each trackable channel #194 (KacperKluka)
- Add missing error handling for Ably #193 (KacperKluka)
- Fix failing check workflow due to a Jacoco issue #192 (KacperKluka)
- Redesign publisher example app to support adding multiple assets #190 (KacperKluka)
- Use only the Trackable ID when comparing trackables #189 (KacperKluka)
- Expose publisher trackables set to the SDK users #188 (KacperKluka)
- New history file format #186 (KacperKluka)
- Add battery level and altitude (elevation) #182 (KacperKluka)
- Move DebugConfiguration interfaces out to become part of standard API #180 (KacperKluka)
- Add missing exception handling for the Ably SDK code #179 (KacperKluka)
- Add native API methods to the facade interfaces #178 (KacperKluka)
- Implement Java facades for Publisher and Subscriber #177 (KacperKluka)
- Introduce simpler state model for publisher and subscriber #175 (KacperKluka)
- Replay last event in the flow when someone starts listening to it #172 (KacperKluka)
- Refactor Asynchronous Interfaces #159 (QuintinWillison)
- Run publisher in a service in the example app #158 (KacperKluka)
- Improve fallback logic in resolution policy's resolve method #156 (KacperKluka)
- Integration test for Publisher and Subscriber interaction #150 (KacperKluka)
Closed issues:
- Consider creating the Ably instance with the client ID included #138
- Remember last sent locations for each of the Trackables independently #125
- Consider whether DefaultResolutionSet should expose a getResolution(Boolean, Boolean) public API #101
- Subscriber needs a means of telling the publisher it no longer wishes to express have influence over Resolution #98
- Consider whether single-method listeners defined using Kotlin's typealias are appropriate for Java interoperability #91
- Subscriber: Handle threading in SDK with a proper threading strategy #86
- Re-encapsulate more information from ably-java when reporting exceptions from Ably #80
Merged pull requests:
- Readme tweaks and corrections #148 (QuintinWillison)
- Add status badge for the emulate workflow #146 (QuintinWillison)
- Fix wrong ably state change events #143 (KacperKluka)
- Use our own LocationUpdate instead of Android's Location class #142 (KacperKluka)
- Asynchronous Stop APIs for Publisher and Subscriber #141 (QuintinWillison)
- Fix updating subscriber's resolution without passing the client ID #140 (KacperKluka)
- Stop sending raw location updates from Publisher to Subscriber #139 (KacperKluka)
- Stop navigation trip session and cleanup Mapbox when stopping the Publisher #137 (KacperKluka)
- Remove a check that doesn't allow to call track() method multiple times #136 (KacperKluka)
- Add missing android coroutines dependency #130 (KacperKluka)
- Keep track of last location for each of the trackables individually #126 (KacperKluka)
- Add basic integration test for Publisher #123 (KacperKluka)
- Allow Subscriber to cancel its requested resolution #121 (KacperKluka)
- Change getResolution method from DefaultResoultionSet to an internal method #120 (KacperKluka)
- Add integration testing app #119 (QuintinWillison)
- Create custom location engines that allow to change resolution while working #117 (KacperKluka)
- Replace Kotlin functions with custom interfaces in Publisher and Subscriber APIs #114 (KacperKluka)
- Handle routing profile (transportation mode) in Publisher SDK #113 (KacperKluka)
- Add jacoco tool for test coverage and update reports #112 (KacperKluka)
- Add tests for DefaultResolutionPolicy #111 (KacperKluka)
- Conform Readme #109 (QuintinWillison)
- Add threading policy to Subscriber SDK #108 (KacperKluka)
- Treat warnings as errors #99 (QuintinWillison)
Closed issues:
- Remove Asset prefix from Subscriber interfaces #72
- Add Android OS support to readme #70
- Remove Ably prefix from the AblyConfiguration interface #69
- Bring in Amplify Configuration for S3 from repository secret #65
- Handle threading in SDK with a proper threading strategy #22
- Add proper error handling to AssetPublisher SDK #17
Merged pull requests:
- Add resolution examples to subscriber and publisher example apps #105 (KacperKluka)
- Broadcast desired resolution from the Subscribers #100 (KacperKluka)
- Default resolution policy implementation #97 (KacperKluka)
- Remove misleading commentary from default Proximity API #96 (QuintinWillison)
- Refine Proximity API #95 (QuintinWillison)
- Conform subscriber API commentary #94 (QuintinWillison)
- Resolution requests API in the subscriber SDK #93 (QuintinWillison)
- Restore Java tests #90 (QuintinWillison)
- Bring AWS Amplify configuration file in from repository secret #89 (QuintinWillison)
- Refactor resolution computation callbacks #88 (QuintinWillison)
- Handle remaining Publisher actions with events queue #85 (KacperKluka)
- Remove unnecessary Mapbox's location engine listener #83 (KacperKluka)
- Resolution Policy API additions #78 (QuintinWillison)
- Implement new threading solution #77 (KacperKluka)
- Rename Ably configuration to connection configuration #76 (KacperKluka)
- Remove Asset prefix from Subscriber SDK #75 (KacperKluka)
- Change min SDK version to 21 and add README info #74 (KacperKluka)
- Add upload artifact steps to the assemble workflow #71 (QuintinWillison)
- Add tracked asset destination support #67 (KacperKluka)
- Add support for multiple assets tracking #60 (KacperKluka)