diff --git a/LeCountdown.xcodeproj/project.pbxproj b/LeCountdown.xcodeproj/project.pbxproj index 8c18f0c..afaad6f 100644 --- a/LeCountdown.xcodeproj/project.pbxproj +++ b/LeCountdown.xcodeproj/project.pbxproj @@ -1727,7 +1727,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.17; + MARKETING_VERSION = 1.0.18; PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -1764,7 +1764,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.17; + MARKETING_VERSION = 1.0.18; PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown; PRODUCT_NAME = "$(TARGET_NAME)"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; @@ -1870,7 +1870,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.17; + MARKETING_VERSION = 1.0.18; PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1898,7 +1898,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.17; + MARKETING_VERSION = 1.0.18; PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1925,7 +1925,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.17; + MARKETING_VERSION = 1.0.18; PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchIntents; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -1952,7 +1952,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.17; + MARKETING_VERSION = 1.0.18; PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchIntents; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; diff --git a/LeCountdown/Utils/URLs.swift b/LeCountdown/Utils/URLs.swift index 3610c2b..2e8bf7e 100644 --- a/LeCountdown/Utils/URLs.swift +++ b/LeCountdown/Utils/URLs.swift @@ -9,4 +9,5 @@ import Foundation enum URLs: String { case mail = "hello@getenchanted.app" + case appLink = "https://apps.apple.com/app/enchant-amazing-timers/id6446093767" } diff --git a/LeCountdown/Views/ContentView.swift b/LeCountdown/Views/ContentView.swift index a13a9ba..e0fc612 100644 --- a/LeCountdown/Views/ContentView.swift +++ b/LeCountdown/Views/ContentView.swift @@ -189,7 +189,7 @@ struct MainToolbarView: ToolbarContent { NavigationStack { SettingsView() .navigationBarTitleDisplayMode(.inline) - }.presentationDetents([.height(290.0)]) + }.presentationDetents([.height(360.0)]) }) } Button { diff --git a/LeCountdown/Views/SettingsView.swift b/LeCountdown/Views/SettingsView.swift index ac22d96..3bec49f 100644 --- a/LeCountdown/Views/SettingsView.swift +++ b/LeCountdown/Views/SettingsView.swift @@ -51,13 +51,24 @@ struct SettingsView: View { } else { Button { UIPasteboard.general.string = URLs.mail.rawValue - self.emailCopied = true + withAnimation { + self.emailCopied = true + } } label: { LabeledContent("Contact us", value: "tap to copy email") } } } + ShareLink(item: URLs.appLink.rawValue) { + Label("Share app", systemImage: "square.and.arrow.up") + } + Button { + self._requestReview() + } label: { + Label("Write a review!", systemImage: "scribble") + } + Button { withAnimation { self.showLogsSheet.toggle() @@ -78,6 +89,12 @@ struct SettingsView: View { } + fileprivate func _requestReview() { + guard let writeReviewURL = URL(string: "https://apps.apple.com/app/id6446093767?action=write-review") + else { return } + UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil) + } + } struct SettingsView_Previews: PreviewProvider { diff --git a/LeCountdown/fr.lproj/Localizable.strings b/LeCountdown/fr.lproj/Localizable.strings index 5b1f9f9..8c994b1 100644 --- a/LeCountdown/fr.lproj/Localizable.strings +++ b/LeCountdown/fr.lproj/Localizable.strings @@ -287,3 +287,7 @@ "Create your own timer" = "Créer un minuteur"; "Create your own stopwatch" = "Créer un chronomètre"; "Create your first timer or stopwatch!" = "Créer votre premier minuteur ou chronomètre !"; +"Share app" = "Partager l'app"; +"Copied" = "Copié"; +"tap to copy email" = "Tapez pour copier l'email"; +"Write a review!" = "Écrivez un avis !";