Update: Replace entity's Product usage with database.entity's fully

This commit is contained in:
machiav3lli
2022-04-06 03:53:19 +02:00
parent 43180d2844
commit f33ccfd247
10 changed files with 86 additions and 69 deletions

View File

@@ -13,8 +13,8 @@ import com.looker.droidify.PREFS_LANGUAGE_DEFAULT
import com.looker.droidify.R
import com.looker.droidify.content.Preferences
import com.looker.droidify.database.entity.Installed
import com.looker.droidify.database.entity.Product
import com.looker.droidify.database.entity.Repository
import com.looker.droidify.entity.Product
import com.looker.droidify.service.Connection
import com.looker.droidify.service.DownloadService
import com.looker.droidify.utility.extension.android.Android
@@ -84,7 +84,7 @@ object Utils {
products: List<Pair<Product, Repository>>,
downloadConnection: Connection<DownloadService.Binder, DownloadService>,
) {
val productRepository = Product.findSuggested(products, installed) { it.first }
val productRepository = findSuggestedProduct(products, installed) { it.first }
val compatibleReleases = productRepository?.first?.selectedReleases.orEmpty()
.filter { installed == null || installed.signature == it.signature }
val releaseFlow = MutableStateFlow(compatibleReleases.firstOrNull())
@@ -169,6 +169,17 @@ object Utils {
}
fun <T> findSuggestedProduct(
products: List<T>,
installed: Installed?,
extract: (T) -> Product,
): T? {
return products.maxWithOrNull(compareBy({
extract(it).compatible &&
(installed == null || installed.signature in extract(it).signatures)
}, { extract(it).versionCode }))
}
val isDarkTheme: Boolean
get() = when (Preferences[Preferences.Key.Theme]) {
is Preferences.Theme.Light -> false