diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt index 131a14533..1d5af03c4 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt @@ -33,7 +33,7 @@ class AccountStateViewModel() : ViewModel() { fun tryLoginExistingAccountAsync() { // pulls account from storage. - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { tryLoginExistingAccount() } } @@ -124,7 +124,7 @@ class AccountStateViewModel() : ViewModel() { loginWithExternalSigner: Boolean = false, onError: () -> Unit ) { - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { try { loginAndStartUI(key, useProxy, proxyPort, loginWithExternalSigner) } catch (e: Exception) { @@ -135,7 +135,7 @@ class AccountStateViewModel() : ViewModel() { } fun newKey(useProxy: Boolean, proxyPort: Int) { - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { val proxy = HttpClient.initProxy(useProxy, "127.0.0.1", proxyPort) val account = Account(KeyPair(), proxy = proxy, proxyPort = proxyPort) // saves to local preferences @@ -145,7 +145,7 @@ class AccountStateViewModel() : ViewModel() { } fun switchUser(accountInfo: AccountInfo) { - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { prepareLogoutOrSwitch() LocalPreferences.switchToAccount(accountInfo) tryLoginExistingAccount() @@ -153,7 +153,7 @@ class AccountStateViewModel() : ViewModel() { } fun logOff(accountInfo: AccountInfo) { - viewModelScope.launch { + viewModelScope.launch(Dispatchers.IO) { prepareLogoutOrSwitch() LocalPreferences.updatePrefsForLogout(accountInfo) tryLoginExistingAccount() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt index 597900e90..bb0bee5c0 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt @@ -5,7 +5,6 @@ import androidx.compose.animation.core.tween import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth @@ -26,7 +25,6 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.ui.note.BadgeCompose import com.vitorpamplona.amethyst.ui.note.MessageSetCompose @@ -34,6 +32,7 @@ import com.vitorpamplona.amethyst.ui.note.MultiSetCompose import com.vitorpamplona.amethyst.ui.note.NoteCompose import com.vitorpamplona.amethyst.ui.note.ZapUserSetCompose import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.theme.FeedPadding @Composable fun RefresheableCardView( @@ -117,7 +116,7 @@ fun RenderCardFeed( val feedState by viewModel.feedContent.collectAsStateWithLifecycle() Crossfade( - modifier = remember { Modifier.fillMaxSize() }, + modifier = Modifier.fillMaxSize(), targetState = feedState, animationSpec = tween(durationMillis = 100) ) { state -> @@ -158,13 +157,8 @@ private fun FeedLoaded( nav: (String) -> Unit ) { LazyColumn( - modifier = remember { Modifier.fillMaxSize() }, - contentPadding = remember { - PaddingValues( - top = 10.dp, - bottom = 10.dp - ) - }, + modifier = Modifier.fillMaxSize(), + contentPadding = FeedPadding, state = listState ) { itemsIndexed(state.feed.value, key = { _, item -> item.id() }) { _, item -> diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt index 61b123926..7a402ac44 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt @@ -1,5 +1,6 @@ package com.vitorpamplona.amethyst.ui.theme +import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -142,3 +143,8 @@ val EditFieldTrailingIconModifier = Modifier val EditFieldLeadingIconModifier = Modifier .height(32.dp) .padding(start = 2.dp) + +val FeedPadding = PaddingValues( + top = 10.dp, + bottom = 10.dp +)