Add preference to disable timeline state restoration

This commit is contained in:
Shadowfacts 2022-12-05 17:24:01 -05:00
parent fc8fcb76fd
commit 3ea7e1057b
3 changed files with 17 additions and 1 deletions

View File

@ -63,6 +63,7 @@ class Preferences: Codable, ObservableObject {
self.collapseLongPosts = try container.decodeIfPresent(Bool.self, forKey: .collapseLongPosts) ?? true
self.oppositeCollapseKeywords = try container.decodeIfPresent([String].self, forKey: .oppositeCollapseKeywords) ?? []
self.confirmBeforeReblog = try container.decodeIfPresent(Bool.self, forKey: .confirmBeforeReblog) ?? false
self.timelineStateRestoration = try container.decodeIfPresent(Bool.self, forKey: .timelineStateRestoration) ?? true
self.showFavoriteAndReblogCounts = try container.decode(Bool.self, forKey: .showFavoriteAndReblogCounts)
self.defaultNotificationsMode = try container.decode(NotificationsMode.self, forKey: .defaultNotificationsType)
@ -105,6 +106,7 @@ class Preferences: Codable, ObservableObject {
try container.encode(collapseLongPosts, forKey: .collapseLongPosts)
try container.encode(oppositeCollapseKeywords, forKey: .oppositeCollapseKeywords)
try container.encode(confirmBeforeReblog, forKey: .confirmBeforeReblog)
try container.encode(timelineStateRestoration, forKey: .timelineStateRestoration)
try container.encode(showFavoriteAndReblogCounts, forKey: .showFavoriteAndReblogCounts)
try container.encode(defaultNotificationsMode, forKey: .defaultNotificationsType)
@ -156,6 +158,7 @@ class Preferences: Codable, ObservableObject {
@Published var collapseLongPosts = true
@Published var oppositeCollapseKeywords: [String] = []
@Published var confirmBeforeReblog = false
@Published var timelineStateRestoration = true
// MARK: Digital Wellness
@Published var showFavoriteAndReblogCounts = true
@ -199,6 +202,7 @@ class Preferences: Codable, ObservableObject {
case collapseLongPosts
case oppositeCollapseKeywords
case confirmBeforeReblog
case timelineStateRestoration
case showFavoriteAndReblogCounts
case defaultNotificationsType

View File

@ -14,6 +14,7 @@ struct BehaviorPrefsView: View {
var body: some View {
List {
untitledSection
timelineSection
linksSection
contentWarningsSection
}
@ -29,6 +30,16 @@ struct BehaviorPrefsView: View {
}
}
private var timelineSection: some View {
Section {
Toggle(isOn: $preferences.timelineStateRestoration) {
Text("Maintain Position Across App Launches")
}
} header: {
Text("Timeline")
}
}
private var linksSection: some View {
Section(header: Text("Links")) {
Toggle(isOn: $preferences.openLinksInApps) {

View File

@ -284,7 +284,8 @@ class TimelineViewController: UIViewController, TimelineLikeCollectionViewContro
}
private func doRestore() -> Bool {
guard let activity = activityToRestore else {
guard let activity = activityToRestore,
Preferences.shared.timelineStateRestoration else {
return false
}
guard let statusIDs = activity.userInfo?["statusIDs"] as? [String] else {