From d7c23f91d0eb38a17eb6b758d9ce9918087b06da Mon Sep 17 00:00:00 2001 From: Beingpax Date: Sat, 7 Jun 2025 17:24:05 +0545 Subject: [PATCH] fix: Update menu bar icon to use AppIcon --- VoiceInk.xcodeproj/project.pbxproj | 8 ++--- .../menuBarIcon.imageset/Contents.json | 2 +- .../menuBarIcon.imageset/Frame 1.png | Bin 7914 -> 0 bytes .../menuBarIcon.imageset/menuBarIcon.png | Bin 0 -> 25931 bytes VoiceInk/Views/Common/AppIconView.swift | 25 +++++++++++++++ VoiceInk/Views/LicenseManagementView.swift | 9 +----- VoiceInk/Views/Metrics/AppIconView.swift | 30 ------------------ VoiceInk/Views/Metrics/MetricsSetupView.swift | 2 +- VoiceInk/Views/RecordView.swift | 24 +------------- VoiceInk/VoiceInk.swift | 2 +- 10 files changed, 34 insertions(+), 68 deletions(-) delete mode 100644 VoiceInk/Assets.xcassets/menuBarIcon.imageset/Frame 1.png create mode 100644 VoiceInk/Assets.xcassets/menuBarIcon.imageset/menuBarIcon.png create mode 100644 VoiceInk/Views/Common/AppIconView.swift delete mode 100644 VoiceInk/Views/Metrics/AppIconView.swift diff --git a/VoiceInk.xcodeproj/project.pbxproj b/VoiceInk.xcodeproj/project.pbxproj index b4edee4..83048c8 100644 --- a/VoiceInk.xcodeproj/project.pbxproj +++ b/VoiceInk.xcodeproj/project.pbxproj @@ -448,7 +448,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 130; + CURRENT_PROJECT_VERSION = 132; DEVELOPMENT_ASSET_PATHS = "\"VoiceInk/Preview Content\""; DEVELOPMENT_TEAM = V6J6A3VWY2; ENABLE_HARDENED_RUNTIME = YES; @@ -463,7 +463,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.30; + MARKETING_VERSION = 1.32; PRODUCT_BUNDLE_IDENTIFIER = com.prakashjoshipax.VoiceInk; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -481,7 +481,7 @@ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 130; + CURRENT_PROJECT_VERSION = 132; DEVELOPMENT_ASSET_PATHS = "\"VoiceInk/Preview Content\""; DEVELOPMENT_TEAM = V6J6A3VWY2; ENABLE_HARDENED_RUNTIME = YES; @@ -496,7 +496,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 14.0; - MARKETING_VERSION = 1.30; + MARKETING_VERSION = 1.32; PRODUCT_BUNDLE_IDENTIFIER = com.prakashjoshipax.VoiceInk; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/VoiceInk/Assets.xcassets/menuBarIcon.imageset/Contents.json b/VoiceInk/Assets.xcassets/menuBarIcon.imageset/Contents.json index 1753478..f96d6f8 100644 --- a/VoiceInk/Assets.xcassets/menuBarIcon.imageset/Contents.json +++ b/VoiceInk/Assets.xcassets/menuBarIcon.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Frame 1.png", + "filename" : "menuBarIcon.png", "idiom" : "universal" } ], diff --git a/VoiceInk/Assets.xcassets/menuBarIcon.imageset/Frame 1.png b/VoiceInk/Assets.xcassets/menuBarIcon.imageset/Frame 1.png deleted file mode 100644 index bbd29be4bd77040228cfda70ef088698365af0bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7914 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%0A^s3wBa7MpUFS*3MGhLykQshPqULX| z>!OYV&~w2(_|$|R35&y!&eW&ODNkuoZefS?m&@JiyeGl;>_iW*(6Mh`AE6qWB}b=8 zOXuPtJ_i4SU$m)~4Wme}DG8KHUy88S=??~{2I{gz&voXYV7fM+D0d@^&7=$y;s$gv z5Ksy%y;zUss83P;G27dI+&(DiIPpF-$Pa#6g|nb}>JQhebZVRUG5B=*Xeo`;l@+E5 z$Q*X0u+~r#hRYV~K0@uYYjSr|$+Xy@^j;4 zpeP^^eo%VRv^v91#V4Yy`H0B&i3)OJoowtmF z%=J)kx7>6r5$!tLR(4W%%6LT?$S?j?ojX3rTUaKAL#MxJKaQM3H)Li4T})2TN-rTdJzrI3#vaKi?_$V=^Gy5uR8xYOPZ(Z!VizV?RLArkP&)W53>k? zZ!L@-;}laV<>?IlsEG({v#u>48+yT-+3!zHo%|Y^>>xW*g7_5Wa|MH#;&S?3daOB1 zX!Bd_chuLyV>2D^?)#w(L4h6Usc_y);P0}l{8O)Doy%?Np9!BYLh4Ib_^NCqaVGv3 f-~a!p&^M?le#$ynSK91f}S#6 literal 0 HcmV?d00001 diff --git a/VoiceInk/Views/Common/AppIconView.swift b/VoiceInk/Views/Common/AppIconView.swift new file mode 100644 index 0000000..9312965 --- /dev/null +++ b/VoiceInk/Views/Common/AppIconView.swift @@ -0,0 +1,25 @@ +import SwiftUI + +struct AppIconView: View { + var body: some View { + ZStack { + Circle() + .fill(Color.accentColor.opacity(0.15)) + .frame(width: 160, height: 160) + .blur(radius: 30) + + if let image = NSImage(named: "AppIcon") { + Image(nsImage: image) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: 120, height: 120) + .cornerRadius(30) + .overlay( + RoundedRectangle(cornerRadius: 30) + .stroke(.white.opacity(0.2), lineWidth: 1) + ) + .shadow(color: .accentColor.opacity(0.3), radius: 20) + } + } + } +} \ No newline at end of file diff --git a/VoiceInk/Views/LicenseManagementView.swift b/VoiceInk/Views/LicenseManagementView.swift index 17aeb31..912ff40 100644 --- a/VoiceInk/Views/LicenseManagementView.swift +++ b/VoiceInk/Views/LicenseManagementView.swift @@ -28,14 +28,7 @@ struct LicenseManagementView: View { private var heroSection: some View { VStack(spacing: 24) { // App Icon - if let appIcon = NSImage(named: "AppIcon") { - Image(nsImage: appIcon) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: 96, height: 96) - .cornerRadius(24) - .shadow(color: .black.opacity(0.1), radius: 20, x: 0, y: 10) - } + AppIconView() // Title Section VStack(spacing: 16) { diff --git a/VoiceInk/Views/Metrics/AppIconView.swift b/VoiceInk/Views/Metrics/AppIconView.swift deleted file mode 100644 index 484ea2c..0000000 --- a/VoiceInk/Views/Metrics/AppIconView.swift +++ /dev/null @@ -1,30 +0,0 @@ -import SwiftUI - -struct AppIconView: View { - var size: CGFloat - var cornerRadius: CGFloat - - var body: some View { - Group { - if let appIcon = NSImage(named: NSImage.applicationIconName) { - Image(nsImage: appIcon) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: size, height: size) - .clipShape(RoundedRectangle(cornerRadius: cornerRadius)) - .overlay( - RoundedRectangle(cornerRadius: cornerRadius) - .stroke(.linearGradient( - colors: [ - Color.white.opacity(0.5), - Color.white.opacity(0.1) - ], - startPoint: .topLeading, - endPoint: .bottomTrailing - ), lineWidth: 1) - ) - .shadow(color: Color.black.opacity(0.1), radius: 10, y: 5) - } - } - } -} \ No newline at end of file diff --git a/VoiceInk/Views/Metrics/MetricsSetupView.swift b/VoiceInk/Views/Metrics/MetricsSetupView.swift index 715b20d..4eed1bd 100644 --- a/VoiceInk/Views/Metrics/MetricsSetupView.swift +++ b/VoiceInk/Views/Metrics/MetricsSetupView.swift @@ -12,7 +12,7 @@ struct MetricsSetupView: View { VStack(spacing: geometry.size.height * 0.05) { // Header VStack(spacing: geometry.size.height * 0.02) { - AppIconView(size: min(90, geometry.size.width * 0.15), cornerRadius: 22) + AppIconView() VStack(spacing: geometry.size.height * 0.01) { Text("Welcome to VoiceInk") diff --git a/VoiceInk/Views/RecordView.swift b/VoiceInk/Views/RecordView.swift index a4a7412..3a9c106 100644 --- a/VoiceInk/Views/RecordView.swift +++ b/VoiceInk/Views/RecordView.swift @@ -29,33 +29,11 @@ struct RecordView: View { private var heroSection: some View { VStack(spacing: 20) { - appIconView + AppIconView() titleSection } } - private var appIconView: some View { - ZStack { - Circle() - .fill(Color.accentColor.opacity(0.15)) - .frame(width: 160, height: 160) - .blur(radius: 30) - - if let image = NSImage(named: "AppIcon") { - Image(nsImage: image) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: 120, height: 120) - .cornerRadius(30) - .overlay( - RoundedRectangle(cornerRadius: 30) - .stroke(.white.opacity(0.2), lineWidth: 1) - ) - .shadow(color: .accentColor.opacity(0.3), radius: 20) - } - } - } - private var titleSection: some View { VStack(spacing: 8) { Text("VOICEINK") diff --git a/VoiceInk/VoiceInk.swift b/VoiceInk/VoiceInk.swift index 8028332..7b9a206 100644 --- a/VoiceInk/VoiceInk.swift +++ b/VoiceInk/VoiceInk.swift @@ -145,7 +145,7 @@ struct VoiceInkApp: App { $0.size.height = 22 $0.size.width = 22 / ratio return $0 - }(NSImage(named: "menuBarIcon")!) + }(NSImage(named: "AppIcon")!) Image(nsImage: image) }