[#1463] Display Disconnected app state
- Closes #1463 - Disconnected dialog text update - Changelog updated
This commit is contained in:
parent
d813c1a9da
commit
6f878ea609
|
@ -12,6 +12,8 @@ directly impact users rather than highlighting other key architectural updates.*
|
|||
### Added
|
||||
- Grid pattern background has been added to several screens
|
||||
- A new disconnected dialog reminder has been added to inform users about possible server issues
|
||||
- When the app is experiencing such server connection issues, a new DISCONNECTED label will be displayed below the
|
||||
screen title
|
||||
- The transaction history list will be displayed when the app has server connection issues. Such a list might have a
|
||||
slightly different order.
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ private fun TopAppBarTextRestoringComposablePreview() {
|
|||
SmallTopAppBar(
|
||||
titleText = "Screen A",
|
||||
backText = "Back",
|
||||
restoringLabel = "[RESTORING YOUR WALLET…]"
|
||||
subTitle = "[RESTORING YOUR WALLET…]"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ private fun TopAppBarTextRestoringLongComposablePreview() {
|
|||
SmallTopAppBar(
|
||||
titleText = "Screen A",
|
||||
backText = "Back",
|
||||
restoringLabel = "[RESTORING YOUR WALLET LONG TEXT…]"
|
||||
subTitle = "[RESTORING YOUR WALLET LONG TEXT…]"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ private fun TopAppBarLogoRestoringComposablePreview() {
|
|||
SmallTopAppBar(
|
||||
showTitleLogo = true,
|
||||
backText = "Back",
|
||||
restoringLabel = "[RESTORING YOUR WALLET…]"
|
||||
subTitle = "[RESTORING YOUR WALLET…]"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -271,7 +271,7 @@ fun GridBgSmallTopAppBar(
|
|||
hamburgerMenuActions: (@Composable RowScope.() -> Unit)? = null,
|
||||
onBack: (() -> Unit)? = null,
|
||||
regularActions: (@Composable RowScope.() -> Unit)? = null,
|
||||
restoringLabel: String? = null,
|
||||
subTitle: String? = null,
|
||||
showTitleLogo: Boolean = false,
|
||||
titleText: String? = null,
|
||||
) {
|
||||
|
@ -291,7 +291,7 @@ fun GridBgSmallTopAppBar(
|
|||
hamburgerMenuActions = hamburgerMenuActions,
|
||||
onBack = onBack,
|
||||
regularActions = regularActions,
|
||||
restoringLabel = restoringLabel,
|
||||
subTitle = subTitle,
|
||||
showTitleLogo = showTitleLogo,
|
||||
titleText = titleText
|
||||
)
|
||||
|
@ -308,7 +308,7 @@ fun SmallTopAppBar(
|
|||
hamburgerMenuActions: (@Composable RowScope.() -> Unit)? = null,
|
||||
onBack: (() -> Unit)? = null,
|
||||
regularActions: (@Composable RowScope.() -> Unit)? = null,
|
||||
restoringLabel: String? = null,
|
||||
subTitle: String? = null,
|
||||
showTitleLogo: Boolean = false,
|
||||
titleText: String? = null,
|
||||
) {
|
||||
|
@ -336,12 +336,12 @@ fun SmallTopAppBar(
|
|||
restoringSpacerHeight = ZcashTheme.dimens.spacingSmall
|
||||
}
|
||||
|
||||
if (restoringLabel != null) {
|
||||
if (subTitle != null) {
|
||||
Spacer(modifier = Modifier.height(restoringSpacerHeight))
|
||||
|
||||
@Suppress("MagicNumber")
|
||||
Text(
|
||||
text = restoringLabel.uppercase(),
|
||||
text = subTitle.uppercase(),
|
||||
style = ZcashTheme.extendedTypography.restoringTopAppBarStyle,
|
||||
color = colors.subTitleColor,
|
||||
modifier = Modifier.fillMaxWidth(0.75f),
|
||||
|
|
|
@ -4,7 +4,7 @@ import androidx.compose.material3.SnackbarHostState
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import cash.z.ecc.android.sdk.type.AddressType
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import co.electriccoin.zcash.ui.integration.test.common.getPermissionNegativeButtonUiObject
|
||||
import co.electriccoin.zcash.ui.integration.test.common.getPermissionPositiveButtonUiObject
|
||||
|
@ -59,7 +59,7 @@ class ScanViewTestSetup(
|
|||
onScanStateChanged = {
|
||||
scanState.set(it)
|
||||
},
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
addressValidationResult = AddressType.Unified
|
||||
)
|
||||
}
|
||||
|
|
|
@ -2,8 +2,8 @@ package co.electriccoin.zcash.ui.screen.about.view
|
|||
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import co.electriccoin.zcash.ui.screen.support.model.ConfigInfo
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
@ -28,8 +28,8 @@ class AboutViewTestSetup(
|
|||
configInfo = configInfo,
|
||||
onPrivacyPolicy = {},
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
versionInfo = versionInfo,
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package co.electriccoin.zcash.ui.screen.account
|
|||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
|
@ -75,8 +76,9 @@ class AccountTestSetup(
|
|||
showStatusDialog = null,
|
||||
onStatusClick = {},
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
walletSnapshot = WalletSnapshotFixture.new()
|
||||
walletSnapshot = WalletSnapshotFixture.new(),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ package co.electriccoin.zcash.ui.screen.balances
|
|||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
|
@ -46,6 +47,7 @@ class BalancesTestSetup(
|
|||
setShowErrorDialog = {},
|
||||
onShielding = {},
|
||||
shieldState = ShieldState.Available,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
walletSnapshot = walletSnapshot,
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
)
|
||||
|
|
|
@ -3,7 +3,7 @@ package co.electriccoin.zcash.ui.screen.exportdata.view
|
|||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import java.util.concurrent.atomic.AtomicBoolean
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
@ -44,7 +44,7 @@ class ExportPrivateDataViewTestSetup(private val composeTestRule: ComposeContent
|
|||
onConfirm = {
|
||||
onConfirmCount.incrementAndGet()
|
||||
},
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ import co.electriccoin.zcash.ui.common.compose.LocalScreenTimeout
|
|||
import co.electriccoin.zcash.ui.common.compose.ScreenBrightness
|
||||
import co.electriccoin.zcash.ui.common.compose.ScreenBrightnessState
|
||||
import co.electriccoin.zcash.ui.common.compose.ScreenTimeout
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import co.electriccoin.zcash.ui.fixture.VersionInfoFixture
|
||||
import co.electriccoin.zcash.ui.test.getStringResource
|
||||
|
@ -70,8 +70,8 @@ class ReceiveViewTestSetup(
|
|||
onAddrCopyToClipboard = {},
|
||||
onQrImageShare = {},
|
||||
screenBrightnessState = ScreenBrightnessState.NORMAL,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
versionInfo = versionInfo,
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import androidx.compose.material3.SnackbarHostState
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import cash.z.ecc.android.sdk.type.AddressType
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import co.electriccoin.zcash.ui.screen.scan.model.ScanState
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
@ -30,7 +30,7 @@ class ScanViewBasicTestSetup(
|
|||
@Suppress("TestFunctionName")
|
||||
fun DefaultContent() {
|
||||
Scan(
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
addressValidationResult = AddressType.Shielded,
|
||||
onBack = {
|
||||
onBackCount.incrementAndGet()
|
||||
},
|
||||
|
@ -39,8 +39,8 @@ class ScanViewBasicTestSetup(
|
|||
onScanStateChanged = {
|
||||
scanState.set(it)
|
||||
},
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
addressValidationResult = AddressType.Shielded
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import cash.z.ecc.sdk.fixture.PersistableWalletFixture
|
|||
import co.electriccoin.zcash.test.UiTestPrerequisites
|
||||
import co.electriccoin.zcash.ui.common.compose.LocalScreenSecurity
|
||||
import co.electriccoin.zcash.ui.common.compose.ScreenSecurity
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import co.electriccoin.zcash.ui.fixture.VersionInfoFixture
|
||||
import kotlinx.coroutines.test.runTest
|
||||
|
@ -49,8 +49,8 @@ class SeedRecoveryRecoveryViewsSecuredScreenTest : UiTestPrerequisites() {
|
|||
onBirthdayCopy = {},
|
||||
onDone = {},
|
||||
onSeedCopy = {},
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
versionInfo = VersionInfoFixture.new(),
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,8 +3,8 @@ package co.electriccoin.zcash.ui.screen.seedrecovery.view
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import cash.z.ecc.sdk.fixture.PersistableWalletFixture
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
|
||||
|
@ -43,8 +43,8 @@ class SeedRecoveryTestSetup(
|
|||
onBirthdayCopy = { onBirthdayCopyCount.incrementAndGet() },
|
||||
onDone = { onCompleteCallbackCount.incrementAndGet() },
|
||||
onSeedCopy = { /* Not tested - debug mode feature only */ },
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
versionInfo = versionInfo,
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ import cash.z.ecc.android.sdk.model.MonetarySeparators
|
|||
import cash.z.ecc.android.sdk.model.Zatoshi
|
||||
import cash.z.ecc.android.sdk.model.ZecSend
|
||||
import cash.z.ecc.android.sdk.type.AddressType
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import co.electriccoin.zcash.ui.fixture.BalanceStateFixture
|
||||
import co.electriccoin.zcash.ui.fixture.WalletSnapshotFixture
|
||||
|
@ -131,7 +131,7 @@ class SendViewTestSetup(
|
|||
amountState = AmountState.new(context, monetarySeparators, "", false),
|
||||
setMemoState = {},
|
||||
memoState = MemoState.new(""),
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
walletSnapshot =
|
||||
WalletSnapshotFixture.new(
|
||||
saplingBalance =
|
||||
|
|
|
@ -11,7 +11,7 @@ import cash.z.ecc.android.sdk.model.MonetarySeparators
|
|||
import cash.z.ecc.android.sdk.model.Zatoshi
|
||||
import cash.z.ecc.android.sdk.model.ZcashNetwork
|
||||
import cash.z.ecc.sdk.fixture.ZecSendFixture
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.fixture.BalanceStateFixture
|
||||
import co.electriccoin.zcash.ui.fixture.MockSynchronizer
|
||||
import co.electriccoin.zcash.ui.fixture.WalletSnapshotFixture
|
||||
|
@ -79,7 +79,7 @@ class SendViewIntegrationTest {
|
|||
goSendConfirmation = {},
|
||||
hasCameraFeature = true,
|
||||
monetarySeparators = monetarySeparators,
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package co.electriccoin.zcash.ui.screen.settings
|
||||
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import co.electriccoin.zcash.ui.screen.settings.model.TroubleshootingParameters
|
||||
import co.electriccoin.zcash.ui.screen.settings.view.Settings
|
||||
|
@ -89,7 +89,7 @@ class SettingsViewTestSetup(
|
|||
onAnalyticsSettingsChanged = {
|
||||
onAnalyticsChangedCount.incrementAndGet()
|
||||
},
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package co.electriccoin.zcash.ui.screen.support.view
|
|||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.test.junit4.ComposeContentTestRule
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
import java.util.concurrent.atomic.AtomicInteger
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
|
@ -47,7 +47,7 @@ class SupportViewTestSetup(private val composeTestRule: ComposeContentTestRule)
|
|||
onSendMessage.set(it)
|
||||
},
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
package co.electriccoin.zcash.ui.common.model
|
||||
|
||||
sealed class TopAppBarSubTitleState {
|
||||
data object None : TopAppBarSubTitleState()
|
||||
|
||||
data object Disconnected : TopAppBarSubTitleState()
|
||||
|
||||
data object Restoring : TopAppBarSubTitleState()
|
||||
}
|
|
@ -32,6 +32,7 @@ import co.electriccoin.zcash.ui.common.ANDROID_STATE_FLOW_TIMEOUT
|
|||
import co.electriccoin.zcash.ui.common.compose.BalanceState
|
||||
import co.electriccoin.zcash.ui.common.extension.throttle
|
||||
import co.electriccoin.zcash.ui.common.model.OnboardingState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.common.model.hasChangePending
|
||||
|
@ -124,6 +125,32 @@ class WalletViewModel(application: Application) : AndroidViewModel(application)
|
|||
WalletRestoringState.NONE
|
||||
)
|
||||
|
||||
/**
|
||||
* A flow of the wallet current state information that should be displayed in screens top app bar.
|
||||
*/
|
||||
@OptIn(ExperimentalCoroutinesApi::class)
|
||||
val walletStateInformation: StateFlow<TopAppBarSubTitleState> =
|
||||
synchronizer
|
||||
.filterNotNull()
|
||||
.flatMapLatest { synchronizer ->
|
||||
combine(
|
||||
synchronizer.status,
|
||||
walletRestoringState
|
||||
) { status: Synchronizer.Status?, walletRestoringState: WalletRestoringState ->
|
||||
if (Synchronizer.Status.DISCONNECTED == status) {
|
||||
TopAppBarSubTitleState.Disconnected
|
||||
} else if (WalletRestoringState.RESTORING == walletRestoringState) {
|
||||
TopAppBarSubTitleState.Restoring
|
||||
} else {
|
||||
TopAppBarSubTitleState.None
|
||||
}
|
||||
}
|
||||
}.stateIn(
|
||||
viewModelScope,
|
||||
SharingStarted.WhileSubscribed(ANDROID_STATE_FLOW_TIMEOUT),
|
||||
TopAppBarSubTitleState.None
|
||||
)
|
||||
|
||||
/**
|
||||
* A flow of the wallet onboarding state.
|
||||
*/
|
||||
|
|
|
@ -14,8 +14,8 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
|||
import co.electriccoin.zcash.configuration.AndroidConfigurationFactory
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.screen.about.util.WebBrowserUtil
|
||||
import co.electriccoin.zcash.ui.screen.about.view.About
|
||||
|
@ -27,12 +27,12 @@ import kotlinx.coroutines.launch
|
|||
internal fun MainActivity.WrapAbout(goBack: () -> Unit) {
|
||||
val walletViewModel by viewModels<WalletViewModel>()
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapAbout(
|
||||
activity = this,
|
||||
goBack = goBack,
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = walletState
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -40,7 +40,7 @@ internal fun MainActivity.WrapAbout(goBack: () -> Unit) {
|
|||
internal fun WrapAbout(
|
||||
activity: ComponentActivity,
|
||||
goBack: () -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
val configInfo = ConfigInfo.new(AndroidConfigurationFactory.getInstance(activity.applicationContext))
|
||||
val versionInfo = VersionInfo.new(activity.applicationContext)
|
||||
|
@ -66,7 +66,7 @@ internal fun WrapAbout(
|
|||
)
|
||||
},
|
||||
snackbarHostState = snackbarHostState,
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -39,8 +39,8 @@ import androidx.compose.ui.text.style.TextDecoration
|
|||
import androidx.compose.ui.text.withStyle
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.design.component.BlankBgScaffold
|
||||
import co.electriccoin.zcash.ui.design.component.SmallTopAppBar
|
||||
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
|
||||
|
@ -57,8 +57,8 @@ private fun AboutPreview() {
|
|||
configInfo = ConfigInfoFixture.new(),
|
||||
onPrivacyPolicy = {},
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
versionInfo = VersionInfoFixture.new(),
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -70,8 +70,8 @@ fun About(
|
|||
configInfo: ConfigInfo,
|
||||
onPrivacyPolicy: () -> Unit,
|
||||
snackbarHostState: SnackbarHostState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
versionInfo: VersionInfo,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
) {
|
||||
BlankBgScaffold(
|
||||
topBar = {
|
||||
|
@ -79,7 +79,7 @@ fun About(
|
|||
onBack = onBack,
|
||||
versionInfo = versionInfo,
|
||||
configInfo = configInfo,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
snackbarHost = { SnackbarHost(snackbarHostState) },
|
||||
|
@ -108,14 +108,14 @@ private fun AboutTopAppBar(
|
|||
onBack: () -> Unit,
|
||||
versionInfo: VersionInfo,
|
||||
configInfo: ConfigInfo,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
titleText = stringResource(id = R.string.about_title).uppercase(),
|
||||
backText = stringResource(id = R.string.about_back).uppercase(),
|
||||
|
|
|
@ -16,6 +16,7 @@ import cash.z.ecc.android.sdk.internal.Twig
|
|||
import co.electriccoin.zcash.spackle.ClipboardManagerUtil
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.compose.BalanceState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
|
@ -50,6 +51,8 @@ internal fun WrapAccount(
|
|||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
val balanceState = walletViewModel.balanceState.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletSnapshot = walletViewModel.walletSnapshot.collectAsStateWithLifecycle().value
|
||||
|
@ -60,6 +63,7 @@ internal fun WrapAccount(
|
|||
goBalances = goBalances,
|
||||
goSettings = goSettings,
|
||||
synchronizer = synchronizer,
|
||||
topAppBarSubTitleState = walletState,
|
||||
transactionHistoryViewModel = transactionHistoryViewModel,
|
||||
transactionsUiState = transactionsUiState,
|
||||
walletRestoringState = walletRestoringState,
|
||||
|
@ -80,6 +84,7 @@ internal fun WrapAccount(
|
|||
goSettings: () -> Unit,
|
||||
transactionsUiState: TransactionUiState,
|
||||
synchronizer: Synchronizer?,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
transactionHistoryViewModel: TransactionHistoryViewModel,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
walletSnapshot: WalletSnapshot?
|
||||
|
@ -159,6 +164,7 @@ internal fun WrapAccount(
|
|||
goBalances = goBalances,
|
||||
goSettings = goSettings,
|
||||
snackbarHostState = snackbarHostState,
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
walletRestoringState = walletRestoringState,
|
||||
walletSnapshot = walletSnapshot
|
||||
)
|
||||
|
|
|
@ -21,6 +21,7 @@ import co.electriccoin.zcash.ui.R
|
|||
import co.electriccoin.zcash.ui.common.compose.BalanceState
|
||||
import co.electriccoin.zcash.ui.common.compose.BalanceWidget
|
||||
import co.electriccoin.zcash.ui.common.compose.StatusDialog
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.common.test.CommonTag
|
||||
|
@ -47,6 +48,7 @@ private fun HistoryLoadingComposablePreview() {
|
|||
onStatusClick = {},
|
||||
onTransactionItemAction = {},
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
transactionsUiState = TransactionUiState.Loading,
|
||||
walletRestoringState = WalletRestoringState.SYNCING,
|
||||
walletSnapshot = WalletSnapshotFixture.new(),
|
||||
|
@ -72,6 +74,7 @@ private fun HistoryListComposablePreview() {
|
|||
onStatusClick = {},
|
||||
onTransactionItemAction = {},
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
transactionsUiState = TransactionUiState.Done(transactions = TransactionsFixture.new()),
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
walletSnapshot = WalletSnapshotFixture.new(),
|
||||
|
@ -90,6 +93,7 @@ internal fun Account(
|
|||
onStatusClick: (StatusAction) -> Unit,
|
||||
onTransactionItemAction: (TrxItemAction) -> Unit,
|
||||
snackbarHostState: SnackbarHostState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
transactionsUiState: TransactionUiState,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
walletSnapshot: WalletSnapshot,
|
||||
|
@ -97,8 +101,8 @@ internal fun Account(
|
|||
BlankBgScaffold(
|
||||
topBar = {
|
||||
AccountTopAppBar(
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
onSettings = goSettings
|
||||
onSettings = goSettings,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
snackbarHost = {
|
||||
|
@ -111,7 +115,7 @@ internal fun Account(
|
|||
onStatusClick = onStatusClick,
|
||||
onTransactionItemAction = onTransactionItemAction,
|
||||
transactionState = transactionsUiState,
|
||||
walletRestoringState = walletRestoringState,
|
||||
isWalletRestoringState = walletRestoringState,
|
||||
walletSnapshot = walletSnapshot,
|
||||
modifier =
|
||||
Modifier.padding(
|
||||
|
@ -134,14 +138,14 @@ internal fun Account(
|
|||
@Composable
|
||||
private fun AccountTopAppBar(
|
||||
onSettings: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
showTitleLogo = true,
|
||||
hamburgerMenuActions = {
|
||||
|
@ -166,7 +170,7 @@ private fun AccountMainContent(
|
|||
onTransactionItemAction: (TrxItemAction) -> Unit,
|
||||
onStatusClick: (StatusAction) -> Unit,
|
||||
transactionState: TransactionUiState,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
isWalletRestoringState: WalletRestoringState,
|
||||
walletSnapshot: WalletSnapshot,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
|
@ -190,7 +194,7 @@ private fun AccountMainContent(
|
|||
onStatusClick = onStatusClick,
|
||||
onTransactionItemAction = onTransactionItemAction,
|
||||
transactionState = transactionState,
|
||||
walletRestoringState = walletRestoringState,
|
||||
walletRestoringState = isWalletRestoringState,
|
||||
walletSnapshot = walletSnapshot,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import androidx.activity.viewModels
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.screen.advancedsettings.view.AdvancedSettings
|
||||
|
||||
|
@ -21,7 +21,7 @@ internal fun MainActivity.WrapAdvancedSettings(
|
|||
) {
|
||||
val walletViewModel by viewModels<WalletViewModel>()
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapAdvancedSettings(
|
||||
goBack = goBack,
|
||||
|
@ -29,7 +29,7 @@ internal fun MainActivity.WrapAdvancedSettings(
|
|||
goExportPrivateData = goExportPrivateData,
|
||||
goChooseServer = goChooseServer,
|
||||
goSeedRecovery = goSeedRecovery,
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = walletState
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ private fun WrapAdvancedSettings(
|
|||
goChooseServer: () -> Unit,
|
||||
goSeedRecovery: () -> Unit,
|
||||
goDeleteWallet: () -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
BackHandler {
|
||||
goBack()
|
||||
|
@ -53,6 +53,6 @@ private fun WrapAdvancedSettings(
|
|||
onExportPrivateData = goExportPrivateData,
|
||||
onChooseServer = goChooseServer,
|
||||
onSeedRecovery = goSeedRecovery,
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.MINIMAL_WEIGHT
|
||||
import co.electriccoin.zcash.ui.design.component.BlankBgScaffold
|
||||
import co.electriccoin.zcash.ui.design.component.PrimaryButton
|
||||
|
@ -40,7 +40,7 @@ private fun PreviewAdvancedSettings() {
|
|||
onExportPrivateData = {},
|
||||
onChooseServer = {},
|
||||
onSeedRecovery = {},
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -53,13 +53,13 @@ fun AdvancedSettings(
|
|||
onExportPrivateData: () -> Unit,
|
||||
onChooseServer: () -> Unit,
|
||||
onSeedRecovery: () -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
BlankBgScaffold(
|
||||
topBar = {
|
||||
AdvancedSettingsTopAppBar(
|
||||
onBack = onBack,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
) { paddingValues ->
|
||||
|
@ -86,14 +86,14 @@ fun AdvancedSettings(
|
|||
@Composable
|
||||
private fun AdvancedSettingsTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
modifier = Modifier.testTag(AdvancedSettingsTag.ADVANCED_SETTINGS_TOP_APP_BAR),
|
||||
showTitleLogo = true,
|
||||
|
|
|
@ -22,6 +22,7 @@ import co.electriccoin.zcash.spackle.Twig
|
|||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.compose.BalanceState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.CheckUpdateViewModel
|
||||
|
@ -60,6 +61,8 @@ internal fun WrapBalances(
|
|||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
val checkUpdateViewModel by activity.viewModels<CheckUpdateViewModel> {
|
||||
CheckUpdateViewModel.CheckUpdateViewModelFactory(
|
||||
activity.application,
|
||||
|
@ -78,6 +81,7 @@ internal fun WrapBalances(
|
|||
lifecycleScope = activity.lifecycleScope,
|
||||
spendingKey = spendingKey,
|
||||
synchronizer = synchronizer,
|
||||
topAppBarSubTitleState = walletState,
|
||||
walletSnapshot = walletSnapshot,
|
||||
walletRestoringState = walletRestoringState,
|
||||
)
|
||||
|
@ -98,6 +102,7 @@ internal fun WrapBalances(
|
|||
lifecycleScope: CoroutineScope,
|
||||
spendingKey: UnifiedSpendingKey?,
|
||||
synchronizer: Synchronizer?,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
walletSnapshot: WalletSnapshot?,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
) {
|
||||
|
@ -232,6 +237,7 @@ internal fun WrapBalances(
|
|||
}
|
||||
},
|
||||
shieldState = shieldState,
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
walletSnapshot = walletSnapshot,
|
||||
walletRestoringState = walletRestoringState,
|
||||
)
|
||||
|
|
|
@ -58,6 +58,7 @@ import co.electriccoin.zcash.ui.common.compose.BalanceState
|
|||
import co.electriccoin.zcash.ui.common.compose.BalanceWidget
|
||||
import co.electriccoin.zcash.ui.common.compose.StatusDialog
|
||||
import co.electriccoin.zcash.ui.common.compose.SynchronizationStatus
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.common.model.changePendingBalance
|
||||
|
@ -104,6 +105,7 @@ private fun ComposableBalancesPreview() {
|
|||
onStatusClick = {},
|
||||
shieldState = ShieldState.Available,
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
walletSnapshot = WalletSnapshotFixture.new(),
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
)
|
||||
|
@ -127,6 +129,7 @@ private fun ComposableBalancesShieldFailurePreview() {
|
|||
onStatusClick = {},
|
||||
shieldState = ShieldState.Available,
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
walletSnapshot = WalletSnapshotFixture.new(),
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
)
|
||||
|
@ -161,14 +164,15 @@ fun Balances(
|
|||
onStatusClick: (StatusAction) -> Unit,
|
||||
shieldState: ShieldState,
|
||||
snackbarHostState: SnackbarHostState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
walletSnapshot: WalletSnapshot?,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
) {
|
||||
BlankBgScaffold(
|
||||
topBar = {
|
||||
BalancesTopAppBar(
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
onSettings = onSettings
|
||||
onSettings = onSettings,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
snackbarHost = {
|
||||
|
@ -250,14 +254,14 @@ fun ShieldingErrorDialog(
|
|||
@Composable
|
||||
private fun BalancesTopAppBar(
|
||||
onSettings: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
titleText = stringResource(id = R.string.balances_title),
|
||||
showTitleLogo = false,
|
||||
|
|
|
@ -19,7 +19,7 @@ import cash.z.ecc.android.sdk.model.ZcashNetwork
|
|||
import cash.z.ecc.android.sdk.type.ServerValidation
|
||||
import cash.z.ecc.sdk.type.fromResources
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.SecretState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.design.component.CircularScreenProgressIndicator
|
||||
|
@ -34,7 +34,7 @@ internal fun MainActivity.WrapChooseServer(goBack: () -> Unit) {
|
|||
|
||||
val synchronizer = walletViewModel.synchronizer.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapChooseServer(
|
||||
activity = this,
|
||||
|
@ -47,7 +47,7 @@ internal fun MainActivity.WrapChooseServer(goBack: () -> Unit) {
|
|||
onWalletPersist = {
|
||||
walletViewModel.persistExistingWallet(it)
|
||||
},
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = walletState
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ private fun WrapChooseServer(
|
|||
onWalletPersist: (PersistableWallet) -> Unit,
|
||||
secretState: SecretState,
|
||||
synchronizer: Synchronizer?,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
if (synchronizer == null || secretState !is SecretState.Ready) {
|
||||
// TODO [#1146]: Consider moving CircularScreenProgressIndicator from Android layer to View layer
|
||||
|
@ -128,7 +128,7 @@ private fun WrapChooseServer(
|
|||
setShowErrorDialog = setShowErrorDialog,
|
||||
isShowingSuccessDialog = isShowingSuccessDialog,
|
||||
setShowSuccessDialog = setShowSuccessDialog,
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ import cash.z.ecc.sdk.extension.isValid
|
|||
import cash.z.ecc.sdk.fixture.PersistableWalletFixture
|
||||
import co.electriccoin.lightwallet.client.model.LightWalletEndpoint
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.component.AppAlertDialog
|
||||
import co.electriccoin.zcash.ui.design.component.BlankBgScaffold
|
||||
import co.electriccoin.zcash.ui.design.component.FormTextField
|
||||
|
@ -65,7 +65,7 @@ private fun PreviewChooseServer() {
|
|||
setShowErrorDialog = {},
|
||||
isShowingSuccessDialog = false,
|
||||
setShowSuccessDialog = {},
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ fun ChooseServer(
|
|||
setShowErrorDialog: (Boolean) -> Unit,
|
||||
isShowingSuccessDialog: Boolean,
|
||||
setShowSuccessDialog: (Boolean) -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
val options =
|
||||
availableServers.toMutableList().apply {
|
||||
|
@ -124,7 +124,7 @@ fun ChooseServer(
|
|||
topBar = {
|
||||
ChooseServerTopAppBar(
|
||||
onBack = onBack,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
bottomBar = {
|
||||
|
@ -221,15 +221,15 @@ fun ChooseServerBottomBar(
|
|||
@Composable
|
||||
private fun ChooseServerTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
titleText = stringResource(id = R.string.choose_server_title),
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
modifier = Modifier.testTag(ChooseServerTag.CHOOSE_SERVER_TOP_APP_BAR),
|
||||
showTitleLogo = true,
|
||||
|
|
|
@ -11,7 +11,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
|||
import co.electriccoin.zcash.spackle.Twig
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.screen.deletewallet.view.DeleteWallet
|
||||
import kotlinx.coroutines.launch
|
||||
|
@ -20,12 +20,12 @@ import kotlinx.coroutines.launch
|
|||
internal fun MainActivity.WrapDeleteWallet(goBack: () -> Unit) {
|
||||
val walletViewModel by viewModels<WalletViewModel>()
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapDeleteWallet(
|
||||
activity = this,
|
||||
goBack = goBack,
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = walletState,
|
||||
walletViewModel = walletViewModel,
|
||||
)
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ internal fun MainActivity.WrapDeleteWallet(goBack: () -> Unit) {
|
|||
internal fun WrapDeleteWallet(
|
||||
activity: Activity,
|
||||
goBack: () -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
walletViewModel: WalletViewModel,
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
|
@ -63,6 +63,6 @@ internal fun WrapDeleteWallet(
|
|||
}
|
||||
}
|
||||
},
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ import androidx.compose.ui.Modifier
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.MINIMAL_WEIGHT
|
||||
import co.electriccoin.zcash.ui.design.component.Body
|
||||
import co.electriccoin.zcash.ui.design.component.CheckBox
|
||||
|
@ -38,7 +38,7 @@ private fun ExportPrivateDataPreview() {
|
|||
snackbarHostState = SnackbarHostState(),
|
||||
onBack = {},
|
||||
onConfirm = {},
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -48,13 +48,13 @@ fun DeleteWallet(
|
|||
snackbarHostState: SnackbarHostState,
|
||||
onBack: () -> Unit,
|
||||
onConfirm: () -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
GridBgScaffold(
|
||||
topBar = {
|
||||
DeleteWalletDataTopAppBar(
|
||||
onBack = onBack,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
snackbarHost = { SnackbarHost(snackbarHostState) },
|
||||
|
@ -78,14 +78,14 @@ fun DeleteWallet(
|
|||
@Composable
|
||||
private fun DeleteWalletDataTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
GridBgSmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
backText = stringResource(R.string.delete_wallet_back).uppercase(),
|
||||
backContentDescriptionText = stringResource(R.string.delete_wallet_back_content_description),
|
||||
|
|
|
@ -15,8 +15,8 @@ import cash.z.ecc.android.sdk.model.ZcashNetwork
|
|||
import cash.z.ecc.sdk.type.fromResources
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.design.component.CircularScreenProgressIndicator
|
||||
import co.electriccoin.zcash.ui.screen.exportdata.view.ExportPrivateData
|
||||
|
@ -35,14 +35,14 @@ internal fun MainActivity.WrapExportPrivateData(
|
|||
|
||||
val synchronizer = walletViewModel.synchronizer.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapExportPrivateData(
|
||||
this,
|
||||
goBack = goBack,
|
||||
onShare = onConfirm,
|
||||
synchronizer = synchronizer,
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = walletState,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ internal fun WrapExportPrivateData(
|
|||
goBack: () -> Unit,
|
||||
onShare: () -> Unit,
|
||||
synchronizer: Synchronizer?,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
BackHandler {
|
||||
goBack()
|
||||
|
@ -86,7 +86,7 @@ internal fun WrapExportPrivateData(
|
|||
}
|
||||
}
|
||||
},
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ import androidx.compose.ui.res.stringResource
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.sp
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.MINIMAL_WEIGHT
|
||||
import co.electriccoin.zcash.ui.design.component.Body
|
||||
import co.electriccoin.zcash.ui.design.component.CheckBox
|
||||
|
@ -41,7 +41,7 @@ private fun ExportPrivateDataPreview() {
|
|||
onBack = {},
|
||||
onAgree = {},
|
||||
onConfirm = {},
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -55,13 +55,13 @@ fun ExportPrivateData(
|
|||
onBack: () -> Unit,
|
||||
onAgree: (Boolean) -> Unit,
|
||||
onConfirm: () -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
GridBgScaffold(
|
||||
topBar = {
|
||||
ExportPrivateDataTopAppBar(
|
||||
onBack = onBack,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
snackbarHost = { SnackbarHost(snackbarHostState) },
|
||||
|
@ -86,14 +86,14 @@ fun ExportPrivateData(
|
|||
@Composable
|
||||
private fun ExportPrivateDataTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
GridBgSmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
backText = stringResource(R.string.export_data_back).uppercase(),
|
||||
backContentDescriptionText = stringResource(R.string.export_data_back_content_description),
|
||||
|
|
|
@ -43,7 +43,7 @@ internal fun WrapReceive(
|
|||
|
||||
val walletAddresses = walletViewModel.addresses.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
val snackbarHostState = remember { SnackbarHostState() }
|
||||
val scope = rememberCoroutineScope()
|
||||
|
@ -86,9 +86,9 @@ internal fun WrapReceive(
|
|||
},
|
||||
onSettings = onSettings,
|
||||
snackbarHostState = snackbarHostState,
|
||||
topAppBarSubTitleState = walletState,
|
||||
versionInfo = versionInfo,
|
||||
walletAddress = walletAddresses,
|
||||
walletRestoringState = walletRestoringState,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -39,8 +39,8 @@ import co.electriccoin.zcash.ui.R
|
|||
import co.electriccoin.zcash.ui.common.compose.BrightenScreen
|
||||
import co.electriccoin.zcash.ui.common.compose.DisableScreenTimeout
|
||||
import co.electriccoin.zcash.ui.common.compose.ScreenBrightnessState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.test.CommonTag
|
||||
import co.electriccoin.zcash.ui.design.component.BlankBgScaffold
|
||||
import co.electriccoin.zcash.ui.design.component.CircularScreenProgressIndicator
|
||||
|
@ -66,8 +66,8 @@ private fun ComposablePreview() {
|
|||
onAdjustBrightness = {},
|
||||
onAddrCopyToClipboard = {},
|
||||
onQrImageShare = {},
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
versionInfo = VersionInfoFixture.new(),
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -82,8 +82,8 @@ fun Receive(
|
|||
onAdjustBrightness: (ScreenBrightnessState) -> Unit,
|
||||
onAddrCopyToClipboard: (String) -> Unit,
|
||||
onQrImageShare: (ImageBitmap) -> Unit,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
versionInfo: VersionInfo,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
) {
|
||||
BlankBgScaffold(
|
||||
topBar = {
|
||||
|
@ -92,7 +92,7 @@ fun Receive(
|
|||
onBrightness = {
|
||||
onAdjustBrightness(screenBrightnessState.getChange())
|
||||
},
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
versionInfo = versionInfo,
|
||||
)
|
||||
},
|
||||
|
@ -123,15 +123,15 @@ fun Receive(
|
|||
private fun ReceiveTopAppBar(
|
||||
onSettings: () -> Unit,
|
||||
onBrightness: () -> Unit,
|
||||
subTitleState: TopAppBarSubTitleState,
|
||||
versionInfo: VersionInfo,
|
||||
showRestoring: Boolean
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
titleText = stringResource(id = R.string.receive_title),
|
||||
hamburgerMenuActions = {
|
||||
|
|
|
@ -15,7 +15,7 @@ import cash.z.ecc.android.sdk.type.AddressType
|
|||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.SerializableAddress
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.design.component.CircularScreenProgressIndicator
|
||||
import co.electriccoin.zcash.ui.screen.scan.util.SettingsUtil
|
||||
|
@ -31,14 +31,14 @@ internal fun MainActivity.WrapScanValidator(
|
|||
|
||||
val synchronizer = walletViewModel.synchronizer.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapScan(
|
||||
context = this,
|
||||
onScanValid = onScanValid,
|
||||
goBack = goBack,
|
||||
synchronizer = synchronizer,
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = walletState,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ fun WrapScan(
|
|||
goBack: () -> Unit,
|
||||
onScanValid: (address: SerializableAddress) -> Unit,
|
||||
synchronizer: Synchronizer?,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
|
@ -89,7 +89,7 @@ fun WrapScan(
|
|||
}
|
||||
},
|
||||
onScanStateChanged = {},
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ import androidx.core.content.ContextCompat
|
|||
import cash.z.ecc.android.sdk.type.AddressType
|
||||
import co.electriccoin.zcash.spackle.Twig
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.component.BlankSurface
|
||||
import co.electriccoin.zcash.ui.design.component.SecondaryButton
|
||||
import co.electriccoin.zcash.ui.design.component.Small
|
||||
|
@ -91,7 +91,7 @@ private fun PreviewScan() {
|
|||
onScanned = {},
|
||||
onOpenSettings = {},
|
||||
onScanStateChanged = {},
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
addressValidationResult = AddressType.Transparent,
|
||||
)
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ fun Scan(
|
|||
onScanned: (String) -> Unit,
|
||||
onOpenSettings: () -> Unit,
|
||||
onScanStateChanged: (ScanState) -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
addressValidationResult: AddressType?
|
||||
) {
|
||||
val permissionState =
|
||||
|
@ -155,7 +155,7 @@ fun Scan(
|
|||
ScanTopAppBar(
|
||||
onBack = onBack,
|
||||
showBack = scanState != ScanState.Scanning,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -226,14 +226,14 @@ fun ScanBottomItems(
|
|||
private fun ScanTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
showBack: Boolean,
|
||||
showRestoring: Boolean,
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
backText =
|
||||
if (showBack) {
|
||||
|
|
|
@ -9,8 +9,8 @@ import cash.z.ecc.android.sdk.Synchronizer
|
|||
import co.electriccoin.zcash.spackle.ClipboardManagerUtil
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.SecretState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.design.component.CircularScreenProgressIndicator
|
||||
|
@ -27,7 +27,7 @@ internal fun MainActivity.WrapSeedRecovery(
|
|||
|
||||
val secretState = walletViewModel.secretState.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapSeedRecovery(
|
||||
activity = this,
|
||||
|
@ -35,7 +35,7 @@ internal fun MainActivity.WrapSeedRecovery(
|
|||
onDone = onDone,
|
||||
secretState = secretState,
|
||||
synchronizer = synchronizer,
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = walletState
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ private fun WrapSeedRecovery(
|
|||
activity: ComponentActivity,
|
||||
goBack: () -> Unit,
|
||||
onDone: () -> Unit,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
synchronizer: Synchronizer?,
|
||||
secretState: SecretState,
|
||||
) {
|
||||
|
@ -86,8 +86,8 @@ private fun WrapSeedRecovery(
|
|||
)
|
||||
},
|
||||
onDone = onDone,
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
versionInfo = versionInfo,
|
||||
walletRestoringState = walletRestoringState
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,8 +40,8 @@ import cash.z.ecc.sdk.fixture.PersistableWalletFixture
|
|||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.compose.SecureScreen
|
||||
import co.electriccoin.zcash.ui.common.compose.shouldSecureScreen
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.test.CommonTag.WALLET_BIRTHDAY
|
||||
import co.electriccoin.zcash.ui.design.MINIMAL_WEIGHT
|
||||
import co.electriccoin.zcash.ui.design.component.BodySmall
|
||||
|
@ -65,7 +65,7 @@ private fun ComposablePreview() {
|
|||
onDone = {},
|
||||
onSeedCopy = {},
|
||||
versionInfo = VersionInfoFixture.new(),
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -84,8 +84,8 @@ fun SeedRecovery(
|
|||
onBirthdayCopy: () -> Unit,
|
||||
onDone: () -> Unit,
|
||||
onSeedCopy: () -> Unit,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
versionInfo: VersionInfo,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
) {
|
||||
GridBgScaffold(
|
||||
topBar = {
|
||||
|
@ -93,7 +93,7 @@ fun SeedRecovery(
|
|||
onBack = onBack,
|
||||
onSeedCopy = onSeedCopy,
|
||||
versionInfo = versionInfo,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
) { paddingValues ->
|
||||
|
@ -118,16 +118,16 @@ fun SeedRecovery(
|
|||
private fun SeedRecoveryTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
onSeedCopy: () -> Unit,
|
||||
subTitleState: TopAppBarSubTitleState,
|
||||
versionInfo: VersionInfo,
|
||||
showRestoring: Boolean,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
GridBgSmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
modifier = modifier,
|
||||
backText = stringResource(id = R.string.seed_recovery_back).uppercase(),
|
||||
|
|
|
@ -25,7 +25,7 @@ import cash.z.ecc.android.sdk.model.toZecString
|
|||
import cash.z.ecc.android.sdk.type.AddressType
|
||||
import co.electriccoin.zcash.spackle.Twig
|
||||
import co.electriccoin.zcash.ui.common.compose.BalanceState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.HomeViewModel
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
|
@ -75,7 +75,7 @@ internal fun WrapSend(
|
|||
// TODO [#1171]: https://github.com/Electric-Coin-Company/zashi-android/issues/1171
|
||||
val monetarySeparators = MonetarySeparators.current(Locale.US)
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
val balanceState = walletViewModel.balanceState.collectAsStateWithLifecycle().value
|
||||
|
||||
|
@ -93,7 +93,7 @@ internal fun WrapSend(
|
|||
goSendConfirmation = goSendConfirmation,
|
||||
hasCameraFeature = hasCameraFeature,
|
||||
monetarySeparators = monetarySeparators,
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = walletState,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -102,10 +102,6 @@ internal fun WrapSend(
|
|||
@Composable
|
||||
internal fun WrapSend(
|
||||
balanceState: BalanceState,
|
||||
sendArguments: SendArguments?,
|
||||
synchronizer: Synchronizer?,
|
||||
walletSnapshot: WalletSnapshot?,
|
||||
spendingKey: UnifiedSpendingKey?,
|
||||
focusManager: FocusManager,
|
||||
goToQrScanner: () -> Unit,
|
||||
goBack: () -> Unit,
|
||||
|
@ -114,7 +110,11 @@ internal fun WrapSend(
|
|||
goSendConfirmation: (ZecSend) -> Unit,
|
||||
hasCameraFeature: Boolean,
|
||||
monetarySeparators: MonetarySeparators,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
sendArguments: SendArguments?,
|
||||
spendingKey: UnifiedSpendingKey?,
|
||||
synchronizer: Synchronizer?,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
walletSnapshot: WalletSnapshot?,
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
|
@ -240,7 +240,7 @@ internal fun WrapSend(
|
|||
onQrScannerOpen = goToQrScanner,
|
||||
goBalances = goBalances,
|
||||
hasCameraFeature = hasCameraFeature,
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
walletSnapshot = walletSnapshot,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ import co.electriccoin.zcash.spackle.Twig
|
|||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.compose.BalanceState
|
||||
import co.electriccoin.zcash.ui.common.compose.BalanceWidget
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.WalletSnapshot
|
||||
import co.electriccoin.zcash.ui.common.model.canSpend
|
||||
import co.electriccoin.zcash.ui.common.model.spendableBalance
|
||||
|
@ -103,7 +103,7 @@ private fun PreviewSendForm() {
|
|||
amountState = AmountState.Valid(ZatoshiFixture.ZATOSHI_LONG.toString(), ZatoshiFixture.new()),
|
||||
setMemoState = {},
|
||||
memoState = MemoState.new("Test message"),
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
walletSnapshot = WalletSnapshotFixture.new(),
|
||||
balanceState = BalanceStateFixture.new()
|
||||
)
|
||||
|
@ -131,12 +131,12 @@ fun Send(
|
|||
amountState: AmountState,
|
||||
setMemoState: (MemoState) -> Unit,
|
||||
memoState: MemoState,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
walletSnapshot: WalletSnapshot,
|
||||
) {
|
||||
BlankBgScaffold(topBar = {
|
||||
SendTopAppBar(
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
onSettings = onSettings
|
||||
)
|
||||
}) { paddingValues ->
|
||||
|
@ -171,14 +171,14 @@ fun Send(
|
|||
@Composable
|
||||
private fun SendTopAppBar(
|
||||
onSettings: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
titleText = stringResource(id = R.string.send_stage_send_title),
|
||||
hamburgerMenuActions = {
|
||||
|
|
|
@ -26,7 +26,7 @@ import cash.z.ecc.android.sdk.model.ZecSend
|
|||
import co.electriccoin.zcash.spackle.Twig
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.AuthenticationViewModel
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.design.component.CircularScreenProgressIndicator
|
||||
|
@ -72,7 +72,7 @@ internal fun MainActivity.WrapSendConfirmation(
|
|||
|
||||
val supportMessage = supportViewModel.supportInfo.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapSendConfirmation(
|
||||
activity = this,
|
||||
|
@ -86,7 +86,7 @@ internal fun MainActivity.WrapSendConfirmation(
|
|||
spendingKey = spendingKey,
|
||||
supportMessage = supportMessage,
|
||||
synchronizer = synchronizer,
|
||||
walletRestoringState = walletRestoringState,
|
||||
topAppBarSubTitleState = walletState,
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ internal fun WrapSendConfirmation(
|
|||
spendingKey: UnifiedSpendingKey?,
|
||||
supportMessage: SupportInfo?,
|
||||
synchronizer: Synchronizer?,
|
||||
walletRestoringState: WalletRestoringState
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
val scope = rememberCoroutineScope()
|
||||
|
||||
|
@ -205,7 +205,7 @@ internal fun WrapSendConfirmation(
|
|||
}
|
||||
}
|
||||
},
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
|
||||
if (sendFundsAuthentication.value) {
|
||||
|
|
|
@ -42,7 +42,7 @@ import cash.z.ecc.sdk.fixture.MemoFixture
|
|||
import cash.z.ecc.sdk.fixture.ZatoshiFixture
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.compose.BalanceWidgetBigLineOnly
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.MINIMAL_WEIGHT
|
||||
import co.electriccoin.zcash.ui.design.component.AppAlertDialog
|
||||
import co.electriccoin.zcash.ui.design.component.BlankBgScaffold
|
||||
|
@ -113,20 +113,20 @@ private fun PreviewSendMultipleTransactionFailure() {
|
|||
@Suppress("LongParameterList")
|
||||
fun SendConfirmation(
|
||||
onBack: () -> Unit,
|
||||
onContactSupport: () -> Unit,
|
||||
onConfirmation: () -> Unit,
|
||||
onContactSupport: () -> Unit,
|
||||
snackbarHostState: SnackbarHostState,
|
||||
stage: SendConfirmationStage,
|
||||
submissionResults: ImmutableList<TransactionSubmitResult>,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
zecSend: ZecSend,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
) {
|
||||
BlankBgScaffold(
|
||||
topBar = {
|
||||
SendConfirmationTopAppBar(
|
||||
onBack = onBack,
|
||||
stage = stage,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
snackbarHost = { SnackbarHost(snackbarHostState) },
|
||||
|
@ -154,41 +154,32 @@ fun SendConfirmation(
|
|||
private fun SendConfirmationTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
stage: SendConfirmationStage,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
val subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
}
|
||||
when (stage) {
|
||||
SendConfirmationStage.Confirmation,
|
||||
SendConfirmationStage.Sending,
|
||||
is SendConfirmationStage.Failure -> {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
},
|
||||
subTitle = subTitle,
|
||||
titleText = stringResource(id = R.string.send_stage_confirmation_title),
|
||||
)
|
||||
}
|
||||
SendConfirmationStage.MultipleTrxFailure -> {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
},
|
||||
subTitle = subTitle,
|
||||
titleText = stringResource(id = R.string.send_confirmation_multiple_error_title),
|
||||
)
|
||||
}
|
||||
SendConfirmationStage.MultipleTrxFailureReported -> {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
},
|
||||
subTitle = subTitle,
|
||||
titleText = stringResource(id = R.string.send_confirmation_multiple_error_title),
|
||||
backText = stringResource(id = R.string.send_confirmation_multiple_error_back),
|
||||
backContentDescriptionText =
|
||||
|
|
|
@ -6,8 +6,8 @@ import androidx.activity.viewModels
|
|||
import androidx.compose.runtime.Composable
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.model.VersionInfo
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.configuration.ConfigurationEntries
|
||||
import co.electriccoin.zcash.ui.configuration.RemoteConfig
|
||||
|
@ -27,7 +27,7 @@ internal fun MainActivity.WrapSettings(
|
|||
|
||||
val settingsViewModel by viewModels<SettingsViewModel>()
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapSettings(
|
||||
activity = this,
|
||||
|
@ -36,8 +36,8 @@ internal fun MainActivity.WrapSettings(
|
|||
goBack = goBack,
|
||||
goFeedback = goFeedback,
|
||||
settingsViewModel = settingsViewModel,
|
||||
topAppBarSubTitleState = walletState,
|
||||
walletViewModel = walletViewModel,
|
||||
walletRestoringState = walletRestoringState
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -50,8 +50,8 @@ private fun WrapSettings(
|
|||
goBack: () -> Unit,
|
||||
goFeedback: () -> Unit,
|
||||
settingsViewModel: SettingsViewModel,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
walletViewModel: WalletViewModel,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
) {
|
||||
val isBackgroundSyncEnabled = settingsViewModel.isBackgroundSync.collectAsStateWithLifecycle().value
|
||||
val isKeepScreenOnWhileSyncing = settingsViewModel.isKeepScreenOnWhileSyncing.collectAsStateWithLifecycle().value
|
||||
|
@ -97,7 +97,7 @@ private fun WrapSettings(
|
|||
onAnalyticsSettingsChanged = {
|
||||
settingsViewModel.setAnalyticsEnabled(it)
|
||||
},
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ import androidx.compose.ui.platform.testTag
|
|||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.MINIMAL_WEIGHT
|
||||
import co.electriccoin.zcash.ui.design.component.BlankBgScaffold
|
||||
import co.electriccoin.zcash.ui.design.component.PrimaryButton
|
||||
|
@ -59,7 +59,7 @@ private fun PreviewSettings() {
|
|||
isAnalyticsEnabled = false,
|
||||
isRescanEnabled = false
|
||||
),
|
||||
walletRestoringState = WalletRestoringState.NONE,
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -76,7 +76,7 @@ fun Settings(
|
|||
onKeepScreenOnDuringSyncSettingsChanged: (Boolean) -> Unit,
|
||||
onAnalyticsSettingsChanged: (Boolean) -> Unit,
|
||||
troubleshootingParameters: TroubleshootingParameters,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
BlankBgScaffold(topBar = {
|
||||
SettingsTopAppBar(
|
||||
|
@ -86,7 +86,7 @@ fun Settings(
|
|||
onAnalyticsSettingsChanged = onAnalyticsSettingsChanged,
|
||||
onRescanWallet = onRescanWallet,
|
||||
onBack = onBack,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}) { paddingValues ->
|
||||
SettingsMainContent(
|
||||
|
@ -111,20 +111,20 @@ fun Settings(
|
|||
@Composable
|
||||
@Suppress("LongParameterList")
|
||||
private fun SettingsTopAppBar(
|
||||
troubleshootingParameters: TroubleshootingParameters,
|
||||
onBackgroundSyncSettingsChanged: (Boolean) -> Unit,
|
||||
onKeepScreenOnDuringSyncSettingsChanged: (Boolean) -> Unit,
|
||||
onAnalyticsSettingsChanged: (Boolean) -> Unit,
|
||||
onRescanWallet: () -> Unit,
|
||||
onBack: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState,
|
||||
troubleshootingParameters: TroubleshootingParameters,
|
||||
) {
|
||||
SmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
modifier = Modifier.testTag(SettingsTag.SETTINGS_TOP_APP_BAR),
|
||||
showTitleLogo = true,
|
||||
|
|
|
@ -14,7 +14,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
|
|||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import co.electriccoin.zcash.ui.MainActivity
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.common.viewmodel.WalletViewModel
|
||||
import co.electriccoin.zcash.ui.screen.support.model.SupportInfo
|
||||
import co.electriccoin.zcash.ui.screen.support.model.SupportInfoType
|
||||
|
@ -31,13 +31,13 @@ internal fun MainActivity.WrapSupport(goBack: () -> Unit) {
|
|||
|
||||
val supportInfo = supportViewModel.supportInfo.collectAsStateWithLifecycle().value
|
||||
|
||||
val walletRestoringState = walletViewModel.walletRestoringState.collectAsStateWithLifecycle().value
|
||||
val walletState = walletViewModel.walletStateInformation.collectAsStateWithLifecycle().value
|
||||
|
||||
WrapSupport(
|
||||
activity = this,
|
||||
goBack = goBack,
|
||||
supportInfo = supportInfo,
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = walletState
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -46,7 +46,7 @@ internal fun WrapSupport(
|
|||
activity: ComponentActivity,
|
||||
goBack: () -> Unit,
|
||||
supportInfo: SupportInfo?,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
val snackbarHostState = remember { SnackbarHostState() }
|
||||
|
||||
|
@ -84,7 +84,7 @@ internal fun WrapSupport(
|
|||
}
|
||||
}
|
||||
},
|
||||
walletRestoringState = walletRestoringState
|
||||
topAppBarSubTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ import androidx.compose.ui.res.vectorResource
|
|||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import co.electriccoin.zcash.ui.R
|
||||
import co.electriccoin.zcash.ui.common.model.WalletRestoringState
|
||||
import co.electriccoin.zcash.ui.common.model.TopAppBarSubTitleState
|
||||
import co.electriccoin.zcash.ui.design.MINIMAL_WEIGHT
|
||||
import co.electriccoin.zcash.ui.design.component.AppAlertDialog
|
||||
import co.electriccoin.zcash.ui.design.component.BlankSurface
|
||||
|
@ -50,7 +50,7 @@ private fun PreviewSupport() {
|
|||
onBack = {},
|
||||
onSend = {},
|
||||
snackbarHostState = SnackbarHostState(),
|
||||
walletRestoringState = WalletRestoringState.NONE
|
||||
topAppBarSubTitleState = TopAppBarSubTitleState.None,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ fun Support(
|
|||
onBack: () -> Unit,
|
||||
onSend: (String) -> Unit,
|
||||
snackbarHostState: SnackbarHostState,
|
||||
walletRestoringState: WalletRestoringState,
|
||||
topAppBarSubTitleState: TopAppBarSubTitleState,
|
||||
) {
|
||||
val (message, setMessage) = rememberSaveable { mutableStateOf("") }
|
||||
|
||||
|
@ -83,7 +83,7 @@ fun Support(
|
|||
topBar = {
|
||||
SupportTopAppBar(
|
||||
onBack = onBack,
|
||||
showRestoring = walletRestoringState == WalletRestoringState.RESTORING,
|
||||
subTitleState = topAppBarSubTitleState,
|
||||
)
|
||||
},
|
||||
snackbarHost = { SnackbarHost(snackbarHostState) }
|
||||
|
@ -113,14 +113,14 @@ fun Support(
|
|||
@Composable
|
||||
private fun SupportTopAppBar(
|
||||
onBack: () -> Unit,
|
||||
showRestoring: Boolean
|
||||
subTitleState: TopAppBarSubTitleState
|
||||
) {
|
||||
GridBgSmallTopAppBar(
|
||||
restoringLabel =
|
||||
if (showRestoring) {
|
||||
stringResource(id = R.string.restoring_wallet_label)
|
||||
} else {
|
||||
null
|
||||
subTitle =
|
||||
when (subTitleState) {
|
||||
TopAppBarSubTitleState.Disconnected -> stringResource(id = R.string.disconnected_label)
|
||||
TopAppBarSubTitleState.Restoring -> stringResource(id = R.string.restoring_wallet_label)
|
||||
TopAppBarSubTitleState.None -> null
|
||||
},
|
||||
titleText = stringResource(id = R.string.support_header),
|
||||
backText = stringResource(id = R.string.support_back).uppercase(),
|
||||
|
|
|
@ -4,15 +4,17 @@
|
|||
<string name="zcash_logo_content_description">Zcash logo</string>
|
||||
<string name="settings_menu_content_description">Open Settings</string>
|
||||
<string name="balance_widget_available">Available Balance:</string>
|
||||
|
||||
<!-- This is replaced by a resource overlay via app/build.gradle.kts -->
|
||||
<string name="support_email_address" />
|
||||
|
||||
<string name="restoring_wallet_label">[Restoring Your Wallet…]</string>
|
||||
<string name="disconnected_label">[Disconnected…]</string>
|
||||
<string name="unable_to_open_play_store">Unable to launch Google Play store app…</string>
|
||||
|
||||
<string name="server_disconnected_dialog_title">Caution</string>
|
||||
<string name="server_disconnected_dialog_message">The server you\'re presently connected to is experiencing
|
||||
difficulties. For better performance, navigate to Advanced Settings and choose a different server. Please
|
||||
also check your device connection.</string>
|
||||
<string name="server_disconnected_dialog_title">Heads up</string>
|
||||
<string name="server_disconnected_dialog_message">Your current server is experiencing difficulties. Check your
|
||||
device connection, and/or navigate to Advanced Settings to choose a different server.</string>
|
||||
<string name="server_disconnected_dialog_switch_btn">Switch Server</string>
|
||||
<string name="server_disconnected_dialog_ignore_btn">Ignore</string>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in New Issue