diff --git a/samples/demo-app/app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt b/samples/demo-app/app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt index 6edda8e2..da10cf13 100644 --- a/samples/demo-app/app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt +++ b/samples/demo-app/app/src/main/java/cash/z/ecc/android/sdk/demoapp/demos/getbalance/GetBalanceFragment.kt @@ -2,6 +2,7 @@ package cash.z.ecc.android.sdk.demoapp.demos.getbalance import android.os.Bundle import android.view.LayoutInflater +import android.view.View import androidx.lifecycle.lifecycleScope import cash.z.ecc.android.bip39.Mnemonics import cash.z.ecc.android.bip39.toSeed @@ -62,6 +63,8 @@ class GetBalanceFragment : BaseDemoFragment() { private fun monitorChanges() { synchronizer.status.collectWith(lifecycleScope, ::onStatus) + synchronizer.progress.collectWith(lifecycleScope, ::onProgress) + synchronizer.processorInfo.collectWith(lifecycleScope, ::onProcessorInfoUpdated) synchronizer.balances.collectWith(lifecycleScope, ::onBalance) } @@ -75,7 +78,7 @@ class GetBalanceFragment : BaseDemoFragment() { private fun onStatus(status: Synchronizer.Status) { - binding.textBalance.text = "Status: $status" + binding.textStatus.text = "Status: $status" if (CompactBlockProcessor.WalletBalance().none()) { binding.textBalance.text = "Calculating balance..." } else { @@ -83,6 +86,12 @@ class GetBalanceFragment : BaseDemoFragment() { } } + private fun onProgress(i: Int) { + if (i < 100) { + binding.textStatus.text = "Downloading blocks...$i%" + } + } + /** * Extension function which checks if the balance has been updated or its -1 */ @@ -91,4 +100,8 @@ class GetBalanceFragment : BaseDemoFragment() { && synchronizer.latestBalance.availableZatoshi == -1L) return true return false } + + private fun onProcessorInfoUpdated(info: CompactBlockProcessor.ProcessorInfo) { + if (info.isScanning) binding.textStatus.text = "Scanning blocks...${info.scanProgress}%" + } } diff --git a/samples/demo-app/app/src/main/res/layout/fragment_get_balance.xml b/samples/demo-app/app/src/main/res/layout/fragment_get_balance.xml index 3fe012a7..2a7d8e17 100644 --- a/samples/demo-app/app/src/main/res/layout/fragment_get_balance.xml +++ b/samples/demo-app/app/src/main/res/layout/fragment_get_balance.xml @@ -1,17 +1,31 @@ - + + + app:layout_constraintEnd_toEndOf="@+id/text_status" + app:layout_constraintHorizontal_bias="0.492" + app:layout_constraintStart_toStartOf="@+id/text_status" + app:layout_constraintTop_toBottomOf="@+id/text_status" + app:layout_constraintVertical_bias="0.0" /> \ No newline at end of file