From 9ede4b9b1f6c63c231af0c3ed1d6a5b5ab260b7e Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Sun, 2 Jan 2022 20:34:50 +0100 Subject: [PATCH] Add option to show/hide username in account picker button --- Shared/Defaults.swift | 3 +++ Shared/Navigation/AccountsMenuView.swift | 22 +++++++++++++++------- Shared/Settings/BrowsingSettings.swift | 6 ++++++ 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Shared/Defaults.swift b/Shared/Defaults.swift index 83a73565..75e922a9 100644 --- a/Shared/Defaults.swift +++ b/Shared/Defaults.swift @@ -31,6 +31,9 @@ extension Defaults.Keys { .init(section: .searchQuery("Apple Pie Recipes", "", "", "")) ]) + #if !os(tvOS) + static let accountPickerDisplaysUsername = Key("accountPickerDisplaysUsername", default: false) + #endif static let channelOnThumbnail = Key("channelOnThumbnail", default: true) static let timeOnThumbnail = Key("timeOnThumbnail", default: true) diff --git a/Shared/Navigation/AccountsMenuView.swift b/Shared/Navigation/AccountsMenuView.swift index d7ba9986..e5baaf60 100644 --- a/Shared/Navigation/AccountsMenuView.swift +++ b/Shared/Navigation/AccountsMenuView.swift @@ -6,21 +6,29 @@ struct AccountsMenuView: View { @Default(.accounts) private var accounts @Default(.instances) private var instances + @Default(.accountPickerDisplaysUsername) private var accountPickerDisplaysUsername var body: some View { Menu { ForEach(allAccounts, id: \.id) { account in - Button(accountButtonTitle(account: account)) { + Button { model.setCurrent(account) + } label: { + HStack { + Text(accountButtonTitle(account: account)) + + Spacer() + + if model.current == account { + Image(systemName: "checkmark") + } + } } } } label: { - if #available(iOS 15.0, macOS 12.0, *) { - label - .labelStyle(.titleAndIcon) - } else { - HStack { - Image(systemName: "person.crop.circle") + HStack { + Image(systemName: "person.crop.circle") + if accountPickerDisplaysUsername { label .labelStyle(.titleOnly) } diff --git a/Shared/Settings/BrowsingSettings.swift b/Shared/Settings/BrowsingSettings.swift index e8407bab..11fc3898 100644 --- a/Shared/Settings/BrowsingSettings.swift +++ b/Shared/Settings/BrowsingSettings.swift @@ -2,6 +2,9 @@ import Defaults import SwiftUI struct BrowsingSettings: View { + #if !os(tvOS) + @Default(.accountPickerDisplaysUsername) private var accountPickerDisplaysUsername + #endif @Default(.channelOnThumbnail) private var channelOnThumbnail @Default(.timeOnThumbnail) private var timeOnThumbnail @Default(.visibleSections) private var visibleSections @@ -9,6 +12,9 @@ struct BrowsingSettings: View { var body: some View { Group { Section(header: SettingsHeader(text: "Browsing")) { + #if !os(tvOS) + Toggle("Show username in the account picker button", isOn: $accountPickerDisplaysUsername) + #endif Toggle("Show channel name on thumbnail", isOn: $channelOnThumbnail) Toggle("Show video length on thumbnail", isOn: $timeOnThumbnail) }