Compare commits

..

No commits in common. "471d3459a6293d241525b53a80d41d9dbce39173" and "20c4c4bb2fcb7b2d37a451b7e588343a57a0bfe2" have entirely different histories.

13 changed files with 100 additions and 182 deletions

View File

@ -42,7 +42,6 @@ struct AboutView: View {
}
}
}
.listRowBackground(Color.appGroupedCellBackground)
Section {
Link("Website", destination: URL(string: "https://vaccor.space/tusker")!)
@ -68,10 +67,7 @@ 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)
}

View File

@ -14,7 +14,6 @@ struct AcknowledgementsView: View {
Text(text)
.padding(.horizontal, 16)
}
.appGroupedScrollBackgroundIfAvailable()
.navigationTitle("Acknowledgements")
}

View File

@ -23,8 +23,7 @@ struct AdvancedPrefsView : View {
errorReportingSection
cachingSection
}
.listStyle(.insetGrouped)
.appGroupedScrollBackgroundIfAvailable()
.listStyle(InsetGroupedListStyle())
.navigationBarTitle(Text("Advanced"))
}
@ -51,7 +50,6 @@ struct AdvancedPrefsView : View {
// see FB6838291
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
var cloudKitSection: some View {
@ -76,9 +74,7 @@ struct AdvancedPrefsView : View {
Text(String(describing: cloudKitStatus!))
}
}
}
.listRowBackground(Color.appGroupedCellBackground)
.task {
}.task {
CKContainer.default().accountStatus { status, error in
if let error {
Logging.general.error("Unable to get CloudKit status: \(String(describing: error))")
@ -103,7 +99,6 @@ struct AdvancedPrefsView : View {
.lineLimit(nil)
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
var cachingSection: some View {
@ -125,9 +120,7 @@ struct AdvancedPrefsView : View {
s += AttributedString("\nMastodon cache size: \(ByteCountFormatter().string(fromByteCount: mastodonCacheSize))")
}
return Text(s)
}
.listRowBackground(Color.appGroupedCellBackground)
.task {
}.task {
imageCacheSize = [
ImageCache.avatars,
.headers,

View File

@ -33,8 +33,7 @@ struct AppearancePrefsView : View {
accountsSection
postsSection
}
.listStyle(.insetGrouped)
.appGroupedScrollBackgroundIfAvailable()
.listStyle(InsetGroupedListStyle())
.navigationBarTitle(Text("Appearance"))
}
@ -66,7 +65,6 @@ struct AppearancePrefsView : View {
.onReceive(appearanceChangePublisher) { _ in
NotificationCenter.default.post(name: .themePreferenceChanged, object: nil)
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var accountsSection: some View {
@ -78,7 +76,6 @@ struct AppearancePrefsView : View {
Text("Hide Custom Emoji in Usernames")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var postsSection: some View {
@ -106,7 +103,6 @@ struct AppearancePrefsView : View {
.navigationTitle("Trailing Swipe Actions")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
}

View File

@ -18,8 +18,7 @@ struct BehaviorPrefsView: View {
linksSection
contentWarningsSection
}
.listStyle(.insetGrouped)
.appGroupedScrollBackgroundIfAvailable()
.listStyle(InsetGroupedListStyle())
.navigationBarTitle(Text("Behavior"))
}
@ -29,7 +28,6 @@ struct BehaviorPrefsView: View {
Text("Require Confirmation Before Reblogging")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var timelineSection: some View {
@ -40,7 +38,6 @@ struct BehaviorPrefsView: View {
} header: {
Text("Timeline")
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var linksSection: some View {
@ -55,7 +52,6 @@ struct BehaviorPrefsView: View {
Text("Always Use Reader Mode in In-App Safari")
}.disabled(!preferences.useInAppSafari)
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var contentWarningsSection: some View {
@ -72,7 +68,6 @@ struct BehaviorPrefsView: View {
Text(preferences.expandAllContentWarnings ? "Collapse Posts with Keywords in CWs" : "Expand Posts with Keywords in CWs")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
}

View File

@ -19,8 +19,7 @@ struct ComposingPrefsView: View {
replyingSection
writingSection
}
.listStyle(.insetGrouped)
.appGroupedScrollBackgroundIfAvailable()
.listStyle(InsetGroupedListStyle())
.navigationBarTitle("Composing")
}
@ -52,7 +51,6 @@ 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 {
@ -64,7 +62,6 @@ struct ComposingPrefsView: View {
Text("Require Attachment Descriptions")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
var replyingSection: some View {
@ -78,7 +75,6 @@ struct ComposingPrefsView: View {
Text("Mention Reblogger")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
var writingSection: some View {
@ -87,7 +83,6 @@ struct ComposingPrefsView: View {
Text("Show @ and # on Keyboard")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
}

View File

@ -15,8 +15,7 @@ struct MediaPrefsView: View {
List {
viewingSection
}
.listStyle(.insetGrouped)
.appGroupedScrollBackgroundIfAvailable()
.listStyle(InsetGroupedListStyle())
.navigationBarTitle("Media")
}
@ -43,7 +42,6 @@ struct MediaPrefsView: View {
Text("Show Uncropped Media Inline")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
}

View File

@ -37,11 +37,9 @@ struct OppositeCollapseKeywordsView: View {
FocusableTextField(placeholder: "Add Keyword", text: $valueToAdd, becomeFirstResponder: $makeAddFieldFirstResponder, onCommit: self.addKeyword)
}
.listRowBackground(Color.appGroupedCellBackground)
}
.animation(.default, value: keywords.map(\.id))
.listStyle(.grouped)
.appGroupedScrollBackgroundIfAvailable()
.listStyle(GroupedListStyle())
}
.onAppear(perform: updateAppearance)
.navigationBarTitle(preferences.expandAllContentWarnings ? "Collapse Post CW Keywords" : "Expand Post CW Keywords")

View File

@ -6,11 +6,11 @@
//
import SwiftUI
import TTTKit
struct PreferencesView: View {
let mastodonController: MastodonController
@ObservedObject private var localData = LocalData.shared
@ObservedObject var localData = LocalData.shared
@State private var showingLogoutConfirmation = false
init(mastodonController: MastodonController) {
@ -18,24 +18,10 @@ struct PreferencesView: View {
}
var body: some View {
// workaround: the navigation view is provided by MyProfileTableViewController so that it can inject the Done button
// NavigationView {
List {
accountsSection
preferencesSection
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 {
Section {
Section(header: Text("Accounts")) {
ForEach(localData.accounts, id: \.accessToken) { (account) in
Button(action: {
NotificationCenter.default.post(name: .activateAccount, object: nil, userInfo: ["account": account])
@ -80,6 +66,7 @@ struct PreferencesView: View {
}) {
Text("Add Account...")
}
if localData.getMostRecentAccount() != nil {
Button(action: {
self.showingLogoutConfirmation = true
}) {
@ -87,13 +74,9 @@ struct PreferencesView: View {
}.alert(isPresented: $showingLogoutConfirmation) {
Alert(title: Text("Are you sure you want to logout?"), message: nil, primaryButton: .destructive(Text("Logout"), action: self.logoutPressed), secondaryButton: .cancel())
}
} header: {
Text("Accounts")
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var preferencesSection: some View {
Section {
NavigationLink(destination: AppearancePrefsView()) {
Text("Appearance")
@ -114,10 +97,7 @@ struct PreferencesView: View {
Text("Advanced")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var aboutSection: some View {
Section {
NavigationLink("About") {
AboutView()
@ -129,7 +109,10 @@ struct PreferencesView: View {
AcknowledgementsView()
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
.listStyle(InsetGroupedListStyle())
.navigationBarTitle(Text("Preferences"), displayMode: .inline)
// }
}
func logoutPressed() {
@ -137,20 +120,6 @@ 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 {

View File

@ -42,7 +42,6 @@ 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
}
@ -60,15 +59,6 @@ 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)

View File

@ -26,12 +26,8 @@ struct TipJarView: View {
@StateObject private var observer = UbiquitousKeyValueStoreObserver()
var body: some View {
ZStack {
Color.appGroupedBackground
.edgesIgnoringSafeArea(.all)
productsView
.overlay {
if showConfetti {
ConfettiView()
.transition(.opacity.animation(.default))

View File

@ -19,8 +19,7 @@ struct WellnessPrefsView: View {
disableInfiniteScrolling
hideDiscover
}
.listStyle(.insetGrouped)
.appGroupedScrollBackgroundIfAvailable()
.listStyle(InsetGroupedListStyle())
.navigationBarTitle(Text("Digital Wellness"))
}
@ -30,7 +29,6 @@ struct WellnessPrefsView: View {
Text("Favorite and Reblog Counts in Conversations")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var notificationsMode: some View {
@ -41,7 +39,6 @@ struct WellnessPrefsView: View {
}
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var grayscaleImages: some View {
@ -50,7 +47,6 @@ struct WellnessPrefsView: View {
Text("Grayscale Images")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var disableInfiniteScrolling: some View {
@ -59,7 +55,6 @@ struct WellnessPrefsView: View {
Text("Disable Infinite Scrolling")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
private var hideDiscover: some View {
@ -68,7 +63,6 @@ struct WellnessPrefsView: View {
Text("Hide Discover Section")
}
}
.listRowBackground(Color.appGroupedCellBackground)
}
}

View File

@ -8,7 +8,6 @@
import UIKit
import Pachyderm
import SwiftUI
class MyProfileViewController: ProfileViewController {