Skip to content

Latest commit

 

History

History
1071 lines (762 loc) · 96.1 KB

CHANGELOG.md

File metadata and controls

1071 lines (762 loc) · 96.1 KB

Change log

Full Changelog

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:

Full Changelog

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 of Publisher.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:

Full Changelog

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’s scope.launch() are suppressed #909

Closed issues:

  • Remove ConnectionException from docstrings of Publisher.add/track #995
  • Improve the version 1.5.1 to 1.6.0 migration guide #974
  • Remove workaround for handling failed connection when adding a trackable #898

Merged pull requests:

Full Changelog

Merged pull requests:

  • Downgrade google-play-services-location version to 17.1.0 #991 (davyskiba)

This release adds additional enhancements to operational stability, for publishers in particular, when running on a devices with unreliable network connectivity.

Please see:

Full Changelog

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() and attach() timeouts from DefaultAbly #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() and Publisher.stop() coverage to NetworkConnectivityTest #939
  • Adding trackable just before fallback reconnection results in multiple exceptions #863

Merged pull requests:

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

Full Changelog

Implemented enhancements:

  • Upgrade to Mapbox Nav SDK 2.10.0 #882
  • Consider supporting static token authentication #730

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 #900
  • createAndStartPublisherAndSubscriberAndWaitUntilDataEnds 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 by Publisher.Builder.start and how users are meant to handle it #876
  • Investigate ConnectionException thrown by Publisher.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" #845
  • staticTokenAuthenticationShouldCreateWorkingConnectionBetweenPublisherAndSubscriber (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:

Full Changelog

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)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Fix NPE related to ably-java usage #805, in #807 (KacperKluka)
  • Publisher failing with IllegalStateException: Already resumed, but proposed with update kotlin.Unit #799, in #800 (KacperKluka)
  • Refactor the Ably wrapper to be more secure and error-proof #440, in #782 (davyskiba)

Full Changelog

Improved Subscriber behaviour:

  • Wait for the presence data sync before returning a subscriber instance #792, implemented in #794 (KacperKluka)

Full Changelog

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

Full Changelog

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.

Full Changelog

Implemented enhancements:

  • Upgrade Mapbox to 2.8.0 #759

Merged pull requests:

  • Mapbox navigation dependency version updated to 2.8.0-rc.2 #761 (davyskiba)

Full Changelog

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:

Full Changelog

Implemented enhancements:

  • Add support for the "environment" Ably client option #739

Full Changelog

Fixed bugs:

  • Bad location updates when predictions are enabled #734

Merged pull requests:

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:

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

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.

Full Changelog

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.

Full Changelog

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:

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

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.

Full Changelog

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:

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

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.

Full Changelog

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:

The Ably Asset Tracking SDKs for Android are out of Beta! 🎉

Full Changelog

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:

Full Changelog

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)

Full Changelog

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:

Full Changelog

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)

Full Changelog

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:

Full Changelog

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:

Full Changelog

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:

Full Changelog

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:

Full Changelog

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:

Full Changelog

Merged pull requests:

Full Changelog

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:

Full Changelog

Merged pull requests:

Full Changelog

Merged pull requests:

  • Fix crash when presence data is missing or in wrong format #354 (KacperKluka)

Full Changelog

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:

Full Changelog

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:

Full Changelog

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:

Full Changelog

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: