Login and Logout already in IO threads

This commit is contained in:
Vitor Pamplona 2023-10-28 21:26:36 -04:00
parent 3858c57816
commit f6cfba6e1f
3 changed files with 15 additions and 15 deletions

View File

@ -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()

View File

@ -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 ->

View File

@ -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
)