This commit is contained in:
Hariharan Mudaliar 2025-07-13 22:16:02 +05:30
commit 13a2ff0e20
67 changed files with 395 additions and 93 deletions

View file

@ -6,6 +6,18 @@
objectVersion = 77; objectVersion = 77;
objects = { objects = {
/* Begin PBXBuildFile section */
7E6118142E24071E0050006C /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = 14D032192C68F32E0096E6A1 /* LaunchAtLogin */; };
7E6118152E24071E0050006C /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = 14D0321C2C68F3350096E6A1 /* Sparkle */; };
7E6118162E24071E0050006C /* KeyboardShortcuts in Frameworks */ = {isa = PBXBuildFile; productRef = B18654382C6F4990000B926A /* KeyboardShortcuts */; };
7E6118172E24071E0050006C /* Collections in Frameworks */ = {isa = PBXBuildFile; productRef = 9A987A0F2C73CA8D005CA465 /* Collections */; };
7E6118182E24071E0050006C /* TheBoringWorkerNotifier in Frameworks */ = {isa = PBXBuildFile; productRef = 1485442E2C8F049C00943381 /* TheBoringWorkerNotifier */; };
7E6118192E24071E0050006C /* Defaults in Frameworks */ = {isa = PBXBuildFile; productRef = B19016212CC15B3D00E3F12E /* Defaults */; };
7E61181A2E24071E0050006C /* SwiftUIIntrospect in Frameworks */ = {isa = PBXBuildFile; productRef = B1628B912CC260C0003D8DF3 /* SwiftUIIntrospect */; };
7E61181B2E24071E0050006C /* LottieUI in Frameworks */ = {isa = PBXBuildFile; productRef = B194240A2CD10017003E5DC2 /* LottieUI */; };
7E61181C2E24071E0050006C /* MacroVisionKit in Frameworks */ = {isa = PBXBuildFile; productRef = 146BC4362D366E9B0047C66A /* MacroVisionKit */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
F54406E72CD4987A00C7AFD9 /* DynamicIsland.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DynamicIsland.app; sourceTree = BUILT_PRODUCTS_DIR; }; F54406E72CD4987A00C7AFD9 /* DynamicIsland.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DynamicIsland.app; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@ -23,6 +35,15 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
7E61181C2E24071E0050006C /* MacroVisionKit in Frameworks */,
7E61181B2E24071E0050006C /* LottieUI in Frameworks */,
7E61181A2E24071E0050006C /* SwiftUIIntrospect in Frameworks */,
7E6118192E24071E0050006C /* Defaults in Frameworks */,
7E6118182E24071E0050006C /* TheBoringWorkerNotifier in Frameworks */,
7E6118172E24071E0050006C /* Collections in Frameworks */,
7E6118162E24071E0050006C /* KeyboardShortcuts in Frameworks */,
7E6118152E24071E0050006C /* Sparkle in Frameworks */,
7E6118142E24071E0050006C /* LaunchAtLogin in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -65,6 +86,15 @@
); );
name = DynamicIsland; name = DynamicIsland;
packageProductDependencies = ( packageProductDependencies = (
14D032192C68F32E0096E6A1 /* LaunchAtLogin */,
14D0321C2C68F3350096E6A1 /* Sparkle */,
B18654382C6F4990000B926A /* KeyboardShortcuts */,
9A987A0F2C73CA8D005CA465 /* Collections */,
1485442E2C8F049C00943381 /* TheBoringWorkerNotifier */,
B19016212CC15B3D00E3F12E /* Defaults */,
B1628B912CC260C0003D8DF3 /* SwiftUIIntrospect */,
B194240A2CD10017003E5DC2 /* LottieUI */,
146BC4362D366E9B0047C66A /* MacroVisionKit */,
); );
productName = DynamicIsland; productName = DynamicIsland;
productReference = F54406E72CD4987A00C7AFD9 /* DynamicIsland.app */; productReference = F54406E72CD4987A00C7AFD9 /* DynamicIsland.app */;
@ -96,6 +126,15 @@
minimizedProjectReferenceProxies = 1; minimizedProjectReferenceProxies = 1;
packageReferences = ( packageReferences = (
F54407082CD4A23F00C7AFD9 /* XCRemoteSwiftPackageReference "swift-collections" */, F54407082CD4A23F00C7AFD9 /* XCRemoteSwiftPackageReference "swift-collections" */,
14D032182C68F32E0096E6A1 /* XCRemoteSwiftPackageReference "LaunchAtLogin-Modern" */,
14D0321B2C68F3350096E6A1 /* XCRemoteSwiftPackageReference "Sparkle" */,
B18654372C6F4990000B926A /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */,
9A987A112C73CAA1005CA465 /* XCRemoteSwiftPackageReference "Pow" */,
1485442D2C8F049C00943381 /* XCRemoteSwiftPackageReference "TheBoringWorkerNotifier" */,
B19016202CC15B3D00E3F12E /* XCRemoteSwiftPackageReference "Defaults" */,
B1628B902CC260C0003D8DF3 /* XCRemoteSwiftPackageReference "swiftui-introspect" */,
B19424072CD0DB52003E5DC2 /* XCRemoteSwiftPackageReference "LottieUI" */,
146BC4352D366E9B0047C66A /* XCRemoteSwiftPackageReference "MacroVisionKit" */,
); );
preferredProjectObjectVersion = 77; preferredProjectObjectVersion = 77;
productRefGroup = F54406E82CD4987A00C7AFD9 /* Products */; productRefGroup = F54406E82CD4987A00C7AFD9 /* Products */;
@ -258,13 +297,15 @@
DEVELOPMENT_ASSET_PATHS = "\"DynamicIsland/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"DynamicIsland/Preview Content\"";
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSAppleEventsUsageDescription = "Need for Spotify and Apple Music";
INFOPLIST_KEY_NSCameraUsageDescription = "We need your camera for Mirror mode";
INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.DynamicIsland; PRODUCT_BUNDLE_IDENTIFIER = com.karthikinformationtechnology.DynamicIsland;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -283,13 +324,15 @@
DEVELOPMENT_ASSET_PATHS = "\"DynamicIsland/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"DynamicIsland/Preview Content\"";
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSAppleEventsUsageDescription = "Need for Spotify and Apple Music";
INFOPLIST_KEY_NSCameraUsageDescription = "We need your camera for Mirror mode";
INFOPLIST_KEY_NSHumanReadableCopyright = ""; INFOPLIST_KEY_NSHumanReadableCopyright = "";
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/../Frameworks", "@executable_path/../Frameworks",
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.example.DynamicIsland; PRODUCT_BUNDLE_IDENTIFIER = com.karthikinformationtechnology.DynamicIsland;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@ -320,6 +363,78 @@
/* End XCConfigurationList section */ /* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */ /* Begin XCRemoteSwiftPackageReference section */
146BC4352D366E9B0047C66A /* XCRemoteSwiftPackageReference "MacroVisionKit" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/TheBoredTeam/MacroVisionKit";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 0.1.0;
};
};
1485442D2C8F049C00943381 /* XCRemoteSwiftPackageReference "TheBoringWorkerNotifier" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/TheBoredTeam/TheBoringWorkerNotifier.git";
requirement = {
branch = main;
kind = branch;
};
};
14D032182C68F32E0096E6A1 /* XCRemoteSwiftPackageReference "LaunchAtLogin-Modern" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/sindresorhus/LaunchAtLogin-Modern";
requirement = {
branch = main;
kind = branch;
};
};
14D0321B2C68F3350096E6A1 /* XCRemoteSwiftPackageReference "Sparkle" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/sparkle-project/Sparkle";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 2.6.4;
};
};
9A987A112C73CAA1005CA465 /* XCRemoteSwiftPackageReference "Pow" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/EmergeTools/Pow";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.0.4;
};
};
B1628B902CC260C0003D8DF3 /* XCRemoteSwiftPackageReference "swiftui-introspect" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/siteline/swiftui-introspect";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 1.3.0;
};
};
B18654372C6F4990000B926A /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/sindresorhus/KeyboardShortcuts";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 2.2.4;
};
};
B19016202CC15B3D00E3F12E /* XCRemoteSwiftPackageReference "Defaults" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/sindresorhus/Defaults";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 9.0.2;
};
};
B19424072CD0DB52003E5DC2 /* XCRemoteSwiftPackageReference "LottieUI" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/jasudev/LottieUI.git";
requirement = {
branch = main;
kind = branch;
};
};
F54407082CD4A23F00C7AFD9 /* XCRemoteSwiftPackageReference "swift-collections" */ = { F54407082CD4A23F00C7AFD9 /* XCRemoteSwiftPackageReference "swift-collections" */ = {
isa = XCRemoteSwiftPackageReference; isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/apple/swift-collections.git"; repositoryURL = "https://github.com/apple/swift-collections.git";
@ -329,6 +444,54 @@
}; };
}; };
/* End XCRemoteSwiftPackageReference section */ /* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
146BC4362D366E9B0047C66A /* MacroVisionKit */ = {
isa = XCSwiftPackageProductDependency;
package = 146BC4352D366E9B0047C66A /* XCRemoteSwiftPackageReference "MacroVisionKit" */;
productName = MacroVisionKit;
};
1485442E2C8F049C00943381 /* TheBoringWorkerNotifier */ = {
isa = XCSwiftPackageProductDependency;
package = 1485442D2C8F049C00943381 /* XCRemoteSwiftPackageReference "TheBoringWorkerNotifier" */;
productName = TheBoringWorkerNotifier;
};
14D032192C68F32E0096E6A1 /* LaunchAtLogin */ = {
isa = XCSwiftPackageProductDependency;
package = 14D032182C68F32E0096E6A1 /* XCRemoteSwiftPackageReference "LaunchAtLogin-Modern" */;
productName = LaunchAtLogin;
};
14D0321C2C68F3350096E6A1 /* Sparkle */ = {
isa = XCSwiftPackageProductDependency;
package = 14D0321B2C68F3350096E6A1 /* XCRemoteSwiftPackageReference "Sparkle" */;
productName = Sparkle;
};
9A987A0F2C73CA8D005CA465 /* Collections */ = {
isa = XCSwiftPackageProductDependency;
package = F54407082CD4A23F00C7AFD9 /* XCRemoteSwiftPackageReference "swift-collections" */;
productName = Collections;
};
B1628B912CC260C0003D8DF3 /* SwiftUIIntrospect */ = {
isa = XCSwiftPackageProductDependency;
package = B1628B902CC260C0003D8DF3 /* XCRemoteSwiftPackageReference "swiftui-introspect" */;
productName = SwiftUIIntrospect;
};
B18654382C6F4990000B926A /* KeyboardShortcuts */ = {
isa = XCSwiftPackageProductDependency;
package = B18654372C6F4990000B926A /* XCRemoteSwiftPackageReference "KeyboardShortcuts" */;
productName = KeyboardShortcuts;
};
B19016212CC15B3D00E3F12E /* Defaults */ = {
isa = XCSwiftPackageProductDependency;
package = B19016202CC15B3D00E3F12E /* XCRemoteSwiftPackageReference "Defaults" */;
productName = Defaults;
};
B194240A2CD10017003E5DC2 /* LottieUI */ = {
isa = XCSwiftPackageProductDependency;
package = B19424072CD0DB52003E5DC2 /* XCRemoteSwiftPackageReference "LottieUI" */;
productName = LottieUI;
};
/* End XCSwiftPackageProductDependency section */
}; };
rootObject = F54406DF2CD4987A00C7AFD9 /* Project object */; rootObject = F54406DF2CD4987A00C7AFD9 /* Project object */;
} }

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View file

@ -1,6 +1,78 @@
{ {
"originHash" : "51f90653b2c9f9f7064c0d52159b40bf7d222e5f314be23e62fe28520fec03db", "originHash" : "2741287b65cf0758abd89baadf314f5f8cbfcb46cb8d236a83f98731e5501ee3",
"pins" : [ "pins" : [
{
"identity" : "defaults",
"kind" : "remoteSourceControl",
"location" : "https://github.com/sindresorhus/Defaults",
"state" : {
"revision" : "00c82eff4550c87cf9c547d7e5493a6a97837061",
"version" : "9.0.3"
}
},
{
"identity" : "keyboardshortcuts",
"kind" : "remoteSourceControl",
"location" : "https://github.com/sindresorhus/KeyboardShortcuts",
"state" : {
"revision" : "045cf174010beb335fa1d2567d18c057b8787165",
"version" : "2.3.0"
}
},
{
"identity" : "launchatlogin-modern",
"kind" : "remoteSourceControl",
"location" : "https://github.com/sindresorhus/LaunchAtLogin-Modern",
"state" : {
"branch" : "main",
"revision" : "a04ec1c363be3627734f6dad757d82f5d4fa8fcc"
}
},
{
"identity" : "lottie-spm",
"kind" : "remoteSourceControl",
"location" : "https://github.com/airbnb/lottie-spm.git",
"state" : {
"branch" : "main",
"revision" : "90fa25ba0feb39c22915d41b55226cc95955dfcc"
}
},
{
"identity" : "lottieui",
"kind" : "remoteSourceControl",
"location" : "https://github.com/jasudev/LottieUI.git",
"state" : {
"branch" : "main",
"revision" : "0cd5b54a1c8467b19c01f56395aec179087b62e2"
}
},
{
"identity" : "macrovisionkit",
"kind" : "remoteSourceControl",
"location" : "https://github.com/TheBoredTeam/MacroVisionKit",
"state" : {
"revision" : "5e8b06c448298de182638bb28ca064eaf6b1fe99",
"version" : "0.1.0"
}
},
{
"identity" : "pow",
"kind" : "remoteSourceControl",
"location" : "https://github.com/EmergeTools/Pow",
"state" : {
"revision" : "a504eb6d144bcf49f4f33029a2795345cb39e6b4",
"version" : "1.0.5"
}
},
{
"identity" : "sparkle",
"kind" : "remoteSourceControl",
"location" : "https://github.com/sparkle-project/Sparkle",
"state" : {
"revision" : "0ca3004e98712ea2b39dd881d28448630cce1c99",
"version" : "2.7.0"
}
},
{ {
"identity" : "swift-collections", "identity" : "swift-collections",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
@ -9,6 +81,33 @@
"revision" : "671108c96644956dddcd89dd59c203dcdb36cec7", "revision" : "671108c96644956dddcd89dd59c203dcdb36cec7",
"version" : "1.1.4" "version" : "1.1.4"
} }
},
{
"identity" : "swift-syntax",
"kind" : "remoteSourceControl",
"location" : "https://github.com/swiftlang/swift-syntax",
"state" : {
"revision" : "f99ae8aa18f0cf0d53481901f88a0991dc3bd4a2",
"version" : "601.0.1"
}
},
{
"identity" : "swiftui-introspect",
"kind" : "remoteSourceControl",
"location" : "https://github.com/siteline/swiftui-introspect",
"state" : {
"revision" : "807f73ce09a9b9723f12385e592b4e0aaebd3336",
"version" : "1.3.0"
}
},
{
"identity" : "theboringworkernotifier",
"kind" : "remoteSourceControl",
"location" : "https://github.com/TheBoredTeam/TheBoringWorkerNotifier.git",
"state" : {
"branch" : "main",
"revision" : "bc2b292c88035dcfc41fc7e3d8021689e624d137"
}
} }
], ],
"version" : 3 "version" : 3

View file

@ -1,6 +1,6 @@
// //
// ContentView.swift // ContentView.swift
// boringNotchApp // DynamicIslandApp
// //
// Created by Harsh Vardhan Goswami on 02/08/24 // Created by Harsh Vardhan Goswami on 02/08/24
// Modified by Richard Kunkli on 24/08/2024. // Modified by Richard Kunkli on 24/08/2024.

View file

@ -1,6 +1,6 @@
// //
// DynamicIslandApp.swift // DynamicIslandApp.swift
// DynamicIsland // DynamicIslandApp
// //
// Created by Harsh Vardhan Goswami on 02/08/24. // Created by Harsh Vardhan Goswami on 02/08/24.
// //

View file

@ -156,6 +156,7 @@
} }
}, },
"boring.notch" : { "boring.notch" : {
"extractionState" : "stale",
"localizations" : { "localizations" : {
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {
@ -313,6 +314,9 @@
}, },
"Drop files here" : { "Drop files here" : {
},
"dynamic.island" : {
}, },
"Easily copy, store, and manage your most-used content. Upgrade now for advanced features like multi-item storage and quick access!" : { "Easily copy, store, and manage your most-used content. Upgrade now for advanced features like multi-item storage and quick access!" : {
@ -414,7 +418,7 @@
"Gradient" : { "Gradient" : {
}, },
"Hide BoringNotch Options" : { "Hide DynamicIsland Options" : {
}, },
"Hide only when NowPlaying app is in fullscreen" : { "Hide only when NowPlaying app is in fullscreen" : {
@ -471,6 +475,7 @@
}, },
"Made with 🫶🏻 by not so boring not.people" : { "Made with 🫶🏻 by not so boring not.people" : {
"extractionState" : "stale",
"localizations" : { "localizations" : {
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {
@ -479,6 +484,9 @@
} }
} }
} }
},
"Made with 🫶🏻 by the DynamicIsland team" : {
}, },
"Match menubar height" : { "Match menubar height" : {
@ -705,7 +713,7 @@
"Restart" : { "Restart" : {
}, },
"Restart Boring Notch" : { "Restart Dynamic Island" : {
}, },
"Running" : { "Running" : {
@ -841,7 +849,7 @@
"System features" : { "System features" : {
}, },
"TheBoringNotch" : { "TheDynamicIsland" : {
}, },
"Time to Full Charge: %lld min" : { "Time to Full Charge: %lld min" : {

View file

@ -1,6 +1,6 @@
// //
// AppleMusicController.swift // AppleMusicController.swift
// boringNotch // DynamicIsland
// //
// Created by Alexander Greco on 2025-03-29. // Created by Alexander Greco on 2025-03-29.
// //

View file

@ -1,6 +1,6 @@
// //
// MediaControllerProtocol.swift // MediaControllerProtocol.swift
// boringNotch // DynamicIsland
// //
// Created by Alexander Greco on 2025-03-29. // Created by Alexander Greco on 2025-03-29.
// //

View file

@ -1,6 +1,6 @@
// //
// NowPlayingController.swift // NowPlayingController.swift
// boringNotch // DynamicIsland
// //
// Created by Alexander on 2025-03-29. // Created by Alexander on 2025-03-29.
// //

View file

@ -1,6 +1,6 @@
// //
// SpotifyController.swift // SpotifyController.swift
// boringNotch // DynamicIsland
// //
// Created by Alexander Greco on 2025-03-29. // Created by Alexander Greco on 2025-03-29.
// //

View file

@ -1,6 +1,6 @@
// //
// YouTubeMusicController.swift // YouTubeMusicController.swift
// boringNotch // DynamicIsland
// //
// Created By Alexander Greco on 2025-03-30. // Created By Alexander Greco on 2025-03-30.
// //
@ -23,7 +23,7 @@ class YouTubeMusicController: MediaControllerProtocol {
private var cancellables = Set<AnyCancellable>() private var cancellables = Set<AnyCancellable>()
private var playbackInfoCancellable: AnyCancellable? private var playbackInfoCancellable: AnyCancellable?
private var isAuthenticating = false private var isAuthenticating = false
private let authQueue = DispatchQueue(label: "com.boringnotch.youtubemusicauth", qos: .background) private let authQueue = DispatchQueue(label: "com.dynamicisland.youtubemusicauth", qos: .background)
init() { init() {
setupAppStateObservers() setupAppStateObservers()
@ -64,7 +64,7 @@ class YouTubeMusicController: MediaControllerProtocol {
} }
private func getAccessToken(completion: @escaping (Bool) -> Void) { private func getAccessToken(completion: @escaping (Bool) -> Void) {
guard let url = URL(string: "\(baseURL)/auth/boringNotch") else { guard let url = URL(string: "\(baseURL)/auth/dynamicIsland") else {
completion(false) completion(false)
return return
} }

View file

@ -1,6 +1,6 @@
// //
// Constants.swift // Constants.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 16/08/2024. // Created by Richard Kunkli on 16/08/2024.
// //

View file

@ -4,7 +4,7 @@
// //
// Created by Harsh Vardhan Goswami on 04/08/24. // Created by Harsh Vardhan Goswami on 04/08/24.
// HelloAnimation.swift // HelloAnimation.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 08/08/24. // Created by Harsh Vardhan Goswami on 08/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// BoringCalender.swift // DynamicIslandCalendar.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 08/09/24. // Created by Harsh Vardhan Goswami on 08/09/24.
// //

View file

@ -3,8 +3,8 @@
// DynamicIsland // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 04/08/24. // Created by Harsh Vardhan Goswami on 04/08/24.
// BoringSystemTiles.swift // DynamicIslandSystemTiles.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 16/08/24. // Created by Harsh Vardhan Goswami on 16/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// HoverButton.swift // HoverButton.swift
// boringNotch // DynamicIsland
// //
// Created by Kraigo on 04.09.2024. // Created by Kraigo on 04.09.2024.
// //

View file

@ -1,6 +1,6 @@
// //
// DownloadView.swift // DownloadView.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 17/08/24. // Created by Harsh Vardhan Goswami on 17/08/24.
// //

View file

@ -11,7 +11,7 @@ struct BatteryView: View {
var batteryWidth: CGFloat = 26 var batteryWidth: CGFloat = 26
var isForNotification: Bool var isForNotification: Bool
var animationStyle: BoringAnimations = BoringAnimations() var animationStyle: DynamicIslandAnimations = DynamicIslandAnimations()
var icon: String = "battery.0" var icon: String = "battery.0"

View file

@ -1,6 +1,6 @@
// //
// InlineHUDs.swift // InlineHUDs.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 14/09/2024. // Created by Richard Kunkli on 14/09/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// LiveActivityModifier.swift // LiveActivityModifier.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 12/08/2024. // Created by Richard Kunkli on 12/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// MarqueeTextView.swift // MarqueeTextView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 08/08/2024. // Created by Richard Kunkli on 08/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// SystemEventIndicatorModifier.swift // SystemEventIndicatorModifier.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 12/08/2024. // Created by Richard Kunkli on 12/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// LottieAnimationView.swift // LottieAnimationView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 2024. 10. 29.. // Created by Richard Kunkli on 2024. 10. 29..
// //

View file

@ -1,6 +1,6 @@
// //
// MusicVisualizer.swift // MusicVisualizer.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 02/08/24. // Created by Harsh Vardhan Goswami on 02/08/24.
// //

View file

@ -1,13 +1,17 @@
// //
// BoringExtrasMenu.swift // DynamicIslandExtrasMenu.swift
// boringNotch // DynamicIsland
//
// Created by Harsh Vardhan Goswami on 02/08/24.
// DynamicIslandExtrasMenu.swift
// DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 04/08/24. // Created by Harsh Vardhan Goswami on 04/08/24.
// //
import SwiftUI import SwiftUI
struct BoringLargeButtons: View { struct DynamicIslandLargeButtons: View {
var action: () -> Void var action: () -> Void
var icon: Image var icon: Image
var title: String var title: String
@ -27,7 +31,7 @@ struct BoringLargeButtons: View {
} }
} }
struct BoringExtrasMenu : View { struct DynamicIslandExtrasMenu : View {
@ObservedObject var vm: DynamicIslandViewModel @ObservedObject var vm: DynamicIslandViewModel
var body: some View { var body: some View {
@ -41,7 +45,7 @@ struct BoringExtrasMenu : View {
} }
var github: some View { var github: some View {
BoringLargeButtons( DynamicIslandLargeButtons(
action: { action: {
NSWorkspace.shared.open(productPage) NSWorkspace.shared.open(productPage)
}, },
@ -51,7 +55,7 @@ struct BoringExtrasMenu : View {
} }
var donate: some View { var donate: some View {
BoringLargeButtons( DynamicIslandLargeButtons(
action: { action: {
NSWorkspace.shared.open(sponsorPage) NSWorkspace.shared.open(sponsorPage)
}, },
@ -75,7 +79,7 @@ struct BoringExtrasMenu : View {
} }
var hide: some View { var hide: some View {
BoringLargeButtons( DynamicIslandLargeButtons(
action: { action: {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
//vm.openMusic() //vm.openMusic()
@ -87,7 +91,7 @@ struct BoringExtrasMenu : View {
} }
var close: some View { var close: some View {
BoringLargeButtons( DynamicIslandLargeButtons(
action: { action: {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
@ -103,5 +107,5 @@ struct BoringExtrasMenu : View {
#Preview { #Preview {
BoringExtrasMenu(vm: .init()) DynamicIslandExtrasMenu(vm: .init())
} }

View file

@ -1,6 +1,6 @@
// //
// NotchHomeView.swift // NotchHomeView.swift
// boringNotch // DynamicIsland
// //
// Created by Hugo Persson on 2024-08-18. // Created by Hugo Persson on 2024-08-18.
// Modified by Harsh Vardhan Goswami & Richard Kunkli // Modified by Harsh Vardhan Goswami & Richard Kunkli

View file

@ -1,6 +1,6 @@
// //
// NotchShape.swift // NotchShape.swift
// boringNotch // DynamicIsland
// //
// Created by Kai Azim on 2023-08-24. // Created by Kai Azim on 2023-08-24.
// Original source: https://github.com/MrKai77/DynamicNotchKit // Original source: https://github.com/MrKai77/DynamicNotchKit

View file

@ -1,6 +1,6 @@
// //
// OnboardingSettings.swift // OnboardingSettings.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 2024. 09. 26.. // Created by Richard Kunkli on 2024. 09. 26..
// //

View file

@ -1,6 +1,6 @@
// //
// ProOnboarding.swift // ProOnboarding.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 2024. 09. 26.. // Created by Richard Kunkli on 2024. 09. 26..
// //

View file

@ -1,6 +1,6 @@
// //
// SparkleView.swift // SparkleView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 2024. 09. 26.. // Created by Richard Kunkli on 2024. 09. 26..
// //

View file

@ -1,6 +1,6 @@
// //
// ProgressIndicator.swift // ProgressIndicator.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 11/08/24. // Created by Harsh Vardhan Goswami on 11/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// EditPanelView.swift // EditPanelView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 12/08/2024. // Created by Richard Kunkli on 12/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// ListItemPopover.swift // ListItemPopover.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 15/09/2024. // Created by Richard Kunkli on 15/09/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// SettingsView.swift // SettingsView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 07/08/2024. // Created by Richard Kunkli on 07/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// SoftwareUpdater.swift // SoftwareUpdater.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 09/08/2024. // Created by Richard Kunkli on 09/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// DragDropView.swift // DragDropView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 2024. 10. 19.. // Created by Richard Kunkli on 2024. 10. 19..
// //

View file

@ -1,6 +1,6 @@
// //
// TabButton.swift // TabButton.swift
// boringNotch // DynamicIsland
// //
// Created by Hugo Persson on 2024-08-24. // Created by Hugo Persson on 2024-08-24.
// //

View file

@ -1,6 +1,6 @@
// //
// TabSelectionView.swift // TabSelectionView.swift
// boringNotch // DynamicIsland
// //
// Created by Hugo Persson on 2024-08-25. // Created by Hugo Persson on 2024-08-25.
// //

View file

@ -1,6 +1,6 @@
// //
// TestView.swift // TestView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 14/08/2024. // Created by Richard Kunkli on 14/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// TipStore.swift // TipStore.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 15/09/2024. // Created by Richard Kunkli on 15/09/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// WebcamView.swift // WebcamView.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 19/08/24. // Created by Harsh Vardhan Goswami on 19/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// WhatsNewView.swift // WhatsNewView.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 09/08/2024. // Created by Richard Kunkli on 09/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// generic.swift // generic.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 04/08/24. // Created by Harsh Vardhan Goswami on 04/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// ActionBar.swift // ActionBar.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 15/09/2024. // Created by Richard Kunkli on 15/09/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// BundleInfos.swift // BundleInfos.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 08/08/2024. // Created by Richard Kunkli on 08/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// Button+Bouncing.swift // Button+Bouncing.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 19/08/24. // Created by Harsh Vardhan Goswami on 19/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// ConditionalModifier.swift // ConditionalModifier.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 20/08/2024. // Created by Richard Kunkli on 20/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// DataTypes+Extensions.swift // DataTypes+Extensions.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 27/08/24. // Created by Harsh Vardhan Goswami on 27/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// KeyboardShortcutsHelper.swift // KeyboardShortcutsHelper.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 16/08/2024. // Created by Richard Kunkli on 16/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// MouseTracker.swift // MouseTracker.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 12/08/2024. // Created by Richard Kunkli on 12/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// Image2Color.swift // Image2Color.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 07/08/2024. // Created by Richard Kunkli on 07/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// PanGesture.swift // PanGesture.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 21/08/2024. // Created by Richard Kunkli on 21/08/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// AppIcons.swift // AppIcons.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 16/08/24. // Created by Harsh Vardhan Goswami on 16/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// AppleScriptHelper.swift // AppleScriptHelper.swift
// boringNotch // DynamicIsland
// //
// Created by Alexander Greco on 2025-03-29. // Created by Alexander Greco on 2025-03-29.
// //

View file

@ -1,6 +1,6 @@
// //
// AudioPlayer.swift // AudioPlayer.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 09/08/24. // Created by Harsh Vardhan Goswami on 09/08/24.
// //

View file

@ -1,6 +1,6 @@
// //
// CalenderManager.swift // CalenderManager.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 08/09/24. // Created by Harsh Vardhan Goswami on 08/09/24.
// //

View file

@ -3,8 +3,8 @@
// DynamicIsland // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 04/08/24. // Created by Harsh Vardhan Goswami on 04/08/24.
// BoringExtensionManager.swift // DynamicIslandExtensionManager.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 07/09/24. // Created by Harsh Vardhan Goswami on 07/09/24.
// //

View file

@ -1,6 +1,6 @@
// //
// MusicManager.swift // MusicManager.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 03/08/24. // Created by Harsh Vardhan Goswami on 03/08/24.
// //
@ -41,7 +41,7 @@ class MusicManager: ObservableObject {
@Published var lastUpdated: Date = .distantPast @Published var lastUpdated: Date = .distantPast
@Published var ignoreLastUpdated = true @Published var ignoreLastUpdated = true
@Published var isPlayerIdle: Bool = true @Published var isPlayerIdle: Bool = true
@Published var animations: BoringAnimations = .init() @Published var animations: DynamicIslandAnimations = .init()
@Published var avgColor: NSColor = .white @Published var avgColor: NSColor = .white
@Published var bundleIdentifier: String? = nil @Published var bundleIdentifier: String? = nil
@Published var songDuration: TimeInterval = 0 @Published var songDuration: TimeInterval = 0

View file

@ -1,6 +1,6 @@
// //
// NotchSpaceManager.swift // NotchSpaceManager.swift
// boringNotch // DynamicIsland
// //
// Created by Alexander Greco on 2024-10-27. // Created by Alexander Greco on 2024-10-27.
// //

View file

@ -1,6 +1,6 @@
// //
// WebcamManager.swift // WebcamManager.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 19/08/24. // Created by Harsh Vardhan Goswami on 19/08/24.
// //
@ -33,7 +33,7 @@ class WebcamManager: NSObject, ObservableObject {
} }
} }
private let sessionQueue = DispatchQueue(label: "BoringNotch.WebcamManager.SessionQueue", qos: .userInitiated) private let sessionQueue = DispatchQueue(label: "DynamicIsland.WebcamManager.SessionQueue", qos: .userInitiated)
private var isCleaningUp: Bool = false private var isCleaningUp: Bool = false
@ -166,7 +166,7 @@ class WebcamManager: NSObject, ObservableObject {
let videoInput = try AVCaptureDeviceInput(device: videoDevice) let videoInput = try AVCaptureDeviceInput(device: videoDevice)
guard session.canAddInput(videoInput) else { guard session.canAddInput(videoInput) else {
throw NSError(domain: "BoringNotch.WebcamManager", code: -1, userInfo: [NSLocalizedDescriptionKey: "Cannot add video input"]) throw NSError(domain: "DynamicIsland.WebcamManager", code: -1, userInfo: [NSLocalizedDescriptionKey: "Cannot add video input"])
} }
session.beginConfiguration() session.beginConfiguration()

View file

@ -1,24 +1,44 @@
import Cocoa import Cocoa
class BoringStatusMenu: NSMenu { class DynamicIslandStatusMenu: NSMenu {
var statusItem: NSStatusItem! var statusItem: NSStatusItem!
override init() { override init(title: String) {
super.init() super.init(title: title)
setupStatusItem()
}
convenience init() {
self.init(title: "DynamicIsland")
setupStatusItem()
}
required init(coder: NSCoder) {
super.init(coder: coder)
setupStatusItem()
}
private func setupStatusItem() {
// Initialize the status item // Initialize the status item
statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
if let button = statusItem.button { if let button = statusItem.button {
button.image = NSImage(systemSymbolName: "music.note", accessibilityDescription: "BoringNotch") button.image = NSImage(systemSymbolName: "music.note", accessibilityDescription: "DynamicIsland")
button.action = #selector(showMenu) button.action = #selector(showMenu)
} }
// Set up the menu // Set up the menu
let menu = NSMenu() self.addItem(NSMenuItem(title: "Quit", action: #selector(quitAction), keyEquivalent: "q"))
menu.addItem(NSMenuItem(title: "Quit", action: #selector(quitAction), keyEquivalent: "q")) statusItem.menu = self
statusItem.menu = menu }
@objc func showMenu() {
// Handle menu show action
}
@objc func quitAction() {
NSApp.terminate(nil)
} }
} }

View file

@ -1,6 +1,6 @@
// //
// Constants.swift // Constants.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 2024. 10. 17.. // Created by Richard Kunkli on 2024. 10. 17..
// //

View file

@ -1,6 +1,6 @@
// //
// PlaybackState.swift // PlaybackState.swift
// boringNotch // DynamicIsland
// //
// Created by Alexander Greco on 2025-03-29. // Created by Alexander Greco on 2025-03-29.
// //

View file

@ -1,6 +1,6 @@
// //
// FullscreenMediaDetection.swift // FullscreenMediaDetection.swift
// boringNotch // DynamicIsland
// //
// Created by Richard Kunkli on 06/09/2024. // Created by Richard Kunkli on 06/09/2024.
// //

View file

@ -1,6 +1,6 @@
// //
// CGSSpace.swift // CGSSpace.swift
// boringNotch // DynamicIsland
// //
// This Source Code Form is subject to the terms of the Mozilla Public // This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this // License, v. 2.0. If a copy of the MPL was not distributed with this

View file

@ -1,6 +1,6 @@
// //
// sizeMatters.swift // sizeMatters.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 05/08/24. // Created by Harsh Vardhan Goswami on 05/08/24.
// //

View file

@ -1,13 +1,13 @@
// //
// constants.swift // constants.swift
// boringNotch // DynamicIsland
// //
// Created by Harsh Vardhan Goswami on 04/08/24. // Created by Harsh Vardhan Goswami on 04/08/24.
// //
import Foundation import Foundation
let productPage = URL(string: "https://github.com/TheBoredTeam/boring.notch")! let productPage = URL(string: "https://github.com/TheBoredTeam/DynamicIsland")!
let sponsorPage = URL(string: "https://buymeacoffee.com/jfxh67wvfxq")! let sponsorPage = URL(string: "https://buymeacoffee.com/jfxh67wvfxq")!