Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableLongStateOf
import androidx.compose.runtime.mutableStateOf
Expand Down Expand Up @@ -109,7 +109,7 @@ internal fun App(
}

val session = LocalSessionController.current!!
val userState by userManager.state.collectAsState()
val userState by userManager.state.collectAsStateWithLifecycle()

FlipcashTheme {
rememberQrBitmapPainter(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.flipcash.app.internal.ui.navigation.decorators
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
Expand All @@ -26,7 +26,7 @@ fun NavBlockingOverlayEntryDecorator(): NavEntryDecorator<NavKey> {
entry.Content()

val userManager = LocalUserManager.current
val userState by userManager!!.state.collectAsState()
val userState by userManager!!.state.collectAsStateWithLifecycle()
val authState = userState.authState

if (authState is AuthState.LoggedIn) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -32,7 +32,7 @@ fun AmountWithKeypad(
onDecimal: () -> Unit = { },
) {
val networkObserver = LocalNetworkObserver.current
val networkState by networkObserver.state.collectAsState()
val networkState by networkObserver.state.collectAsStateWithLifecycle()

Column(
modifier = modifier,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand Down Expand Up @@ -57,7 +57,7 @@ import com.getcode.util.permissions.rememberStoragePermission
internal fun BackupKeyScreenContent(viewModel: BackupKeyScreenViewModel) {
val context = LocalContext.current
val resources = LocalResources.current
val dataState by viewModel.uiFlow.collectAsState()
val dataState by viewModel.uiFlow.collectAsStateWithLifecycle()

var isExportSeedRequested by remember { mutableStateOf(false) }
var isStoragePermissionGranted by remember { mutableStateOf(false) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand Down Expand Up @@ -281,7 +280,7 @@ private fun onboardingEntryProvider(
@Composable
private fun LoginStepContent(seed: String?) {
val vm = hiltViewModel<LoginViewModel>()
val state by vm.stateFlow.collectAsState()
val state by vm.stateFlow.collectAsStateWithLifecycle()
val flowNavigator = rememberFlowNavigator<OnboardingStep, OnboardingResult>()
val outerNavigator = LocalOuterCodeNavigator.current
var visible by remember { mutableStateOf(false) }
Expand Down Expand Up @@ -427,7 +426,7 @@ private fun AccessKeyStepContent() {
private fun PurchaseStepContent() {
val viewModel = hiltViewModel<PurchaseAccountViewModel>()
val flowNavigator = rememberFlowNavigator<OnboardingStep, OnboardingResult>()
val state by viewModel.stateFlow.collectAsState()
val state by viewModel.stateFlow.collectAsStateWithLifecycle()

LaunchedEffect(viewModel) {
viewModel.eventFlow
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand Down Expand Up @@ -74,7 +74,7 @@ internal fun AccessKeyScreen(
val navigator = LocalCodeNavigator.current
val context = LocalContext.current
val resources = LocalResources.current
val dataState by viewModel.uiFlow.collectAsState()
val dataState by viewModel.uiFlow.collectAsStateWithLifecycle()

val composeScope = rememberCoroutineScope()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.SettingsBackupRestore
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
Expand Down Expand Up @@ -65,7 +65,7 @@ internal fun SeedInputContent(
viewModel: SeedInputViewModel,
onCantFind: () -> Unit,
) {
val dataState by viewModel.uiFlow.collectAsState()
val dataState by viewModel.uiFlow.collectAsStateWithLifecycle()
SeedInputContent(
state = dataState,
onTextChange = { viewModel.onTextChange(it) },
Expand All @@ -86,7 +86,7 @@ private fun SeedInputContent(
val focusManager = LocalFocusManager.current
val focusRequester = remember { FocusRequester() }
val featureFlags = LocalFeatureFlags.current
val restoreEnabled by featureFlags.observe(FeatureFlag.CredentialManager).collectAsState()
val restoreEnabled by featureFlags.observe(FeatureFlag.CredentialManager).collectAsStateWithLifecycle()

val keyboardVisible by keyboardAsState()
val ime = LocalSoftwareKeyboardController.current
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.CheckCircleOutline
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand Down Expand Up @@ -45,7 +45,7 @@ import kotlinx.coroutines.flow.onEach
fun PurchaseAccountScreen(viewModel: PurchaseAccountViewModel) {
val navigator = LocalCodeNavigator.current

val state by viewModel.stateFlow.collectAsState()
val state by viewModel.stateFlow.collectAsStateWithLifecycle()

LaunchedEffect(viewModel) {
viewModel.eventFlow
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import android.annotation.SuppressLint
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableStateOf
Expand Down Expand Up @@ -43,8 +43,8 @@ internal fun Scanner() {
val router = LocalRouter.current!!
val navigator = LocalCodeNavigator.current
val session = LocalSessionController.current!!
val state by session.state.collectAsState()
val billState by session.billState.collectAsState()
val state by session.state.collectAsStateWithLifecycle()
val billState by session.billState.collectAsStateWithLifecycle()
val analytics = rememberAnalytics()

var isPaused by remember { mutableStateOf(false) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ import androidx.compose.material.DismissValue
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
Expand Down Expand Up @@ -95,12 +94,12 @@ internal fun BillContainer(

val cameraPermission = rememberCameraPermission { onPermissionResult(it) }

SideEffect {
LaunchedEffect(cameraPermission.status) {
onPermissionResult(cameraPermission.status)
}

val state by session.state.collectAsState()
val billState by session.billState.collectAsState()
val state by session.state.collectAsStateWithLifecycle()
val billState by session.billState.collectAsStateWithLifecycle()

val autoStart = state.autoStartCamera == true
var cameraStarted by remember { mutableStateOf(autoStart) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Icon
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
Expand Down Expand Up @@ -142,7 +141,7 @@ internal fun DecorView(
}

Column(modifier = Modifier.align(Alignment.BottomCenter)) {
val networkState by LocalNetworkObserver.current.state.collectAsState()
val networkState by LocalNetworkObserver.current.state.collectAsStateWithLifecycle()

AnimatedVisibility(
modifier = Modifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.flipcash.app.onramp
import android.content.res.Resources
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.getValue
import androidx.compose.ui.platform.LocalResources
import com.flipcash.app.core.AppRoute
Expand All @@ -18,7 +18,7 @@ fun CoinbaseOnRampHandler(
controller: CoinbaseOnRampController = LocalCoinbaseOnRampController.current,
content: @Composable () -> Unit,
) {
val state by controller.state.collectAsState()
val state by controller.state.collectAsStateWithLifecycle()
val resources = LocalResources.current
when (val current = state) {
is CoinbaseOnRampState.Paying -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import androidx.compose.material.icons.rounded.ExpandMore
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableLongStateOf
Expand Down Expand Up @@ -70,7 +70,7 @@ import kotlinx.coroutines.launch
@Composable
fun BottomBarContainer(barMessages: BarMessages, onShown: (BottomBarManager.BottomBarMessage) -> Unit = {}) {
val scope = rememberCoroutineScope()
val bottomBarMessage by barMessages.bottomBar.collectAsState()
val bottomBarMessage by barMessages.bottomBar.collectAsStateWithLifecycle()
val bottomBarVisibleState = remember(bottomBarMessage?.id) { MutableTransitionState(false) }
var bottomBarMessageDismissId by remember { mutableLongStateOf(0L) }
val animationScale by rememberAnimationScale()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawBehind
Expand All @@ -27,28 +28,28 @@ import com.getcode.theme.*
import com.getcode.ui.components.R
import com.getcode.ui.components.VerticalDivider
import com.getcode.ui.core.rememberedClickable
import java.util.*
import kotlin.concurrent.timerTask
import kotlinx.coroutines.delay

@Composable
fun TopBarContainer(
barMessages: BarMessages,
) {
val topBarMessage by barMessages.topBar.collectAsState()
val topBarMessage by barMessages.topBar.collectAsStateWithLifecycle()
val topBarVisibleState = remember { MutableTransitionState(false) }
var topBarMessageDismissId by remember { mutableLongStateOf(0L) }

if (!topBarVisibleState.targetState && !topBarVisibleState.currentState) {
Timer().schedule(timerTask {
LaunchedEffect(topBarMessage?.id) {
if (!topBarVisibleState.targetState && !topBarVisibleState.currentState) {
delay(50)
topBarVisibleState.targetState = topBarMessage != null
}, 50)

if (topBarMessageDismissId == topBarMessage?.id) {
TopBarManager.setMessageShown(topBarMessage?.id ?: 0)
topBarMessageDismissId = 0
}
if (topBarMessage == null) {
topBarVisibleState.targetState = false
if (topBarMessageDismissId == topBarMessage?.id) {
TopBarManager.setMessageShown(topBarMessage?.id ?: 0)
topBarMessageDismissId = 0
}
if (topBarMessage == null) {
topBarVisibleState.targetState = false
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import androidx.lifecycle.repeatOnLifecycle
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch

var LocalSheetGesturesState = compositionLocalOf<(Boolean) -> Unit> { { } }
val LocalSheetGesturesState = compositionLocalOf<(Boolean) -> Unit> { { } }

@Composable
fun DisableSheetGestures(
Expand Down
Loading