Applied latest changes from boring.notch

This commit is contained in:
Hariharan Mudaliar 2025-07-13 23:17:43 +05:30
commit 628d76b41c
18 changed files with 940 additions and 339 deletions

View file

@ -2,10 +2,6 @@
// DynamicIslandExtrasMenu.swift
// DynamicIsland
//
// Created by Harsh Vardhan Goswami on 02/08/24.
// DynamicIslandExtrasMenu.swift
// DynamicIsland
//
// Created by Harsh Vardhan Goswami on 04/08/24.
//
@ -65,7 +61,9 @@ struct DynamicIslandExtrasMenu : View {
}
var settings: some View {
SettingsLink(label: {
Button(action: {
SettingsWindowController.shared.showWindow()
}) {
ZStack {
RoundedRectangle(cornerRadius: 12.0).fill(.black).frame(width: 70, height: 70)
VStack(spacing: 8) {
@ -74,7 +72,7 @@ struct DynamicIslandExtrasMenu : View {
Text("Settings").font(.body)
}
}
})
}
.buttonStyle(PlainButtonStyle()).shadow(color: .black.opacity(0.5), radius: 10)
}
@ -107,5 +105,5 @@ struct DynamicIslandExtrasMenu : View {
#Preview {
DynamicIslandExtrasMenu(vm: .init())
DynamicIslandExtrasMenu(vm: DynamicIslandViewModel())
}

View file

@ -10,6 +10,7 @@ import SwiftUI
struct DynamicIslandHeader: View {
@EnvironmentObject var vm: DynamicIslandViewModel
@EnvironmentObject var webcamManager: WebcamManager
@ObservedObject var batteryModel = BatteryStatusViewModel.shared
@ObservedObject var coordinator = DynamicIslandViewCoordinator.shared
@StateObject var tvm = TrayDrop.shared
@ -40,8 +41,30 @@ struct DynamicIslandHeader: View {
HStack(spacing: 4) {
if vm.notchState == .open {
if Defaults[.showMirror] {
Button(action: {
if webcamManager.isSessionRunning {
webcamManager.stopSession()
} else {
webcamManager.startSession()
}
}) {
Capsule()
.fill(.black)
.frame(width: 30, height: 30)
.overlay {
Image(systemName: "web.camera")
.foregroundColor(.white)
.padding()
.imageScale(.medium)
}
}
.buttonStyle(PlainButtonStyle())
}
if Defaults[.settingsIconInNotch] {
SettingsLink(label: {
Button(action: {
SettingsWindowController.shared.showWindow()
}) {
Capsule()
.fill(.black)
.frame(width: 30, height: 30)
@ -51,7 +74,7 @@ struct DynamicIslandHeader: View {
.padding()
.imageScale(.medium)
}
})
}
.buttonStyle(PlainButtonStyle())
}
if Defaults[.showBatteryIndicator] {
@ -81,5 +104,7 @@ struct DynamicIslandHeader: View {
}
#Preview {
DynamicIslandHeader().environmentObject(DynamicIslandViewModel())
DynamicIslandHeader()
.environmentObject(DynamicIslandViewModel())
.environmentObject(WebcamManager.shared)
}

View file

@ -3,7 +3,7 @@
// DynamicIsland
//
// Created by Hugo Persson on 2024-08-18.
// Modified by Harsh Vardhan Goswami & Richard Kunkli
// Modified by Harsh Vardhan Goswami & Richard Kunkli & Mustafa Ramadan
//
import Combine
@ -179,11 +179,11 @@ struct MusicControlsView: View {
struct NotchHomeView: View {
@EnvironmentObject var vm: DynamicIslandViewModel
@EnvironmentObject var webcamManager: WebcamManager
@ObservedObject var webcamManager = WebcamManager.shared
@ObservedObject var batteryModel = BatteryStatusViewModel.shared
@ObservedObject var coordinator = DynamicIslandViewCoordinator.shared
let albumArtNamespace: Namespace.ID
var body: some View {
Group {
if !coordinator.firstLaunch {
@ -196,16 +196,18 @@ struct NotchHomeView: View {
private var mainContent: some View {
HStack(alignment: .top, spacing: 20) {
MusicPlayerView(albumArtNamespace: albumArtNamespace)
if Defaults[.showCalendar] {
CalendarView()
.onHover { isHovering in
vm.isHoveringCalendar = isHovering
}
.environmentObject(vm)
.onHover { isHovering in
vm.isHoveringCalendar = isHovering
}
.environmentObject(vm)
}
if Defaults[.showMirror] && webcamManager.cameraAvailable {
if Defaults[.showMirror],
webcamManager.cameraAvailable,
vm.notchState == .open {
CameraPreviewView(webcamManager: webcamManager)
.scaledToFit()
.opacity(vm.notchState == .closed ? 0 : 1)
@ -249,7 +251,7 @@ struct MusicSliderView: View {
range: 0 ... duration,
color: Defaults[.sliderColor] == SliderColorEnum.albumArt ? Color(
nsColor: color
).ensureMinimumBrightness(factor: 0.8) : Defaults[.sliderColor] == SliderColorEnum.accent ? Defaults[.accentColor] : .white,
).ensureMinimumBrightness(factor: 0.8) : Defaults[.sliderColor] == SliderColorEnum.accent ? .accentColor : .white,
dragging: $dragging,
lastDragged: $lastDragged,
onValueChange: onValueChange
@ -336,7 +338,8 @@ struct CustomSlider: View {
}
#Preview {
NotchHomeView(albumArtNamespace: Namespace().wrappedValue)
.environmentObject(DynamicIslandViewModel())
.environmentObject(WebcamManager())
NotchHomeView(
albumArtNamespace: Namespace().wrappedValue
)
.environmentObject(DynamicIslandViewModel())
}

View file

@ -4,7 +4,7 @@
//
// Created by Kai Azim on 2023-08-24.
// Original source: https://github.com/MrKai77/DynamicNotchKit
// Modified by Alexander Greco on 2025-05-18.
// Modified by Alexander on 2025-05-18.
import SwiftUI