Commit Graph

76 Commits

Author SHA1 Message Date
hans 707a4c7956 Refactor theme management to use ListenableBuilder for dynamic theme updates
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-07-01 17:05:05 +02:00
hans b0c9fe7b98 Refactor theme management to use ValueListenableBuilder for effective theme updates
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-07-01 16:56:30 +02:00
hans f8dcaf3c6c Refactor theme management to use ValueNotifier for reactive updates
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-07-01 16:35:31 +02:00
hans 93f90a3f72 Fix DebugAuthInterface logout method
Added environment key to ArcaneEnvironment constructor
 Renamed switchEnvironment parameter in ArcaneEnvironment constructor

Bumped arcane_helper_utils dependency version
2025-05-19 17:00:27 +02:00
hans c2cfb46d82 Fix authentication interface and service methods for logout and login. 2025-05-19 17:00:01 +02:00
hans 077956b8ba Organize theme service
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-05-14 11:12:02 +02:00
hans 55ff65ba32 Remove unnecessary notifyListeners calls
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-05-14 11:11:45 +02:00
hans 7bf5a6d33d Update ServiceProvider to make service instances optional
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-05-13 15:00:58 +02:00
hans 515c7fb5b1 Fixes the notifier for feature flags and updates the example
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-05-13 14:31:21 +02:00
hans 1eab50b0f5 Update example documentation
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-30 14:41:26 +02:00
hans 88210ce1bc Added requiredServiceOfType getter on ArcaneServiceProvider
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 19:52:58 +02:00
hans 25b456a664 Broke up arcane service into separate files
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 19:18:38 +02:00
hans 3ef93bb3f9 Renamed serviceInstances => registeredServices and added a removeService method
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 18:56:48 +02:00
hans d1daf0e39f Renamed getters on ArcaneService
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 17:25:27 +02:00
hans 304c6c8094 Re-add service locators. They should be called as:
ArcaneService.of<MyService>(context)

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 17:09:55 +02:00
hans d069eb0fd3 Remove 'of' and 'requiredOf' locators
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 16:43:21 +02:00
hans c3eb677b05 Try using a mixin instead
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 16:41:34 +02:00
hans a04038afc3 Put service locators in an extension
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 16:40:20 +02:00
hans 87f86d8117 Update service provider
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 16:32:53 +02:00
hans 8711eae4d8 Fix updateShouldNotify on ArcaneServiceProvider
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 15:00:48 +02:00
hans 87eabf0293 Made ArcaneTheme private (_ArcaneTheme)
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:33:30 +02:00
hans 186e6531b2 Made the switchEnvironment field in ArcaneEnvironment private (_switchEnvironment)
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 83aaa3b446 Remove unused import
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 0b5a088f09 Correctly export the theme switcher widget
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans c5c0009cb4 Moved platform brightness checking from ArcaneApp to ArcaneThemeSwitcher, where it is more appropriate
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 599ade3981 Check for empty interfaces before initializing them in the logger
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 6fb304a4a1 Only send log messages to the LoggingInterfaces if the logging service has been initialized
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 9f1b26e097 Extra log messages will not longer be added to the log stream if more than one LoggingInterface is registered
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans b7c55913e9 Made ArcaneServiceProvider.of(context) nullable
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 1510ded49d Rename onEnvironmentChanged to switchEnvironment
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 6764d8074a Setting a theme style now automatically switches to that theme
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 3fd38d3b26 Added logStream to logger. Updated example code.
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 68595f0a20 Re-add getters on ArcaneTheme
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans bfa5c646d7 Fixes bug with following/unfollowing system theme
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans e402308f7b Fixes broken tests
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 23f0387389 Fixes tests and updates reactive theme
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans cfd9052442 Fixes the reactive theme service to properly follow the system brightness
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 58817b349d Fixed late initialized value in logging service 2025-04-29 14:16:17 +02:00
hans 39160c223e Removed arcane theme from service provider
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 2c8596d517 Fixed theme
- fixed: currentMode, dark, light now actually emit new values when changed
- added: getters for lightTheme, darkTheme, and systemTheme
- breaking: currentMode -> systemTheme
- added: currentTheme
- breaking: currentMode => currentTheme
- change: Arcane.theme.followSystemTheme(context) required to follow system theme
- change: After following the system theme, calling Arcane.theme.switchTheme() cancels following the system theme
- added: ArcaneReactiveTheme is now registered in ArcaneServiceProvider when using ArcaneApp

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans e9ba80bcc2 Minor change
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 253f2914be Remove debug logging
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans ab880a2f5b Minor fix to fileAndLineParts calculation
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans cf4cf1306b Fix module/method/fileAndLineNumber calculations in logging service
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans 0c5b947809 Logging service:
- added: reset()
- added: `skipAutodetection` option for module, method, and metadata
- added: unregisterInterface()
- Created FileAndLineNumber mixin

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
Hans Kokx e901da8080 Added of(context) extension to ArcaneService 2025-04-29 14:16:17 +02:00
hans d4dc176356 ArcaneReactiveTheme now optionally takes a ThemeMode parameter when calling switchTheme
Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans ac82e93b9d [UNTESTED] Fixes notifiers and adds some additional methods. Adds tests.
Changes:
// ArcaneEnvironment
breaking: context.read<ArcaneEnvironment>() -> ArcaneEnvironment.of(context)
breaking: context.read<ArcaneEnvironment>().state -> ArcaneEnvironment.of(context).environment;

// Feature flag service
added: reset()

// Logging service
added: registerInterface()
added: unregisterInterfaces()
added: unregisterAllInterfaces()

// ArcaneReactiveTheme
fixed: currentMode, dark, light now actually emit new values when changed
added: getters for lightTheme, darkTheme, and systemTheme
TODO: test systemTheme

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-04-29 14:16:17 +02:00
hans b129639f1f Formatted files 2025-02-11 14:39:02 +01:00
hans beee74e49a v1.2.5
- Improved automatic metadata detection in `ArcaneLogger`

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
2025-01-23 13:59:40 +01:00