commit 67566284d6b30a74281c8b6f4ec1a3e039adf38d
parent 39c1bf285e0abf7ed49ec49c3e71d9ee2ec629ef
Author: Marc Stibane <marc@taler.net>
Date: Thu, 24 Apr 2025 05:59:33 +0200
oimMode only for GNU Taler, not for Taler Wallet
Diffstat:
9 files changed, 21 insertions(+), 33 deletions(-)
diff --git a/TalerWallet1/Controllers/Controller.swift b/TalerWallet1/Controllers/Controller.swift
@@ -55,9 +55,10 @@ class Controller: ObservableObject {
@Published var currencyTicker: Int = 0 // updates whenever a new currency is added
@Published var isConnected: Bool = true
- @Published var oimModeEnabled: Bool = false
+#if OIM
@Published var oimModeActive: Bool = false
@Published var oimSheetActive: Bool = false
+#endif
@Published var diagnosticModeEnabled: Bool = false
@AppStorage("useHaptics") var useHaptics: Bool = true // extension mustn't define this, so it must be here
@AppStorage("playSoundsI") var playSoundsI: Int = 1 // extension mustn't define this, so it must be here
@@ -73,22 +74,18 @@ class Controller: ObservableObject {
private let monitor = NWPathMonitor()
- private var oimModeObservation: NSKeyValueObservation?
private var diagnosticModeObservation: NSKeyValueObservation?
-
+#if OIM
func setOIMmode(for newOrientation: UIDeviceOrientation, _ sheetActive: Bool) {
let isLandscapeRight = newOrientation == .landscapeRight
- oimSheetActive = sheetActive && oimModeEnabled && isLandscapeRight
- oimModeActive = sheetActive ? false
- : oimModeEnabled ? isLandscapeRight
- : false
+ oimSheetActive = sheetActive && isLandscapeRight
+ oimModeActive = sheetActive ? false
+ : isLandscapeRight
}
+#endif
func startObserving() {
let defaults = UserDefaults.standard
- self.oimModeObservation = defaults.observe(\.oimModeEnabled, options: [.new, .old, .prior, .initial]) { [weak self](_, _) in
- self?.oimModeEnabled = UserDefaults.standard.oimModeEnabled
- }
self.diagnosticModeObservation = defaults.observe(\.diagnosticModeEnabled, options: [.new, .old,.prior,.initial]) { [weak self](_, _) in
self?.diagnosticModeEnabled = UserDefaults.standard.diagnosticModeEnabled
}
diff --git a/TalerWallet1/Helper/UserDefaults+oimMode.swift b/TalerWallet1/Helper/UserDefaults+oimMode.swift
@@ -9,12 +9,6 @@ import Foundation
// https://developer.apple.com/forums/thread/764675?answerId=805946022#805946022
extension UserDefaults {
- private static let oimModeEnabledKey = "oimModeEnabled"
- @objc dynamic var oimModeEnabled: Bool {
- get { bool(forKey: UserDefaults.oimModeEnabledKey) }
- set { set(newValue, forKey: UserDefaults.oimModeEnabledKey) }
- }
-
private static let diagnosticModeEnabledKey = "diagnosticModeEnabled"
@objc dynamic var diagnosticModeEnabled: Bool {
get { bool(forKey: UserDefaults.diagnosticModeEnabledKey) }
diff --git a/TalerWallet1/Settings.bundle/Root.plist b/TalerWallet1/Settings.bundle/Root.plist
@@ -16,16 +16,6 @@
<key>DefaultValue</key>
<false/>
</dict>
- <dict>
- <key>Type</key>
- <string>PSToggleSwitchSpecifier</string>
- <key>Title</key>
- <string>OIM Mode</string>
- <key>Key</key>
- <string>oimModeEnabled</string>
- <key>DefaultValue</key>
- <false/>
- </dict>
</array>
</dict>
</plist>
diff --git a/TalerWallet1/Views/Actions/Peer2peer/P2PSubjectV.swift b/TalerWallet1/Views/Actions/Peer2peer/P2PSubjectV.swift
@@ -176,6 +176,7 @@ struct P2PSubjectV: View {
}
scrollView
+#if OIM
.overlay {
if controller.oimModeActive {
OIMSubjectView(stack: stack.push(),
@@ -185,6 +186,7 @@ struct P2PSubjectV: View {
.environmentObject(NamespaceWrapper(namespace)) // keep OIMviews apart
}
}
+#endif
}
}
// MARK: -
diff --git a/TalerWallet1/Views/Actions/Peer2peer/SendAmountV.swift b/TalerWallet1/Views/Actions/Peer2peer/SendAmountV.swift
@@ -104,6 +104,7 @@ struct SendAmountV: View {
.background(WalletColors().backgroundColor.edgesIgnoringSafeArea(.all))
.task { await viewDidLoad() }
.task(id: balanceIndex + (1000 * controller.currencyTicker)) { await newBalance() }
+#if OIM
.overlay {
if controller.oimModeActive {
OIMEditView(stack: stack.push(),
@@ -114,6 +115,7 @@ struct SendAmountV: View {
.environmentObject(NamespaceWrapper(namespace)) // keep OIMviews apart
}
}
+#endif
if #available(iOS 16.0, *) {
if #available(iOS 16.4, *) {
scrollView.toolbar(.hidden, for: .tabBar)
diff --git a/TalerWallet1/Views/Balances/BalancesListView.swift b/TalerWallet1/Views/Balances/BalancesListView.swift
@@ -69,6 +69,7 @@ struct BalancesListView: View {
await refresh()
}
}
+#if OIM
.overlay {
if controller.oimModeActive {
let balance = controller.balances.first
@@ -79,6 +80,7 @@ struct BalancesListView: View {
.environmentObject(NamespaceWrapper(namespace)) // keep OIMviews apart
}
}
+#endif
}
}
}
diff --git a/TalerWallet1/Views/Main/MainView.swift b/TalerWallet1/Views/Main/MainView.swift
@@ -153,11 +153,13 @@ struct MainView: View {
} // iOS 15
}
}
+#if OIM
.onRotate { newOrientation in
let isSheetActive = showActionSheet || showScanner || showUrlSheet
controller.setOIMmode(for: newOrientation, isSheetActive)
tabBarModel.oimActive = controller.oimModeActive ? 1 : 0
}
+#endif
.onOpenURL { url in
symLog.log(".onOpenURL: \(url)")
// will be called on a taler:// scheme either
diff --git a/TalerWallet1/Views/Settings/SettingsView.swift b/TalerWallet1/Views/Settings/SettingsView.swift
@@ -43,7 +43,6 @@ struct SettingsView: View {
@AppStorage("minimalistic") var minimalistic: Bool = false
@AppStorage("localConsoleL") var localConsoleL: Bool = false // for Logs
@AppStorage("localConsoleO") var localConsoleO: Int = 0 // for Observability
- @AppStorage("sierraLeone") var sierraLeone: Bool = false
@AppStorage("oimTwoRows") var oimTwoRows: Bool = false
@State private var checkDisabled = false
@@ -147,12 +146,10 @@ struct SettingsView: View {
consoleManager.isVisible = localConsoleO != 0 || localConsoleL
consoleManager.clear()
}
- if controller.oimModeEnabled {
- SettingsToggle(name: String(localized: "Two rows"), value: $oimTwoRows, id1: "oimTwoRows",
- description: minimalistic ? nil : String(localized: "OIM denomination layout"))
- SettingsToggle(name: String(localized: "Sierra Leone"), value: $sierraLeone, id1: "sierraLeone",
- description: minimalistic ? nil : String(localized: "Currency to be used for OIM"))
- }
+#if OIM
+ SettingsToggle(name: String(localized: "Two rows"), value: $oimTwoRows, id1: "oimTwoRows",
+ description: minimalistic ? nil : String(localized: "OIM denomination layout"))
+#endif
#if DEBUG
let showDiagnostic = diagnosticModeEnabled
#else
diff --git a/TalerWallet1/Views/Sheets/Payment/PaymentView.swift b/TalerWallet1/Views/Sheets/Payment/PaymentView.swift
@@ -298,11 +298,13 @@ struct PaymentView: View, Sendable {
}
symLog.log("Info(for: \(currency)) loaded: \(currencyInfo.name)")
}
+#if OIM
.overlay {
if controller.oimSheetActive {
OIMPayView(stack: stack.push(), scope: firstScope, amount: effective)
}
}
+#endif
} else {
LoadingView(stack: stack.push(), scopeInfo: nil, message: url.host)
.task { await viewDidLoad() }