Update: Convert latest view to LazyColumn

This commit is contained in:
machiav3lli 2022-06-26 01:51:57 +02:00
parent d79e5abb9f
commit d31791ec02

View File

@ -7,12 +7,12 @@ import android.view.View
import android.view.ViewGroup
import androidx.compose.foundation.background
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Settings
import androidx.compose.material.icons.rounded.Sync
@ -38,8 +38,8 @@ import com.looker.droidify.database.entity.Repository
import com.looker.droidify.service.SyncService
import com.looker.droidify.ui.activities.PrefsActivityX
import com.looker.droidify.ui.compose.ProductsHorizontalRecycler
import com.looker.droidify.ui.compose.ProductsVerticalRecycler
import com.looker.droidify.ui.compose.components.ExpandableSearchAction
import com.looker.droidify.ui.compose.components.ProductsListItem
import com.looker.droidify.ui.compose.components.TopBar
import com.looker.droidify.ui.compose.components.TopBarAction
import com.looker.droidify.ui.compose.theme.AppTheme
@ -109,12 +109,13 @@ class LatestFragment : MainNavFragmentX() {
}
}
) { padding ->
Column(
LazyColumn(
Modifier
.padding(padding)
.background(MaterialTheme.colorScheme.background)
.fillMaxSize()
.fillMaxSize(),
) {
item {
Text(
text = stringResource(id = R.string.new_applications),
modifier = Modifier.padding(8.dp)
@ -122,6 +123,8 @@ class LatestFragment : MainNavFragmentX() {
ProductsHorizontalRecycler(secondaryList, repositories) { item ->
mainActivityX.navigateProduct(item.packageName)
}
}
item {
Row(
modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp),
verticalAlignment = Alignment.CenterVertically
@ -149,29 +152,30 @@ class LatestFragment : MainNavFragmentX() {
}
)
}
ProductsVerticalRecycler(
productsList = primaryList,
repositories = repositories,
favorites = favorites,
modifier = Modifier
.fillMaxWidth()
.weight(1f),
onUserClick = { item ->
mainActivityX.navigateProduct(item.packageName)
},
onFavouriteClick = { item ->
}
items(
items = primaryList?.map { it.toItem() } ?: emptyList(),
) { item ->
ProductsListItem(
item = item,
repo = repositories[item.repositoryId],
isFavorite = favorites.contains(item.packageName),
onUserClick = { mainActivityX.navigateProduct(it.packageName) },
onFavouriteClick = {
viewModel.setFavorite(
item.packageName,
!favorites.contains(item.packageName)
it.packageName,
!favorites.contains(it.packageName)
)
},
getInstalled = { installedList?.get(it.packageName) }
) { item ->
val installed = installedList?.get(item.packageName)
installed = installedList?.get(item.packageName),
onActionClick = {
val installed = installedList?.get(it.packageName)
if (installed != null && installed.launcherActivities.isNotEmpty())
requireContext().onLaunchClick(installed, childFragmentManager)
else
mainActivityX.syncConnection.binder?.installApps(listOf(item))
mainActivityX.syncConnection.binder?.installApps(listOf(it))
}
)
}
}
}