gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-ios] 08/54: Preparations for localization + accessability


From: gnunet
Subject: [taler-taler-ios] 08/54: Preparations for localization + accessability
Date: Fri, 30 Jun 2023 22:33:40 +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 d30fe6eae6bd19ffbe710c5f676fb76dcc1c71ff
Author: Marc Stibane <marc@taler.net>
AuthorDate: Sat Jun 17 14:54:36 2023 +0200

    Preparations for localization + accessability
---
 TalerWallet1/Views/Main/MainView.swift    | 36 +++++++++++++++++++------------
 TalerWallet1/Views/Main/SideBarView.swift | 31 +++++++-------------------
 2 files changed, 30 insertions(+), 37 deletions(-)

diff --git a/TalerWallet1/Views/Main/MainView.swift 
b/TalerWallet1/Views/Main/MainView.swift
index e6ce3f1..841346a 100644
--- a/TalerWallet1/Views/Main/MainView.swift
+++ b/TalerWallet1/Views/Main/MainView.swift
@@ -20,7 +20,7 @@ struct MainView: View {
     @State private var sheetPresented = false
     @State private var urlToOpen: URL? = nil
 
-    func sheetDismiss() -> Void {
+    func sheetDismissed() -> Void {
         symLog.log("sheet dismiss")
     }
     var body: some View {
@@ -51,7 +51,7 @@ struct MainView: View {
                 DebugViewV()
                     .id("ViewID")
             }
-            .sheet(item: $urlToOpen, onDismiss: sheetDismiss) { url in
+            .sheet(item: $urlToOpen, onDismiss: sheetDismissed) { url in
                 let sheet = AnyView(URLSheet(urlToOpen: url))
                 Sheet(sheetView: sheet)
             }
@@ -63,25 +63,34 @@ extension MainView {
         let symLog: SymLogV?
 
         @State var sidebarVisible: Bool = false
-        @State var currentView: Int = 0
+        func hamburgerAction() {
+            sidebarVisible = !sidebarVisible
+        }
 
+        let balances = String(localized: "Balances")
+        let exchanges = String(localized: "Exchanges")
+        let settings = String(localized: "Settings")
         var views: [SidebarItem] {[
-            SidebarItem(name: String(localized: "Balances"),
+            SidebarItem(name: balances,
                     sysImage: "creditcard.fill",        // TODO: Wallet Icon
-                        view: AnyView(BalancesListView(model: 
BalancesModel.model(currency: "*"))
-                                      { sidebarVisible = !sidebarVisible }     
// hamburgerAction
+                        view: AnyView(BalancesListView(navTitle: balances,
+                                                          model: 
BalancesModel.model(currency: "*"),
+                                                hamburgerAction: 
hamburgerAction)
                                      )),
-            SidebarItem(name: String(localized: "Exchanges"),
+            SidebarItem(name: exchanges,
                     sysImage: "building.columns",
-                        view: AnyView(ExchangeListView(model: 
ExchangeModel.model())
-                                      { sidebarVisible = !sidebarVisible }     
// hamburgerAction
+                        view: AnyView(ExchangeListView(navTitle: exchanges,
+                                                          model: 
ExchangeModel.model(),
+                                                hamburgerAction: 
hamburgerAction)
                                      )),
-            SidebarItem(name: String(localized: "Settings"),    // TODO: 
"About"?
+            SidebarItem(name: settings,    // TODO: "About"?
                     sysImage: "gearshape.fill",
-                        view: AnyView(SettingsView()
-                                      { sidebarVisible = !sidebarVisible }     
// hamburgerAction
+                        view: AnyView(SettingsView(navTitle: settings,
+                                            hamburgerAction: hamburgerAction)
                                      ))
         ]}
+        @State var currentView: Int = 0
+
         var body: some View {
 #if DEBUG
             let _ = Self._printChanges()
@@ -89,12 +98,11 @@ extension MainView {
 #endif
             ZStack(alignment: .leading) {
                 views[currentView].view
-                    .frame(maxWidth: .infinity, maxHeight: .infinity, 
alignment: .center)
                     .id(views[currentView].name)
+                    .frame(maxWidth: .infinity, maxHeight: .infinity, 
alignment: .center)
                     .transition(.backslide)
                 SideBarView(views: views, currentView: $currentView, 
sidebarVisible: $sidebarVisible)
             }
-                .background(WalletColors().backgroundColor)
         }
     }
 }
diff --git a/TalerWallet1/Views/Main/SideBarView.swift 
b/TalerWallet1/Views/Main/SideBarView.swift
index db50a2c..fe100f7 100644
--- a/TalerWallet1/Views/Main/SideBarView.swift
+++ b/TalerWallet1/Views/Main/SideBarView.swift
@@ -22,19 +22,19 @@ struct SideBarView: View {
     var body: some View {
         HStack {    // sideView left, clear dismiss target right
             EqualIconWidthDomain {
-                VStack {
-                    Spacer()
+                VStack(spacing: 10) {
+                    Text("GNU Taler")
+                        .font(.largeTitle).bold()
                     Image("taler-logo-2023-red")
                         .resizable()
                         .scaledToFit()
                         .frame(width: 100, height: 100)
-                        .padding(.top, 30)
+                        .accessibilityHidden(true)          // decorative logo
                     ForEach(0..<views.count, id: \.self) { i in
                         Button {
                             symLog.log("sidebar item \"\(views[i].name)\" 
selected")
                             sidebarVisible = false      // slide sidebar to 
the left
                             withAnimation(.easeInOut) {currentView = i}        
             // switch to the view the user selected
-//                            withAnimation(.easeInOut(duration: 0.5)) 
{currentView = i}      // switch to the view the user selected
                         } label: {
                             if let sysImage = views[i].sysImage {
                                 Label(views[i].name, systemImage: sysImage)
@@ -46,35 +46,19 @@ struct SideBarView: View {
                         }
                         .buttonStyle(.bordered)
                         .font(.title)
-                        //                        .padding(.vertical)
+                        .disabled(i == currentView)
+                        .accessibilityHidden(i == currentView)      // don't 
suggest the current item
                     }
                     Spacer()
-                    Spacer()
-                    Spacer()
-//                    Button {
-//                        symLog.log("Scan QR selected")
-//                        sidebarVisible = false      // slide sidebar to the 
left
-                        // TODO: show scan sheet
-//                    } label: {
-//                        Label("Scan QR", systemImage: "qrcode.viewfinder")
-//                            .frame(maxWidth: sidebarWidth, alignment: 
.leading)
-//                    }
-//                    .buttonStyle(.bordered)
-//                    .font(.title)
-//                    .padding(.bottom, 26.0)
                 }
                 .background(WalletColors().sideBackground)
                 .frame(width: sidebarWidth, alignment: .center)
                 // TODO: use leading instead of sidebarWidth for right-to-left
                 .offset(x: sidebarVisible ? 0 : -sidebarWidth)
-                .animation(.easeInOut, value: sidebarVisible)
-                .ignoresSafeArea()
                 //  .onAppear can NOT be used here, because we don't show or 
dismiss this view,
                 //   but only slide it left or right - so it is always there.
-                //   .onAppear {}    would be called once even before 
LaunchScreen is dismissed and then never again
-                
-                // this is just a target for a tap gesture outside the sidebar 
to dismiss it
             }
+            // this is just a target for a tap gesture outside the sidebar to 
dismiss it
             Color.clear
                 .frame(maxWidth: sidebarVisible ? .infinity : 0, maxHeight: 
.infinity, alignment: .leading)
                 // TODO: right-to-left ?
@@ -84,6 +68,7 @@ struct SideBarView: View {
                     sidebarVisible = false
                 }
         }
+        .animation(sidebarVisible ? .easeOut : .easeIn, value: sidebarVisible)
     }
 }
 // MARK: -

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]