diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-12-09 19:59:26 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-12-09 19:59:26 +0100 |
commit | 9c160ac939ea20d4ed77acf8bc75cd9f60e82bb8 (patch) | |
tree | b87b45731409cd223ac4bbc8574d9bd522718198 /app/src | |
parent | b39914ed445bdde1a0204b2cbf883f23a5132832 (diff) | |
download | wallet-android-9c160ac939ea20d4ed77acf8bc75cd9f60e82bb8.tar.gz wallet-android-9c160ac939ea20d4ed77acf8bc75cd9f60e82bb8.tar.bz2 wallet-android-9c160ac939ea20d4ed77acf8bc75cd9f60e82bb8.zip |
tos / branding
Diffstat (limited to 'app/src')
29 files changed, 364 insertions, 134 deletions
diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png Binary files differnew file mode 100644 index 0000000..f0f6be7 --- /dev/null +++ b/app/src/main/ic_launcher-web.png diff --git a/app/src/main/java/net/taler/wallet/PromptWithdraw.kt b/app/src/main/java/net/taler/wallet/PromptWithdraw.kt index 785da42..57965f5 100644 --- a/app/src/main/java/net/taler/wallet/PromptWithdraw.kt +++ b/app/src/main/java/net/taler/wallet/PromptWithdraw.kt @@ -62,6 +62,10 @@ class PromptWithdraw : Fragment() { is WithdrawStatus.None -> { } + is WithdrawStatus.TermsOfServiceReviewRequired -> { + val navController = requireActivity().findNavController(R.id.nav_host_fragment) + navController.navigate(R.id.action_promptWithdraw_to_reviewExchangeTOS) + } else -> { val bar = Snackbar.make(view, "Bug: Unexpected result", Snackbar.LENGTH_SHORT) bar.show() @@ -88,6 +92,12 @@ class PromptWithdraw : Fragment() { showWithdrawStatus(view, it) }) + view.findViewById<Button>(R.id.button_cancel_withdraw).setOnClickListener { + val navController = requireActivity().findNavController(R.id.nav_host_fragment) + model.cancelCurrentWithdraw() + navController.navigateUp() + } + view.findViewById<Button>(R.id.button_confirm_withdraw).setOnClickListener { val status = this.model.withdrawStatus.value if (status !is WithdrawStatus.ReceivedDetails) { diff --git a/app/src/main/java/net/taler/wallet/ReviewExchangeTOS.kt b/app/src/main/java/net/taler/wallet/ReviewExchangeTOS.kt new file mode 100644 index 0000000..542b855 --- /dev/null +++ b/app/src/main/java/net/taler/wallet/ReviewExchangeTOS.kt @@ -0,0 +1,76 @@ +package net.taler.wallet + + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Button +import android.widget.CheckBox +import android.widget.CompoundButton +import android.widget.TextView +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders +import androidx.navigation.findNavController + +/** + * A simple [Fragment] subclass. + */ +class ReviewExchangeTOS : Fragment() { + + private lateinit var acceptButton: Button + private lateinit var model: WalletViewModel + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + model = activity?.run { + ViewModelProviders.of(this)[WalletViewModel::class.java] + } ?: throw Exception("Invalid Activity") + } + + private fun onAcceptCheck(checked: Boolean) { + acceptButton.isEnabled = checked + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + val view = inflater.inflate(R.layout.fragment_review_exchange_tos, container, false) + val navController = requireActivity().findNavController(R.id.nav_host_fragment) + view.findViewById<Button>(R.id.button_tos_abort).setOnClickListener { + model.cancelCurrentWithdraw() + navController.navigateUp() + } + acceptButton = view.findViewById<Button>(R.id.button_tos_accept) + acceptButton.setOnClickListener { + model.acceptCurrentTermsOfService() + } + val checkbox = view.findViewById<CheckBox>(R.id.checkBox_accept_tos) + checkbox.isChecked = false + checkbox.setOnCheckedChangeListener { buttonView, isChecked -> + onAcceptCheck(isChecked) + } + onAcceptCheck(false) + val tosTextField = view.findViewById<TextView>(R.id.text_tos) + model.withdrawStatus.observe(this, Observer { + when (it) { + is WithdrawStatus.TermsOfServiceReviewRequired -> { + tosTextField.text = it.tosText + } + is WithdrawStatus.Loading -> { + navController.navigate(R.id.action_reviewExchangeTOS_to_promptWithdraw) + } + is WithdrawStatus.ReceivedDetails -> { + navController.navigate(R.id.action_reviewExchangeTOS_to_promptWithdraw) + } + else -> { + } + } + }) + return view + } +} diff --git a/app/src/main/java/net/taler/wallet/WalletViewModel.kt b/app/src/main/java/net/taler/wallet/WalletViewModel.kt index f8acc2d..fd53470 100644 --- a/app/src/main/java/net/taler/wallet/WalletViewModel.kt +++ b/app/src/main/java/net/taler/wallet/WalletViewModel.kt @@ -61,6 +61,12 @@ open class PayStatus { open class WithdrawStatus { class None : WithdrawStatus() data class Loading(val talerWithdrawUri: String) : WithdrawStatus() + data class TermsOfServiceReviewRequired( + val talerWithdrawUri: String, + val exchangeBaseUrl: String, + val tosText: String, + val tosEtag: String + ) : WithdrawStatus() class Success : WithdrawStatus() data class ReceivedDetails( val talerWithdrawUri: String, @@ -118,6 +124,7 @@ class WalletViewModel(val app: Application) : AndroidViewModel(app) { private var activeGetPending = 0 private var currentPayRequestId = 0 + private var currentWithdrawRequestId = 0 private val walletBackendApi = WalletBackendApi(app) @@ -299,22 +306,71 @@ class WalletViewModel(val app: Application) : AndroidViewModel(app) { withdrawStatus.value = WithdrawStatus.Loading(talerWithdrawUri) - walletBackendApi.sendRequest("getWithdrawalInfo", args) { result -> - Log.v(TAG, "got getWithdrawalInfo result") + this.currentWithdrawRequestId++ + val myWithdrawRequestId = this.currentWithdrawRequestId + + walletBackendApi.sendRequest("getWithdrawDetailsForUri", args) { result -> + if (myWithdrawRequestId != this.currentWithdrawRequestId) { + return@sendRequest + } + Log.v(TAG, "got getWithdrawDetailsForUri result") val status = withdrawStatus.value if (status !is WithdrawStatus.Loading) { Log.v(TAG, "ignoring withdrawal info result, not loading.") return@sendRequest } - val suggestedExchange = result.getString("suggestedExchange") - val amount = Amount.fromJson(result.getJSONObject("amount")) - withdrawStatus.postValue( - WithdrawStatus.ReceivedDetails( - status.talerWithdrawUri, - amount, - suggestedExchange + val wi = result.getJSONObject("bankWithdrawDetails") + val suggestedExchange = wi.getString("suggestedExchange") + // We just use the suggested exchange, in the future there will be + // a selection dialog. + getWithdrawalInfoWithExchange(talerWithdrawUri, suggestedExchange) + } + } + + private fun getWithdrawalInfoWithExchange(talerWithdrawUri: String, selectedExchange: String) { + val args = JSONObject() + args.put("talerWithdrawUri", talerWithdrawUri) + args.put("selectedExchange", selectedExchange) + + this.currentWithdrawRequestId++ + val myWithdrawRequestId = this.currentWithdrawRequestId + + walletBackendApi.sendRequest("getWithdrawDetailsForUri", args) { result -> + if (myWithdrawRequestId != this.currentWithdrawRequestId) { + return@sendRequest + } + Log.v(TAG, "got getWithdrawDetailsForUri result (with exchange details)") + val status = withdrawStatus.value + if (status !is WithdrawStatus.Loading) { + Log.v(TAG, "ignoring withdrawal info result, not loading.") + return@sendRequest + } + val ei = result.getJSONObject("exchangeWithdrawDetails") + val termsOfServiceAccepted = ei.getBoolean("termsOfServiceAccepted") + if (!termsOfServiceAccepted) { + val exchange = ei.getJSONObject("exchangeInfo") + val tosText = exchange.getString("termsOfServiceText") + val tosEtag = exchange.getString("termsOfServiceLastEtag") + withdrawStatus.postValue( + WithdrawStatus.TermsOfServiceReviewRequired( + status.talerWithdrawUri, + selectedExchange, + tosText, + tosEtag + ) ) - ) + } else { + val wi = result.getJSONObject("bankWithdrawDetails") + val suggestedExchange = wi.getString("suggestedExchange") + val amount = Amount.fromJson(wi.getJSONObject("amount")) + withdrawStatus.postValue( + WithdrawStatus.ReceivedDetails( + status.talerWithdrawUri, + amount, + suggestedExchange + ) + ) + } } } @@ -343,4 +399,26 @@ class WalletViewModel(val app: Application) : AndroidViewModel(app) { walletBackendApi.destroy() super.onCleared() } + + /** + * Accept the currently displayed terms of service. + */ + fun acceptCurrentTermsOfService() { + when (val s = withdrawStatus.value) { + is WithdrawStatus.TermsOfServiceReviewRequired -> { + val args = JSONObject() + args.put("exchangeBaseUrl", s.exchangeBaseUrl) + args.put("etag", s.tosEtag) + walletBackendApi.sendRequest("acceptExchangeTermsOfService", args) { + // Try withdrawing again with accepted ToS + getWithdrawalInfo(s.talerWithdrawUri) + } + } + } + } + + fun cancelCurrentWithdraw() { + currentWithdrawRequestId++ + withdrawStatus.value = WithdrawStatus.None() + } } diff --git a/app/src/main/java/net/taler/wallet/backend/WalletBackendService.kt b/app/src/main/java/net/taler/wallet/backend/WalletBackendService.kt index 26420a1..b387c9c 100644 --- a/app/src/main/java/net/taler/wallet/backend/WalletBackendService.kt +++ b/app/src/main/java/net/taler/wallet/backend/WalletBackendService.kt @@ -63,7 +63,7 @@ class WalletBackendService : Service() { msg.put("operation", "init") val args = JSONObject() msg.put("args", args) - args.put("persistentStoragePath", "${application.filesDir}/talerwalletdb-v27.json") + args.put("persistentStoragePath", "${application.filesDir}/talerwalletdb-v29.json") akono.sendMessage(msg.toString()) } diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 6348baa..0000000 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,34 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:aapt="http://schemas.android.com/aapt" - android:width="108dp" - android:height="108dp" - android:viewportHeight="108" - android:viewportWidth="108"> - <path - android:fillType="evenOdd" - android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" - android:strokeColor="#00000000" - android:strokeWidth="1"> - <aapt:attr name="android:fillColor"> - <gradient - android:endX="78.5885" - android:endY="90.9159" - android:startX="48.7653" - android:startY="61.0927" - android:type="linear"> - <item - android:color="#44000000" - android:offset="0.0"/> - <item - android:color="#00000000" - android:offset="1.0"/> - </gradient> - </aapt:attr> - </path> - <path - android:fillColor="#FFFFFF" - android:fillType="nonZero" - android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" - android:strokeColor="#00000000" - android:strokeWidth="1"/> -</vector> diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index a0ad202..0000000 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,74 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<vector - xmlns:android="http://schemas.android.com/apk/res/android" - android:height="108dp" - android:width="108dp" - android:viewportHeight="108" - android:viewportWidth="108"> - <path android:fillColor="#008577" - android:pathData="M0,0h108v108h-108z"/> - <path android:fillColor="#00000000" android:pathData="M9,0L9,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M19,0L19,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M29,0L29,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M39,0L39,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M49,0L49,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M59,0L59,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M69,0L69,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M79,0L79,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M89,0L89,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M99,0L99,108" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,9L108,9" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,19L108,19" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,29L108,29" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,39L108,39" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,49L108,49" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,59L108,59" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,69L108,69" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,79L108,79" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,89L108,89" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M0,99L108,99" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M19,29L89,29" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M19,39L89,39" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M19,49L89,49" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M19,59L89,59" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M19,69L89,69" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M19,79L89,79" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M29,19L29,89" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M39,19L39,89" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M49,19L49,89" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M59,19L59,89" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M69,19L69,89" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> - <path android:fillColor="#00000000" android:pathData="M79,19L79,89" - android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/> -</vector> diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..4ab24a4 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,51 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="108dp" + android:height="108dp" + android:viewportWidth="237.28813" + android:viewportHeight="237.2881"> + <group android:translateX="48.64407" + android:translateY="48.644062"> + <path + android:pathData="m31.669,82.748h-4.702v-19.684h-6.041v-4.112h16.783v4.112L31.669,63.064Z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m50.301,74.364q-2.614,0 -3.65,0.669 -1.036,0.669 -1.036,2.295 0,1.211 0.717,1.929 0.717,0.717 1.944,0.717 1.849,0 2.869,-1.387 1.02,-1.403 1.02,-3.905v-0.319zM56.804,72.563v10.185h-4.638v-1.992q-0.845,1.179 -2.168,1.817 -1.323,0.638 -2.917,0.638 -3.044,0 -4.75,-1.61 -1.689,-1.61 -1.689,-4.495 0,-3.124 2.024,-4.606 2.024,-1.498 6.264,-1.498h3.235v-0.781q0,-1.132 -0.829,-1.705 -0.813,-0.59 -2.407,-0.59 -1.674,0 -3.251,0.43 -1.562,0.414 -3.267,1.339v-3.985q1.546,-0.638 3.14,-0.94 1.594,-0.303 3.379,-0.303 4.351,0 6.104,1.769 1.769,1.769 1.769,6.328z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m64.964,75.305v-13.771h-4.734v-3.586h9.404v17.357q0,2.104 0.653,2.98 0.653,0.877 2.215,0.877h3.73v3.586h-5.037q-3.331,0 -4.781,-1.721 -1.45,-1.721 -1.45,-5.722z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m96.012,81.871q-1.626,0.669 -3.315,1.004 -1.689,0.335 -3.57,0.335 -4.479,0 -6.853,-2.391 -2.359,-2.407 -2.359,-6.917 0,-4.367 2.279,-6.901 2.279,-2.534 6.216,-2.534 3.969,0 6.152,2.359 2.199,2.343 2.199,6.614v1.897h-12.097q0.016,2.104 1.243,3.14 1.227,1.036 3.666,1.036 1.61,0 3.172,-0.462 1.562,-0.462 3.267,-1.466zM92.059,71.83q-0.032,-1.849 -0.956,-2.789 -0.908,-0.956 -2.694,-0.956 -1.61,0 -2.566,0.988 -0.956,0.972 -1.132,2.773z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m116.445,69.822q-0.765,-0.701 -1.801,-1.052 -1.02,-0.351 -2.247,-0.351 -1.482,0 -2.598,0.526 -1.1,0.51 -1.705,1.498 -0.383,0.606 -0.542,1.466 -0.143,0.861 -0.143,2.614v8.224h-4.67v-17.851h4.67v2.773q0.685,-1.53 2.104,-2.359 1.419,-0.845 3.315,-0.845 0.956,0 1.865,0.239 0.924,0.223 1.753,0.669z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="M25.843,97.583L16.433,97.583L0,70.865 16.433,44.111l9.409,0l-16.522,26.754z" + android:strokeWidth="2.03518677" + android:fillColor="#ae1010" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m109.483,97.667 l17.087,-27.134 -17.041,-27.171l9.712,0l17.041,27.171 -17.041,27.134z" + android:strokeWidth="2.08855891" + android:fillColor="#ae1010" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + </group> +</vector> diff --git a/app/src/main/res/drawable/ic_logo_taler.xml b/app/src/main/res/drawable/ic_logo_taler.xml new file mode 100644 index 0000000..2a6cb4f --- /dev/null +++ b/app/src/main/res/drawable/ic_logo_taler.xml @@ -0,0 +1,48 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="14dp" + android:height="14dp" + android:viewportWidth="140" + android:viewportHeight="139.99998"> + <path + android:pathData="m31.669,82.748h-4.702v-19.684h-6.041v-4.112h16.783v4.112L31.669,63.064Z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m50.301,74.364q-2.614,0 -3.65,0.669 -1.036,0.669 -1.036,2.295 0,1.211 0.717,1.929 0.717,0.717 1.944,0.717 1.849,0 2.869,-1.387 1.02,-1.403 1.02,-3.905v-0.319zM56.804,72.563v10.185h-4.638v-1.992q-0.845,1.179 -2.168,1.817 -1.323,0.638 -2.917,0.638 -3.044,0 -4.75,-1.61 -1.689,-1.61 -1.689,-4.495 0,-3.124 2.024,-4.606 2.024,-1.498 6.264,-1.498h3.235v-0.781q0,-1.132 -0.829,-1.705 -0.813,-0.59 -2.407,-0.59 -1.674,0 -3.251,0.43 -1.562,0.414 -3.267,1.339v-3.985q1.546,-0.638 3.14,-0.94 1.594,-0.303 3.379,-0.303 4.351,0 6.104,1.769 1.769,1.769 1.769,6.328z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m64.964,75.305v-13.771h-4.734v-3.586h9.404v17.357q0,2.104 0.653,2.98 0.653,0.877 2.215,0.877h3.73v3.586h-5.037q-3.331,0 -4.781,-1.721 -1.45,-1.721 -1.45,-5.722z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m96.012,81.871q-1.626,0.669 -3.315,1.004 -1.689,0.335 -3.57,0.335 -4.479,0 -6.853,-2.391 -2.359,-2.407 -2.359,-6.917 0,-4.367 2.279,-6.901 2.279,-2.534 6.216,-2.534 3.969,0 6.152,2.359 2.199,2.343 2.199,6.614v1.897h-12.097q0.016,2.104 1.243,3.14 1.227,1.036 3.666,1.036 1.61,0 3.172,-0.462 1.562,-0.462 3.267,-1.466zM92.059,71.83q-0.032,-1.849 -0.956,-2.789 -0.908,-0.956 -2.694,-0.956 -1.61,0 -2.566,0.988 -0.956,0.972 -1.132,2.773z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m116.445,69.822q-0.765,-0.701 -1.801,-1.052 -1.02,-0.351 -2.247,-0.351 -1.482,0 -2.598,0.526 -1.1,0.51 -1.705,1.498 -0.383,0.606 -0.542,1.466 -0.143,0.861 -0.143,2.614v8.224h-4.67v-17.851h4.67v2.773q0.685,-1.53 2.104,-2.359 1.419,-0.845 3.315,-0.845 0.956,0 1.865,0.239 0.924,0.223 1.753,0.669z" + android:strokeWidth="0.81604069" + android:fillColor="#ffffff" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="M25.843,97.583L16.433,97.583L0,70.865 16.433,44.111l9.409,0l-16.522,26.754z" + android:strokeWidth="2.03518677" + android:fillColor="#ae1010" + android:strokeColor="#00000000" + android:fillAlpha="1"/> + <path + android:pathData="m109.483,97.667 l17.087,-27.134 -17.041,-27.171l9.712,0l17.041,27.171 -17.041,27.134z" + android:strokeWidth="2.08855891" + android:fillColor="#ae1010" + android:strokeColor="#00000000" + android:fillAlpha="1"/> +</vector> diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/app/src/main/res/drawable/side_nav_bar.xml index a33798b..ff85523 100644 --- a/app/src/main/res/drawable/side_nav_bar.xml +++ b/app/src/main/res/drawable/side_nav_bar.xml @@ -2,8 +2,7 @@ android:shape="rectangle"> <gradient android:angle="135" - android:centerColor="#009688" - android:endColor="#00695C" - android:startColor="#4DB6AC" + android:startColor="@color/colorPrimary" + android:endColor="@color/colorPrimaryDark" android:type="linear"/> </shape>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_review_exchange_tos.xml b/app/src/main/res/layout/fragment_review_exchange_tos.xml new file mode 100644 index 0000000..6db6587 --- /dev/null +++ b/app/src/main/res/layout/fragment_review_exchange_tos.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_margin="15dp" + tools:context=".ReviewExchangeTOS"> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <ScrollView + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" + android:scrollbars="vertical"> + <TextView + android:id="@+id/text_tos" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="TextView" /> + </ScrollView> + + <CheckBox + android:id="@+id/checkBox_accept_tos" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="0" + android:text="Accept Terms of Service" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="0" + android:orientation="horizontal"> + <Button + android:id="@+id/button_tos_abort" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Cancel" /> + <Space + android:layout_width="0dp" + android:layout_height="0dp" + android:layout_weight="1"/> + + <Button + android:id="@+id/button_tos_accept" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Continue" /> + </LinearLayout> + + </LinearLayout> +</FrameLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 73179cb..6534f3f 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -36,7 +36,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" - android:text="0.6.0pre4 (Fri 6 Dec 2019)" /> + android:text="0.6.0pre4 (Mon 9 Dec 2019)" /> </LinearLayout> @@ -59,7 +59,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" - android:text="0.6.0pre4 (Fri 6 Dec 2019)" /> + android:text="0.6.0pre4 (Mon 9 Dec 2019)" /> </LinearLayout> diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index 92ca611..8f4f926 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -14,12 +14,13 @@ android:gravity="bottom"> <ImageView + android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingTop="@dimen/nav_header_vertical_spacing" - app:srcCompat="@mipmap/ic_launcher_round" + android:adjustViewBounds="false" android:contentDescription="@string/nav_header_desc" - android:id="@+id/imageView"/> + android:paddingTop="@dimen/nav_header_vertical_spacing" + app:srcCompat="@mipmap/ic_launcher_round" /> <TextView android:layout_width="match_parent" diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index bbd3e02..7353dbd 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> - <background android:drawable="@drawable/ic_launcher_background"/> + <background android:drawable="@color/ic_launcher_background"/> <foreground android:drawable="@drawable/ic_launcher_foreground"/> </adaptive-icon>
\ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index bbd3e02..7353dbd 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> - <background android:drawable="@drawable/ic_launcher_background"/> + <background android:drawable="@color/ic_launcher_background"/> <foreground android:drawable="@drawable/ic_launcher_foreground"/> </adaptive-icon>
\ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png Binary files differindex 898f3ed..2bfb696 100644 --- a/app/src/main/res/mipmap-hdpi/ic_launcher.png +++ b/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png Binary files differindex dffca36..c7ae940 100644 --- a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +++ b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png Binary files differindex 64ba76f..c104056 100644 --- a/app/src/main/res/mipmap-mdpi/ic_launcher.png +++ b/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png Binary files differindex dae5e08..1130914 100644 --- a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +++ b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png Binary files differindex e5ed465..7144a11 100644 --- a/app/src/main/res/mipmap-xhdpi/ic_launcher.png +++ b/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png Binary files differindex 14ed0af..d63ccd3 100644 --- a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +++ b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png Binary files differindex b0907ca..bc3155e 100644 --- a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png Binary files differindex d8ae031..028fe60 100644 --- a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png Binary files differindex 2c18de9..ccc81eb 100644 --- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png Binary files differindex beed3cd..da3ce45 100644 --- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index fac49f3..88d64f7 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -60,6 +60,10 @@ android:id="@+id/action_promptWithdraw_to_withdrawSuccessful" app:destination="@id/withdrawSuccessful" app:popUpTo="@id/showBalance" /> + <action + android:id="@+id/action_promptWithdraw_to_reviewExchangeTOS" + app:destination="@id/reviewExchangeTOS" + app:popUpTo="@id/showBalance"/> </fragment> <fragment android:id="@+id/withdrawSuccessful" @@ -69,4 +73,14 @@ <action android:id="@+id/action_global_promptPayment" app:destination="@id/promptPayment" /> + <fragment + android:id="@+id/reviewExchangeTOS" + android:name="net.taler.wallet.ReviewExchangeTOS" + android:label="Exchange's Terms of Service" + tools:layout="@layout/fragment_review_exchange_tos" > + <action + android:id="@+id/action_reviewExchangeTOS_to_promptWithdraw" + app:popUpTo="@id/showBalance" + app:destination="@id/promptWithdraw" /> + </fragment> </navigation>
\ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 69b2233..3b6dc88 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <color name="colorPrimary">#008577</color> - <color name="colorPrimaryDark">#00574B</color> - <color name="colorAccent">#D81B60</color> + <color name="colorPrimary">#283593</color> + <color name="colorPrimaryDark">#1A237E</color> + <color name="colorAccent">#AE1010</color> </resources> diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..beab31f --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <color name="ic_launcher_background">#000000</color> +</resources>
\ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 658dc62..b57aadf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,8 +14,9 @@ <string name="menu_share">Share</string> <string name="menu_send">Send</string> - <!-- TODO: Remove or change this placeholder text --> - <string name="hello_blank_fragment">Hello blank fragment</string> <string name="servicedesc">my service</string> <string name="aiddescription">my aid</string> + + <!-- TODO: Remove or change this placeholder text --> + <string name="hello_blank_fragment">Hello blank fragment</string> </resources> |