forked from shadowfacts/Tusker
Apply non-pure-black dark mode to preferences screen
This commit is contained in:
parent
512eec09a8
commit
471d3459a6
|
@ -42,6 +42,7 @@ struct AboutView: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
|
||||
Section {
|
||||
Link("Website", destination: URL(string: "https://vaccor.space/tusker")!)
|
||||
|
@ -67,7 +68,10 @@ struct AboutView: View {
|
|||
Link("Source Code", destination: URL(string: "https://git.shadowfacts.net/shadowfacts/Tusker")!)
|
||||
Link("Issue Tracker", destination: URL(string: "https://git.shadowfacts.net/shadowfacts/Tusker/issues")!)
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.sheet(isPresented: $isShowingMailSheet) {
|
||||
MailSheet(logData: logData)
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ struct AcknowledgementsView: View {
|
|||
Text(text)
|
||||
.padding(.horizontal, 16)
|
||||
}
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationTitle("Acknowledgements")
|
||||
}
|
||||
|
||||
|
|
|
@ -23,7 +23,8 @@ struct AdvancedPrefsView : View {
|
|||
errorReportingSection
|
||||
cachingSection
|
||||
}
|
||||
.listStyle(InsetGroupedListStyle())
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationBarTitle(Text("Advanced"))
|
||||
}
|
||||
|
||||
|
@ -50,6 +51,7 @@ struct AdvancedPrefsView : View {
|
|||
// see FB6838291
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
var cloudKitSection: some View {
|
||||
|
@ -74,7 +76,9 @@ struct AdvancedPrefsView : View {
|
|||
Text(String(describing: cloudKitStatus!))
|
||||
}
|
||||
}
|
||||
}.task {
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
.task {
|
||||
CKContainer.default().accountStatus { status, error in
|
||||
if let error {
|
||||
Logging.general.error("Unable to get CloudKit status: \(String(describing: error))")
|
||||
|
@ -99,6 +103,7 @@ struct AdvancedPrefsView : View {
|
|||
.lineLimit(nil)
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
var cachingSection: some View {
|
||||
|
@ -120,7 +125,9 @@ struct AdvancedPrefsView : View {
|
|||
s += AttributedString("\nMastodon cache size: \(ByteCountFormatter().string(fromByteCount: mastodonCacheSize))")
|
||||
}
|
||||
return Text(s)
|
||||
}.task {
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
.task {
|
||||
imageCacheSize = [
|
||||
ImageCache.avatars,
|
||||
.headers,
|
||||
|
|
|
@ -33,7 +33,8 @@ struct AppearancePrefsView : View {
|
|||
accountsSection
|
||||
postsSection
|
||||
}
|
||||
.listStyle(InsetGroupedListStyle())
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationBarTitle(Text("Appearance"))
|
||||
}
|
||||
|
||||
|
@ -65,6 +66,7 @@ struct AppearancePrefsView : View {
|
|||
.onReceive(appearanceChangePublisher) { _ in
|
||||
NotificationCenter.default.post(name: .themePreferenceChanged, object: nil)
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var accountsSection: some View {
|
||||
|
@ -76,6 +78,7 @@ struct AppearancePrefsView : View {
|
|||
Text("Hide Custom Emoji in Usernames")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var postsSection: some View {
|
||||
|
@ -103,6 +106,7 @@ struct AppearancePrefsView : View {
|
|||
.navigationTitle("Trailing Swipe Actions")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,8 @@ struct BehaviorPrefsView: View {
|
|||
linksSection
|
||||
contentWarningsSection
|
||||
}
|
||||
.listStyle(InsetGroupedListStyle())
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationBarTitle(Text("Behavior"))
|
||||
}
|
||||
|
||||
|
@ -28,6 +29,7 @@ struct BehaviorPrefsView: View {
|
|||
Text("Require Confirmation Before Reblogging")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var timelineSection: some View {
|
||||
|
@ -38,6 +40,7 @@ struct BehaviorPrefsView: View {
|
|||
} header: {
|
||||
Text("Timeline")
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var linksSection: some View {
|
||||
|
@ -52,6 +55,7 @@ struct BehaviorPrefsView: View {
|
|||
Text("Always Use Reader Mode in In-App Safari")
|
||||
}.disabled(!preferences.useInAppSafari)
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var contentWarningsSection: some View {
|
||||
|
@ -68,6 +72,7 @@ struct BehaviorPrefsView: View {
|
|||
Text(preferences.expandAllContentWarnings ? "Collapse Posts with Keywords in CWs" : "Expand Posts with Keywords in CWs")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,8 @@ struct ComposingPrefsView: View {
|
|||
replyingSection
|
||||
writingSection
|
||||
}
|
||||
.listStyle(InsetGroupedListStyle())
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationBarTitle("Composing")
|
||||
}
|
||||
|
||||
|
@ -51,6 +52,7 @@ struct ComposingPrefsView: View {
|
|||
} footer: {
|
||||
Text("When starting a reply, Tusker will use your preferred visibility or the visibility of the post to which you're replying, whichever is narrower.")
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
var composingSection: some View {
|
||||
|
@ -62,6 +64,7 @@ struct ComposingPrefsView: View {
|
|||
Text("Require Attachment Descriptions")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
var replyingSection: some View {
|
||||
|
@ -75,6 +78,7 @@ struct ComposingPrefsView: View {
|
|||
Text("Mention Reblogger")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
var writingSection: some View {
|
||||
|
@ -83,6 +87,7 @@ struct ComposingPrefsView: View {
|
|||
Text("Show @ and # on Keyboard")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,7 +15,8 @@ struct MediaPrefsView: View {
|
|||
List {
|
||||
viewingSection
|
||||
}
|
||||
.listStyle(InsetGroupedListStyle())
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationBarTitle("Media")
|
||||
}
|
||||
|
||||
|
@ -42,6 +43,7 @@ struct MediaPrefsView: View {
|
|||
Text("Show Uncropped Media Inline")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,9 +37,11 @@ struct OppositeCollapseKeywordsView: View {
|
|||
|
||||
FocusableTextField(placeholder: "Add Keyword", text: $valueToAdd, becomeFirstResponder: $makeAddFieldFirstResponder, onCommit: self.addKeyword)
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
.animation(.default, value: keywords.map(\.id))
|
||||
.listStyle(GroupedListStyle())
|
||||
.listStyle(.grouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
}
|
||||
.onAppear(perform: updateAppearance)
|
||||
.navigationBarTitle(preferences.expandAllContentWarnings ? "Collapse Post CW Keywords" : "Expand Post CW Keywords")
|
||||
|
|
|
@ -24,8 +24,14 @@ struct PreferencesView: View {
|
|||
aboutSection
|
||||
}
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationBarTitle("Preferences")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
.onAppear {
|
||||
if #unavailable(iOS 16.0) {
|
||||
UITableView.appearance(whenContainedInInstancesOf: [PreferencesNavigationController.self]).backgroundColor = .appGroupedBackground
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var accountsSection: some View {
|
||||
|
@ -84,6 +90,7 @@ struct PreferencesView: View {
|
|||
} header: {
|
||||
Text("Accounts")
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var preferencesSection: some View {
|
||||
|
@ -107,6 +114,7 @@ struct PreferencesView: View {
|
|||
Text("Advanced")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var aboutSection: some View {
|
||||
|
@ -121,6 +129,7 @@ struct PreferencesView: View {
|
|||
AcknowledgementsView()
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
func logoutPressed() {
|
||||
|
@ -128,6 +137,20 @@ struct PreferencesView: View {
|
|||
}
|
||||
}
|
||||
|
||||
extension View {
|
||||
@available(iOS, obsoleted: 16.0)
|
||||
@ViewBuilder
|
||||
func appGroupedScrollBackgroundIfAvailable() -> some View {
|
||||
if #available(iOS 16.0, *) {
|
||||
self
|
||||
.scrollContentBackground(.hidden)
|
||||
.background(Color.appGroupedBackground)
|
||||
} else {
|
||||
self
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//#if DEBUG
|
||||
//struct PreferencesView_Previews : PreviewProvider {
|
||||
// static var previews: some View {
|
||||
|
|
|
@ -42,6 +42,7 @@ class SwipeActionsPrefsViewController: UIViewController, UICollectionViewDelegat
|
|||
override func loadView() {
|
||||
let layout = UICollectionViewCompositionalLayout { [unowned self] sectionIndex, environment in
|
||||
var config = UICollectionLayoutListConfiguration(appearance: .insetGrouped)
|
||||
config.backgroundColor = .appGroupedBackground
|
||||
if dataSource.sectionIdentifier(for: sectionIndex) == .selected {
|
||||
config.headerMode = .supplementary
|
||||
}
|
||||
|
@ -59,6 +60,15 @@ class SwipeActionsPrefsViewController: UIViewController, UICollectionViewDelegat
|
|||
config.image = UIImage(systemName: item.systemImageName)
|
||||
cell.contentConfiguration = config
|
||||
cell.accessories = [.reorder(displayed: .always)]
|
||||
cell.configurationUpdateHandler = { cell, state in
|
||||
var config = UIBackgroundConfiguration.listGroupedCell().updated(for: state)
|
||||
if state.isHighlighted || state.isSelected {
|
||||
config.backgroundColor = .appSelectedCellBackground
|
||||
} else {
|
||||
config.backgroundColor = .appGroupedCellBackground
|
||||
}
|
||||
cell.backgroundConfiguration = config
|
||||
}
|
||||
}
|
||||
let dataSource = UICollectionViewDiffableDataSource<Section, Item>(collectionView: collectionView) { collectionView, indexPath, itemIdentifier in
|
||||
return collectionView.dequeueConfiguredReusableCell(using: listCell, for: indexPath, item: itemIdentifier)
|
||||
|
|
|
@ -26,8 +26,12 @@ struct TipJarView: View {
|
|||
@StateObject private var observer = UbiquitousKeyValueStoreObserver()
|
||||
|
||||
var body: some View {
|
||||
productsView
|
||||
.overlay {
|
||||
ZStack {
|
||||
Color.appGroupedBackground
|
||||
.edgesIgnoringSafeArea(.all)
|
||||
|
||||
productsView
|
||||
|
||||
if showConfetti {
|
||||
ConfettiView()
|
||||
.transition(.opacity.animation(.default))
|
||||
|
|
|
@ -19,7 +19,8 @@ struct WellnessPrefsView: View {
|
|||
disableInfiniteScrolling
|
||||
hideDiscover
|
||||
}
|
||||
.listStyle(InsetGroupedListStyle())
|
||||
.listStyle(.insetGrouped)
|
||||
.appGroupedScrollBackgroundIfAvailable()
|
||||
.navigationBarTitle(Text("Digital Wellness"))
|
||||
}
|
||||
|
||||
|
@ -29,6 +30,7 @@ struct WellnessPrefsView: View {
|
|||
Text("Favorite and Reblog Counts in Conversations")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var notificationsMode: some View {
|
||||
|
@ -39,6 +41,7 @@ struct WellnessPrefsView: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var grayscaleImages: some View {
|
||||
|
@ -47,6 +50,7 @@ struct WellnessPrefsView: View {
|
|||
Text("Grayscale Images")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var disableInfiniteScrolling: some View {
|
||||
|
@ -55,6 +59,7 @@ struct WellnessPrefsView: View {
|
|||
Text("Disable Infinite Scrolling")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
|
||||
private var hideDiscover: some View {
|
||||
|
@ -63,6 +68,7 @@ struct WellnessPrefsView: View {
|
|||
Text("Hide Discover Section")
|
||||
}
|
||||
}
|
||||
.listRowBackground(Color.appGroupedCellBackground)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue