Add: Favorite actions to AppSheet

This commit is contained in:
machiav3lli 2022-06-25 03:21:32 +02:00
parent 88f0ecc8b7
commit 3a12c90d81
2 changed files with 6 additions and 3 deletions

View File

@ -227,6 +227,10 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
ActionState.Share -> { ActionState.Share -> {
shareIntent(packageName, productRepos[0].first.label) shareIntent(packageName, productRepos[0].first.label)
} }
ActionState.Bookmark,
ActionState.Bookmarked -> {
viewModel.setFavorite(packageName, action is ActionState.Bookmark)
}
else -> Unit else -> Unit
}::class }::class
} }
@ -457,7 +461,6 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
product.packageName, product.packageName,
if (it) product.versionCode else 0 if (it) product.versionCode else 0
) )
viewModel.updateActions()
}) })
} }
} }
@ -467,7 +470,6 @@ class AppSheetX() : FullscreenBottomSheetDialogFragment(), Callbacks {
initSelected = extras?.ignoreUpdates == true, initSelected = extras?.ignoreUpdates == true,
onCheckedChanged = { onCheckedChanged = {
viewModel.setIgnoreUpdates(product.packageName, it) viewModel.setIgnoreUpdates(product.packageName, it)
viewModel.updateActions()
}) })
} }
} }

View File

@ -30,7 +30,7 @@ class AppViewModelX(val db: DatabaseX, val packageName: String) : ViewModel() {
} }
val downloadState = MutableLiveData<DownloadState>() val downloadState = MutableLiveData<DownloadState>()
val mainAction = MutableLiveData<ActionState>() val mainAction = MutableLiveData<ActionState>()
val actions = MutableLiveData<Set<ActionState>>() val actions = MediatorLiveData<Set<ActionState>>()
val secondaryAction = MutableLiveData<ActionState>() val secondaryAction = MutableLiveData<ActionState>()
val extras = MediatorLiveData<Extras>() val extras = MediatorLiveData<Extras>()
@ -39,6 +39,7 @@ class AppViewModelX(val db: DatabaseX, val packageName: String) : ViewModel() {
repositories.addSource(db.repositoryDao.allLive, repositories::setValue) repositories.addSource(db.repositoryDao.allLive, repositories::setValue)
installedItem.addSource(db.installedDao.getLive(packageName), installedItem::setValue) installedItem.addSource(db.installedDao.getLive(packageName), installedItem::setValue)
extras.addSource(db.extrasDao.getLive(packageName), extras::setValue) extras.addSource(db.extrasDao.getLive(packageName), extras::setValue)
actions.addSource(extras) { updateActions() }
} }
fun updateActions() { fun updateActions() {