Skip to content

Commit e29b7a6

Browse files
committed
hide dim screen in macOS 15.0
1 parent b51df31 commit e29b7a6

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

OnlySwitch/EverySwitch/DimScreenSwitch.swift

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ class DimScreenSwitch: SwitchProvider {
1313
enum DimScreenError:Error {
1414
case brightnessTooLow
1515
}
16-
16+
1717
var type: SwitchType = .dimScreen
18-
18+
1919
var delegate: SwitchDelegate?
20-
20+
2121
private var isDimming:Bool = false {
2222
didSet {
2323
timerCounter = 0
@@ -30,11 +30,11 @@ class DimScreenSwitch: SwitchProvider {
3030
private let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
3131
private var timerCounter = 0
3232
private var cancellable = Set<AnyCancellable>()
33-
33+
3434
private var durationBySecond:Int {
3535
autoDimScreenTime * 60 //persistance unit is min, here is second
3636
}
37-
37+
3838
init() {
3939
NotificationCenter.default.addObserver(forName: .changeDimScreenSetting, object: nil, queue: .main) { [weak self] _ in
4040
guard let strongSelf = self else {return}
@@ -46,34 +46,38 @@ class DimScreenSwitch: SwitchProvider {
4646
}
4747
strongSelf.autoDimScreenTime = Preferences.shared.autoDimScreenTime
4848
}
49-
49+
5050
setTimer()
5151
}
52-
52+
5353
deinit {
5454
cancellable.removeAll()
5555
}
56-
56+
5757
func currentStatus() -> Bool {
5858
return isDimming
5959
}
60-
60+
6161
func currentInfo() -> String {
6262
return "Built-in Screen"
6363
}
64-
64+
6565
func operateSwitch(isOn: Bool) async throws {
6666
if isOn {
6767
try dimScreen()
6868
} else {
6969
restoreScreen()
7070
}
7171
}
72-
72+
7373
func isVisible() -> Bool {
74-
return true
74+
if #available(macOS 15.0, *) {
75+
return false
76+
} else {
77+
return true
78+
}
7579
}
76-
80+
7781
private func setTimer() {
7882
timer.sink{ _ in
7983
guard !self.isDimming, self.autoDimScreenTime != 0 else {return} //switch is on and duration isn't never
@@ -85,22 +89,22 @@ class DimScreenSwitch: SwitchProvider {
8589
}
8690
}.store(in: &cancellable)
8791
}
88-
92+
8993
private func dimScreen() throws {
9094
manager.configureDisplays()
9195
originalBrightness = manager.getBrightness()
9296
try modifyDimPercent()
9397
isDimming = true
9498
}
95-
99+
96100
private func modifyDimPercent() throws {
97101
let dimBrightness = originalBrightness * dimPercent
98102
guard dimBrightness >= 0.15 else { // the minimum brightness is 0.15
99103
throw DimScreenError.brightnessTooLow
100104
}
101105
manager.setBrightness(level: dimBrightness)
102106
}
103-
107+
104108
private func restoreScreen() {
105109
manager.configureDisplays()
106110
manager.setBrightness(level: originalBrightness)

0 commit comments

Comments
 (0)