diff options
author | Torsten Grote <t@grobox.de> | 2020-04-03 14:04:22 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-04-03 14:04:22 -0300 |
commit | bee652834f90fd8abd46b5adcf30adcc587984c2 (patch) | |
tree | 75c66b3ff5c3160ec063cf33d16400a69823a483 /wallet/src/main/res | |
parent | e52ee8f55326de402a7ad421c396eb6c81a79a68 (diff) | |
download | taler-android-bee652834f90fd8abd46b5adcf30adcc587984c2.tar.gz taler-android-bee652834f90fd8abd46b5adcf30adcc587984c2.tar.bz2 taler-android-bee652834f90fd8abd46b5adcf30adcc587984c2.zip |
[wallet] add detail page for withdrawal event in history
Also make history accessible by tapping the balance
Diffstat (limited to 'wallet/src/main/res')
-rw-r--r-- | wallet/src/main/res/layout/fragment_history_event.xml | 160 | ||||
-rw-r--r-- | wallet/src/main/res/layout/history_payment.xml | 24 | ||||
-rw-r--r-- | wallet/src/main/res/layout/history_receive.xml | 43 | ||||
-rw-r--r-- | wallet/src/main/res/layout/history_row.xml | 11 | ||||
-rw-r--r-- | wallet/src/main/res/layout/list_item_balance.xml | 1 | ||||
-rw-r--r-- | wallet/src/main/res/menu/history_event.xml | 23 | ||||
-rw-r--r-- | wallet/src/main/res/navigation/nav_graph.xml | 14 | ||||
-rw-r--r-- | wallet/src/main/res/values/strings.xml | 10 | ||||
-rw-r--r-- | wallet/src/main/res/values/styles.xml | 2 |
9 files changed, 242 insertions, 46 deletions
diff --git a/wallet/src/main/res/layout/fragment_history_event.xml b/wallet/src/main/res/layout/fragment_history_event.xml new file mode 100644 index 0000000..4224093 --- /dev/null +++ b/wallet/src/main/res/layout/fragment_history_event.xml @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + ~ This file is part of GNU Taler + ~ (C) 2020 Taler Systems S.A. + ~ + ~ GNU Taler is free software; you can redistribute it and/or modify it under the + ~ terms of the GNU General Public License as published by the Free Software + ~ Foundation; either version 3, or (at your option) any later version. + ~ + ~ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + ~ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + ~ A PARTICULAR PURPOSE. See the GNU General Public License for more details. + ~ + ~ You should have received a copy of the GNU General Public License along with + ~ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + --> + +<androidx.constraintlayout.widget.ConstraintLayout 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" + android:layout_height="match_parent" + tools:context=".history.HistoryEventFragment"> + + <TextView + android:id="@+id/timeView" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_margin="16dp" + android:gravity="center" + android:textAppearance="@style/TextAppearance.AppCompat.Medium" + app:layout_constraintBottom_toTopOf="@+id/effectiveAmountLabel" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintVertical_chainStyle="packed" + tools:text="23 March 2020 23:42pm" /> + + <TextView + android:id="@+id/effectiveAmountLabel" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:gravity="center" + app:layout_constraintBottom_toTopOf="@+id/effectiveAmountView" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/timeView" + tools:text="@string/withdraw_total" /> + + <TextView + android:id="@+id/effectiveAmountView" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="16dp" + android:gravity="center" + android:textColor="@color/green" + android:textSize="24sp" + app:layout_constraintBottom_toTopOf="@+id/chosenAmountLabel" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/effectiveAmountLabel" + tools:text="23.42 TESTKUDOS" /> + + <TextView + android:id="@+id/chosenAmountLabel" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:gravity="center" + app:layout_constraintBottom_toTopOf="@+id/chosenAmountView" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/effectiveAmountView" + tools:text="@string/amount_chosen" /> + + <TextView + android:id="@+id/chosenAmountView" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="16dp" + android:gravity="center" + android:textSize="24sp" + app:layout_constraintBottom_toTopOf="@+id/feeLabel" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/chosenAmountLabel" + tools:text="24 TESTKUDOS" /> + + <TextView + android:id="@+id/feeLabel" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:gravity="center" + android:text="@string/withdraw_fees" + app:layout_constraintBottom_toTopOf="@+id/feeView" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/chosenAmountView" /> + + <TextView + android:id="@+id/feeView" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="16dp" + android:gravity="center" + android:textColor="@color/red" + android:textSize="24sp" + app:layout_constraintBottom_toTopOf="@+id/exchangeLabel" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/feeLabel" + tools:text="-0.38 TESTKUDOS" /> + + <TextView + android:id="@+id/exchangeLabel" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:gravity="center" + android:text="@string/withdraw_exchange" + app:layout_constraintBottom_toTopOf="@+id/exchangeView" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/feeView" /> + + <TextView + android:id="@+id/exchangeView" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="16dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="16dp" + android:gravity="center" + android:textSize="24sp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/exchangeLabel" + tools:text="exchange.demo.taler.net" /> + +</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/wallet/src/main/res/layout/history_payment.xml b/wallet/src/main/res/layout/history_payment.xml index 3839038..33cb676 100644 --- a/wallet/src/main/res/layout/history_payment.xml +++ b/wallet/src/main/res/layout/history_payment.xml @@ -19,11 +19,11 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="16dp" - android:layout_marginBottom="8dp" - android:background="?attr/selectableItemBackground"> + android:background="?attr/selectableItemBackground" + android:paddingStart="16dp" + android:paddingTop="8dp" + android:paddingEnd="16dp" + android:paddingBottom="8dp"> <ImageView android:id="@+id/icon" @@ -32,36 +32,36 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/history_withdrawn" app:tint="?android:colorControlNormal" - tools:ignore="ContentDescription" /> + tools:ignore="ContentDescription" + tools:src="@drawable/ic_cash_usd_outline" /> <TextView android:id="@+id/title" style="@style/HistoryTitle" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="8dp" + android:layout_marginStart="16dp" android:layout_marginEnd="8dp" app:layout_constraintEnd_toStartOf="@+id/amountPaidWithFees" app:layout_constraintStart_toEndOf="@+id/icon" app:layout_constraintTop_toTopOf="parent" - tools:text="Lots of books with very long titles" /> + tools:text="@string/history_event_payment_sent" /> <TextView android:id="@+id/summary" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="8dp" + android:layout_marginStart="16dp" android:layout_marginTop="8dp" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/amountPaidWithFees" + app:layout_constraintEnd_toStartOf="@+id/time" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toEndOf="@+id/icon" app:layout_constraintTop_toBottomOf="@+id/title" app:layout_constraintVertical_bias="0.0" - tools:text="@string/history_event_payment_sent" /> + tools:text="Lots of books with very long titles" /> <TextView android:id="@+id/amountPaidWithFees" diff --git a/wallet/src/main/res/layout/history_receive.xml b/wallet/src/main/res/layout/history_receive.xml index def97a2..5f386a2 100644 --- a/wallet/src/main/res/layout/history_receive.xml +++ b/wallet/src/main/res/layout/history_receive.xml @@ -19,11 +19,11 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="16dp" - android:layout_marginBottom="8dp" - android:background="?attr/selectableItemBackground"> + android:background="?attr/selectableItemBackground" + android:paddingStart="16dp" + android:paddingTop="8dp" + android:paddingEnd="16dp" + android:paddingBottom="8dp"> <ImageView android:id="@+id/icon" @@ -41,7 +41,7 @@ style="@style/HistoryTitle" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="8dp" + android:layout_marginStart="16dp" android:layout_marginEnd="8dp" android:text="@string/history_event_withdrawn" app:layout_constraintEnd_toStartOf="@+id/amountWithdrawn" @@ -52,34 +52,18 @@ android:id="@+id/summary" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="8dp" + android:layout_marginStart="16dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginBottom="8dp" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/feeLabel" + app:layout_constraintEnd_toStartOf="@+id/time" + app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toEndOf="@+id/icon" app:layout_constraintTop_toBottomOf="@+id/title" - tools:text="http://taler.quite-long-exchange.url" /> - - <TextView - android:id="@+id/feeLabel" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginEnd="2dp" - android:text="@string/history_fee_label" - app:layout_constraintEnd_toStartOf="@+id/fee" - app:layout_constraintTop_toTopOf="@+id/fee" /> - - <TextView - android:id="@+id/fee" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/red" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@+id/amountWithdrawn" - tools:text="0.2 TESTKUDOS" /> + app:layout_constraintVertical_bias="0.0" + tools:text="exchange.taler.quite-long-domain-name.org" /> <TextView android:id="@+id/amountWithdrawn" @@ -96,10 +80,13 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="8dp" + android:layout_marginBottom="8dp" android:textSize="14sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@+id/fee" + app:layout_constraintStart_toEndOf="@+id/summary" + app:layout_constraintTop_toBottomOf="@+id/amountWithdrawn" + app:layout_constraintVertical_bias="1.0" tools:text="23 min. ago" /> </androidx.constraintlayout.widget.ConstraintLayout> diff --git a/wallet/src/main/res/layout/history_row.xml b/wallet/src/main/res/layout/history_row.xml index 2982008..5eac44b 100644 --- a/wallet/src/main/res/layout/history_row.xml +++ b/wallet/src/main/res/layout/history_row.xml @@ -19,8 +19,11 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="15dp" - android:background="?attr/selectableItemBackground"> + android:background="?attr/selectableItemBackground" + android:paddingStart="16dp" + android:paddingTop="8dp" + android:paddingEnd="16dp" + android:paddingBottom="8dp"> <ImageView android:id="@+id/icon" @@ -38,7 +41,7 @@ style="@style/HistoryTitle" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="8dp" + android:layout_marginStart="16dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/icon" app:layout_constraintTop_toTopOf="parent" @@ -49,7 +52,7 @@ android:id="@+id/info" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="8dp" + android:layout_marginStart="16dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" app:layout_constraintBottom_toBottomOf="parent" diff --git a/wallet/src/main/res/layout/list_item_balance.xml b/wallet/src/main/res/layout/list_item_balance.xml index dc24232..a9e15df 100644 --- a/wallet/src/main/res/layout/list_item_balance.xml +++ b/wallet/src/main/res/layout/list_item_balance.xml @@ -19,6 +19,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="?attr/selectableItemBackground" android:padding="16dp"> <TextView diff --git a/wallet/src/main/res/menu/history_event.xml b/wallet/src/main/res/menu/history_event.xml new file mode 100644 index 0000000..45a1e0e --- /dev/null +++ b/wallet/src/main/res/menu/history_event.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?><!-- + ~ This file is part of GNU Taler + ~ (C) 2020 Taler Systems S.A. + ~ + ~ GNU Taler is free software; you can redistribute it and/or modify it under the + ~ terms of the GNU General Public License as published by the Free Software + ~ Foundation; either version 3, or (at your option) any later version. + ~ + ~ GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + ~ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + ~ A PARTICULAR PURPOSE. See the GNU General Public License for more details. + ~ + ~ You should have received a copy of the GNU General Public License along with + ~ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> + --> + +<menu xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> + <item + android:id="@+id/show_json" + android:title="@string/history_detail_json" + app:showAsAction="never" /> +</menu> diff --git a/wallet/src/main/res/navigation/nav_graph.xml b/wallet/src/main/res/navigation/nav_graph.xml index 9875b8a..1ab9666 100644 --- a/wallet/src/main/res/navigation/nav_graph.xml +++ b/wallet/src/main/res/navigation/nav_graph.xml @@ -57,11 +57,23 @@ android:name="net.taler.wallet.Settings" android:label="Settings" tools:layout="@layout/fragment_settings" /> + <fragment android:id="@+id/walletHistory" android:name="net.taler.wallet.history.HistoryFragment" android:label="@string/history_title" - tools:layout="@layout/fragment_show_history" /> + tools:layout="@layout/fragment_show_history"> + <action + android:id="@+id/action_walletHistory_to_historyEventFragment" + app:destination="@id/historyEventFragment" /> + </fragment> + + <fragment + android:id="@+id/historyEventFragment" + android:name="net.taler.wallet.history.HistoryEventFragment" + android:label="@string/history_detail_title" + tools:layout="@layout/fragment_history_event" /> + <fragment android:id="@+id/alreadyPaid" android:name="net.taler.wallet.payment.AlreadyPaidFragment" diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml index bcd173f..1f028c2 100644 --- a/wallet/src/main/res/values/strings.xml +++ b/wallet/src/main/res/values/strings.xml @@ -41,6 +41,7 @@ <string name="balances_title">Balances</string> <string name="amount_positive">+%s</string> <string name="amount_negative">-%s</string> + <string name="amount_chosen">Chosen Amount</string> <string name="balances_inbound_label">inbound</string> <string name="balances_empty_state">There is no digital cash in your wallet.\n\nYou can get test money from the demo bank:\n\nhttps://bank.demo.taler.net</string> @@ -49,6 +50,9 @@ <string name="history_show_all">Show All</string> <string name="history_reload">Reload History</string> <string name="history_empty">The wallet history is empty</string> + <string name="history_error">Could not load history</string> + <string name="history_detail_title">Transaction</string> + <string name="history_detail_json">Show JSON</string> <!-- HistoryEvents --> <string name="history_event_exchange_added">Exchange Added</string> @@ -64,6 +68,12 @@ <string name="history_event_order_redirected">Purchase Redirected</string> <string name="history_event_refund">Refund</string> <string name="history_event_refreshed">Obtained change</string> + <string name="history_event_refresh_reason_manual">because of manual request</string> + <string name="history_event_refresh_reason_pay">for payment</string> + <string name="history_event_refresh_reason_refund">for refund</string> + <string name="history_event_refresh_reason_abort_pay">to abort payment</string> + <string name="history_event_refresh_reason_recoup">to recoup funds</string> + <string name="history_event_refresh_reason_backup_restored">because of restoring from backup</string> <string name="history_event_unknown">Unknown Event</string> <string name="payment_fee">+%s payment fee</string> diff --git a/wallet/src/main/res/values/styles.xml b/wallet/src/main/res/values/styles.xml index 83f3e3a..c3e18a6 100644 --- a/wallet/src/main/res/values/styles.xml +++ b/wallet/src/main/res/values/styles.xml @@ -34,7 +34,7 @@ <style name="AppTheme.Toolbar" parent="Widget.MaterialComponents.Toolbar.Primary" /> <style name="HistoryTitle"> - <item name="android:textSize">17sp</item> + <item name="android:textSize">16sp</item> <item name="android:textColor">?android:textColorPrimary</item> </style> |