Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.

Commit 40e8dfa

Browse files
authored
v1.2.3: Improve Sources Manager, add S0n1c credit in settings, and update default sources url.
1 parent 01da4fe commit 40e8dfa

File tree

4 files changed

+17
-43
lines changed

4 files changed

+17
-43
lines changed

Sources/prostore/viewModelsAndHelpers/SourcesViewModel.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ class SourcesViewModel: ObservableObject {
2020
switch self {
2121
case .pending: return "Not checked"
2222
case .loading: return "Checking..."
23-
case .valid: return "Valid"
24-
case .invalid(let error): return "Error: \(error.localizedDescription)"
23+
case .valid: return "Valid"
24+
case .invalid(let error): return "Error: \(error.localizedDescription)"
2525
}
2626
}
2727

@@ -83,7 +83,7 @@ class SourcesViewModel: ObservableObject {
8383
"https://raw.githubusercontent.com/swaggyP36000/TrollStore-IPAs/main/apps_esign.json",
8484
"https://ipa.cypwn.xyz/cypwn.json",
8585
"https://quarksources.github.io/dist/quantumsource.min.json",
86-
"https://bit.ly/quantumsource-plus-min",
86+
"https://quarksources.github.io/dist/quantumsource%2B%2B.min.json",
8787
"https://raw.githubusercontent.com/Neoncat-OG/TrollStore-IPAs/main/apps_esign.json"
8888
]
8989
self.sources = defaultSources.map { Source(urlString: $0) }
@@ -103,7 +103,7 @@ class SourcesViewModel: ObservableObject {
103103
"https://raw.githubusercontent.com/swaggyP36000/TrollStore-IPAs/main/apps_esign.json",
104104
"https://ipa.cypwn.xyz/cypwn.json",
105105
"https://quarksources.github.io/dist/quantumsource.min.json",
106-
"https://bit.ly/quantumsource-plus-min",
106+
"https://quarksources.github.io/dist/quantumsource%2B%2B.min.json",
107107
"https://raw.githubusercontent.com/Neoncat-OG/TrollStore-IPAs/main/apps_esign.json"
108108
]
109109
self.sources = defaultSources.map { Source(urlString: $0) }

Sources/prostore/views/SettingsView.swift

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ struct SettingsView: View {
3636
profileURL: URL(string: "https://github.com/khcrysalis")!,
3737
avatarURL: URL(string: "https://github.com/khcrysalis.png")!
3838
),
39+
Credit(
40+
name: "S0n1c",
41+
role: "IPA Installer (Used in Updater)",
42+
profileURL: URL(string: "https://s0n1c.ca/")!,
43+
avatarURL: URL(string: "https://files.catbox.moe/qg7h5p.png")!
44+
),
3945
Credit(
4046
name: "AppleP12",
4147
role: "Certificate Status Check",
@@ -102,7 +108,7 @@ struct SettingsView: View {
102108
.listRowInsets(EdgeInsets())
103109

104110
// MARK: Setup
105-
Section {
111+
Section(header: Text("Setup")) {
106112
Button("Show Setup") {
107113
showingSetup = true
108114
}
@@ -115,33 +121,7 @@ struct SettingsView: View {
115121
SourcesManagerView()
116122
.environmentObject(sourcesViewModel)
117123
} label: {
118-
Label("Sources Manager", systemImage: "link")
119-
}
120-
DisclosureGroup("Current Sources") {
121-
ForEach(sourcesViewModel.sources.prefix(3)) { source in
122-
HStack {
123-
Text(source.urlString)
124-
.font(.caption)
125-
.foregroundColor(.secondary)
126-
.lineLimit(1)
127-
128-
Spacer()
129-
130-
// ✅ UPDATED: String-keyed validation lookup
131-
if let validationState =
132-
sourcesViewModel.validationStates[source.urlString] {
133-
Image(systemName: validationState.icon)
134-
.font(.caption2)
135-
.foregroundColor(validationState.color)
136-
}
137-
}
138-
}
139-
140-
if sourcesViewModel.sources.count > 3 {
141-
Text("+ \(sourcesViewModel.sources.count - 3) more")
142-
.font(.caption)
143-
.foregroundColor(.secondary)
144-
}
124+
Text("Sources Manager")
145125
}
146126
}
147127

Sources/prostore/views/SourcesManagerView.swift

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ struct SourcesManagerView: View {
3737
}
3838
.padding(.vertical, 4)
3939
} else {
40-
// Normal display view
4140
SourceRow(source: source)
4241
.swipeActions(edge: .trailing) {
4342
Button(role: .destructive) {
@@ -48,7 +47,8 @@ struct SourcesManagerView: View {
4847
} label: {
4948
Label("Delete", systemImage: "trash")
5049
}
51-
50+
}
51+
.swipeActions(edge: .leading) {
5252
Button {
5353
sourcesViewModel.startEditing(source)
5454
} label: {
@@ -63,7 +63,7 @@ struct SourcesManagerView: View {
6363
} header: {
6464
Text("Sources (\(sourcesViewModel.sources.count))")
6565
} footer: {
66-
Text("Tap and hold to reorder. Swipe left to edit or delete.")
66+
Text("Tap and hold to reorder. Swipe left to delete or right to edit.")
6767
.font(.caption)
6868
.foregroundColor(.secondary)
6969
}
@@ -109,12 +109,6 @@ struct SourcesManagerView: View {
109109
.navigationTitle("Sources Manager")
110110
.navigationBarTitleDisplayMode(.inline)
111111
.toolbar {
112-
ToolbarItem(placement: .navigationBarLeading) {
113-
Button("Done") {
114-
dismiss()
115-
}
116-
}
117-
118112
ToolbarItem(placement: .navigationBarTrailing) {
119113
EditButton()
120114
}

project.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ targets:
3636
properties:
3737
CFBundleDisplayName: "ProStore"
3838
CFBundleName: "prostore"
39-
CFBundleVersion: "64"
40-
CFBundleShortVersionString: "1.2.2"
39+
CFBundleVersion: "65"
40+
CFBundleShortVersionString: "1.2.3"
4141
UILaunchStoryboardName: "LaunchScreen"
4242
NSPrincipalClass: "UIApplication"
4343
NSAppTransportSecurity:

0 commit comments

Comments
 (0)