diff --git a/iosApp/Flare.xcodeproj/project.pbxproj b/iosApp/Flare.xcodeproj/project.pbxproj index 6b4de5dc8..a2787b714 100644 --- a/iosApp/Flare.xcodeproj/project.pbxproj +++ b/iosApp/Flare.xcodeproj/project.pbxproj @@ -440,7 +440,7 @@ repositoryURL = "https://github.com/onevcat/Kingfisher.git"; requirement = { kind = exactVersion; - version = 8.6.1; + version = 8.6.2; }; }; 0672EE102E8689C70092AD1F /* XCRemoteSwiftPackageReference "Drops" */ = { diff --git a/iosApp/flare/Localizable.xcstrings b/iosApp/flare/Localizable.xcstrings index 5f0a27b19..6ba1105e5 100644 --- a/iosApp/flare/Localizable.xcstrings +++ b/iosApp/flare/Localizable.xcstrings @@ -628,6 +628,16 @@ } } }, + "about_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Learn more about Flare" + } + } + } + }, "about_title" : { "localizations" : { "af" : { @@ -954,6 +964,16 @@ } } }, + "account_management_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manage your accounts" + } + } + } + }, "account_management_title" : { "localizations" : { "ar" : { @@ -1802,6 +1822,16 @@ } } }, + "ai_config_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configure AI settings" + } + } + } + }, "ai_config_options_section_header" : { "localizations" : { "ar" : { @@ -5670,6 +5700,16 @@ } } }, + "appearance_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Customize the look and feel of Flare" + } + } + } + }, "appearance_expand_media_size" : { "localizations" : { "af" : { @@ -27942,6 +27982,16 @@ } } }, + "local_filter_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Local filter settings for timeline" + } + } + } + }, "local_filter_edit" : { "localizations" : { "af" : { @@ -29304,6 +29354,16 @@ } } }, + "local_history_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "View or search your browsing history" + } + } + } + }, "local_history_search_prompt" : { "localizations" : { "ar" : { @@ -79469,6 +79529,16 @@ } } }, + "storage_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manage Flare's storage" + } + } + } + }, "storage_title" : { "localizations" : { "af" : { @@ -79973,6 +80043,26 @@ } } }, + "system_settings_description" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update Flare’s permission or language" + } + } + } + }, + "system_settings_title" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "System settings" + } + } + } + }, "tab_settings_delete" : { "localizations" : { "af" : { diff --git a/iosApp/flare/UI/Screen/SettingsScreen.swift b/iosApp/flare/UI/Screen/SettingsScreen.swift index 20e6c975d..6d292652d 100644 --- a/iosApp/flare/UI/Screen/SettingsScreen.swift +++ b/iosApp/flare/UI/Screen/SettingsScreen.swift @@ -7,11 +7,26 @@ struct SettingsScreen: View { var body: some View { List { StateView(state: presenter.state.user) { user in - NavigationLink(value: Route.accountManagement) { - HStack { - AvatarView(data: user.avatar) - .frame(width: 44, height: 44) - Text("account_management_title") + if #available(iOS 26.0, *) { + NavigationLink(value: Route.accountManagement) { + Label { + Text("account_management_title") + Text("account_management_description") + } icon: { + AvatarView(data: user.avatar) + .frame(width: 44, height: 44) + } + .labelReservedIconWidth(44) + } + } else { + NavigationLink(value: Route.accountManagement) { + Label { + Text("account_management_title") + Text("account_management_description") + } icon: { + AvatarView(data: user.avatar) + .frame(width: 20, height: 20) + } } } } @@ -20,10 +35,22 @@ struct SettingsScreen: View { NavigationLink(value: Route.appearance) { Label { Text("appearance_title") + Text("appearance_description") } icon: { Image("fa-palette") } } + if let url = URL(string: UIApplication.openSettingsURLString) { + Link(destination: url) { + Label { + Text("system_settings_title") + Text("system_settings_description") + } icon: { + Image(.faGear) + } + } + } + // StateView(state: presenter.state.user) { _ in // NavigationLink(value: Route.moreMenuCustomize) { // Label { @@ -40,6 +67,7 @@ struct SettingsScreen: View { NavigationLink(value: Route.localFilter) { Label { Text("local_filter_title") + Text("local_filter_description") } icon: { Image("fa-filter") } @@ -47,6 +75,7 @@ struct SettingsScreen: View { NavigationLink(value: Route.localHostory) { Label { Text("local_history_title") + Text("local_history_description") } icon: { Image("fa-clock-rotate-left") } @@ -54,6 +83,7 @@ struct SettingsScreen: View { NavigationLink(value: Route.storage) { Label { Text("storage_title") + Text("storage_description") } icon: { Image("fa-database") } @@ -65,6 +95,7 @@ struct SettingsScreen: View { NavigationLink(value: Route.aiConfig) { Label { Text("ai_config_title") + Text("ai_config_description") } icon: { Image("fa-robot") } @@ -76,6 +107,7 @@ struct SettingsScreen: View { NavigationLink(value: Route.about) { Label { Text("about_title") + Text("about_description") } icon: { Image("fa-circle-info") }