Skip to content

Commit d7ece8a

Browse files
committed
chore(ios): P2 polish - strip Xcode headers, cleanup orphan UserDefaults, accessibility labels
1 parent ed2a215 commit d7ece8a

77 files changed

Lines changed: 59 additions & 392 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1616

1717
### Changed
1818

19+
- iOS: VoiceOver now reads connection rows and table rows as a single combined element with type, name, host or row count, and includes a hint about what tapping does
20+
- iOS: toolbar icon-only buttons (Add Connection, Sync with iCloud, Settings) gain accessibility labels for VoiceOver
21+
- Internal: per-connection `UserDefaults` keys (`lastTab.<uuid>`, `lastDB.<uuid>`, `lastSchema.<uuid>`, `lastQuery.<uuid>`) clear when a connection is deleted, so they no longer accumulate over time
22+
- Internal: drop redundant 4-line Xcode-generated file headers from every iOS source file (~58 files)
1923
- Internal: iOS query editor uses a `Binding<Bool>` focus channel into `SQLHighlightTextView` to dismiss the keyboard before running a query, replacing the `UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder))` call. Keyboard behavior is unchanged
2024
- Internal: iOS row detail (edit lifecycle, save SQL build, lazy cell value load, primary key extraction, success-toast auto-dismiss) moves out of the View into `RowDetailViewModel`. The View now keeps only sheet flags and haptic triggers; behavior is unchanged
2125
- Internal: iOS connection form (test connection, save, file picker handlers, default port resolution, credential hydration) moves out of the View into `ConnectionFormViewModel`. The View drops from 53 to 5 `@State` properties; behavior is unchanged

TableProMobile/TableProMobile/AppState.swift

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
//
2-
// AppState.swift
3-
// TableProMobile
4-
//
5-
61
import CoreSpotlight
72
import Foundation
83
import Observation
@@ -114,13 +109,22 @@ final class AppState {
114109
try? secureStore.delete(forKey: "com.TablePro.sshpassword.\(connection.id.uuidString)")
115110
try? secureStore.delete(forKey: "com.TablePro.keypassphrase.\(connection.id.uuidString)")
116111
try? secureStore.delete(forKey: "com.TablePro.sshkeydata.\(connection.id.uuidString)")
112+
clearPerConnectionPreferences(for: connection.id)
117113
storage.save(connections)
118114
updateWidgetData()
119115
updateSpotlightIndex()
120116
syncCoordinator.markDeleted(connection.id)
121117
syncCoordinator.scheduleSyncAfterChange()
122118
}
123119

120+
private func clearPerConnectionPreferences(for id: UUID) {
121+
let suffix = id.uuidString
122+
let defaults = UserDefaults.standard
123+
for prefix in ["lastTab.", "lastDB.", "lastSchema.", "lastQuery."] {
124+
defaults.removeObject(forKey: prefix + suffix)
125+
}
126+
}
127+
124128
// MARK: - Groups
125129

126130
func addGroup(_ group: ConnectionGroup) {

TableProMobile/TableProMobile/Coordinators/ConnectionCoordinator.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
//
2-
// ConnectionCoordinator.swift
3-
// TableProMobile
4-
//
5-
61
import Foundation
72
import Observation
83
import os

TableProMobile/TableProMobile/Drivers/MySQLDriver.swift

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
//
2-
// MySQLDriver.swift
3-
// TableProMobile
4-
//
5-
// MySQL driver conforming to DatabaseDriver directly (no plugin layer).
6-
//
7-
81
import CMariaDB
92
import Foundation
103
import TableProDatabase

TableProMobile/TableProMobile/Drivers/PostgreSQLDriver.swift

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
//
2-
// PostgreSQLDriver.swift
3-
// TableProMobile
4-
//
5-
// PostgreSQL driver conforming to DatabaseDriver directly (no plugin layer).
6-
//
7-
81
import CLibPQ
92
import Foundation
103
import TableProDatabase

TableProMobile/TableProMobile/Drivers/RedisDriver.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
//
2-
// RedisDriver.swift
3-
// TableProMobile
4-
//
5-
// Redis driver conforming to DatabaseDriver directly (no plugin layer).
6-
// Maps Redis key-value concepts to the relational DatabaseDriver protocol.
7-
//
8-
91
import CRedis
102
import Foundation
113
import os

TableProMobile/TableProMobile/Drivers/SQLiteDriver.swift

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
//
2-
// SQLiteDriver.swift
3-
// TableProMobile
4-
//
5-
// SQLite driver conforming to DatabaseDriver directly (no plugin layer).
6-
//
7-
81
import Foundation
92
import SQLite3
103
import TableProDatabase

TableProMobile/TableProMobile/Helpers/AppError.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
//
2-
// AppError.swift
3-
// TableProMobile
4-
//
5-
61
import Foundation
72
import os
83
import TableProModels

TableProMobile/TableProMobile/Helpers/ClipboardExporter.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
//
2-
// ClipboardExporter.swift
3-
// TableProMobile
4-
//
5-
61
import Foundation
72
import TableProModels
83
import UIKit

TableProMobile/TableProMobile/Helpers/GroupPersistence.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
//
2-
// GroupPersistence.swift
3-
// TableProMobile
4-
//
5-
61
import Foundation
72
import TableProModels
83

0 commit comments

Comments
 (0)