gnunet-svn
[Top][All Lists]
Advanced

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

[taler-merchant-terminal-android] 04/08: Show snackbars at the top of th


From: gnunet
Subject: [taler-merchant-terminal-android] 04/08: Show snackbars at the top of the order, not at the bottom
Date: Tue, 25 Feb 2020 17:07:43 +0100

This is an automated email from the git hooks/post-receive script.

torsten-grote pushed a commit to branch master
in repository merchant-terminal-android.

commit bde95551fcacbc6cec2881fe45ca27a54aaed07e
Author: Torsten Grote <address@hidden>
AuthorDate: Tue Feb 25 10:53:36 2020 -0300

    Show snackbars at the top of the order, not at the bottom
---
 .../java/net/taler/merchantpos/MainActivity.kt     |  2 +-
 .../java/net/taler/merchantpos/MerchantHistory.kt  |  2 +-
 app/src/main/java/net/taler/merchantpos/Utils.kt   | 15 ++++++++++++++
 .../merchantpos/config/MerchantConfigFragment.kt   |  7 ++++---
 .../merchantpos/payment/PaymentSuccessFragment.kt  |  4 ++--
 .../merchantpos/payment/ProcessPaymentFragment.kt  |  6 +++---
 app/src/main/res/layout/app_bar_main.xml           | 24 +++++++++++++++-------
 app/src/main/res/layout/content_main.xml           | 24 ----------------------
 app/src/main/res/values/strings.xml                |  1 +
 9 files changed, 44 insertions(+), 41 deletions(-)

diff --git a/app/src/main/java/net/taler/merchantpos/MainActivity.kt 
b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
index 4206b51..36c1211 100644
--- a/app/src/main/java/net/taler/merchantpos/MainActivity.kt
+++ b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
@@ -53,7 +53,7 @@ class MainActivity : AppCompatActivity(), 
OnNavigationItemSelectedListener {
         )
 
         val navHostFragment =
-            supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as 
NavHostFragment
+            supportFragmentManager.findFragmentById(R.id.navHostFragment) as 
NavHostFragment
         nav = navHostFragment.navController
         toolbar.setupWithNavController(nav, appBarConfiguration)
     }
diff --git a/app/src/main/java/net/taler/merchantpos/MerchantHistory.kt 
b/app/src/main/java/net/taler/merchantpos/MerchantHistory.kt
index c21a8a7..27f8a98 100644
--- a/app/src/main/java/net/taler/merchantpos/MerchantHistory.kt
+++ b/app/src/main/java/net/taler/merchantpos/MerchantHistory.kt
@@ -120,7 +120,7 @@ class MerchantHistory : Fragment() {
 
     private fun onNetworkError() {
         this.isLoading.value = false
-        Snackbar.make(view!!, "Network Error", LENGTH_SHORT).show()
+        Snackbar.make(view!!, R.string.error_network, LENGTH_SHORT).show()
     }
 
 }
diff --git a/app/src/main/java/net/taler/merchantpos/Utils.kt 
b/app/src/main/java/net/taler/merchantpos/Utils.kt
index 6ad459d..948120e 100644
--- a/app/src/main/java/net/taler/merchantpos/Utils.kt
+++ b/app/src/main/java/net/taler/merchantpos/Utils.kt
@@ -3,9 +3,13 @@ package net.taler.merchantpos
 import android.view.View
 import android.view.View.INVISIBLE
 import android.view.View.VISIBLE
+import androidx.annotation.StringRes
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MediatorLiveData
 import androidx.lifecycle.Observer
+import 
com.google.android.material.snackbar.BaseTransientBottomBar.ANIMATION_MODE_FADE
+import com.google.android.material.snackbar.BaseTransientBottomBar.Duration
+import com.google.android.material.snackbar.Snackbar.make
 
 object Utils {
 
@@ -62,6 +66,17 @@ fun View.fadeOut(endAction: () -> Unit = {}) {
     }.start()
 }
 
+fun topSnackbar(view: View, text: CharSequence, @Duration duration: Int) {
+    make(view, text, duration)
+        .setAnimationMode(ANIMATION_MODE_FADE)
+        .setAnchorView(R.id.navHostFragment)
+        .show()
+}
+
+fun topSnackbar(view: View, @StringRes resId: Int, @Duration duration: Int) {
+    topSnackbar(view, view.resources.getText(resId), duration)
+}
+
 class CombinedLiveData<T, K, S>(
     source1: LiveData<T>,
     source2: LiveData<K>,
diff --git 
a/app/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt 
b/app/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt
index 8b4f5a8..c6e60d3 100644
--- a/app/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt
+++ b/app/src/main/java/net/taler/merchantpos/config/MerchantConfigFragment.kt
@@ -11,11 +11,12 @@ import androidx.fragment.app.Fragment
 import androidx.fragment.app.activityViewModels
 import androidx.lifecycle.Observer
 import androidx.navigation.fragment.findNavController
+import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG
 import com.google.android.material.snackbar.Snackbar
-import com.google.android.material.snackbar.Snackbar.LENGTH_SHORT
 import kotlinx.android.synthetic.main.fragment_merchant_config.*
 import net.taler.merchantpos.MainViewModel
 import net.taler.merchantpos.R
+import net.taler.merchantpos.topSnackbar
 
 /**
  * Fragment that displays merchant settings.
@@ -93,14 +94,14 @@ class MerchantConfigFragment : Fragment() {
     private fun onConfigReceived(currency: String) {
         onResultReceived()
         updateView()
-        Snackbar.make(view!!, "Changed to new $currency merchant", 
LENGTH_SHORT).show()
+        topSnackbar(view!!, getString(R.string.config_changed, currency), 
LENGTH_LONG)
         findNavController().navigate(R.id.order)
     }
 
     private fun onNetworkError(authError: Boolean) {
         onResultReceived()
         val res = if (authError) R.string.config_auth_error else 
R.string.config_error
-        Snackbar.make(view!!, res, LENGTH_SHORT).show()
+        Snackbar.make(view!!, res, LENGTH_LONG).show()
     }
 
     private fun onResultReceived() {
diff --git 
a/app/src/main/java/net/taler/merchantpos/payment/PaymentSuccessFragment.kt 
b/app/src/main/java/net/taler/merchantpos/payment/PaymentSuccessFragment.kt
index 176b6fc..e3bfa11 100644
--- a/app/src/main/java/net/taler/merchantpos/payment/PaymentSuccessFragment.kt
+++ b/app/src/main/java/net/taler/merchantpos/payment/PaymentSuccessFragment.kt
@@ -5,7 +5,7 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.fragment.app.Fragment
-import androidx.navigation.findNavController
+import androidx.navigation.fragment.findNavController
 import kotlinx.android.synthetic.main.fragment_payment_success.*
 import net.taler.merchantpos.R
 
@@ -21,7 +21,7 @@ class PaymentSuccessFragment : Fragment() {
     override fun onActivityCreated(savedInstanceState: Bundle?) {
         super.onActivityCreated(savedInstanceState)
         button_success_back.setOnClickListener {
-            
requireActivity().findNavController(R.id.nav_host_fragment).navigateUp()
+            findNavController().navigateUp()
         }
     }
 }
diff --git 
a/app/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt 
b/app/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt
index 26234db..6965e56 100644
--- a/app/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt
+++ b/app/src/main/java/net/taler/merchantpos/payment/ProcessPaymentFragment.kt
@@ -10,7 +10,6 @@ import androidx.fragment.app.activityViewModels
 import androidx.lifecycle.Observer
 import androidx.navigation.fragment.findNavController
 import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG
-import com.google.android.material.snackbar.Snackbar
 import kotlinx.android.synthetic.main.fragment_process_payment.*
 import net.taler.merchantpos.MainViewModel
 import net.taler.merchantpos.NfcManager.Companion.hasNfc
@@ -18,6 +17,7 @@ import net.taler.merchantpos.QrCodeManager.makeQrCode
 import net.taler.merchantpos.R
 import net.taler.merchantpos.fadeIn
 import net.taler.merchantpos.fadeOut
+import net.taler.merchantpos.topSnackbar
 
 class ProcessPaymentFragment : Fragment() {
 
@@ -45,7 +45,7 @@ class ProcessPaymentFragment : Fragment() {
 
     private fun onPaymentStateChanged(payment: Payment) {
         if (payment.error) {
-            Snackbar.make(view!!, R.string.error_network, LENGTH_LONG).show()
+            topSnackbar(view!!, R.string.error_network, LENGTH_LONG)
             findNavController().navigateUp()
             return
         }
@@ -72,7 +72,7 @@ class ProcessPaymentFragment : Fragment() {
     private fun onPaymentCancel() {
         paymentManager.cancelPayment()
         findNavController().navigateUp()
-        Snackbar.make(view!!, R.string.payment_canceled, LENGTH_LONG).show()
+        topSnackbar(view!!, R.string.payment_canceled, LENGTH_LONG)
     }
 
 }
diff --git a/app/src/main/res/layout/app_bar_main.xml 
b/app/src/main/res/layout/app_bar_main.xml
index 01c4602..a4ddb39 100644
--- a/app/src/main/res/layout/app_bar_main.xml
+++ b/app/src/main/res/layout/app_bar_main.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.coordinatorlayout.widget.CoordinatorLayout
-        xmlns:android="http://schemas.android.com/apk/res/android";
+<androidx.coordinatorlayout.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android";
         xmlns:app="http://schemas.android.com/apk/res-auto";
         xmlns:tools="http://schemas.android.com/tools";
         android:layout_width="match_parent"
@@ -8,8 +7,8 @@
         tools:context=".MainActivity">
 
     <com.google.android.material.appbar.AppBarLayout
-            android:layout_height="wrap_content"
             android:layout_width="match_parent"
+            android:layout_height="wrap_content"
             android:theme="@style/AppTheme.AppBarOverlay">
 
         <androidx.appcompat.widget.Toolbar
@@ -17,11 +16,22 @@
                 android:layout_width="match_parent"
                 android:layout_height="?attr/actionBarSize"
                 android:background="?attr/colorPrimary"
-                app:popupTheme="@style/AppTheme.PopupOverlay"/>
+                app:popupTheme="@style/AppTheme.PopupOverlay" />
 
     </com.google.android.material.appbar.AppBarLayout>
 
-    <include layout="@layout/content_main"/>
-
+    <androidx.fragment.app.FragmentContainerView
+            android:id="@+id/navHostFragment"
+            android:name="androidx.navigation.fragment.NavHostFragment"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            app:defaultNavHost="true"
+            app:layout_insetEdge="top"
+            app:layout_behavior="@string/appbar_scrolling_view_behavior"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:navGraph="@navigation/nav_graph" />
 
-</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/app/src/main/res/layout/content_main.xml 
b/app/src/main/res/layout/content_main.xml
deleted file mode 100644
index a87cf40..0000000
--- a/app/src/main/res/layout/content_main.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android";
-        xmlns:tools="http://schemas.android.com/tools";
-        xmlns:app="http://schemas.android.com/apk/res-auto";
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        app:layout_behavior="@string/appbar_scrolling_view_behavior"
-        tools:showIn="@layout/app_bar_main"
-        tools:context=".MainActivity">
-
-    <androidx.fragment.app.FragmentContainerView
-            android:id="@+id/nav_host_fragment"
-            android:name="androidx.navigation.fragment.NavHostFragment"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            app:layout_constraintLeft_toLeftOf="parent"
-            app:layout_constraintRight_toRightOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:defaultNavHost="true"
-            app:navGraph="@navigation/nav_graph" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/values/strings.xml 
b/app/src/main/res/values/strings.xml
index d9f9a1a..02b3101 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -26,6 +26,7 @@
     <string name="config_fetching">Fetching Configuration…</string>
     <string name="config_save_password">Remember Password</string>
     <string name="config_forget_password">Forget</string>
+    <string name="config_changed">Changed to new merchant using %s</string>
 
     <string name="payment_intro_nfc">Please scan QR Code or use NFC to 
pay</string>
     <string name="payment_intro">Please scan QR Code to pay</string>

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

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