aboutsummaryrefslogtreecommitdiff
path: root/wallet/src/main/res
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-04-03 14:04:22 -0300
committerTorsten Grote <t@grobox.de>2020-04-03 14:04:22 -0300
commitbee652834f90fd8abd46b5adcf30adcc587984c2 (patch)
tree75c66b3ff5c3160ec063cf33d16400a69823a483 /wallet/src/main/res
parente52ee8f55326de402a7ad421c396eb6c81a79a68 (diff)
downloadtaler-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.xml160
-rw-r--r--wallet/src/main/res/layout/history_payment.xml24
-rw-r--r--wallet/src/main/res/layout/history_receive.xml43
-rw-r--r--wallet/src/main/res/layout/history_row.xml11
-rw-r--r--wallet/src/main/res/layout/list_item_balance.xml1
-rw-r--r--wallet/src/main/res/menu/history_event.xml23
-rw-r--r--wallet/src/main/res/navigation/nav_graph.xml14
-rw-r--r--wallet/src/main/res/values/strings.xml10
-rw-r--r--wallet/src/main/res/values/styles.xml2
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>