Update view updated + Warning view + Localized

This commit is contained in:
Lumaa 2024-07-05 22:16:06 +02:00
parent 4608d0b1a5
commit 89a28dc146
8 changed files with 118 additions and 23 deletions

View File

@ -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 */,

View File

@ -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)
}
}

View File

@ -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"

View File

@ -10,6 +10,7 @@ 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)")) {
Section {
NavigationLink { NavigationLink {
aboutApp aboutApp
} label: { } label: {
@ -17,6 +18,14 @@ struct AboutView: View {
} }
.listRowThreaded() .listRowThreaded()
Button {
UIApplication.shared.open(URL(string: "https://lumaa.fr/?utm_source=ThreadedApp")!)
} label: {
Text("about.lumaa")
}
.listRowThreaded()
}
Toggle("setting.experimental.activate", isOn: $userPreferences.showExperimental) Toggle("setting.experimental.activate", isOn: $userPreferences.showExperimental)
.listRowThreaded() .listRowThreaded()
.tint(Color(uiColor: UIColor.label)) .tint(Color(uiColor: UIColor.label))

View File

@ -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")
} }

View File

@ -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 {

View File

@ -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)
} }

View File

@ -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))