mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 11:22:12 +00:00
Update: Convert latest view to LazyColumn
This commit is contained in:
parent
d79e5abb9f
commit
d31791ec02
@ -7,12 +7,12 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.isSystemInDarkTheme
|
import androidx.compose.foundation.isSystemInDarkTheme
|
||||||
import androidx.compose.foundation.layout.Column
|
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
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.Icons
|
||||||
import androidx.compose.material.icons.rounded.Settings
|
import androidx.compose.material.icons.rounded.Settings
|
||||||
import androidx.compose.material.icons.rounded.Sync
|
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.service.SyncService
|
||||||
import com.looker.droidify.ui.activities.PrefsActivityX
|
import com.looker.droidify.ui.activities.PrefsActivityX
|
||||||
import com.looker.droidify.ui.compose.ProductsHorizontalRecycler
|
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.ExpandableSearchAction
|
||||||
|
import com.looker.droidify.ui.compose.components.ProductsListItem
|
||||||
import com.looker.droidify.ui.compose.components.TopBar
|
import com.looker.droidify.ui.compose.components.TopBar
|
||||||
import com.looker.droidify.ui.compose.components.TopBarAction
|
import com.looker.droidify.ui.compose.components.TopBarAction
|
||||||
import com.looker.droidify.ui.compose.theme.AppTheme
|
import com.looker.droidify.ui.compose.theme.AppTheme
|
||||||
@ -109,70 +109,74 @@ class LatestFragment : MainNavFragmentX() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
) { padding ->
|
) { padding ->
|
||||||
Column(
|
LazyColumn(
|
||||||
Modifier
|
Modifier
|
||||||
.padding(padding)
|
.padding(padding)
|
||||||
.background(MaterialTheme.colorScheme.background)
|
.background(MaterialTheme.colorScheme.background)
|
||||||
.fillMaxSize()
|
.fillMaxSize(),
|
||||||
) {
|
) {
|
||||||
Text(
|
item {
|
||||||
text = stringResource(id = R.string.new_applications),
|
|
||||||
modifier = Modifier.padding(8.dp)
|
|
||||||
)
|
|
||||||
ProductsHorizontalRecycler(secondaryList, repositories) { item ->
|
|
||||||
mainActivityX.navigateProduct(item.packageName)
|
|
||||||
}
|
|
||||||
Row(
|
|
||||||
modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp),
|
|
||||||
verticalAlignment = Alignment.CenterVertically
|
|
||||||
) {
|
|
||||||
Text(
|
Text(
|
||||||
text = stringResource(id = R.string.recently_updated),
|
text = stringResource(id = R.string.new_applications),
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.padding(8.dp)
|
||||||
)
|
)
|
||||||
SuggestionChip(
|
ProductsHorizontalRecycler(secondaryList, repositories) { item ->
|
||||||
shape = MaterialTheme.shapes.medium,
|
mainActivityX.navigateProduct(item.packageName)
|
||||||
colors = SuggestionChipDefaults.suggestionChipColors(
|
}
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
}
|
||||||
labelColor = MaterialTheme.colorScheme.onSurface,
|
item {
|
||||||
),
|
Row(
|
||||||
onClick = { }, // TODO add sort & filter
|
modifier = Modifier.padding(horizontal = 8.dp, vertical = 4.dp),
|
||||||
icon = {
|
verticalAlignment = Alignment.CenterVertically
|
||||||
Icon(
|
) {
|
||||||
modifier = Modifier.size(18.dp),
|
Text(
|
||||||
painter = painterResource(id = R.drawable.ic_sort),
|
text = stringResource(id = R.string.recently_updated),
|
||||||
contentDescription = stringResource(id = R.string.sort_filter)
|
modifier = Modifier.weight(1f),
|
||||||
|
)
|
||||||
|
SuggestionChip(
|
||||||
|
shape = MaterialTheme.shapes.medium,
|
||||||
|
colors = SuggestionChipDefaults.suggestionChipColors(
|
||||||
|
containerColor = MaterialTheme.colorScheme.surface,
|
||||||
|
labelColor = MaterialTheme.colorScheme.onSurface,
|
||||||
|
),
|
||||||
|
onClick = { }, // TODO add sort & filter
|
||||||
|
icon = {
|
||||||
|
Icon(
|
||||||
|
modifier = Modifier.size(18.dp),
|
||||||
|
painter = painterResource(id = R.drawable.ic_sort),
|
||||||
|
contentDescription = stringResource(id = R.string.sort_filter)
|
||||||
|
)
|
||||||
|
},
|
||||||
|
label = {
|
||||||
|
Text(text = stringResource(id = R.string.sort_filter))
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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(
|
||||||
|
it.packageName,
|
||||||
|
!favorites.contains(it.packageName)
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
label = {
|
installed = installedList?.get(item.packageName),
|
||||||
Text(text = stringResource(id = R.string.sort_filter))
|
onActionClick = {
|
||||||
|
val installed = installedList?.get(it.packageName)
|
||||||
|
if (installed != null && installed.launcherActivities.isNotEmpty())
|
||||||
|
requireContext().onLaunchClick(installed, childFragmentManager)
|
||||||
|
else
|
||||||
|
mainActivityX.syncConnection.binder?.installApps(listOf(it))
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
ProductsVerticalRecycler(
|
|
||||||
productsList = primaryList,
|
|
||||||
repositories = repositories,
|
|
||||||
favorites = favorites,
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxWidth()
|
|
||||||
.weight(1f),
|
|
||||||
onUserClick = { item ->
|
|
||||||
mainActivityX.navigateProduct(item.packageName)
|
|
||||||
},
|
|
||||||
onFavouriteClick = { item ->
|
|
||||||
viewModel.setFavorite(
|
|
||||||
item.packageName,
|
|
||||||
!favorites.contains(item.packageName)
|
|
||||||
)
|
|
||||||
},
|
|
||||||
getInstalled = { installedList?.get(it.packageName) }
|
|
||||||
) { item ->
|
|
||||||
val installed = installedList?.get(item.packageName)
|
|
||||||
if (installed != null && installed.launcherActivities.isNotEmpty())
|
|
||||||
requireContext().onLaunchClick(installed, childFragmentManager)
|
|
||||||
else
|
|
||||||
mainActivityX.syncConnection.binder?.installApps(listOf(item))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user