11'use strict' ;
22
33var tabs ;
4+ var timeIntervalList ;
45var currentTab ;
6+ var isNeedDeleteTimeIntervalFromTabs = false ;
57var activity = new Activity ( ) ;
68var storage = new LocalStorage ( ) ;
79
@@ -120,13 +122,15 @@ function checkPermissions(callback, activeUrl, tab, activeTab) {
120122function backgroundUpdateStorage ( ) {
121123 if ( tabs != undefined && tabs . length > 0 )
122124 storage . saveTabs ( tabs ) ;
125+ if ( timeIntervalList != undefined && timeIntervalList . length > 0 )
126+ storage . saveValue ( STORAGE_TIMEINTERVAL_LIST , timeIntervalList ) ;
123127}
124128
125129function setDefaultSettings ( ) {
126- storage . saveSettings ( SETTINGS_INTERVAL_INACTIVITY , SETTINGS_INTERVAL_INACTIVITY_DEFAULT ) ;
127- storage . saveSettings ( SETTINGS_INTERVAL_RANGE , SETTINGS_INTERVAL_RANGE_DEFAULT ) ;
128- storage . saveSettings ( SETTINGS_VIEW_TIME_IN_BADGE , SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT ) ;
129- storage . saveSettings ( SETTINGS_INTERVAL_SAVE_STORAGE , SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT ) ;
130+ storage . saveValue ( SETTINGS_INTERVAL_INACTIVITY , SETTINGS_INTERVAL_INACTIVITY_DEFAULT ) ;
131+ storage . saveValue ( SETTINGS_INTERVAL_RANGE , SETTINGS_INTERVAL_RANGE_DEFAULT ) ;
132+ storage . saveValue ( SETTINGS_VIEW_TIME_IN_BADGE , SETTINGS_VIEW_TIME_IN_BADGE_DEFAULT ) ;
133+ storage . saveValue ( SETTINGS_INTERVAL_SAVE_STORAGE , SETTINGS_INTERVAL_SAVE_STORAGE_DEFAULT ) ;
130134}
131135
132136function checkSettingsImEmpty ( ) {
@@ -155,6 +159,7 @@ function addListener() {
155159 }
156160 if ( details . reason == 'update' ) {
157161 checkSettingsImEmpty ( ) ;
162+ isNeedDeleteTimeIntervalFromTabs = true ;
158163 }
159164 } ) ;
160165 chrome . storage . onChanged . addListener ( function ( changes , namespace ) {
@@ -166,10 +171,10 @@ function addListener() {
166171 loadRestrictionList ( ) ;
167172 }
168173 if ( key === SETTINGS_INTERVAL_INACTIVITY ) {
169- storage . getSettings ( SETTINGS_INTERVAL_INACTIVITY , function ( item ) { setting_interval_inactivity = item ; } ) ;
174+ storage . getValue ( SETTINGS_INTERVAL_INACTIVITY , function ( item ) { setting_interval_inactivity = item ; } ) ;
170175 }
171176 if ( key === SETTINGS_VIEW_TIME_IN_BADGE ) {
172- storage . getSettings ( SETTINGS_VIEW_TIME_IN_BADGE , function ( item ) { setting_view_in_badge = item ; } ) ;
177+ storage . getValue ( SETTINGS_VIEW_TIME_IN_BADGE , function ( item ) { setting_view_in_badge = item ; } ) ;
173178 }
174179 }
175180 } ) ;
@@ -180,33 +185,58 @@ function addListener() {
180185function loadTabs ( ) {
181186 storage . loadTabs ( STORAGE_TABS , function ( items ) {
182187 tabs = [ ] ;
183- for ( var i = 0 ; i < items . length ; i ++ ) {
184- tabs . push ( new Tab ( items [ i ] . url , items [ i ] . favicon , items [ i ] . days , items [ i ] . summaryTime , items [ i ] . counter ) ) ;
188+ if ( items != undefined ) {
189+ for ( var i = 0 ; i < items . length ; i ++ ) {
190+ tabs . push ( new Tab ( items [ i ] . url , items [ i ] . favicon , items [ i ] . days , items [ i ] . summaryTime , items [ i ] . counter ) ) ;
191+ }
192+ if ( isNeedDeleteTimeIntervalFromTabs )
193+ deleteTimeIntervalFromTabs ( ) ;
185194 }
186195 } ) ;
187196}
188197
198+ function deleteTimeIntervalFromTabs ( ) {
199+ tabs . forEach ( function ( item ) {
200+ item . days . forEach ( function ( day ) {
201+ if ( day . time != undefined )
202+ day . time = [ ] ;
203+ } )
204+ } )
205+ }
206+
189207function loadBlackList ( ) {
190- storage . getSettings ( STORAGE_BLACK_LIST , function ( items ) {
208+ storage . getValue ( STORAGE_BLACK_LIST , function ( items ) {
191209 setting_black_list = items ;
192210 } )
193211}
194212
213+ function loadTimeIntervals ( ) {
214+ storage . getValue ( STORAGE_TIMEINTERVAL_LIST , function ( items ) {
215+ timeIntervalList = [ ] ;
216+ if ( items != undefined ) {
217+ for ( var i = 0 ; i < items . length ; i ++ ) {
218+ timeIntervalList . push ( new TimeInterval ( items [ i ] . day , items [ i ] . domain , items [ i ] . intervals ) ) ;
219+ }
220+ }
221+ } ) ;
222+ }
223+
195224function loadRestrictionList ( ) {
196- storage . getSettings ( STORAGE_RESTRICTION_LIST , function ( items ) {
225+ storage . getValue ( STORAGE_RESTRICTION_LIST , function ( items ) {
197226 setting_restriction_list = items ;
198227 } )
199228}
200229
201230function loadSettings ( ) {
202- storage . getSettings ( SETTINGS_INTERVAL_INACTIVITY , function ( item ) { setting_interval_inactivity = item ; } ) ;
203- storage . getSettings ( SETTINGS_VIEW_TIME_IN_BADGE , function ( item ) { setting_view_in_badge = item ; } ) ;
231+ storage . getValue ( SETTINGS_INTERVAL_INACTIVITY , function ( item ) { setting_interval_inactivity = item ; } ) ;
232+ storage . getValue ( SETTINGS_VIEW_TIME_IN_BADGE , function ( item ) { setting_view_in_badge = item ; } ) ;
204233}
205234
235+ addListener ( ) ;
206236loadTabs ( ) ;
237+ loadTimeIntervals ( ) ;
207238loadBlackList ( ) ;
208239loadRestrictionList ( ) ;
209240loadSettings ( ) ;
210- addListener ( ) ;
211241updateSummaryTime ( ) ;
212242updateStorage ( ) ;
0 commit comments