diff --git a/src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt b/src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt index 010036c0..1da4193c 100644 --- a/src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt +++ b/src/main/kotlin/com/looker/droidify/ui/items/RepoItem.kt @@ -28,7 +28,7 @@ class RepoItem(val item: Repository) : else context.getColorFromAttr(R.attr.colorOnBackground) - binding.repoName.text = item.name + binding.repoName.text = item.name.ifEmpty { context.getString(R.string.new_repository) } binding.repoDescription.text = item.description.trim() binding.repoItem.setCardBackgroundColor( diff --git a/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt b/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt index 91bf69b3..faf429a4 100644 --- a/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt +++ b/src/main/kotlin/com/looker/droidify/ui/viewmodels/RepositoriesViewModelX.kt @@ -3,8 +3,13 @@ package com.looker.droidify.ui.viewmodels import androidx.lifecycle.MediatorLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.viewModelScope import com.looker.droidify.database.DatabaseX import com.looker.droidify.database.entity.Repository +import com.looker.droidify.database.entity.Repository.Companion.newRepository +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class RepositoriesViewModelX(val db: DatabaseX) : ViewModel() { @@ -14,6 +19,16 @@ class RepositoriesViewModelX(val db: DatabaseX) : ViewModel() { repositories.addSource(db.repositoryDao.allLive, repositories::setValue) } + fun addRepository() { + viewModelScope.launch { + addNewRepository() + } + } + + private suspend fun addNewRepository() { + withContext(Dispatchers.IO) { db.repositoryDao.insert(newRepository()) } + } + class Factory(val db: DatabaseX) : ViewModelProvider.Factory { @Suppress("unchecked_cast") override fun create(modelClass: Class): T { diff --git a/src/main/res/layout/fragment_repositories_x.xml b/src/main/res/layout/fragment_repositories_x.xml index 1e2fa5fc..f8b9d569 100644 --- a/src/main/res/layout/fragment_repositories_x.xml +++ b/src/main/res/layout/fragment_repositories_x.xml @@ -33,13 +33,29 @@ android:layout_gravity="top" android:clipToPadding="false"> - + android:orientation="vertical"> + + + + + diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 77adda41..518331c7 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -185,4 +185,5 @@ Automatically install app updates after syncing repositories Number of updated apps to show Number of new apps to show + New repository