@@ -186,18 +186,18 @@ private extension StatsWidgetsStore {
186
186
var initializedWeekdays : [ ThisWeekWidgetDay ] {
187
187
var days = [ ThisWeekWidgetDay] ( )
188
188
for index in 0 ... 7 {
189
- days . insert ( ThisWeekWidgetDay ( date : NSCalendar . current . date ( byAdding : . day,
190
- value: - index,
191
- to : Date ( ) ) ?? Date ( ) ,
192
- viewsCount : 0 ,
193
- dailyChangePercent : 0 ) ,
194
- at: index)
189
+ let day = ThisWeekWidgetDay (
190
+ date : NSCalendar . current . date ( byAdding : . day , value: - index, to : Date ( ) ) ?? Date ( ) ,
191
+ viewsCount : 0 ,
192
+ dailyChangePercent : 0
193
+ )
194
+ days . insert ( day , at: index)
195
195
}
196
196
return days
197
197
}
198
198
199
199
func refreshStats< T: HomeWidgetData > ( type: T . Type ) -> [ Int : T ] ? {
200
- guard let currentData = T . read ( ) else {
200
+ guard let currentData = getCachedItems ( for : T . self ) else {
201
201
return nil
202
202
}
203
203
let updatedSiteList = ( try ? BlogQuery ( ) . hostedByWPCom ( true ) . blogs ( in: coreDataStack. mainContext) ) ?? [ ]
@@ -223,33 +223,39 @@ private extension StatsWidgetsStore {
223
223
224
224
let stats = ( existingSite as? HomeWidgetTodayData ) ? . stats ?? TodayWidgetStats ( )
225
225
226
- sitesList [ blogID. intValue] = HomeWidgetTodayData ( siteID: blogID. intValue,
227
- siteName: siteName,
228
- url: siteURL,
229
- timeZone: timeZone,
230
- date: date,
231
- stats: stats) as? T
226
+ sitesList [ blogID. intValue] = HomeWidgetTodayData (
227
+ siteID: blogID. intValue,
228
+ siteName: siteName,
229
+ url: siteURL,
230
+ timeZone: timeZone,
231
+ date: date,
232
+ stats: stats
233
+ ) as? T
232
234
} else if type == HomeWidgetAllTimeData . self {
233
235
234
236
let stats = ( existingSite as? HomeWidgetAllTimeData ) ? . stats ?? AllTimeWidgetStats ( )
235
237
236
- sitesList [ blogID. intValue] = HomeWidgetAllTimeData ( siteID: blogID. intValue,
237
- siteName: siteName,
238
- url: siteURL,
239
- timeZone: timeZone,
240
- date: date,
241
- stats: stats) as? T
238
+ sitesList [ blogID. intValue] = HomeWidgetAllTimeData (
239
+ siteID: blogID. intValue,
240
+ siteName: siteName,
241
+ url: siteURL,
242
+ timeZone: timeZone,
243
+ date: date,
244
+ stats: stats
245
+ ) as? T
242
246
243
247
} else if type == HomeWidgetThisWeekData . self {
244
248
245
249
let stats = ( existingSite as? HomeWidgetThisWeekData ) ? . stats ?? ThisWeekWidgetStats ( days: initializedWeekdays)
246
250
247
- sitesList [ blogID. intValue] = HomeWidgetThisWeekData ( siteID: blogID. intValue,
248
- siteName: siteName,
249
- url: siteURL,
250
- timeZone: timeZone,
251
- date: date,
252
- stats: stats) as? T
251
+ sitesList [ blogID. intValue] = HomeWidgetThisWeekData (
252
+ siteID: blogID. intValue,
253
+ siteName: siteName,
254
+ url: siteURL,
255
+ timeZone: timeZone,
256
+ date: date,
257
+ stats: stats
258
+ ) as? T
253
259
}
254
260
}
255
261
return newData
@@ -265,26 +271,40 @@ private extension StatsWidgetsStore {
265
271
let title = ( element. title ?? url) . isEmpty ? url : element. title ?? url
266
272
let timeZone = blog. timeZone
267
273
if type == HomeWidgetTodayData . self {
268
- result [ blogID. intValue] = HomeWidgetTodayData ( siteID: blogID. intValue,
269
- siteName: title,
270
- url: url,
271
- timeZone: timeZone ?? TimeZone . current,
272
- date: Date ( timeIntervalSinceReferenceDate: 0 ) ,
273
- stats: TodayWidgetStats ( ) ) as? T
274
+ result [ blogID. intValue] = HomeWidgetTodayData (
275
+ siteID: blogID. intValue,
276
+ siteName: title,
277
+ url: url,
278
+ timeZone: timeZone ?? TimeZone . current,
279
+ date: Date (
280
+ timeIntervalSinceReferenceDate: 0
281
+ ) ,
282
+ stats: TodayWidgetStats ( )
283
+ ) as? T
274
284
} else if type == HomeWidgetAllTimeData . self {
275
- result [ blogID. intValue] = HomeWidgetAllTimeData ( siteID: blogID. intValue,
276
- siteName: title,
277
- url: url,
278
- timeZone: timeZone ?? TimeZone . current,
279
- date: Date ( timeIntervalSinceReferenceDate: 0 ) ,
280
- stats: AllTimeWidgetStats ( ) ) as? T
285
+ result [ blogID. intValue] = HomeWidgetAllTimeData (
286
+ siteID: blogID. intValue,
287
+ siteName: title,
288
+ url: url,
289
+ timeZone: timeZone ?? TimeZone . current,
290
+ date: Date (
291
+ timeIntervalSinceReferenceDate: 0
292
+ ) ,
293
+ stats: AllTimeWidgetStats ( )
294
+ ) as? T
281
295
} else if type == HomeWidgetThisWeekData . self {
282
- result [ blogID. intValue] = HomeWidgetThisWeekData ( siteID: blogID. intValue,
283
- siteName: title,
284
- url: url,
285
- timeZone: timeZone ?? TimeZone . current,
286
- date: Date ( timeIntervalSinceReferenceDate: 0 ) ,
287
- stats: ThisWeekWidgetStats ( days: initializedWeekdays) ) as? T
296
+ result [ blogID. intValue] = HomeWidgetThisWeekData (
297
+ siteID: blogID. intValue,
298
+ siteName: title,
299
+ url: url,
300
+ timeZone: timeZone ?? TimeZone . current,
301
+ date: Date (
302
+ timeIntervalSinceReferenceDate: 0
303
+ ) ,
304
+ stats: ThisWeekWidgetStats (
305
+ days: initializedWeekdays
306
+ )
307
+ ) as? T
288
308
}
289
309
}
290
310
}
0 commit comments