Fix: Adding new repo

This commit is contained in:
machiav3lli 2022-07-06 09:33:00 +02:00
parent d2adb82625
commit cfa6a7471a
2 changed files with 22 additions and 8 deletions

View File

@ -13,6 +13,8 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import com.machiav3lli.fdroid.R
import com.machiav3lli.fdroid.ui.compose.RepositoriesRecycler import com.machiav3lli.fdroid.ui.compose.RepositoriesRecycler
import com.machiav3lli.fdroid.ui.viewmodels.RepositoriesViewModelX import com.machiav3lli.fdroid.ui.viewmodels.RepositoriesViewModelX
@ -23,9 +25,17 @@ fun RepositoryPage(viewModel: RepositoriesViewModelX) {
Scaffold( Scaffold(
modifier = Modifier.fillMaxSize(), modifier = Modifier.fillMaxSize(),
floatingActionButton = { floatingActionButton = {
ExtendedFloatingActionButton(onClick = { viewModel.showRepositorySheet(editMode = true) }) { ExtendedFloatingActionButton(onClick = {
Icon(imageVector = Icons.Rounded.Add, contentDescription = "Add Repository") viewModel.showRepositorySheet(
Text(text = "Add Repository") editMode = true,
addNew = true
)
}) {
Icon(
imageVector = Icons.Rounded.Add,
contentDescription = stringResource(id = R.string.add_repository)
)
Text(text = stringResource(id = R.string.add_repository))
} }
} }
) { ) {

View File

@ -40,13 +40,17 @@ class RepositoriesViewModelX(val repositoryDao: RepositoryDao) : ViewModel() {
viewModelScope.launch { syncConnection.bind(context) } viewModelScope.launch { syncConnection.bind(context) }
} }
fun showRepositorySheet(repositoryId: Long = 0L, editMode: Boolean = false) { fun showRepositorySheet(
repositoryId: Long = 0L,
editMode: Boolean = false,
addNew: Boolean = false
) {
viewModelScope.launch { viewModelScope.launch {
_showSheet.emit( _showSheet.emit(
if (editMode) { if (addNew) {
SheetNavigationData(repositoryId, editMode)
} else {
SheetNavigationData(addNewRepository(), editMode) SheetNavigationData(addNewRepository(), editMode)
} else {
SheetNavigationData(repositoryId, editMode)
} }
) )
} }
@ -59,7 +63,7 @@ class RepositoriesViewModelX(val repositoryDao: RepositoryDao) : ViewModel() {
} }
private suspend fun addNewRepository(): Long = withContext(Dispatchers.IO) { private suspend fun addNewRepository(): Long = withContext(Dispatchers.IO) {
repositoryDao.insert(newRepository()) repositoryDao.insert(newRepository(address = "new repository"))
repositoryDao.latestAddedId() repositoryDao.latestAddedId()
} }