|
|
|
|
@ -12,8 +12,10 @@ struct TimersView: View { |
|
|
|
|
@EnvironmentObject var boringContext: BoringContext |
|
|
|
|
|
|
|
|
|
@Environment(\.managedObjectContext) private var viewContext |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Binding var isEditing: Bool |
|
|
|
|
|
|
|
|
|
var siriHandler: ((AbstractTimer) -> ()) |
|
|
|
|
|
|
|
|
|
@FetchRequest( |
|
|
|
|
sortDescriptors: [NSSortDescriptor(keyPath: \AbstractTimer.order, ascending: true)], |
|
|
|
|
@ -21,7 +23,7 @@ struct TimersView: View { |
|
|
|
|
private var timers: FetchedResults<AbstractTimer> |
|
|
|
|
|
|
|
|
|
fileprivate let itemSpacing: CGFloat = 10.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var body: some View { |
|
|
|
|
|
|
|
|
|
let abstractTimers: [AbstractTimer] = Array(self.timers) |
|
|
|
|
@ -42,7 +44,10 @@ struct TimersView: View { |
|
|
|
|
ReorderableForEach(items: abstractTimers) { timer in |
|
|
|
|
|
|
|
|
|
DialView(timer: timer, isEditingBinding: self.$isEditing, frameSize: width, handler: { timer in |
|
|
|
|
self._handleSiriTips(timer: timer) |
|
|
|
|
|
|
|
|
|
self.siriHandler(timer) |
|
|
|
|
|
|
|
|
|
// self._handleSiriTips(timer: timer) |
|
|
|
|
}) |
|
|
|
|
.environment(\.managedObjectContext, viewContext) |
|
|
|
|
.environmentObject(Conductor.maestro) |
|
|
|
|
@ -75,15 +80,6 @@ struct TimersView: View { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fileprivate func _handleSiriTips(timer: AbstractTimer) { |
|
|
|
|
|
|
|
|
|
let timerId = timer.stringId |
|
|
|
|
if !Preferences.timerSiriTips.contains(timerId) { |
|
|
|
|
self.boringContext.siriTimer = timer |
|
|
|
|
Preferences.timerSiriTips.insert(timerId) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fileprivate func _columnCount() -> Int { |
|
|
|
|
#if os(iOS) |
|
|
|
|
if UIDevice.isPhoneIdiom { |
|
|
|
|
@ -104,6 +100,6 @@ struct TimersView: View { |
|
|
|
|
|
|
|
|
|
struct TimersView_Previews: PreviewProvider { |
|
|
|
|
static var previews: some View { |
|
|
|
|
TimersView(isEditing: .constant(false)) |
|
|
|
|
TimersView(isEditing: .constant(false), siriHandler: { _ in }) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|