@@ -201,7 +201,7 @@ public final class InsulinDeliveryTableViewController: UITableViewController {
201
201
case manualEntryDoses( [ DoseEntry ] )
202
202
}
203
203
204
- private enum HistorySection : Int {
204
+ fileprivate enum HistorySection : Int {
205
205
case today
206
206
case yesterday
207
207
}
@@ -401,7 +401,7 @@ public final class InsulinDeliveryTableViewController: UITableViewController {
401
401
return 0
402
402
case . display:
403
403
switch self . values {
404
- case . history( let values ) : return values . valuesBeforeToday . isEmpty ? 1 : 2
404
+ case . history( let pumpEvents ) : return pumpEvents . pumpEventsBeforeToday . isEmpty ? 1 : 2
405
405
default : return 1
406
406
}
407
407
}
@@ -411,10 +411,10 @@ public final class InsulinDeliveryTableViewController: UITableViewController {
411
411
switch values {
412
412
case . reservoir( let values) :
413
413
return values. count
414
- case . history( let values ) :
414
+ case . history( let pumpEvents ) :
415
415
switch HistorySection ( rawValue: section) {
416
- case . today: return values . valuesFromToday . count
417
- case . yesterday: return values . valuesBeforeToday . count
416
+ case . today: return pumpEvents . pumpEventsFromToday . count
417
+ case . yesterday: return pumpEvents . pumpEventsBeforeToday . count
418
418
case . none: return 0
419
419
}
420
420
case . manualEntryDoses( let values) :
@@ -426,13 +426,13 @@ public final class InsulinDeliveryTableViewController: UITableViewController {
426
426
switch state {
427
427
case . display:
428
428
switch self . values {
429
- case . history( let values ) :
429
+ case . history( let pumpEvents ) :
430
430
switch HistorySection ( rawValue: section) {
431
431
case . today:
432
- guard let firstValue = values . valuesFromToday . first else { return nil }
432
+ guard let firstValue = pumpEvents . pumpEventsFromToday . first else { return nil }
433
433
return dateFormatter. string ( from: firstValue. date) . uppercased ( )
434
434
case . yesterday:
435
- guard let firstValue = values . valuesBeforeToday . first else { return nil }
435
+ guard let firstValue = pumpEvents . pumpEventsBeforeToday . first else { return nil }
436
436
return dateFormatter. string ( from: firstValue. date) . uppercased ( )
437
437
case . none: return nil
438
438
}
@@ -457,24 +457,18 @@ public final class InsulinDeliveryTableViewController: UITableViewController {
457
457
cell. detailTextLabel? . text = time
458
458
cell. accessoryType = . none
459
459
cell. selectionStyle = . none
460
- case . history( let values) :
461
- let filterValues : [ PersistedPumpEvent ]
462
- if HistorySection ( rawValue: indexPath. section) == . today {
463
- filterValues = values. valuesFromToday
464
- } else {
465
- filterValues = values. valuesBeforeToday
466
- }
467
- let entry = filterValues [ indexPath. row]
468
- let time = timeFormatter. string ( from: entry. date)
460
+ case . history( let pumpEvents) :
461
+ let pumpEvent = pumpEvents. pumpEventForIndexPath ( indexPath)
462
+ let time = timeFormatter. string ( from: pumpEvent. date)
469
463
470
- if let attributedText = entry . localizedAttributedDescription {
464
+ if let attributedText = pumpEvent . localizedAttributedDescription {
471
465
cell. textLabel? . attributedText = attributedText
472
466
} else {
473
467
cell. textLabel? . text = NSLocalizedString ( " Unknown " , comment: " The default description to use when an entry has no dose description " )
474
468
}
475
469
476
470
cell. detailTextLabel? . text = time
477
- cell. accessoryType = entry . isUploaded ? . checkmark : . none
471
+ cell. accessoryType = pumpEvent . isUploaded ? . checkmark : . none
478
472
cell. selectionStyle = . default
479
473
case . manualEntryDoses( let values) :
480
474
let entry = values [ indexPath. row]
@@ -517,14 +511,13 @@ public final class InsulinDeliveryTableViewController: UITableViewController {
517
511
}
518
512
}
519
513
}
520
- case . history( let historyValues) :
521
- var historyValues = historyValues
522
- let value = historyValues. remove ( at: indexPath. row)
523
- self . values = . history( historyValues)
514
+ case . history( let pumpEvents) :
515
+ let pumpEvent = pumpEvents. pumpEventForIndexPath ( indexPath)
516
+ self . values = . history( pumpEvents. filter { $0. dose != pumpEvent. dose } )
524
517
525
518
tableView. deleteRows ( at: [ indexPath] , with: . automatic)
526
519
527
- doseStore? . deletePumpEvent ( value ) { ( error) -> Void in
520
+ doseStore? . deletePumpEvent ( pumpEvent ) { ( error) -> Void in
528
521
if let error = error {
529
522
DispatchQueue . main. async {
530
523
self . present ( UIAlertController ( with: error) , animated: true )
@@ -555,23 +548,23 @@ public final class InsulinDeliveryTableViewController: UITableViewController {
555
548
}
556
549
557
550
public override func tableView( _ tableView: UITableView , didSelectRowAt indexPath: IndexPath ) {
558
- if case . display = state, case . history( let history ) = values {
559
- let entry = history [ indexPath . row ]
551
+ if case . display = state, case . history( let pumpEvents ) = values {
552
+ let pumpEvent = pumpEvents . pumpEventForIndexPath ( indexPath )
560
553
561
554
let vc = CommandResponseViewController ( command: { ( completionHandler) -> String in
562
555
var description = [ String] ( )
563
556
564
- description. append ( self . timeFormatter. string ( from: entry . date) )
557
+ description. append ( self . timeFormatter. string ( from: pumpEvent . date) )
565
558
566
- if let title = entry . title {
559
+ if let title = pumpEvent . title {
567
560
description. append ( title)
568
561
}
569
562
570
- if let dose = entry . dose {
563
+ if let dose = pumpEvent . dose {
571
564
description. append ( String ( describing: dose) )
572
565
}
573
566
574
- if let raw = entry . raw {
567
+ if let raw = pumpEvent . raw {
575
568
description. append ( raw. hexadecimalString)
576
569
}
577
570
@@ -688,13 +681,23 @@ extension PersistedPumpEvent {
688
681
extension InsulinDeliveryTableViewController : IdentifiableClass { }
689
682
690
683
fileprivate extension Array where Element == PersistedPumpEvent {
691
- var valuesFromToday : [ PersistedPumpEvent ] {
684
+ var pumpEventsFromToday : [ PersistedPumpEvent ] {
692
685
let startOfDay = Calendar . current. startOfDay ( for: Date ( ) )
693
686
return self . filter ( { $0. date >= startOfDay} )
694
687
}
695
688
696
- var valuesBeforeToday : [ PersistedPumpEvent ] {
689
+ var pumpEventsBeforeToday : [ PersistedPumpEvent ] {
697
690
let startOfDay = Calendar . current. startOfDay ( for: Date ( ) )
698
691
return self . filter ( { $0. date < startOfDay} )
699
692
}
693
+
694
+ func pumpEventForIndexPath( _ indexPath: IndexPath ) -> PersistedPumpEvent {
695
+ let filterPumpEvents : [ PersistedPumpEvent ]
696
+ if InsulinDeliveryTableViewController . HistorySection ( rawValue: indexPath. section) == . today {
697
+ filterPumpEvents = self . pumpEventsFromToday
698
+ } else {
699
+ filterPumpEvents = self . pumpEventsBeforeToday
700
+ }
701
+ return filterPumpEvents [ indexPath. row]
702
+ }
700
703
}
0 commit comments