2022-12-23 02:00:37 -08:00
|
|
|
package cash.z.ecc.android.sdk.demoapp
|
|
|
|
|
|
|
|
import android.os.Bundle
|
|
|
|
import androidx.activity.ComponentActivity
|
|
|
|
import androidx.activity.compose.setContent
|
|
|
|
import androidx.activity.viewModels
|
|
|
|
import androidx.compose.material3.MaterialTheme
|
|
|
|
import androidx.compose.material3.Surface
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
2023-01-09 07:42:38 -08:00
|
|
|
import cash.z.ecc.android.sdk.demoapp.ui.common.BindCompLocalProvider
|
2022-12-23 02:00:37 -08:00
|
|
|
import cash.z.ecc.android.sdk.demoapp.ui.screen.home.viewmodel.SecretState
|
|
|
|
import cash.z.ecc.android.sdk.demoapp.ui.screen.home.viewmodel.WalletViewModel
|
|
|
|
import cash.z.ecc.android.sdk.demoapp.ui.screen.seed.view.Seed
|
2023-01-09 07:42:38 -08:00
|
|
|
import cash.z.ecc.android.sdk.demoapp.util.fromResources
|
2022-12-23 02:00:37 -08:00
|
|
|
import cash.z.ecc.android.sdk.model.ZcashNetwork
|
|
|
|
|
|
|
|
class ComposeActivity : ComponentActivity() {
|
|
|
|
private val walletViewModel by viewModels<WalletViewModel>()
|
|
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
|
|
|
|
setContent {
|
2023-01-09 07:42:38 -08:00
|
|
|
BindCompLocalProvider {
|
|
|
|
MaterialTheme {
|
|
|
|
Surface {
|
|
|
|
MainContent()
|
|
|
|
}
|
2022-12-23 02:00:37 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Composable
|
2024-01-04 12:21:32 -08:00
|
|
|
@Suppress("ktlint:standard:function-naming")
|
2022-12-23 02:00:37 -08:00
|
|
|
private fun MainContent() {
|
|
|
|
when (walletViewModel.secretState.collectAsStateWithLifecycle().value) {
|
|
|
|
SecretState.Loading -> {
|
|
|
|
// In the future, we might consider displaying something different here.
|
|
|
|
}
|
|
|
|
SecretState.None -> {
|
|
|
|
Seed(
|
2023-09-08 07:56:02 -07:00
|
|
|
zcashNetwork = ZcashNetwork.fromResources(applicationContext),
|
2022-12-23 02:00:37 -08:00
|
|
|
onExistingWallet = { walletViewModel.persistExistingWallet(it) },
|
|
|
|
onNewWallet = { walletViewModel.persistNewWallet() }
|
|
|
|
)
|
|
|
|
}
|
|
|
|
is SecretState.Ready -> {
|
|
|
|
Navigation()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|