[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-ios] 08/11: AboutView
From: |
gnunet |
Subject: |
[taler-taler-ios] 08/11: AboutView |
Date: |
Sat, 21 Oct 2023 21:10:06 +0200 |
This is an automated email from the git hooks/post-receive script.
marc-stibane pushed a commit to branch master
in repository taler-ios.
commit fba7fcf6cc4b2cbab2d11d430de13288803ab57f
Author: Marc Stibane <marc@taler.net>
AuthorDate: Sat Oct 21 20:59:28 2023 +0200
AboutView
---
TalerWallet.xcodeproj/project.pbxproj | 6 ++
TalerWallet1/Controllers/DebugViewC.swift | 7 +-
TalerWallet1/Views/Settings/AboutView.swift | 111 +++++++++++++++++++++++++
TalerWallet1/Views/Settings/SettingsView.swift | 11 ---
4 files changed, 121 insertions(+), 14 deletions(-)
diff --git a/TalerWallet.xcodeproj/project.pbxproj
b/TalerWallet.xcodeproj/project.pbxproj
index cfa1c37..cbefbd1 100644
--- a/TalerWallet.xcodeproj/project.pbxproj
+++ b/TalerWallet.xcodeproj/project.pbxproj
@@ -231,6 +231,8 @@
4EBA56412A7FF5200084948B /* PayTemplateView.swift in Sources */
= {isa = PBXBuildFile; fileRef = 4EBA56402A7FF5200084948B /*
PayTemplateView.swift */; };
4EBA82AB2A3EB2CA00E5F39A /* TransactionButton.swift in Sources
*/ = {isa = PBXBuildFile; fileRef = 4EBA82AA2A3EB2CA00E5F39A /*
TransactionButton.swift */; };
4EBA82AD2A3F580500E5F39A /* QuiteSomeCoins.swift in Sources */
= {isa = PBXBuildFile; fileRef = 4EBA82AC2A3F580500E5F39A /*
QuiteSomeCoins.swift */; };
+ 4EC400892AE3E7E800DF72C7 /* AboutView.swift in Sources */ =
{isa = PBXBuildFile; fileRef = 4EC400882AE3E7E800DF72C7 /* AboutView.swift */;
};
+ 4EC4008A2AE3E7E800DF72C7 /* AboutView.swift in Sources */ =
{isa = PBXBuildFile; fileRef = 4EC400882AE3E7E800DF72C7 /* AboutView.swift */;
};
4EC90C782A1B528B0071DC58 /* ExchangeSectionView.swift in
Sources */ = {isa = PBXBuildFile; fileRef = 4EC90C772A1B528B0071DC58 /*
ExchangeSectionView.swift */; };
4ECB62802A0BA6DF004ABBB7 /* Model+P2P.swift in Sources */ =
{isa = PBXBuildFile; fileRef = 4ECB627F2A0BA6DF004ABBB7 /* Model+P2P.swift */;
};
4ECB62822A0BB01D004ABBB7 /* SelectDays.swift in Sources */ =
{isa = PBXBuildFile; fileRef = 4ECB62812A0BB01D004ABBB7 /* SelectDays.swift */;
};
@@ -399,6 +401,7 @@
4EBA56402A7FF5200084948B /* PayTemplateView.swift */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path
= PayTemplateView.swift; sourceTree = "<group>"; };
4EBA82AA2A3EB2CA00E5F39A /* TransactionButton.swift */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path
= TransactionButton.swift; sourceTree = "<group>"; };
4EBA82AC2A3F580500E5F39A /* QuiteSomeCoins.swift */ = {isa =
PBXFileReference; lastKnownFileType = sourcecode.swift; path =
QuiteSomeCoins.swift; sourceTree = "<group>"; };
+ 4EC400882AE3E7E800DF72C7 /* AboutView.swift */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path
= AboutView.swift; sourceTree = "<group>"; };
4EC90C772A1B528B0071DC58 /* ExchangeSectionView.swift */ = {isa
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift;
path = ExchangeSectionView.swift; sourceTree = "<group>"; };
4ECB627F2A0BA6DF004ABBB7 /* Model+P2P.swift */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path
= "Model+P2P.swift"; sourceTree = "<group>"; };
4ECB62812A0BB01D004ABBB7 /* SelectDays.swift */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path
= SelectDays.swift; sourceTree = "<group>"; };
@@ -643,6 +646,7 @@
isa = PBXGroup;
children = (
4EB095252989CBFE0043A8A1 /* SettingsView.swift
*/,
+ 4EC400882AE3E7E800DF72C7 /* AboutView.swift */,
4EB095262989CBFE0043A8A1 /* SettingsItem.swift
*/,
4EB0954B2989CBFE0043A8A1 /* Pending */,
);
@@ -1037,6 +1041,7 @@
4E605DB72AB05E48002FB9A7 /*
View+flippedDirection.swift in Sources */,
4E983C2C2ADC416800FA9CC5 /*
View+needVStack.swift in Sources */,
4E3EAE272A990778009F1BE8 /* WalletColors.swift
in Sources */,
+ 4EC400892AE3E7E800DF72C7 /* AboutView.swift in
Sources */,
4E3EAE282A990778009F1BE8 /*
BalancesListView.swift in Sources */,
4E3EAE292A990778009F1BE8 /*
WalletBackendError.swift in Sources */,
4E3EAE2A2A990778009F1BE8 /*
PendingRowView.swift in Sources */,
@@ -1142,6 +1147,7 @@
4E605DB82AB05E48002FB9A7 /*
View+flippedDirection.swift in Sources */,
4E983C2D2ADC416800FA9CC5 /*
View+needVStack.swift in Sources */,
4E9320432A14F6EA00A87B0E /* WalletColors.swift
in Sources */,
+ 4EC4008A2AE3E7E800DF72C7 /* AboutView.swift in
Sources */,
4EB0955D2989CBFE0043A8A1 /*
BalancesListView.swift in Sources */,
4EB095212989CBCB0043A8A1 /*
WalletBackendError.swift in Sources */,
4EB0955E2989CBFE0043A8A1 /*
PendingRowView.swift in Sources */,
diff --git a/TalerWallet1/Controllers/DebugViewC.swift
b/TalerWallet1/Controllers/DebugViewC.swift
index 78ef45b..990f53a 100644
--- a/TalerWallet1/Controllers/DebugViewC.swift
+++ b/TalerWallet1/Controllers/DebugViewC.swift
@@ -27,9 +27,10 @@ import os.log
// MARK: - Main View
public let VIEW_EMPTY = 10 // 10
WalletEmptyView
public let VIEW_BALANCES = VIEW_EMPTY + 1 // 11
BalancesListView
-public let VIEW_SETTINGS = VIEW_BALANCES + 1 // 12
SettingsView
-public let VIEW_PENDING = VIEW_SETTINGS + 1 // 13
PendingOpsListView
-public let VIEW_EXCHANGES = VIEW_PENDING + 1 // 14
ExchangeListView
+public let VIEW_EXCHANGES = VIEW_BALANCES + 1 // 12
ExchangeListView
+public let VIEW_SETTINGS = VIEW_EXCHANGES + 1 // 13
SettingsView
+public let VIEW_ABOUT = VIEW_SETTINGS + 1 // 14
AboutView
+public let VIEW_PENDING = VIEW_ABOUT + 1 // 15
PendingOpsListView
// MARK: Transactions
public let VIEW_TRANSACTIONLIST = VIEW_EMPTY + 10 // 20
TransactionsListView
diff --git a/TalerWallet1/Views/Settings/AboutView.swift
b/TalerWallet1/Views/Settings/AboutView.swift
new file mode 100644
index 0000000..e6de724
--- /dev/null
+++ b/TalerWallet1/Views/Settings/AboutView.swift
@@ -0,0 +1,111 @@
+/*
+ * This file is part of GNU Taler, ©2022-23 Taler Systems S.A.
+ * See LICENSE.md
+ */
+import SwiftUI
+import taler_swift
+import SymLog
+
+struct AboutView: View {
+ private let symLog = SymLogV(0)
+ let stack: CallStack
+ let navTitle: String
+
+ @EnvironmentObject private var controller: Controller
+#if DEBUG
+ @AppStorage("developerMode") var developerMode: Bool = true
+#else
+ @AppStorage("developerMode") var developerMode: Bool = false
+#endif
+ @AppStorage("myListStyle") var myListStyle: MyListStyle = .automatic
+ @AppStorage("iconOnly") var iconOnly: Bool = false
+
+#if TABBAR // Taler Wallet
+#else // GNU Taler
+ var hamburgerAction: () -> Void
+#endif
+
+ @EnvironmentObject private var model: WalletModel
+
+ @State private var rotationEnabled = false
+
+ @State private var listID = UUID()
+
+ var body: some View {
+#if DEBUG
+ let _ = Self._printChanges()
+ let _ = symLog.vlog() // just to get the # to compare it with
.onAppear & onDisappear
+#endif
+ let walletCore = WalletCore.shared
+ Group {
+ List {
+// VStack {
+ HStack {
+ Spacer()
+ RotatingTaler(size: 100, rotationEnabled:
$rotationEnabled)
+ .onTapGesture(count: 2) {
+ rotationEnabled.toggle()
+ }
+ .onLongPressGesture(minimumDuration: 0.3) {
+
UIApplication.shared.open(URL(string:"https://taler.net")!, options: [:])
+ }
+ Spacer()
+ }
+ SettingsItem(name: "App Version", id1: "app") {
+ Text(verbatim:
"\(Bundle.main.releaseVersionNumberPretty)")
+ }
+ SettingsItem(name: "Wallet Core Version", id1:
"wallet-core") {
+ Text(verbatim: "\(walletCore.versionInfo!.version)")
+ }
+ SettingsItem(name: "Wallet Core DevMode", id1: "devMode") {
+ Text(verbatim: "\(walletCore.versionInfo!.devMode ?
"YES" : "NO")")
+ }
+ SettingsItem(name: "Supported Exchange Versions", id1:
"exchange") {
+ Text(verbatim: "\(walletCore.versionInfo!.exchange)")
+ }
+ SettingsItem(name: "Supported Merchant Versions", id1:
"merchant") {
+ Text(verbatim: "\(walletCore.versionInfo!.merchant)")
+ }
+ SettingsItem(name: "Used Bank", id1: "bank") {
+ Text(verbatim: "\(walletCore.versionInfo!.bank)")
+ }
+// } // App version info
+ }
+ .id(listID)
+ .listStyle(myListStyle.style).anyView
+ }
+ .navigationTitle(navTitle)
+ .onAppear() {
+ DebugViewC.shared.setViewID(VIEW_ABOUT, stack: stack.push())
+ }
+ .onDisappear() {
+ }
+ .task {
+ try? await Task.sleep(nanoseconds: 1_000_000_000 * UInt64(5))
+ rotationEnabled.toggle()
+ }
+ }
+}
+extension Bundle {
+ var releaseVersionNumber: String? {
+ return infoDictionary?["CFBundleShortVersionString"] as? String
+ }
+ var buildVersionNumber: String? {
+ return infoDictionary?["CFBundleVersion"] as? String
+ }
+ var releaseVersionNumberPretty: String {
+ return "v\(releaseVersionNumber ?? "1.0.0")"
+ }
+}
+// MARK: -
+#if DEBUG
+struct AboutView_Previews: PreviewProvider {
+ static var previews: some View {
+#if TABBAR // Taler Wallet
+ AboutView(stack: CallStack("Preview"), navTitle: "About")
+#else // GNU Taler
+ SettingsView(stack: CallStack("Preview"), navTitle: "About") { }
+#endif
+ }
+}
+#endif
diff --git a/TalerWallet1/Views/Settings/SettingsView.swift
b/TalerWallet1/Views/Settings/SettingsView.swift
index 3bf5b69..37a9b48 100644
--- a/TalerWallet1/Views/Settings/SettingsView.swift
+++ b/TalerWallet1/Views/Settings/SettingsView.swift
@@ -287,17 +287,6 @@ struct SettingsView: View {
#endif
}
}
-extension Bundle {
- var releaseVersionNumber: String? {
- return infoDictionary?["CFBundleShortVersionString"] as? String
- }
- var buildVersionNumber: String? {
- return infoDictionary?["CFBundleVersion"] as? String
- }
- var releaseVersionNumberPretty: String {
- return "v\(releaseVersionNumber ?? "1.0.0")"
- }
-}
// MARK: -
#if DEBUG
struct SettingsView_Previews: PreviewProvider {
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-ios] branch master updated (adfc919 -> a0c6bdb), gnunet, 2023/10/21
- [taler-taler-ios] 10/11: Use CurrencyFormatter for Balance, gnunet, 2023/10/21
- [taler-taler-ios] 11/11: Minimalistic, gnunet, 2023/10/21
- [taler-taler-ios] 06/11: listExchangesForScopedCurrency, gnunet, 2023/10/21
- [taler-taler-ios] 04/11: cleanup, gnunet, 2023/10/21
- [taler-taler-ios] 01/11: CurrencySpecification, gnunet, 2023/10/21
- [taler-taler-ios] 03/11: ExchangeListItem, gnunet, 2023/10/21
- [taler-taler-ios] 05/11: getCurrencyInfo(scope), gnunet, 2023/10/21
- [taler-taler-ios] 02/11: HTTPError, gnunet, 2023/10/21
- [taler-taler-ios] 09/11: Call AboutView, gnunet, 2023/10/21
- [taler-taler-ios] 08/11: AboutView,
gnunet <=
- [taler-taler-ios] 07/11: cache currency infos, gnunet, 2023/10/21