mirror of
https://github.com/zhigang1992/InTime.git
synced 2026-01-12 16:32:37 +08:00
Fix sleep
This commit is contained in:
@@ -7,4 +7,5 @@ Changelog
|
|||||||
* In recent entries, sort project by usage.
|
* In recent entries, sort project by usage.
|
||||||
* When showing recent entries, enter key autocomplete instead of start timer.
|
* When showing recent entries, enter key autocomplete instead of start timer.
|
||||||
* Add option to reminder you at certain interval.
|
* Add option to reminder you at certain interval.
|
||||||
* Add option to auto apply yes on interval timeout.
|
* Add option to auto apply yes on interval timeout.
|
||||||
|
* Disable reminder when computer went to sleep.
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
041E2BB41F9EF0370036687C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
041E2BB41F9EF0370036687C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
041E2BB51F9EF0370036687C /* FloatingToggl.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FloatingToggl.entitlements; sourceTree = "<group>"; };
|
041E2BB51F9EF0370036687C /* FloatingToggl.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FloatingToggl.entitlements; sourceTree = "<group>"; };
|
||||||
041E2BBB1F9EF3450036687C /* FloatingPannel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatingPannel.swift; sourceTree = "<group>"; };
|
041E2BBB1F9EF3450036687C /* FloatingPannel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FloatingPannel.swift; sourceTree = "<group>"; };
|
||||||
|
04D507151FCC84360038E7E0 /* CHANGELOG */ = {isa = PBXFileReference; lastKnownFileType = text; path = CHANGELOG; sourceTree = "<group>"; };
|
||||||
60799DCC63FBAD0197655FF4 /* Pods-FloatingToggl.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FloatingToggl.release.xcconfig"; path = "Pods/Target Support Files/Pods-FloatingToggl/Pods-FloatingToggl.release.xcconfig"; sourceTree = "<group>"; };
|
60799DCC63FBAD0197655FF4 /* Pods-FloatingToggl.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FloatingToggl.release.xcconfig"; path = "Pods/Target Support Files/Pods-FloatingToggl/Pods-FloatingToggl.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
6A61B7517328FB18AF3456FF /* Pods-FloatingToggl.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FloatingToggl.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FloatingToggl/Pods-FloatingToggl.debug.xcconfig"; sourceTree = "<group>"; };
|
6A61B7517328FB18AF3456FF /* Pods-FloatingToggl.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FloatingToggl.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FloatingToggl/Pods-FloatingToggl.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
B3256CA209129AD71D5691BF /* Pods_FloatingToggl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FloatingToggl.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
B3256CA209129AD71D5691BF /* Pods_FloatingToggl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_FloatingToggl.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
041E2B9F1F9EF0370036687C = {
|
041E2B9F1F9EF0370036687C = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
04D507151FCC84360038E7E0 /* CHANGELOG */,
|
||||||
041E2BAA1F9EF0370036687C /* FloatingToggl */,
|
041E2BAA1F9EF0370036687C /* FloatingToggl */,
|
||||||
041E2BA91F9EF0370036687C /* Products */,
|
041E2BA91F9EF0370036687C /* Products */,
|
||||||
AB897BA953C7D862BCC1F2D0 /* Pods */,
|
AB897BA953C7D862BCC1F2D0 /* Pods */,
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ class TogglViewModel {
|
|||||||
let input = Variable<String>("")
|
let input = Variable<String>("")
|
||||||
|
|
||||||
let active = Variable<Bool>(NSApplication.shared.isActive)
|
let active = Variable<Bool>(NSApplication.shared.isActive)
|
||||||
|
let awake = Variable<Bool>(true)
|
||||||
|
|
||||||
private let disposeBag = DisposeBag()
|
private let disposeBag = DisposeBag()
|
||||||
|
|
||||||
@@ -197,6 +198,7 @@ class TogglViewModel {
|
|||||||
NSWorkspace.shared.notificationCenter
|
NSWorkspace.shared.notificationCenter
|
||||||
.rx.notification(NSWorkspace.screensDidSleepNotification)
|
.rx.notification(NSWorkspace.screensDidSleepNotification)
|
||||||
.subscribe(onNext: {[weak self] _ in
|
.subscribe(onNext: {[weak self] _ in
|
||||||
|
self?.awake.value = false
|
||||||
guard let entry = self?.current.value else { return }
|
guard let entry = self?.current.value else { return }
|
||||||
self?.timeEntryWhenSlept = entry
|
self?.timeEntryWhenSlept = entry
|
||||||
self?.screenSleptAt = Date()
|
self?.screenSleptAt = Date()
|
||||||
@@ -206,6 +208,7 @@ class TogglViewModel {
|
|||||||
NSWorkspace.shared.notificationCenter
|
NSWorkspace.shared.notificationCenter
|
||||||
.rx.notification(NSWorkspace.screensDidWakeNotification)
|
.rx.notification(NSWorkspace.screensDidWakeNotification)
|
||||||
.subscribe(onNext: {[weak self] _ in
|
.subscribe(onNext: {[weak self] _ in
|
||||||
|
self?.awake.value = true
|
||||||
guard
|
guard
|
||||||
let date = self?.screenSleptAt,
|
let date = self?.screenSleptAt,
|
||||||
let timer = self?.timeEntryWhenSlept,
|
let timer = self?.timeEntryWhenSlept,
|
||||||
@@ -224,11 +227,11 @@ class TogglViewModel {
|
|||||||
|
|
||||||
var presentReminder: Observable<()> {
|
var presentReminder: Observable<()> {
|
||||||
return Observable.merge([
|
return Observable.merge([
|
||||||
self.active.asObservable().distinctUntilChanged().map({_ in ()}),
|
self.awake.asObservable().distinctUntilChanged().map({_ in ()}),
|
||||||
NotificationCenter.default.rx.notification(.reminderIntervalUpdated).map({_ in ()}),
|
NotificationCenter.default.rx.notification(.reminderIntervalUpdated).map({_ in ()}),
|
||||||
self.input.asObservable().distinctUntilChanged().map({_ in ()})
|
self.input.asObservable().distinctUntilChanged().map({_ in ()})
|
||||||
]).flatMapLatest({[weak self] _ -> Observable<()> in
|
]).flatMapLatest({[weak self] _ -> Observable<()> in
|
||||||
if self?.active.value != true { return .empty() }
|
if self?.awake.value != true { return .empty() }
|
||||||
let interval = UserDefaults.standard.reminderInterval
|
let interval = UserDefaults.standard.reminderInterval
|
||||||
if interval == 0 { return .empty() }
|
if interval == 0 { return .empty() }
|
||||||
return Observable<Int>.interval(RxTimeInterval(interval * 60), scheduler: MainScheduler.asyncInstance).map({ _ in ()})
|
return Observable<Int>.interval(RxTimeInterval(interval * 60), scheduler: MainScheduler.asyncInstance).map({ _ in ()})
|
||||||
|
|||||||
Reference in New Issue
Block a user