Fix: Instant enable/disable of repos

This commit is contained in:
machiav3lli 2022-06-18 03:17:44 +02:00
parent fa94cae1d6
commit cee71e9335
2 changed files with 11 additions and 4 deletions

View File

@ -17,6 +17,8 @@ import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
@ -32,8 +34,11 @@ fun RepositoryItem(
onClick: (Repository) -> Unit = {},
onLongClick: (Repository) -> Unit = {}
) {
var (isEnabled, enable) = remember(repository.enabled) {
mutableStateOf(repository.enabled)
}
val backgroundColor by animateColorAsState(
targetValue = if (repository.enabled) MaterialTheme.colorScheme.primaryContainer
targetValue = if (isEnabled) MaterialTheme.colorScheme.primaryContainer
else MaterialTheme.colorScheme.background
)
@ -43,7 +48,10 @@ fun RepositoryItem(
.fillMaxWidth()
.clip(MaterialTheme.shapes.large)
.combinedClickable(
onClick = { onClick(repository) },
onClick = {
enable(!isEnabled)
onClick(repository.copy(enabled = !repository.enabled))
},
onLongClick = { onLongClick(repository) }
),
color = backgroundColor,
@ -61,7 +69,7 @@ fun RepositoryItem(
repositoryName = repository.name,
repositoryDescription = repository.description
)
AnimatedVisibility(visible = repository.enabled) {
AnimatedVisibility(visible = isEnabled) {
Icon(
imageVector = Icons.Default.Done,
contentDescription = "Repository Enabled"

View File

@ -119,7 +119,6 @@ class PrefsRepositoriesFragment : BaseNavFragment() {
RepositoriesRecycler(
repositoriesList = repos?.sortedBy { repo -> !repo.enabled },
onClick = { repo ->
repo.enabled = !repo.enabled
GlobalScope.launch(Dispatchers.IO) {
syncConnection.binder?.setEnabled(repo, repo.enabled)
}