@@ -6,17 +6,24 @@ import { Settings } from './functions/settings';
66import { StorageParams } from './storage/storage-params' ;
77import { injecStorage } from './storage/inject-storage' ;
88import { todayLocalDate } from './utils/date' ;
9+ import { checkPomodoro } from './functions/pomodoro' ;
910
1011logger . log ( 'Start background script' ) ;
12+ let pomodoroTimer : number ;
1113
1214self . onerror = err => {
1315 console . error ( 'Unhandled error:' , err ) ;
1416} ;
1517
16- Browser . storage . onChanged . addListener ( ( changes , namespace ) => {
18+ Browser . storage . onChanged . addListener ( async ( changes , namespace ) => {
1719 for ( var key in changes ) {
1820 if ( Object . values ( StorageParams ) . includes ( key as StorageParams ) )
19- Settings . getInstance ( ) . reloadSetting ( key as StorageParams ) ;
21+ await Settings . getInstance ( ) . reloadSetting ( key as StorageParams ) ;
22+
23+ if ( key == StorageParams . IS_POMODORO_ENABLED ) {
24+ const value = changes [ StorageParams . IS_POMODORO_ENABLED ] . newValue ;
25+ pomodoro ( value ) ;
26+ }
2027 }
2128} ) ;
2229
@@ -54,5 +61,15 @@ Browser.windows.onFocusChanged.addListener(() => {
5461 logger . log ( 'onFocusChanged' ) ;
5562} ) ;
5663
64+ async function pomodoro ( value ?: boolean ) {
65+ if ( value == undefined ) {
66+ const settingsStorage = injecStorage ( ) ;
67+ value = await settingsStorage . getValue ( StorageParams . IS_POMODORO_ENABLED ) ;
68+ }
69+ if ( value == true ) pomodoroTimer = setInterval ( checkPomodoro , 1000 ) ;
70+ else clearInterval ( pomodoroTimer ) ;
71+ }
72+
73+ pomodoro ( ) ;
5774scheduleJobs ( ) ;
5875initTracker ( ) ;
0 commit comments