diff options
Diffstat (limited to 'app/src/main/java/net/taler/wallet')
5 files changed, 32 insertions, 12 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<BalanceItem>) { - 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<BalanceViewHolder>() { 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<List<BalanceItem>>() val balances: LiveData<List<BalanceItem>> = mBalances.distinctUntilChanged() + val devMode = MutableLiveData(false) + private val mHistoryProgress = MutableLiveData<Boolean>() val historyProgress: LiveData<Boolean> = 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) + } + } |