Update view updated + Warning view + Localized
This commit is contained in:
parent
4608d0b1a5
commit
89a28dc146
|
@ -91,6 +91,7 @@
|
||||||
B9C20D3D2B9229EC004DC9B3 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB94872B2E223E00D81C07 /* Emoji.swift */; };
|
B9C20D3D2B9229EC004DC9B3 /* Emoji.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9FB94872B2E223E00D81C07 /* Emoji.swift */; };
|
||||||
B9C20D562B922DAC004DC9B3 /* KeychainSwift in Frameworks */ = {isa = PBXBuildFile; productRef = B9C20D552B922DAC004DC9B3 /* KeychainSwift */; };
|
B9C20D562B922DAC004DC9B3 /* KeychainSwift in Frameworks */ = {isa = PBXBuildFile; productRef = B9C20D552B922DAC004DC9B3 /* KeychainSwift */; };
|
||||||
B9C20D612B949AD7004DC9B3 /* Redeclarations.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C20D602B949AD7004DC9B3 /* Redeclarations.swift */; };
|
B9C20D612B949AD7004DC9B3 /* Redeclarations.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C20D602B949AD7004DC9B3 /* Redeclarations.swift */; };
|
||||||
|
B9C7F46C2C387D3B009C36DC /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9C7F46B2C387D3B009C36DC /* WarningView.swift */; };
|
||||||
B9CC45B82B40A2D6001E4FA5 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9CC45B72B40A2D6001E4FA5 /* AboutView.swift */; };
|
B9CC45B82B40A2D6001E4FA5 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9CC45B72B40A2D6001E4FA5 /* AboutView.swift */; };
|
||||||
B9CFC43B2B4F08C9004CFCB7 /* LaunchStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B9CFC43A2B4F08C9004CFCB7 /* LaunchStoryboard.storyboard */; };
|
B9CFC43B2B4F08C9004CFCB7 /* LaunchStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B9CFC43A2B4F08C9004CFCB7 /* LaunchStoryboard.storyboard */; };
|
||||||
B9D365612B79A1BE004C1255 /* MailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9D365602B79A1BE004C1255 /* MailView.swift */; };
|
B9D365612B79A1BE004C1255 /* MailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9D365602B79A1BE004C1255 /* MailView.swift */; };
|
||||||
|
@ -256,6 +257,7 @@
|
||||||
B9C20D582B923CDD004DC9B3 /* ThreadedWidgetsExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ThreadedWidgetsExtension.entitlements; sourceTree = "<group>"; };
|
B9C20D582B923CDD004DC9B3 /* ThreadedWidgetsExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ThreadedWidgetsExtension.entitlements; sourceTree = "<group>"; };
|
||||||
B9C20D592B923D53004DC9B3 /* Threaded.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Threaded.entitlements; sourceTree = "<group>"; };
|
B9C20D592B923D53004DC9B3 /* Threaded.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Threaded.entitlements; sourceTree = "<group>"; };
|
||||||
B9C20D602B949AD7004DC9B3 /* Redeclarations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Redeclarations.swift; sourceTree = "<group>"; };
|
B9C20D602B949AD7004DC9B3 /* Redeclarations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Redeclarations.swift; sourceTree = "<group>"; };
|
||||||
|
B9C7F46B2C387D3B009C36DC /* WarningView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WarningView.swift; sourceTree = "<group>"; };
|
||||||
B9CC45B72B40A2D6001E4FA5 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = "<group>"; };
|
B9CC45B72B40A2D6001E4FA5 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = "<group>"; };
|
||||||
B9CC45B92B40AA1E001E4FA5 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
B9CC45B92B40AA1E001E4FA5 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
|
||||||
B9CFC43A2B4F08C9004CFCB7 /* LaunchStoryboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchStoryboard.storyboard; sourceTree = "<group>"; };
|
B9CFC43A2B4F08C9004CFCB7 /* LaunchStoryboard.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchStoryboard.storyboard; sourceTree = "<group>"; };
|
||||||
|
@ -556,6 +558,7 @@
|
||||||
B9DC69282B78D9A500E625B9 /* SearchResultView.swift */,
|
B9DC69282B78D9A500E625B9 /* SearchResultView.swift */,
|
||||||
B9B469DA2B9B2EDB00AD5585 /* ComingSoonView.swift */,
|
B9B469DA2B9B2EDB00AD5585 /* ComingSoonView.swift */,
|
||||||
B9D365602B79A1BE004C1255 /* MailView.swift */,
|
B9D365602B79A1BE004C1255 /* MailView.swift */,
|
||||||
|
B9C7F46B2C387D3B009C36DC /* WarningView.swift */,
|
||||||
);
|
);
|
||||||
path = Components;
|
path = Components;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -896,6 +899,7 @@
|
||||||
B999DE5E2B76F9D100509868 /* Message.swift in Sources */,
|
B999DE5E2B76F9D100509868 /* Message.swift in Sources */,
|
||||||
B915C4422B6F908C00042DDB /* ProfileView.swift in Sources */,
|
B915C4422B6F908C00042DDB /* ProfileView.swift in Sources */,
|
||||||
B9FB94702B2DF3CD00D81C07 /* Navigator.swift in Sources */,
|
B9FB94702B2DF3CD00D81C07 /* Navigator.swift in Sources */,
|
||||||
|
B9C7F46C2C387D3B009C36DC /* WarningView.swift in Sources */,
|
||||||
B9EBE8562B47256900FB594D /* PostAttachment.swift in Sources */,
|
B9EBE8562B47256900FB594D /* PostAttachment.swift in Sources */,
|
||||||
B9EBE8582B474FD600FB594D /* AppDelegate.swift in Sources */,
|
B9EBE8582B474FD600FB594D /* AppDelegate.swift in Sources */,
|
||||||
B93B677C2B433A6E000892E9 /* PostingView.swift in Sources */,
|
B93B677C2B433A6E000892E9 /* PostingView.swift in Sources */,
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
//Made by Lumaa
|
||||||
|
|
||||||
|
import SwiftUI
|
||||||
|
|
||||||
|
struct WarningView: View {
|
||||||
|
var description: LocalizedStringResource
|
||||||
|
|
||||||
|
var body: some View {
|
||||||
|
VStack(alignment: .leading) {
|
||||||
|
HStack {
|
||||||
|
Image(systemName: "exclamationmark.triangle.fill")
|
||||||
|
.symbolRenderingMode(.multicolor)
|
||||||
|
|
||||||
|
Text("warning.title")
|
||||||
|
.font(.title2.bold())
|
||||||
|
.lineLimit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
Text(description)
|
||||||
|
.multilineTextAlignment(.leading)
|
||||||
|
}
|
||||||
|
.padding(.vertical, 5.0)
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,7 +9,8 @@
|
||||||
"value" : "@%@"
|
"value" : "@%@"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"shouldTranslate" : false
|
||||||
},
|
},
|
||||||
"#%@" : {
|
"#%@" : {
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
|
@ -19,7 +20,8 @@
|
||||||
"value" : "#%@"
|
"value" : "#%@"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"shouldTranslate" : false
|
||||||
},
|
},
|
||||||
"%@" : {
|
"%@" : {
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
|
@ -29,7 +31,8 @@
|
||||||
"value" : "%@"
|
"value" : "%@"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"shouldTranslate" : false
|
||||||
},
|
},
|
||||||
"%lld" : {
|
"%lld" : {
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
|
@ -39,7 +42,8 @@
|
||||||
"value" : "%lld"
|
"value" : "%lld"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"shouldTranslate" : false
|
||||||
},
|
},
|
||||||
"about" : {
|
"about" : {
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
|
@ -94,13 +98,29 @@
|
||||||
"en" : {
|
"en" : {
|
||||||
"stringUnit" : {
|
"stringUnit" : {
|
||||||
"state" : "translated",
|
"state" : "translated",
|
||||||
"value" : "Threaded uses third-party open-source libraries and code:\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)"
|
"value" : "Threaded uses third-party open-source libraries and code:\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)\n\nSpecial thanks to:\n- [@damon@social.wedistribute.org](https://social.wedistribute.org/@damon)\n- Beezus\n- Beta testers on TestFlight"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fr" : {
|
"fr" : {
|
||||||
"stringUnit" : {
|
"stringUnit" : {
|
||||||
"state" : "translated",
|
"state" : "translated",
|
||||||
"value" : "Threaded uses third-party open-source libraries and code:\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)"
|
"value" : "Threaded uses third-party open-source libraries and code:\n- A derivative of [ProboscisKit](https://github.com/lumaa-dev/ProboscisKit)\n- [IceCubesApp](https://github.com/dimillian/IceCubesApp)\n- [SwiftSoup](https://github.com/scinfu/SwiftSoup)\n- [Nuke](https://github.com/kean/Nuke)\n- [EmojiText](https://github.com/divadretlaw/EmojiText)\n- [KeychainSwift](https://github.com/evgenyneu/keychain-swift)\n- [RevenueCat](https://www.revenuecat.com)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"about.lumaa" : {
|
||||||
|
"localizations" : {
|
||||||
|
"en" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "Learn more about Lumaa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fr" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "En savoir plus sur Lumaa"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -797,6 +817,22 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"beta.feature" : {
|
||||||
|
"localizations" : {
|
||||||
|
"en" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "This feature is currently unstable, use it with caution."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fr" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "Cette fonctionnalité est actuellement instable, utilisez là avec précaution."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"coming-soon" : {
|
"coming-soon" : {
|
||||||
"localizations" : {
|
"localizations" : {
|
||||||
"en" : {
|
"en" : {
|
||||||
|
@ -2586,7 +2622,7 @@
|
||||||
},
|
},
|
||||||
"fr" : {
|
"fr" : {
|
||||||
"stringUnit" : {
|
"stringUnit" : {
|
||||||
"state" : "needs_review",
|
"state" : "translated",
|
||||||
"value" : "Pour 19.99€ par ans, renouvellement automatique"
|
"value" : "Pour 19.99€ par ans, renouvellement automatique"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3839,6 +3875,22 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"warning.title" : {
|
||||||
|
"localizations" : {
|
||||||
|
"en" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "Warning!"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fr" : {
|
||||||
|
"stringUnit" : {
|
||||||
|
"state" : "translated",
|
||||||
|
"value" : "Attention !"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version" : "1.0"
|
"version" : "1.0"
|
||||||
|
|
|
@ -10,12 +10,21 @@ struct AboutView: View {
|
||||||
var body: some View {
|
var body: some View {
|
||||||
List {
|
List {
|
||||||
Section(footer: Text("about.version-\(AppInfo.appVersion)")) {
|
Section(footer: Text("about.version-\(AppInfo.appVersion)")) {
|
||||||
NavigationLink {
|
Section {
|
||||||
aboutApp
|
NavigationLink {
|
||||||
} label: {
|
aboutApp
|
||||||
Text("about.app")
|
} label: {
|
||||||
|
Text("about.app")
|
||||||
|
}
|
||||||
|
.listRowThreaded()
|
||||||
|
|
||||||
|
Button {
|
||||||
|
UIApplication.shared.open(URL(string: "https://lumaa.fr/?utm_source=ThreadedApp")!)
|
||||||
|
} label: {
|
||||||
|
Text("about.lumaa")
|
||||||
|
}
|
||||||
|
.listRowThreaded()
|
||||||
}
|
}
|
||||||
.listRowThreaded()
|
|
||||||
|
|
||||||
Toggle("setting.experimental.activate", isOn: $userPreferences.showExperimental)
|
Toggle("setting.experimental.activate", isOn: $userPreferences.showExperimental)
|
||||||
.listRowThreaded()
|
.listRowThreaded()
|
||||||
|
|
|
@ -20,6 +20,12 @@ struct FilterView: View {
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
List {
|
List {
|
||||||
|
Section {
|
||||||
|
WarningView(description: "beta.feature")
|
||||||
|
.listRowInsets(.none)
|
||||||
|
}
|
||||||
|
.listRowBackground(Color.yellow.opacity(0.25))
|
||||||
|
|
||||||
Toggle(isOn: $allowFilter.animation(.spring)) {
|
Toggle(isOn: $allowFilter.animation(.spring)) {
|
||||||
Text("settings.content-filter.allow")
|
Text("settings.content-filter.allow")
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,12 +99,12 @@ struct SettingsView: View {
|
||||||
}
|
}
|
||||||
.listRowThreaded()
|
.listRowThreaded()
|
||||||
|
|
||||||
Button {
|
// Button {
|
||||||
navigator.navigate(to: .appearence)
|
// navigator.navigate(to: .appearence)
|
||||||
} label: {
|
// } label: {
|
||||||
Label("setting.appearence", systemImage: "rectangle.3.group")
|
// Label("setting.appearence", systemImage: "rectangle.3.group")
|
||||||
}
|
// }
|
||||||
.listRowThreaded()
|
// .listRowThreaded()
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
if loggedAccounts.count <= 1 {
|
if loggedAccounts.count <= 1 {
|
||||||
|
|
|
@ -36,12 +36,12 @@ struct UpdateView: View {
|
||||||
}
|
}
|
||||||
|
|
||||||
var features: some View {
|
var features: some View {
|
||||||
VStack(spacing: 40) {
|
VStack(spacing: 60) {
|
||||||
newFeature(systemImage: "network", title: "Timeline Selector", text: "By tapping on the Threaded logo, you'll be able to select a timeine.")
|
newFeature(systemImage: "line.3.horizontal.decrease.circle", title: "Content Filter", text: "Keep words out of your feeds in the app's settings, Privacy, then Content Filter")
|
||||||
|
|
||||||
newFeature(systemImage: "info.circle", title: "\"About Threaded\" redesign", text: "This informational view has been majorly changed!")
|
newFeature(systemImage: "paperplane", title: "Smarter posting!", text: "You can crosspost your posts in other apps like X, Ice Cubes, and others.")
|
||||||
|
|
||||||
newFeature(systemImage: "number", title: "Read hashtags", text: "You can now view posts using a specific hashtag in the Discovery page.")
|
newFeature(systemImage: "plus.app", title: "App Store", text: "Coming soon, in your closest Home Screen page's App Store...")
|
||||||
}
|
}
|
||||||
.frame(height: 500)
|
.frame(height: 500)
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,7 +133,7 @@ struct TimelineView: View {
|
||||||
loadingStatuses = false
|
loadingStatuses = false
|
||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
Image(systemName: self.timelineModel.filtering ? "line.3.horizontal.decrease.circle.fill" :"line.3.horizontal.decrease.circle")
|
Image(systemName: self.timelineModel.filtering ? "line.3.horizontal.decrease.circle.fill" : "line.3.horizontal.decrease.circle")
|
||||||
.symbolEffect(.pulse.wholeSymbol, isActive: self.timelineModel.filtering)
|
.symbolEffect(.pulse.wholeSymbol, isActive: self.timelineModel.filtering)
|
||||||
}
|
}
|
||||||
.tint(Color(uiColor: UIColor.label))
|
.tint(Color(uiColor: UIColor.label))
|
||||||
|
|
Loading…
Reference in New Issue