From a3eb791d533040189bdc9f856353309e912e8b7c Mon Sep 17 00:00:00 2001 From: Destu Cikal Date: Mon, 1 Dec 2025 11:24:07 +0700 Subject: [PATCH 1/2] fix: delete heart and add disclaimer --- .../peryWinkle.colorset/Contents.json | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Tiny/Resources/Assets.xcassets/peryWinkle.colorset/Contents.json diff --git a/Tiny/Resources/Assets.xcassets/peryWinkle.colorset/Contents.json b/Tiny/Resources/Assets.xcassets/peryWinkle.colorset/Contents.json new file mode 100644 index 0000000..b050381 --- /dev/null +++ b/Tiny/Resources/Assets.xcassets/peryWinkle.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xCC", + "red" : "0xCC" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xCC", + "red" : "0xCC" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} From 80de572e80bc9ae2a1812cd33456544297177104 Mon Sep 17 00:00:00 2001 From: Destu Cikal Date: Mon, 1 Dec 2025 11:30:11 +0700 Subject: [PATCH 2/2] fix: coachmark position in orbLiveListenView --- .../LiveListen/Views/OrbLiveListenView.swift | 2 +- .../Onboarding/Views/OnboardingView.swift | 45 +++++++++++-------- Tiny/Resources/Localizable.xcstrings | 4 ++ 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/Tiny/Features/LiveListen/Views/OrbLiveListenView.swift b/Tiny/Features/LiveListen/Views/OrbLiveListenView.swift index 749a354..6c95853 100644 --- a/Tiny/Features/LiveListen/Views/OrbLiveListenView.swift +++ b/Tiny/Features/LiveListen/Views/OrbLiveListenView.swift @@ -329,7 +329,7 @@ struct OrbLiveListenView: View { if !viewModel.isListening && !viewModel.isPlaybackMode { GeometryReader { proxy in CoachMarkView() - .position(x: proxy.size.width / 2, y: proxy.size.height / 2 + 250) + .position(x: proxy.size.width / 2, y: proxy.size.height / 2 + 230) } .transition(.opacity) } diff --git a/Tiny/Features/Onboarding/Views/OnboardingView.swift b/Tiny/Features/Onboarding/Views/OnboardingView.swift index 1d1c4d0..0fd9b33 100644 --- a/Tiny/Features/Onboarding/Views/OnboardingView.swift +++ b/Tiny/Features/Onboarding/Views/OnboardingView.swift @@ -103,25 +103,25 @@ struct OnBoardingView: View { // 4. Calculate the required Vertical Offset for the path's position (375): // This value places the heart's center at the path's start Y coordinate (375). - let yOffsetCorrection = 375 - (heartSize / 2) - - Image("yellowHeart") - .resizable() - .frame(width: heartSize, height: heartSize) - .modifier( - FollowEffect( - pct: progress, - path: LinePath().path(in: pathRect), - rotate: false - ) - ) - // 🔥 The key is to shift the view so the initial center of the heart - // is placed at the path's visual start point (which is pathStartXRelative - // horizontally, and 375 vertically in the ZStack). - .offset( - x: xOffsetCorrection, // Uses the actual path start X point - y: yOffsetCorrection // Uses the fixed Y offset (375) - ) +// let yOffsetCorrection = 375 - (heartSize / 2) +// +// Image("yellowHeart") +// .resizable() +// .frame(width: heartSize, height: heartSize) +// .modifier( +// FollowEffect( +// pct: progress, +// path: LinePath().path(in: pathRect), +// rotate: false +// ) +// ) +// // 🔥 The key is to shift the view so the initial center of the heart +// // is placed at the path's visual start point (which is pathStartXRelative +// // horizontally, and 375 vertically in the ZStack). +// .offset( +// x: xOffsetCorrection, // Uses the actual path start X point +// y: yOffsetCorrection // Uses the fixed Y offset (375) +// ) } VStack(spacing: 0) { @@ -238,6 +238,13 @@ private struct OnboardingPage1: View { .fontWeight(.regular) .multilineTextAlignment(.center) .padding(.horizontal, 30) + + Text("Tiny isn’t a medical app") + .font(.caption) + .foregroundStyle(.peryWinkle) + .fontWeight(.regular) + .italic() + .padding(.horizontal, 30) } } } diff --git a/Tiny/Resources/Localizable.xcstrings b/Tiny/Resources/Localizable.xcstrings index 8f5024d..1972be0 100644 --- a/Tiny/Resources/Localizable.xcstrings +++ b/Tiny/Resources/Localizable.xcstrings @@ -724,6 +724,10 @@ "comment" : "A title displayed at the top of the page.", "isCommentAutoGenerated" : true }, + "Tiny isn’t a medical app" : { + "comment" : "A footnote explaining that Tiny is not a medical app.", + "isCommentAutoGenerated" : true + }, "Tiny will need access to your microphone so you can hear every tiny beat clearly." : { "comment" : "A description under the title of the second onboarding page.", "isCommentAutoGenerated" : true