topl-service:TorService Lifecycle Events are now broadcast to TorServiceEventBroadcaster
topl-service-base:ServiceExecutionHooks have been implemented such that library users can
leverage suspension functions at key points of TorService‘s operation, and allow for synchronous
code execution.
Moved topl-service:ServiceActionName String definitions to topl-service-base to expose them
such that library users can utilize them in their implementation of TorServiceEventBroadcaster
Bug Fixes:
Kotlin internal visibility modifier is public from Java code.
See Issue 100
Duplicate v3 Client Authentication files were inhibiting Tor from starting properly.
See Issue 105
Tor notice messages were modified between 0.4.4.0 and 0.4.5.4-rc, which caused
topl-service:ServiceEventBroadcaster‘s notice message filter to miss broadcasting of ports.
See Issue 110
Dependencies were bumped to latest stable releases.
Bug Fix: Notifications not showing on API 25 and below 12abbf7
Deprecates ServiceNotification.Builder.setContentIntentData in favor of
ServiceNotification.Builder.setContentIntent via Library implementer providing the needed PendingIntent
Deprecates the ServiceNotification.Builder.setActivityToBeOpenedOnTap method in favor of using
the new ServiceNotification.Builder.setContentIntentData to mitigate multiple activities from
being opened.
Adds support for Version 3 Hidden Service Client Authentication
The V3ClientAuthManager class can be obtained from TorServiceController.getV3ClientAuthManager
after Builder initialization, which facilitates easily adding private keys to Tor’s ClientAuthDir.
Adds better support for multi-module projects by moving topl-service‘s public
classes/abstractions to a separate module, topl-service-base.
TorService now broadcasts as a NOTICE via the EventBroadcasters when onTaskRemoved occurred,
instead of being broadcast as DEBUG (which required TorSettings.hasDebugLogs to be set to true).
Can now listen for it in the implementing application’s TorServiceEventBroadcaster.
See Migrations for details on how to migrate from 1.0.0 to 2.0.0
Bug Fix: remove use of = operator from kotlin methods where java.void is expected as a return value.
Adds JvmOverloads/JvmStatic to methods/variables for making use of Library for Java users more convenient.
Bug Fix: implements try/catch block on BaseService.startService method if application calls it while in the background.
Adds new option for BackgroundManager.Builder to run the Service in the Foreground when the application is sent
to the background.
Exposes ServiceTorSettings class for easier construction of a settings screen by Library users.
Adds methods to ServiceTorSettings for quickly saving user settings to TorServicePrefs.
Adds a helper method in TorServiceController.Companion for quickly generating the class.
Adds option within TorSettings for setting IsolationFlags specific to the protocol being opened on a port.
Updates TorServiceEventBroadcaster‘s broadcasting of ports to now broadcast a single class containing
all port information instead of individual methods for each port type.
Adds a delay to modifying of Tor config DisableNetwork on device connectivity loss such that
intermittent disconnections are smoothed out w/o the network call failing
Also helps with inhibiting ports from changing if utilizing “auto”.