mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +00:00
Add: Launch RepoEditSheet on adding new repo
This commit is contained in:
parent
fe9e504100
commit
13f79a9568
@ -58,6 +58,9 @@ interface RepositoryDao : BaseDao<Repository> {
|
|||||||
// TODO clean up products and other tables afterwards
|
// TODO clean up products and other tables afterwards
|
||||||
@Query("DELETE FROM repository WHERE _id = :id")
|
@Query("DELETE FROM repository WHERE _id = :id")
|
||||||
fun deleteById(id: Long): Int
|
fun deleteById(id: Long): Int
|
||||||
|
|
||||||
|
@Query("SELECT MAX(_id) FROM repository")
|
||||||
|
fun latestAddedId(): Long
|
||||||
}
|
}
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
|
@ -59,6 +59,13 @@ class PrefsRepositoriesFragment : BaseNavFragment() {
|
|||||||
viewModel.repositories.observe(requireActivity()) {
|
viewModel.repositories.observe(requireActivity()) {
|
||||||
redrawPage(it)
|
redrawPage(it)
|
||||||
}
|
}
|
||||||
|
viewModel.toLaunch.observe(viewLifecycleOwner) {
|
||||||
|
if (it?.first == true) {
|
||||||
|
EditRepositorySheetX(it.second)
|
||||||
|
.showNow(parentFragmentManager, "Repository ${it.second}")
|
||||||
|
viewModel.emptyToLaunch()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
|
@ -14,19 +14,26 @@ import kotlinx.coroutines.withContext
|
|||||||
class RepositoriesViewModelX(val db: DatabaseX) : ViewModel() {
|
class RepositoriesViewModelX(val db: DatabaseX) : ViewModel() {
|
||||||
|
|
||||||
val repositories = MediatorLiveData<List<Repository>>()
|
val repositories = MediatorLiveData<List<Repository>>()
|
||||||
|
val toLaunch = MediatorLiveData<Pair<Boolean, Long>?>()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
repositories.addSource(db.repositoryDao.allLive, repositories::setValue)
|
repositories.addSource(db.repositoryDao.allLive, repositories::setValue)
|
||||||
|
toLaunch.value = null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addRepository() {
|
fun addRepository() {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
addNewRepository()
|
toLaunch.value = Pair(true, addNewRepository())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun addNewRepository() {
|
private suspend fun addNewRepository(): Long = withContext(Dispatchers.IO) {
|
||||||
withContext(Dispatchers.IO) { db.repositoryDao.insert(newRepository(address = "new.Repository")) }
|
db.repositoryDao.insert(newRepository(address = "new.Repository"))
|
||||||
|
db.repositoryDao.latestAddedId()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun emptyToLaunch() {
|
||||||
|
toLaunch.value = null
|
||||||
}
|
}
|
||||||
|
|
||||||
class Factory(val db: DatabaseX) : ViewModelProvider.Factory {
|
class Factory(val db: DatabaseX) : ViewModelProvider.Factory {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user