mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +00:00
Fix: Instant enable/disable of repos
This commit is contained in:
parent
fa94cae1d6
commit
cee71e9335
@ -17,6 +17,8 @@ import androidx.compose.material3.Surface
|
|||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
@ -32,8 +34,11 @@ fun RepositoryItem(
|
|||||||
onClick: (Repository) -> Unit = {},
|
onClick: (Repository) -> Unit = {},
|
||||||
onLongClick: (Repository) -> Unit = {}
|
onLongClick: (Repository) -> Unit = {}
|
||||||
) {
|
) {
|
||||||
|
var (isEnabled, enable) = remember(repository.enabled) {
|
||||||
|
mutableStateOf(repository.enabled)
|
||||||
|
}
|
||||||
val backgroundColor by animateColorAsState(
|
val backgroundColor by animateColorAsState(
|
||||||
targetValue = if (repository.enabled) MaterialTheme.colorScheme.primaryContainer
|
targetValue = if (isEnabled) MaterialTheme.colorScheme.primaryContainer
|
||||||
else MaterialTheme.colorScheme.background
|
else MaterialTheme.colorScheme.background
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -43,7 +48,10 @@ fun RepositoryItem(
|
|||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.clip(MaterialTheme.shapes.large)
|
.clip(MaterialTheme.shapes.large)
|
||||||
.combinedClickable(
|
.combinedClickable(
|
||||||
onClick = { onClick(repository) },
|
onClick = {
|
||||||
|
enable(!isEnabled)
|
||||||
|
onClick(repository.copy(enabled = !repository.enabled))
|
||||||
|
},
|
||||||
onLongClick = { onLongClick(repository) }
|
onLongClick = { onLongClick(repository) }
|
||||||
),
|
),
|
||||||
color = backgroundColor,
|
color = backgroundColor,
|
||||||
@ -61,7 +69,7 @@ fun RepositoryItem(
|
|||||||
repositoryName = repository.name,
|
repositoryName = repository.name,
|
||||||
repositoryDescription = repository.description
|
repositoryDescription = repository.description
|
||||||
)
|
)
|
||||||
AnimatedVisibility(visible = repository.enabled) {
|
AnimatedVisibility(visible = isEnabled) {
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = Icons.Default.Done,
|
imageVector = Icons.Default.Done,
|
||||||
contentDescription = "Repository Enabled"
|
contentDescription = "Repository Enabled"
|
||||||
|
@ -119,7 +119,6 @@ class PrefsRepositoriesFragment : BaseNavFragment() {
|
|||||||
RepositoriesRecycler(
|
RepositoriesRecycler(
|
||||||
repositoriesList = repos?.sortedBy { repo -> !repo.enabled },
|
repositoriesList = repos?.sortedBy { repo -> !repo.enabled },
|
||||||
onClick = { repo ->
|
onClick = { repo ->
|
||||||
repo.enabled = !repo.enabled
|
|
||||||
GlobalScope.launch(Dispatchers.IO) {
|
GlobalScope.launch(Dispatchers.IO) {
|
||||||
syncConnection.binder?.setEnabled(repo, repo.enabled)
|
syncConnection.binder?.setEnabled(repo, repo.enabled)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user