Privacy view with image cache
This commit is contained in:
parent
7c26ee7e74
commit
3a8176f931
|
@ -47,6 +47,7 @@
|
|||
B999DE5E2B76F9D100509868 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = B999DE5D2B76F9D100509868 /* Message.swift */; };
|
||||
B999DE602B76FB3E00509868 /* ContactRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B999DE5F2B76FB3E00509868 /* ContactRow.swift */; };
|
||||
B9B469B02B9A275F00AD5585 /* FollowGoalWidget.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B469AF2B9A275F00AD5585 /* FollowGoalWidget.swift */; };
|
||||
B9B469B22B9A6E8300AD5585 /* PrivacyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B469B12B9A6E8300AD5585 /* PrivacyView.swift */; };
|
||||
B9B63B212B442D1500BBC82D /* DynamicTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B63B202B442D1500BBC82D /* DynamicTextEditor.swift */; };
|
||||
B9B63B232B447B8000BBC82D /* PostCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B63B222B447B8000BBC82D /* PostCardView.swift */; };
|
||||
B9B63B252B44997400BBC82D /* QuotePostView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B63B242B44997400BBC82D /* QuotePostView.swift */; };
|
||||
|
@ -183,6 +184,7 @@
|
|||
B999DE5D2B76F9D100509868 /* Message.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = "<group>"; };
|
||||
B999DE5F2B76FB3E00509868 /* ContactRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactRow.swift; sourceTree = "<group>"; };
|
||||
B9B469AF2B9A275F00AD5585 /* FollowGoalWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FollowGoalWidget.swift; sourceTree = "<group>"; };
|
||||
B9B469B12B9A6E8300AD5585 /* PrivacyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacyView.swift; sourceTree = "<group>"; };
|
||||
B9B63B202B442D1500BBC82D /* DynamicTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicTextEditor.swift; sourceTree = "<group>"; };
|
||||
B9B63B222B447B8000BBC82D /* PostCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostCardView.swift; sourceTree = "<group>"; };
|
||||
B9B63B242B44997400BBC82D /* QuotePostView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuotePostView.swift; sourceTree = "<group>"; };
|
||||
|
@ -482,6 +484,7 @@
|
|||
B9CC45B72B40A2D6001E4FA5 /* AboutView.swift */,
|
||||
B98BC7482B46CEDA00595441 /* AppearenceView.swift */,
|
||||
B97798882B853E6600DC869F /* UpdateView.swift */,
|
||||
B9B469B12B9A6E8300AD5585 /* PrivacyView.swift */,
|
||||
);
|
||||
path = Settings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -700,6 +703,7 @@
|
|||
B98BC7472B46CE6300595441 /* PostDetailsView.swift in Sources */,
|
||||
B9CC45B82B40A2D6001E4FA5 /* AboutView.swift in Sources */,
|
||||
B98F47962B645DF40092000F /* EmojiSelector.swift in Sources */,
|
||||
B9B469B22B9A6E8300AD5585 /* PrivacyView.swift in Sources */,
|
||||
B9FB94882B2E223E00D81C07 /* Emoji.swift in Sources */,
|
||||
B93B67782B42E8F0000892E9 /* TextEmoji.swift in Sources */,
|
||||
B9FB94762B2E023D00D81C07 /* TabsView.swift in Sources */,
|
||||
|
|
|
@ -4,6 +4,7 @@ import SwiftUI
|
|||
|
||||
struct LargeButton: ButtonStyle {
|
||||
var filled: Bool = false
|
||||
var filledColor: Color = Color(uiColor: UIColor.label)
|
||||
var height: CGFloat? = nil
|
||||
var disabled: Bool = false
|
||||
|
||||
|
@ -11,7 +12,7 @@ struct LargeButton: ButtonStyle {
|
|||
if disabled {
|
||||
Color.gray
|
||||
} else {
|
||||
Color(uiColor: UIColor.label)
|
||||
filledColor
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -125,9 +125,11 @@ public enum RouterDestination: Hashable {
|
|||
case settings
|
||||
case support
|
||||
case appearence
|
||||
case about
|
||||
case privacy
|
||||
|
||||
case account(acc: Account)
|
||||
case post(status: Status)
|
||||
case about
|
||||
case contacts
|
||||
case timeline(timeline: TimelineFilter?)
|
||||
}
|
||||
|
@ -154,6 +156,8 @@ extension View {
|
|||
AboutView()
|
||||
case .contacts:
|
||||
ContactsView()
|
||||
case .privacy:
|
||||
PrivacyView()
|
||||
case .timeline(let timeline):
|
||||
PostsView(filter: timeline ?? .home, showHero: false)
|
||||
}
|
||||
|
|
|
@ -1239,6 +1239,22 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"privacy" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Privacy"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Confidentialité"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"setting.appearence" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
|
@ -1575,6 +1591,54 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"settings.privacy.clear" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Clear"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Vider"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings.privacy.clear-cache" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Image cache"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Cache des images"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"settings.privacy.cleared" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Cleared!"
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Vidé !"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"shop.best" : {
|
||||
"localizations" : {
|
||||
"en" : {
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
//Made by Lumaa
|
||||
|
||||
import SwiftUI
|
||||
import Nuke
|
||||
|
||||
struct PrivacyView: View {
|
||||
@EnvironmentObject private var navigator: Navigator
|
||||
|
||||
@State private var clearedCache: Bool = false
|
||||
|
||||
var body: some View {
|
||||
List {
|
||||
//TODO: Visibilty, Blocklist & Mutelist
|
||||
|
||||
HStack {
|
||||
Text("settings.privacy.clear-cache")
|
||||
|
||||
Spacer()
|
||||
|
||||
Button {
|
||||
let cache = ImagePipeline.shared.cache
|
||||
cache.removeAll()
|
||||
withAnimation(.spring) {
|
||||
clearedCache = true
|
||||
}
|
||||
} label: {
|
||||
Text(clearedCache ? "settings.privacy.cleared" : "settings.privacy.clear")
|
||||
}
|
||||
.buttonStyle(LargeButton(filled: true, filledColor: clearedCache ? Color.green : Color(uiColor: UIColor.label), height: 7.5))
|
||||
.disabled(clearedCache)
|
||||
}
|
||||
.listRowThreaded()
|
||||
}
|
||||
.listThreaded()
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
PrivacyView()
|
||||
}
|
|
@ -69,6 +69,13 @@ struct SettingsView: View {
|
|||
}
|
||||
.listRowThreaded()
|
||||
|
||||
Button {
|
||||
navigator.navigate(to: .privacy)
|
||||
} label: {
|
||||
Label("privacy", systemImage: "lock")
|
||||
}
|
||||
.listRowThreaded()
|
||||
|
||||
Button {
|
||||
navigator.presentedCover = .shop
|
||||
} label: {
|
||||
|
@ -125,7 +132,11 @@ extension SettingsView {
|
|||
@State private var error: Bool = false
|
||||
|
||||
private var currentAccount: Bool {
|
||||
return AccountManager.shared.forceAccount().acct == app.accountName ?? ""
|
||||
let currentAccount = AccountManager.shared.forceAccount()
|
||||
let currentClient = AccountManager.shared.forceClient()
|
||||
|
||||
let currentAcct = "\(currentAccount.acct)@\(currentClient.server)"
|
||||
return currentAcct == app.accountName ?? ""
|
||||
}
|
||||
|
||||
init(app: AppAccount) {
|
||||
|
|
Loading…
Reference in New Issue