mirror of
git://jb55.com/damus
synced 2024-10-06 19:53:22 +00:00
Using enum
This commit is contained in:
parent
40be9885c5
commit
63dd39c7e4
@ -8,6 +8,23 @@ import AVFoundation
|
|||||||
import Kingfisher
|
import Kingfisher
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
|
enum RemoteImagePolicy: String, CaseIterable {
|
||||||
|
case everyone
|
||||||
|
case friendsOnly
|
||||||
|
case restricted
|
||||||
|
}
|
||||||
|
|
||||||
|
func remoteImagePolicyText(_ fs: RemoteImagePolicy) -> String {
|
||||||
|
switch fs {
|
||||||
|
case .everyone:
|
||||||
|
return "Everyone"
|
||||||
|
case .friendsOnly:
|
||||||
|
return "Friends Only"
|
||||||
|
case .restricted:
|
||||||
|
return "Restricted (no remote image)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct ConfigView: View {
|
struct ConfigView: View {
|
||||||
let state: DamusState
|
let state: DamusState
|
||||||
@Environment(\.dismiss) var dismiss
|
@Environment(\.dismiss) var dismiss
|
||||||
@ -19,8 +36,8 @@ struct ConfigView: View {
|
|||||||
@State var privkey_copied: Bool = false
|
@State var privkey_copied: Bool = false
|
||||||
@State var pubkey_copied: Bool = false
|
@State var pubkey_copied: Bool = false
|
||||||
@State var delete_text: String = ""
|
@State var delete_text: String = ""
|
||||||
@ObservedObject var settings: UserSettingsStore
|
@EnvironmentObject var user_settings: UserSettingsStore
|
||||||
@AppStorage("remote_image_policy") var remote_image_policy: String = "everyone"
|
@AppStorage("remote_image_policy") var remote_image_policy: RemoteImagePolicy = .everyone
|
||||||
|
|
||||||
let generator = UIImpactFeedbackGenerator(style: .light)
|
let generator = UIImpactFeedbackGenerator(style: .light)
|
||||||
|
|
||||||
@ -133,22 +150,22 @@ struct ConfigView: View {
|
|||||||
Section("Profile Image Loading Policy") {
|
Section("Profile Image Loading Policy") {
|
||||||
Menu {
|
Menu {
|
||||||
Button {
|
Button {
|
||||||
UserDefaults.standard.set("everyone", forKey:"remote_image_policy")
|
self.remote_image_policy = .everyone
|
||||||
} label: {
|
} label: {
|
||||||
Text("Everyone")
|
Text(remoteImagePolicyText(.everyone))
|
||||||
}
|
}
|
||||||
Button {
|
Button {
|
||||||
UserDefaults.standard.set("friends", forKey:"remote_image_policy")
|
self.remote_image_policy = .friendsOnly
|
||||||
} label: {
|
} label: {
|
||||||
Text("Friends Only")
|
Text(remoteImagePolicyText(.friendsOnly))
|
||||||
}
|
}
|
||||||
Button {
|
Button {
|
||||||
UserDefaults.standard.set("restricted", forKey:"remote_image_policy")
|
self.remote_image_policy = .restricted
|
||||||
} label: {
|
} label: {
|
||||||
Text("Restricted")
|
Text(remoteImagePolicyText(.restricted))
|
||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
Text("\(convertImageLoadPolicyTxt(policy:remote_image_policy))")
|
Text("\(remoteImagePolicyText(remote_image_policy))")
|
||||||
.frame(maxWidth: .infinity, alignment: .leading)
|
.frame(maxWidth: .infinity, alignment: .leading)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -199,17 +216,6 @@ struct ConfigView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertImageLoadPolicyTxt(policy: String) -> String {
|
|
||||||
switch policy {
|
|
||||||
case "restricted":
|
|
||||||
return "Restricted"
|
|
||||||
case "friends":
|
|
||||||
return "Friends Only"
|
|
||||||
default:
|
|
||||||
return "Everyone"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
struct ConfigView_Previews: PreviewProvider {
|
struct ConfigView_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
NavigationView {
|
NavigationView {
|
||||||
|
@ -129,8 +129,9 @@ struct ProfilePicView: View {
|
|||||||
|
|
||||||
func get_profile_url(picture: String?, pubkey: String, profiles: Profiles) -> URL {
|
func get_profile_url(picture: String?, pubkey: String, profiles: Profiles) -> URL {
|
||||||
var pic: String
|
var pic: String
|
||||||
let remote_image_policy = UserDefaults.standard.string(forKey: "remote_image_policy")
|
let remote_image_policy: RemoteImagePolicy = RemoteImagePolicy(rawValue: UserDefaults.standard.string(forKey: "remote_image_policy")!) ?? .everyone
|
||||||
if remote_image_policy == "restricted" || (remote_image_policy == "friends" && !contacts.is_friend(pubkey)) {
|
|
||||||
|
if remote_image_policy == .restricted || (remote_image_policy == .friendsOnly && !contacts.is_friend(pubkey)) {
|
||||||
pic = robohash(pubkey)
|
pic = robohash(pubkey)
|
||||||
} else {
|
} else {
|
||||||
pic = picture ?? profiles.lookup(id: pubkey)?.picture ?? robohash(pubkey)
|
pic = picture ?? profiles.lookup(id: pubkey)?.picture ?? robohash(pubkey)
|
||||||
|
Loading…
Reference in New Issue
Block a user