mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 11:22:12 +00:00
Clean up
This commit is contained in:
parent
0bf3dad2f2
commit
e854b57b08
@ -15,8 +15,8 @@ const val TABLE_CATEGORY_NAME = "category"
|
||||
const val TABLE_CATEGORY_TEMP_NAME = "temporary_category"
|
||||
const val TABLE_INSTALLED = "installed"
|
||||
const val TABLE_INSTALLED_NAME = "memory_installed"
|
||||
const val TABLE_LOCK = "lock"
|
||||
const val TABLE_LOCK_NAME = "memory_lock"
|
||||
const val TABLE_IGNORED = "lock"
|
||||
const val TABLE_IGNORED_NAME = "memory_lock"
|
||||
const val TABLE_PRODUCT = "product"
|
||||
const val TABLE_PRODUCT_NAME = "product"
|
||||
const val TABLE_PRODUCT_TEMP_NAME = "temporary_product"
|
||||
@ -43,7 +43,6 @@ const val ROW_ANTIFEATURES = "antiFeatures"
|
||||
const val ROW_LICENSES = "licenses"
|
||||
const val ROW_DONATES = "donates"
|
||||
const val ROW_SCREENSHOTS = "screenshots"
|
||||
const val ROW_VERSION = "version"
|
||||
const val ROW_SIGNATURE = "signature"
|
||||
const val ROW_ID = "_id"
|
||||
const val ROW_ENABLED = "enabled"
|
||||
|
@ -3,7 +3,7 @@ package com.looker.droidify.content
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import com.looker.droidify.database.DatabaseX
|
||||
import com.looker.droidify.database.entity.Lock
|
||||
import com.looker.droidify.database.entity.Ignored
|
||||
import com.looker.droidify.entity.ProductPreference
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@ -27,13 +27,13 @@ object ProductPreferences {
|
||||
db.lockDao.insert(*preferences.all.keys
|
||||
.mapNotNull { pName ->
|
||||
this@ProductPreferences[pName].databaseVersionCode?.let {
|
||||
Lock(pName, it)
|
||||
Ignored(pName, it)
|
||||
}
|
||||
}
|
||||
.toTypedArray()
|
||||
)
|
||||
subject.collect { (packageName, versionCode) ->
|
||||
if (versionCode != null) db.lockDao.insert(Lock(packageName, versionCode))
|
||||
if (versionCode != null) db.lockDao.insert(Ignored(packageName, versionCode))
|
||||
else db.lockDao.delete(packageName)
|
||||
}
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ interface ProductDao : BaseDao<Product> {
|
||||
builder += """SELECT $TABLE_PRODUCT.rowid AS $ROW_ID, $TABLE_PRODUCT.$ROW_REPOSITORY_ID,
|
||||
$TABLE_PRODUCT.$ROW_PACKAGE_NAME, $TABLE_PRODUCT.$ROW_LABEL,
|
||||
$TABLE_PRODUCT.$ROW_SUMMARY, $TABLE_PRODUCT.$ROW_DESCRIPTION,
|
||||
(COALESCE($TABLE_LOCK.$ROW_VERSION_CODE, -1) NOT IN (0, $TABLE_PRODUCT.$ROW_VERSION_CODE) AND
|
||||
(COALESCE($TABLE_IGNORED.$ROW_VERSION_CODE, -1) NOT IN (0, $TABLE_PRODUCT.$ROW_VERSION_CODE) AND
|
||||
$TABLE_PRODUCT.$ROW_COMPATIBLE != 0 AND
|
||||
$TABLE_PRODUCT.$ROW_VERSION_CODE > COALESCE($TABLE_INSTALLED.$ROW_VERSION_CODE, 0xffffffff) AND
|
||||
$signatureMatches) AS $ROW_CAN_UPDATE, $TABLE_PRODUCT.$ROW_ICON,
|
||||
@ -173,8 +173,8 @@ interface ProductDao : BaseDao<Product> {
|
||||
ON $TABLE_PRODUCT.$ROW_REPOSITORY_ID = $TABLE_REPOSITORY.$ROW_ID"""
|
||||
|
||||
// Merge the matching locks
|
||||
builder += """LEFT JOIN $TABLE_LOCK_NAME AS $TABLE_LOCK
|
||||
ON $TABLE_PRODUCT.$ROW_PACKAGE_NAME = $TABLE_LOCK.$ROW_PACKAGE_NAME"""
|
||||
builder += """LEFT JOIN $TABLE_IGNORED_NAME AS $TABLE_IGNORED
|
||||
ON $TABLE_PRODUCT.$ROW_PACKAGE_NAME = $TABLE_IGNORED.$ROW_PACKAGE_NAME"""
|
||||
|
||||
// Merge the matching installed
|
||||
if (!installed && !updates) builder += "LEFT"
|
||||
@ -291,7 +291,7 @@ interface InstalledDao : BaseDao<Installed> {
|
||||
}
|
||||
|
||||
@Dao
|
||||
interface LockDao : BaseDao<Lock> {
|
||||
interface LockDao : BaseDao<Ignored> {
|
||||
@Query("DELETE FROM memory_lock WHERE packageName = :packageName")
|
||||
fun delete(packageName: String)
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ import kotlinx.coroutines.launch
|
||||
Category::class,
|
||||
CategoryTemp::class,
|
||||
Installed::class,
|
||||
Lock::class
|
||||
Ignored::class
|
||||
], version = 6
|
||||
)
|
||||
@TypeConverters(Converters::class)
|
||||
|
@ -2,10 +2,11 @@ package com.looker.droidify.database.entity
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
import com.looker.droidify.TABLE_LOCK_NAME
|
||||
import com.looker.droidify.TABLE_IGNORED_NAME
|
||||
|
||||
@Entity(tableName = TABLE_LOCK_NAME)
|
||||
data class Lock(
|
||||
// TODO complete renaming to Ignored
|
||||
@Entity(tableName = TABLE_IGNORED_NAME)
|
||||
data class Ignored(
|
||||
@PrimaryKey
|
||||
var packageName: String = "",
|
||||
var versionCode: Long = 0L
|
@ -37,6 +37,7 @@ import java.io.File
|
||||
import java.security.MessageDigest
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
// TODO maybe replace by using WorkManager instead?
|
||||
class DownloadService : ConnectionService<DownloadService.Binder>() {
|
||||
companion object {
|
||||
private const val ACTION_CANCEL = "${BuildConfig.APPLICATION_ID}.intent.action.CANCEL"
|
||||
|
@ -28,12 +28,13 @@ fun ProductCard(
|
||||
onUserClick: (ProductItem) -> Unit = {}
|
||||
) {
|
||||
|
||||
val imageData by remember(item, repo) {
|
||||
val product by remember(item) { mutableStateOf(item) }
|
||||
val imageData by remember(product, repo) {
|
||||
mutableStateOf(
|
||||
CoilDownloader.createIconUri(
|
||||
item.packageName,
|
||||
item.icon,
|
||||
item.metadataIcon,
|
||||
product.packageName,
|
||||
product.icon,
|
||||
product.metadataIcon,
|
||||
repo?.address,
|
||||
repo?.authentication
|
||||
).toString()
|
||||
@ -46,7 +47,7 @@ fun ProductCard(
|
||||
.requiredSize(80.dp, 116.dp)
|
||||
.clip(shape = RoundedCornerShape(8.dp))
|
||||
.background(color = MaterialTheme.colorScheme.surface)
|
||||
.clickable(onClick = { onUserClick(item) }),
|
||||
.clickable(onClick = { onUserClick(product) }),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.Center
|
||||
) {
|
||||
@ -57,7 +58,7 @@ fun ProductCard(
|
||||
|
||||
Text(
|
||||
modifier = Modifier.padding(4.dp, 2.dp),
|
||||
text = item.name,
|
||||
text = product.name,
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
maxLines = 1,
|
||||
@ -65,7 +66,7 @@ fun ProductCard(
|
||||
)
|
||||
Text(
|
||||
modifier = Modifier.padding(4.dp, 1.dp),
|
||||
text = item.version,
|
||||
text = product.version,
|
||||
style = MaterialTheme.typography.labelSmall,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
maxLines = 1,
|
||||
|
@ -32,12 +32,13 @@ fun ProductsListItem(
|
||||
onFavouriteClick: (ProductItem) -> Unit = {},
|
||||
onInstallClick: (ProductItem) -> Unit = {}
|
||||
) {
|
||||
val imageData by remember(item, repo) {
|
||||
val product by remember(item) { mutableStateOf(item) }
|
||||
val imageData by remember(product, repo) {
|
||||
mutableStateOf(
|
||||
CoilDownloader.createIconUri(
|
||||
item.packageName,
|
||||
item.icon,
|
||||
item.metadataIcon,
|
||||
product.packageName,
|
||||
product.icon,
|
||||
product.metadataIcon,
|
||||
repo?.address,
|
||||
repo?.authentication
|
||||
).toString()
|
||||
@ -46,10 +47,10 @@ fun ProductsListItem(
|
||||
|
||||
ExpandableCard(
|
||||
modifier = Modifier.padding(horizontal = 8.dp, vertical = 8.dp),
|
||||
onClick = { onUserClick(item) },
|
||||
onClick = { onUserClick(product) },
|
||||
expandedContent = {
|
||||
ExpandedItemContent(
|
||||
item = item,
|
||||
item = product,
|
||||
onFavourite = onFavouriteClick,
|
||||
onInstallClicked = onInstallClick
|
||||
)
|
||||
@ -74,7 +75,7 @@ fun ProductsListItem(
|
||||
.fillMaxHeight(0.4f),
|
||||
) {
|
||||
Text(
|
||||
text = item.name,
|
||||
text = product.name,
|
||||
modifier = Modifier
|
||||
.align(Alignment.CenterVertically)
|
||||
.weight(1f),
|
||||
@ -84,8 +85,8 @@ fun ProductsListItem(
|
||||
style = MaterialTheme.typography.titleMedium
|
||||
)
|
||||
Text(
|
||||
text = item.version,
|
||||
modifier = Modifier.align(Alignment.CenterVertically),
|
||||
text = product.version,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
maxLines = 1,
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
@ -95,7 +96,7 @@ fun ProductsListItem(
|
||||
modifier = Modifier
|
||||
.fillMaxHeight()
|
||||
.fillMaxWidth(),
|
||||
text = item.summary,
|
||||
text = product.summary,
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
overflow = TextOverflow.Ellipsis,
|
||||
maxLines = 2,
|
||||
|
@ -27,7 +27,8 @@ fun ChipRow(
|
||||
) {
|
||||
LazyRow(
|
||||
modifier = modifier,
|
||||
horizontalArrangement = Arrangement.spacedBy(8.dp)
|
||||
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
||||
contentPadding = PaddingValues(horizontal = 8.dp)
|
||||
) {
|
||||
items(list) {
|
||||
Chip(
|
||||
@ -38,7 +39,7 @@ fun ChipRow(
|
||||
Text(
|
||||
text = it,
|
||||
style = MaterialTheme.typography.labelLarge,
|
||||
color = MaterialTheme.colorScheme.primary.copy(alpha = ChipDefaults.ContentOpacity)
|
||||
color = chipColors.contentColor(enabled = true).value
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -7,10 +7,8 @@ import androidx.fragment.app.Fragment
|
||||
abstract class BaseNavFragment : Fragment() {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
setupAdapters()
|
||||
setupLayout()
|
||||
}
|
||||
|
||||
abstract fun setupAdapters()
|
||||
abstract fun setupLayout()
|
||||
}
|
@ -48,9 +48,6 @@ class ExploreFragment : MainNavFragmentX() {
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun setupAdapters() {
|
||||
}
|
||||
|
||||
override fun setupLayout() {
|
||||
viewModel.repositories.observe(viewLifecycleOwner) {
|
||||
repositories = it.associateBy { repo -> repo.id }
|
||||
|
@ -39,9 +39,6 @@ class InstalledFragment : MainNavFragmentX() {
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun setupAdapters() {
|
||||
}
|
||||
|
||||
override fun setupLayout() {
|
||||
viewModel.repositories.observe(viewLifecycleOwner) {
|
||||
repositories = it.associateBy { repo -> repo.id }
|
||||
|
@ -39,9 +39,6 @@ class LatestFragment : MainNavFragmentX() {
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun setupAdapters() {
|
||||
}
|
||||
|
||||
override fun setupLayout() {
|
||||
viewModel.repositories.observe(viewLifecycleOwner) {
|
||||
repositories = it.associateBy { repo -> repo.id }
|
||||
|
@ -43,12 +43,9 @@ class PrefsRepositoriesFragment : BaseNavFragment() {
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun setupAdapters() {
|
||||
override fun setupLayout() {
|
||||
syncConnection.bind(requireContext())
|
||||
binding.addRepository.setOnClickListener { viewModel.addRepository() }
|
||||
}
|
||||
|
||||
override fun setupLayout() {
|
||||
viewModel.repositories.observe(requireActivity()) {
|
||||
binding.reposRecycler.setContent {
|
||||
AppTheme(
|
||||
|
Loading…
x
Reference in New Issue
Block a user