File tree Expand file tree Collapse file tree 5 files changed +18
-9
lines changed
Expand file tree Collapse file tree 5 files changed +18
-9
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ public static MauiApp CreateMauiApp()
77 var builder = MauiApp . CreateBuilder ( ) ;
88 builder
99 . UseMauiApp < App > ( )
10- . UseFlic2lib ( )
10+ . UseFlic2lib ( initManager : true )
1111 . ConfigureFonts ( fonts =>
1212 {
1313 fonts . AddFont ( "OpenSans-Regular.ttf" , "OpenSansRegular" ) ;
@@ -18,8 +18,6 @@ public static MauiApp CreateMauiApp()
1818 . AddTransient < MainPage > ( )
1919 . AddTransient < Bluetooth > ( ) ;
2020
21- FlicManager . Init ( ) ;
22-
2321 return builder . Build ( ) ;
2422 }
2523}
Original file line number Diff line number Diff line change 22
33public static class Configure
44{
5- public static MauiAppBuilder UseFlic2lib ( this MauiAppBuilder builder )
5+ public static MauiAppBuilder UseFlic2lib ( this MauiAppBuilder builder , bool initManager = false )
66 {
77 builder . Services
88 . AddSingleton < IFlicManager > ( FlicManager . Instance )
99 . AddSingleton < IFlicButtonHandler > ( FlicButtonHandler . Instance ) ;
1010
11+ if ( initManager )
12+ {
13+ FlicManager . Init ( ) ;
14+ }
15+
1116 return builder ;
1217 }
1318}
Original file line number Diff line number Diff line change 22
33public partial class FlicButtonHandler : IFlicButtonHandler
44{
5+ private readonly static Lazy < FlicButtonHandler > _lazyInstance = new ( ( ) => new FlicButtonHandler ( ) , LazyThreadSafetyMode . ExecutionAndPublication ) ;
56 public event EventHandler < FlicButtonConnectedEvent > ? Connected ;
67 public event EventHandler < FlicButtonDisconnectedEvent > ? Disconnected ;
78 public event EventHandler < FlicButtonUnpairedEvent > ? Unparied ;
@@ -14,8 +15,7 @@ public partial class FlicButtonHandler : IFlicButtonHandler
1415 public event EventHandler < FlicButtonClickEvent > ? ButtonClick ;
1516 public event EventHandler < FlicButtonDoubleClickEvent > ? ButtonDoubleClick ;
1617 public event EventHandler < FlicButtonHoldEvent > ? ButtonHold ;
17-
18- public static FlicButtonHandler Instance { get ; } = new FlicButtonHandler ( ) ;
18+ internal static FlicButtonHandler Instance => _lazyInstance . Value ;
1919 private FlicButtonHandler ( ) { }
2020
2121 private static FlicButton ? GetFlicButton ( string ? uuid )
Original file line number Diff line number Diff line change @@ -101,7 +101,8 @@ public partial void StopScan()
101101
102102 public class ScanCallbacks : Java . Lang . Object , IFlic2ScanCallback
103103 {
104- public static ScanCallbacks Instance { get ; } = new ScanCallbacks ( ) ;
104+ private readonly static Lazy < ScanCallbacks > _lazyInstance = new ( ( ) => new ScanCallbacks ( ) , LazyThreadSafetyMode . ExecutionAndPublication ) ;
105+ internal static ScanCallbacks Instance => _lazyInstance . Value ;
105106 private ScanCallbacks ( ) { }
106107
107108 public void OnComplete ( int result , int subCode , Flic2Button ? button )
Original file line number Diff line number Diff line change 33public partial class FlicManager : IFlicManager
44{
55 private readonly IList < FlicButton > _cachedButtons ;
6-
6+ private readonly static Lazy < FlicManager > _lazyInstance = new ( ( ) => new FlicManager ( ) , LazyThreadSafetyMode . ExecutionAndPublication ) ;
77 public static bool IsInitialized { get ; private set ; }
8- public static FlicManager Instance { get ; } = new FlicManager ( ) ;
8+ internal static FlicManager Instance => _lazyInstance . Value ;
99 public IEnumerable < FlicButton > ? Buttons => GetButtons ( ) ;
1010
1111 private FlicManager ( )
1212 {
1313 _cachedButtons = new List < FlicButton > ( ) ;
1414 }
1515
16+ public void ClearCache ( )
17+ {
18+ _cachedButtons . Clear ( ) ;
19+ }
20+
1621 public static partial void Init ( ) ;
1722 public partial void StartScan ( ) ;
1823 public partial void StopScan ( ) ;
You can’t perform that action at this time.
0 commit comments