Gallery: show all NAS files; Settings: fix WiFi label + cellular row

Gallery NAS was only showing Kisani-manifest-tracked files (2 of 7432). Now
fetches the full NAS directory listing on load and adds Phase 3 items for files
not in the manifest (uploaded by other tools) — all 7432 files appear in the
gallery with thumbnails loaded lazily on scroll.

Settings network section: "No Wi-Fi" → "Wi-Fi" when connected but SSID is nil
(no location permission). Added cellular status row below Wi-Fi row.

Co-Authored-By: Kutesir <kutesir@provoc.ug>
Co-Authored-By: Sentry <sentry@provoc.ug>
This commit is contained in:
Robin Kutesa
2026-05-19 00:47:28 +03:00
parent 6ae567d008
commit fae13eba9f
2 changed files with 82 additions and 8 deletions

View File

@@ -213,7 +213,7 @@ struct SettingsView: View {
.foregroundStyle(AppTheme.inkSecondary)
.frame(width: 20)
VStack(alignment: .leading, spacing: 2) {
Text(lanMonitor.currentSSID ?? (lanMonitor.isOnCellular ? "Cellular" : "No Wi-Fi"))
Text(lanMonitor.currentSSID ?? (lanMonitor.isOnCellular ? "Cellular" : (lanMonitor.isOnNetwork ? "Wi-Fi" : "No Wi-Fi")))
.font(AppTheme.body())
.foregroundStyle(AppTheme.ink)
Text(lanMonitor.isOnNetwork ? "Connected" : "Not connected")
@@ -238,6 +238,35 @@ struct SettingsView: View {
hairline
// Cellular row
HStack(spacing: 12) {
Image(systemName: "antenna.radiowaves.left.and.right")
.font(.system(size: 14, weight: .regular))
.foregroundStyle(lanMonitor.isOnCellular ? Color(red: 1.0, green: 0.58, blue: 0.0) : AppTheme.inkSecondary)
.frame(width: 20)
VStack(alignment: .leading, spacing: 2) {
Text("Cellular")
.font(AppTheme.body())
.foregroundStyle(AppTheme.ink)
Text(lanMonitor.isOnCellular ? "Active" : "Not in use")
.font(AppTheme.caption())
.foregroundStyle(AppTheme.inkTertiary)
}
Spacer()
HStack(spacing: 4) {
Circle()
.fill(lanMonitor.isOnCellular ? Color(red: 1.0, green: 0.58, blue: 0.0) : AppTheme.inkQuaternary)
.frame(width: 5, height: 5)
Text(lanMonitor.isOnCellular ? "Active" : "Off")
.font(AppTheme.micro())
.foregroundStyle(lanMonitor.isOnCellular ? Color(red: 1.0, green: 0.58, blue: 0.0) : AppTheme.inkTertiary)
}
}
.padding(.horizontal, AppTheme.cardPad)
.padding(.vertical, 13)
hairline
// NAS reachability row
HStack(spacing: 12) {
Image(systemName: "externaldrive.connected.to.line.below")