@@ -16,28 +16,27 @@ public class TimePickerDataSource {
1616
1717 public var selectedTimeDidUpdate : ( ( Date ) -> Void ) ?
1818
19- public init ( hoursPicker: WKInterfacePicker , minutesPicker: WKInterfacePicker , amPmPicker: WKInterfacePicker ? , initiallySelectedDate: Date ? ) {
19+ public init (
20+ hoursPicker: WKInterfacePicker ,
21+ minutesPicker: WKInterfacePicker ,
22+ amPmPicker: WKInterfacePicker ? )
23+ {
2024 self . hoursPicker = hoursPicker
2125 self . minutesPicker = minutesPicker
2226 self . amPmPicker = amPmPicker
23-
24- setup ( withInitiallySelectedDate: initiallySelectedDate)
2527 }
2628
2729
2830 // MARK: Setup
2931
30- private lazy var timeFormatter : DateFormatter = {
31- let formatter = DateFormatter ( )
32- formatter. dateStyle = . none
33- formatter. timeStyle = . short
34- return formatter
35- } ( )
36-
3732 private lazy var userHas24HourTimeEnabled : Bool = {
33+ let timeFormatter = DateFormatter ( )
34+ timeFormatter. dateStyle = . none
35+ timeFormatter. timeStyle = . short
36+
3837 let timeString = timeFormatter. string ( from: Date ( ) )
3938 return !( timeString. contains ( Locale . current. calendar. amSymbol)
40- || timeString. contains ( Locale . current. calendar. pmSymbol) )
39+ || timeString. contains ( Locale . current. calendar. pmSymbol) )
4140 } ( )
4241
4342 private lazy var hourPickerOptions : [ Int ] = {
@@ -64,7 +63,7 @@ public class TimePickerDataSource {
6463 }
6564 } ( )
6665
67- private func setup( withInitiallySelectedDate initiallySelectedDate: Date ? ) {
66+ public func setup( withInitiallySelectedDate initiallySelectedDate: Date ? ) {
6867 hoursPicker? . setItems ( hourPickerOptions. map { hourValue in
6968 let pickerItem = WKPickerItem ( )
7069 pickerItem. title = " \( hourValue) "
@@ -113,7 +112,9 @@ public class TimePickerDataSource {
113112 minutesPicker? . setSelectedItemIndex ( corresponsingMinuteIndex)
114113 selectedMinute = minutePickerOptions [ corresponsingMinuteIndex]
115114
116- if !userHas24HourTimeEnabled {
115+ if userHas24HourTimeEnabled {
116+ amPm = nil
117+ } else {
117118 if hours < 12 {
118119 amPmPicker? . setSelectedItemIndex ( 0 )
119120 amPm = . am
@@ -132,9 +133,9 @@ public class TimePickerDataSource {
132133 case am, pm
133134 }
134135
135- private var selectedHour : Int !
136- private var selectedMinute : Int !
137- private var amPm : AMPM ?
136+ private var selectedHour : Int = 0
137+ private var selectedMinute : Int = 0
138+ private var amPm : AMPM ? = . am
138139
139140 public func hourPickerUpdated( to index: Int ) {
140141 selectedHour = hourPickerOptions [ index]
@@ -196,7 +197,7 @@ public class TimePickerDataSource {
196197 }
197198
198199 public func selectedTime( ) -> Date {
199- var hourIn24HourTime = selectedHour ?? 0
200+ var hourIn24HourTime = selectedHour
200201
201202 // if there's an option for am/pm, the user's in 12 hour time.
202203 // Need to do the necessary corrections.
0 commit comments