From 0a070b2ac1f174c6f962d37a10f521981514b033 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 5 Mar 2020 12:39:12 -0300 Subject: Add provisional dev mode checkbox to hide UI elements by default --- app/src/main/java/net/taler/wallet/MainActivity.kt | 6 +++++- app/src/main/java/net/taler/wallet/ShowBalance.kt | 17 +++++++++++++++-- app/src/main/java/net/taler/wallet/WalletViewModel.kt | 15 +++++++-------- .../taler/wallet/pending/PendingOperationsFragment.kt | 2 +- .../taler/wallet/pending/PendingOperationsManager.kt | 4 ++++ app/src/main/res/layout/balance_row.xml | 2 +- app/src/main/res/layout/fragment_show_balance.xml | 2 +- app/src/main/res/menu/balance.xml | 6 +++++- app/src/main/res/navigation/nav_graph.xml | 2 +- app/src/main/res/values/strings.xml | 8 +++++--- 10 files changed, 45 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/net/taler/wallet/MainActivity.kt b/app/src/main/java/net/taler/wallet/MainActivity.kt index 1cdc9b3..bca5e33 100644 --- a/app/src/main/java/net/taler/wallet/MainActivity.kt +++ b/app/src/main/java/net/taler/wallet/MainActivity.kt @@ -69,7 +69,7 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener, setSupportActionBar(toolbar) val appBarConfiguration = AppBarConfiguration( - setOf(R.id.showBalance, R.id.settings, R.id.walletHistory), drawer_layout + setOf(R.id.showBalance, R.id.settings, R.id.walletHistory, R.id.nav_pending_operations), drawer_layout ) toolbar.setupWithNavController(nav, appBarConfiguration) @@ -77,6 +77,10 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener, progress_bar.visibility = if (show) VISIBLE else INVISIBLE }) + model.devMode.observe(this, Observer { enabled -> + nav_view.menu.findItem(R.id.nav_pending_operations).isVisible = enabled + }) + if (intent.action == ACTION_VIEW) intent.dataString?.let { uri -> handleTalerUri(uri, "intent") } diff --git a/app/src/main/java/net/taler/wallet/ShowBalance.kt b/app/src/main/java/net/taler/wallet/ShowBalance.kt index 5448638..71ef87f 100644 --- a/app/src/main/java/net/taler/wallet/ShowBalance.kt +++ b/app/src/main/java/net/taler/wallet/ShowBalance.kt @@ -73,10 +73,13 @@ class ShowBalance : Fragment() { onBalancesChanged(it) }) + model.devMode.observe(viewLifecycleOwner, Observer { enabled -> + delayedTransition() + testWithdrawButton.visibility = if (enabled) VISIBLE else GONE + }) testWithdrawButton.setOnClickListener { withdrawManager.withdrawTestkudos() } - withdrawManager.testWithdrawalInProgress.observe(viewLifecycleOwner, Observer { loading -> Log.v("taler-wallet", "observing balance loading $loading in show balance") testWithdrawButton.isEnabled = !loading @@ -103,17 +106,23 @@ class ShowBalance : Fragment() { model.loadBalances() true } + R.id.developer_mode -> { + item.isChecked = !item.isChecked + model.devMode.value = item.isChecked + true + } else -> super.onOptionsItemSelected(item) } } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { inflater.inflate(R.menu.balance, menu) + menu.findItem(R.id.developer_mode).isChecked = model.devMode.value!! super.onCreateOptionsMenu(menu, inflater) } private fun onBalancesChanged(balances: List) { - beginDelayedTransition(view as ViewGroup) + delayedTransition() if (balances.isEmpty()) { balancesEmptyState.visibility = VISIBLE balancesList.visibility = GONE @@ -124,6 +133,10 @@ class ShowBalance : Fragment() { } } + private fun delayedTransition() { + beginDelayedTransition(view as ViewGroup) + } + } class BalanceAdapter : Adapter() { diff --git a/app/src/main/java/net/taler/wallet/WalletViewModel.kt b/app/src/main/java/net/taler/wallet/WalletViewModel.kt index 7baedcf..1126ced 100644 --- a/app/src/main/java/net/taler/wallet/WalletViewModel.kt +++ b/app/src/main/java/net/taler/wallet/WalletViewModel.kt @@ -52,6 +52,8 @@ class WalletViewModel(val app: Application) : AndroidViewModel(app) { private val mBalances = MutableLiveData>() val balances: LiveData> = mBalances.distinctUntilChanged() + val devMode = MutableLiveData(false) + private val mHistoryProgress = MutableLiveData() val historyProgress: LiveData = mHistoryProgress @@ -87,6 +89,11 @@ class WalletViewModel(val app: Application) : AndroidViewModel(app) { val pendingOperationsManager: PendingOperationsManager = PendingOperationsManager(walletBackendApi) + override fun onCleared() { + walletBackendApi.destroy() + super.onCleared() + } + @UiThread fun loadBalances() { if (activeGetBalance > 0) { @@ -159,12 +166,4 @@ class WalletViewModel(val app: Application) : AndroidViewModel(app) { walletBackendApi.sendRequest("tunnelResponse", respJson) } - fun retryPendingNow() { - walletBackendApi.sendRequest("retryPendingNow", null) - } - - override fun onCleared() { - walletBackendApi.destroy() - super.onCleared() - } } diff --git a/app/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt b/app/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt index 7595827..946e5ba 100644 --- a/app/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt +++ b/app/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt @@ -87,7 +87,7 @@ class PendingOperationsFragment : Fragment(), PendingOperationClickListener { override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { R.id.retry_pending -> { - model.retryPendingNow() + pendingOperationsManager.retryPendingNow() true } else -> super.onOptionsItemSelected(item) diff --git a/app/src/main/java/net/taler/wallet/pending/PendingOperationsManager.kt b/app/src/main/java/net/taler/wallet/pending/PendingOperationsManager.kt index b6d5904..2125dbc 100644 --- a/app/src/main/java/net/taler/wallet/pending/PendingOperationsManager.kt +++ b/app/src/main/java/net/taler/wallet/pending/PendingOperationsManager.kt @@ -57,4 +57,8 @@ class PendingOperationsManager(private val walletBackendApi: WalletBackendApi) { } } + fun retryPendingNow() { + walletBackendApi.sendRequest("retryPendingNow", null) + } + } diff --git a/app/src/main/res/layout/balance_row.xml b/app/src/main/res/layout/balance_row.xml index 20ebf48..662068b 100644 --- a/app/src/main/res/layout/balance_row.xml +++ b/app/src/main/res/layout/balance_row.xml @@ -81,7 +81,7 @@ diff --git a/app/src/main/res/layout/fragment_show_balance.xml b/app/src/main/res/layout/fragment_show_balance.xml index 969201a..5b38fb6 100644 --- a/app/src/main/res/layout/fragment_show_balance.xml +++ b/app/src/main/res/layout/fragment_show_balance.xml @@ -42,7 +42,7 @@ android:autoLink="web" android:gravity="center" android:padding="16dp" - android:text="@string/balance_no_cash" + android:text="@string/balances_empty_state" android:textSize="18sp" android:visibility="gone" app:layout_constraintBottom_toTopOf="@+id/scanButton" diff --git a/app/src/main/res/menu/balance.xml b/app/src/main/res/menu/balance.xml index 69b5def..7ac3a9f 100644 --- a/app/src/main/res/menu/balance.xml +++ b/app/src/main/res/menu/balance.xml @@ -18,7 +18,11 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 3b875e7..648c88e 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -24,7 +24,7 @@ History Settings Reload balances + Developer Mode Retry Pending Operations my service my aid + Balances + inbound + There is no digital cash in your wallet.\n\nYou can get test money from the demo bank:\n\nhttps://bank.demo.taler.net + Exchange Added Exchange Updated @@ -78,9 +83,6 @@ Withdraw TESTKUDOS Confirm Withdraw - inbound - There is no digital cash in your wallet.\n\nYou can get test money from the demo bank:\n\nhttps://bank.demo.taler.net - Pending Operations: Refuse Proposal (no action) -- cgit v1.2.3