diff --git a/app/src/main/java/com/tari/android/wallet/infrastructure/backup/BackupManager.kt b/app/src/main/java/com/tari/android/wallet/infrastructure/backup/BackupManager.kt
index 6050871ea..99eff9301 100644
--- a/app/src/main/java/com/tari/android/wallet/infrastructure/backup/BackupManager.kt
+++ b/app/src/main/java/com/tari/android/wallet/infrastructure/backup/BackupManager.kt
@@ -120,10 +120,16 @@ internal class BackupManager(
if (!backupStorage.hasBackupForDate(backupDate)) {
throw BackupStorageTamperedException("Backup storage is tampered.")
}
- if (sharedPrefs.scheduledBackupDate?.isAfterNow == true) {
- EventBus.postBackupState(BackupScheduled)
- } else {
- EventBus.postBackupState(BackupUpToDate)
+ when {
+ sharedPrefs.backupFailureDate != null -> {
+ EventBus.postBackupState(BackupOutOfDate())
+ }
+ sharedPrefs.scheduledBackupDate?.isAfterNow == true -> {
+ EventBus.postBackupState(BackupScheduled)
+ }
+ else -> {
+ EventBus.postBackupState(BackupUpToDate)
+ }
}
} catch (e: BackupStorageAuthRevokedException) {
sharedPrefs.lastSuccessfulBackupDate = null
diff --git a/app/src/main/java/com/tari/android/wallet/ui/fragment/debug/BaseNodeConfigFragment.kt b/app/src/main/java/com/tari/android/wallet/ui/fragment/debug/BaseNodeConfigFragment.kt
index 2f7e9e378..070627d4c 100644
--- a/app/src/main/java/com/tari/android/wallet/ui/fragment/debug/BaseNodeConfigFragment.kt
+++ b/app/src/main/java/com/tari/android/wallet/ui/fragment/debug/BaseNodeConfigFragment.kt
@@ -34,7 +34,6 @@ package com.tari.android.wallet.ui.fragment.debug
import android.content.ClipboardManager
import android.content.Context.CLIPBOARD_SERVICE
-import android.os.AsyncTask
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@@ -42,6 +41,7 @@ import android.view.ViewGroup
import android.widget.Toast
import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment
+import androidx.lifecycle.lifecycleScope
import com.tari.android.wallet.R
import com.tari.android.wallet.R.color.white
import com.tari.android.wallet.R.drawable.base_node_config_edit_text_bg
@@ -53,6 +53,9 @@ import com.tari.android.wallet.ffi.HexString
import com.tari.android.wallet.ui.extension.*
import com.tari.android.wallet.ui.util.UiUtil
import com.tari.android.wallet.util.SharedPrefsWrapper
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
import javax.inject.Inject
/**
@@ -180,19 +183,23 @@ internal class BaseNodeConfigFragment : Fragment() {
val address = ui.addressEditText.editableText.toString()
ui.saveButton.invisible()
ui.progressBar.visible()
- AsyncTask.execute {
+ lifecycleScope.launch(Dispatchers.IO) {
addBaseNodePeer(publicKeyHex, address)
}
}
- private fun addBaseNodePeer(publicKeyHex: String, address: String) {
+ private suspend fun addBaseNodePeer(publicKeyHex: String, address: String) {
val baseNodeKeyFFI = FFIPublicKey(HexString(publicKeyHex))
- val success = FFIWallet.instance!!.addBaseNodePeer(baseNodeKeyFFI, address)
+ val success = try {
+ FFIWallet.instance!!.addBaseNodePeer(baseNodeKeyFFI, address)
+ true
+ } catch (exception: Exception) {
+ false
+ }
baseNodeKeyFFI.destroy()
- ui.rootView.post {
+ withContext(Dispatchers.Main) {
if (success) {
addBaseNodePeerSuccessful(publicKeyHex, address)
- // show toast
} else {
addBaseNodePeerFailed()
}
diff --git a/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/ChooseRestoreOptionFragment.kt b/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/ChooseRestoreOptionFragment.kt
index ff0f0c2cf..275787daa 100644
--- a/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/ChooseRestoreOptionFragment.kt
+++ b/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/ChooseRestoreOptionFragment.kt
@@ -194,7 +194,7 @@ framework for UI tree rebuild on configuration changes"""
private fun showAuthFailedDialog() {
ErrorDialog(
requireContext(),
- title = string(back_up_wallet_storage_setup_error_title),
+ title = string(restore_wallet_error_title),
description = string(back_up_wallet_storage_setup_error_desc)
).show()
}
@@ -202,7 +202,7 @@ framework for UI tree rebuild on configuration changes"""
private fun showBackupFileNotFoundDialog() {
ErrorDialog(
requireContext(),
- title = string(back_up_wallet_storage_setup_error_title),
+ title = string(restore_wallet_error_title),
description = string(restore_wallet_error_file_not_found),
onClose = {
requireActivity().onBackPressed()
diff --git a/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/EnterRestorationPasswordFragment.kt b/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/EnterRestorationPasswordFragment.kt
index 85378d2e8..ce5ab6b9d 100644
--- a/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/EnterRestorationPasswordFragment.kt
+++ b/app/src/main/java/com/tari/android/wallet/ui/fragment/restore/EnterRestorationPasswordFragment.kt
@@ -33,6 +33,7 @@
package com.tari.android.wallet.ui.fragment.restore
import android.content.Context
+import android.graphics.Color
import android.os.Bundle
import android.text.SpannableString
import android.text.SpannableStringBuilder
@@ -90,10 +91,10 @@ UI tree rebuild on configuration changes"""
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- setupUi()
+ setupUI()
}
- private fun setupUi() {
+ private fun setupUI() {
requireActivity().onBackPressedDispatcher
.addCallback(viewLifecycleOwner, blockingBackPressDispatcher)
setPageDescription()
@@ -108,12 +109,14 @@ UI tree rebuild on configuration changes"""
}
}
)
+ setRestoreWalletCTAState(isEnabled = false)
ui.restoreWalletCtaView.setOnClickListener {
showRestoringUI()
performRestoration(ui.passwordEditText.text!!.toString())
}
ui.passwordEditText.addTextChangedListener(
afterTextChanged = {
+ setRestoreWalletCTAState(it?.length ?: 0 != 0)
ui.enterPasswordLabelTextView.setTextColor(color(black))
ui.passwordEditText.setTextColor(color(black))
ui.wrongPasswordLabelView.gone()
@@ -121,6 +124,15 @@ UI tree rebuild on configuration changes"""
)
}
+ private fun setRestoreWalletCTAState(isEnabled: Boolean) {
+ if (ui.restoreWalletCtaView.isEnabled == isEnabled) return
+ ui.restoreWalletCtaView.isEnabled = isEnabled
+ ui.restoreWalletTextView.setTextColor(
+ if (isEnabled) Color.WHITE
+ else color(seed_phrase_button_disabled_text_color)
+ )
+ }
+
private fun showRestoringUI() {
blockingBackPressDispatcher.isEnabled = true
ui.passwordEditText.isEnabled = false
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b847f9dab..526455c5d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -346,7 +346,7 @@
Enter your backup password
- Create Password
+ Create a Password
Make it a strong one!
Confirm Password
Let’s see it again
diff --git a/build.gradle b/build.gradle
index fd51f270a..2fc3eba4b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ buildscript {
ext.kotlin_version = '1.3.72'
// build & version
- ext.buildNumber = 128
+ ext.buildNumber = 129
ext.versionNumber = "0.3.0"
// JNI libs