@@ -5,7 +5,7 @@ import { injectTabsRepository } from "./repository/inject-tabs-repository";
55import { isInBlackList } from "./compositions/black-list" ;
66import { useBadge } from "./compositions/set-badge" ;
77import { BadgeColor } from "./compositions/types" ;
8- import { INTERVAL_INACTIVITY_DEFAULT , StorageParams , VIEW_TIME_IN_BADGE_DEFAULT , } from "./storage/storage-params" ;
8+ import { INTERVAL_INACTIVITY_DEFAULT , INTERVAL_SAVE_STORAGE_DEFAULT , StorageParams , VIEW_TIME_IN_BADGE_DEFAULT , } from "./storage/storage-params" ;
99import { injecStorage } from "./storage/inject-storage" ;
1010import { closeInterval } from "./compositions/daily-intervals" ;
1111import { ActiveTab } from "./compositions/activeTab" ;
@@ -14,8 +14,16 @@ import { Tab } from "./entity/tab";
1414import { useBlockPage } from "./compositions/block-page" ;
1515import { convertSummaryTimeToBadgeString } from "./common/utility" ;
1616
17+ const activeTabInstance = ActiveTab . getInstance ( ) ;
18+ const storage = injecStorage ( ) ;
19+
20+ export async function initTracker ( ) {
21+ setInterval ( trackTime , 1000 ) ;
22+ setInterval ( saveTabs , INTERVAL_SAVE_STORAGE_DEFAULT ) ;
23+ }
24+
1725async function trackTime ( ) {
18- const activeTabInstance = ActiveTab . getInstance ( ) ;
26+ const repo = await injectTabsRepository ( ) ;
1927 const window = await Browser . windows . getLastFocused ( { populate : true } ) ;
2028 if ( window . focused ) {
2129 const activeTab = window . tabs ?. find ( ( t ) => t . active === true ) ;
@@ -30,12 +38,10 @@ async function trackTime(){
3038 color : BadgeColor . red ,
3139 } ) ;
3240 } else {
33- const repo = await injectTabsRepository ( ) ;
3441 const tab = repo . getTab ( activeUrl ) ;
3542 if ( tab == undefined ) {
3643 await repo . addTab ( activeTab ! ) ;
3744 } else {
38- const storage = injecStorage ( ) ;
3945 const inactivityInterval = ( await storage . getValue (
4046 StorageParams . INTERVAL_INACTIVITY ,
4147 INTERVAL_INACTIVITY_DEFAULT
@@ -87,6 +93,9 @@ async function mainTracker(state: Browser.Idle.IdleState, activeTab: Browser.Tab
8793 }
8894}
8995
90- export async function initTracker ( ) {
91- setInterval ( trackTime , 1000 ) ;
96+ async function saveTabs ( ) {
97+ const storage = injecStorage ( ) ;
98+ const repo = await injectTabsRepository ( ) ;
99+ const tabs = repo . getTabs ( ) ;
100+ await storage . saveTabs ( tabs ) ;
92101}
0 commit comments