mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +00:00
Add: SortFilter launcher button to main Pages
This commit is contained in:
parent
dd87e0dbe7
commit
f435b8c65b
@ -8,15 +8,20 @@ import androidx.compose.foundation.layout.Spacer
|
|||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
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.material3.ExperimentalMaterial3Api
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.SuggestionChip
|
import androidx.compose.material3.SuggestionChip
|
||||||
import androidx.compose.material3.SuggestionChipDefaults
|
import androidx.compose.material3.SuggestionChipDefaults
|
||||||
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.SideEffect
|
import androidx.compose.runtime.SideEffect
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.livedata.observeAsState
|
import androidx.compose.runtime.livedata.observeAsState
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
@ -30,6 +35,7 @@ import com.machiav3lli.fdroid.ui.activities.MainActivityX
|
|||||||
import com.machiav3lli.fdroid.ui.compose.ProductsVerticalRecycler
|
import com.machiav3lli.fdroid.ui.compose.ProductsVerticalRecycler
|
||||||
import com.machiav3lli.fdroid.ui.compose.components.CategoryChip
|
import com.machiav3lli.fdroid.ui.compose.components.CategoryChip
|
||||||
import com.machiav3lli.fdroid.ui.compose.theme.AppTheme
|
import com.machiav3lli.fdroid.ui.compose.theme.AppTheme
|
||||||
|
import com.machiav3lli.fdroid.ui.navigation.NavItem
|
||||||
import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX
|
import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX
|
||||||
import com.machiav3lli.fdroid.utility.isDarkTheme
|
import com.machiav3lli.fdroid.utility.isDarkTheme
|
||||||
import com.machiav3lli.fdroid.utility.onLaunchClick
|
import com.machiav3lli.fdroid.utility.onLaunchClick
|
||||||
@ -37,6 +43,7 @@ import kotlinx.coroutines.CoroutineScope
|
|||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
|
fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
@ -78,6 +85,27 @@ fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
|
|||||||
var favoriteFilter by remember {
|
var favoriteFilter by remember {
|
||||||
mutableStateOf(false)
|
mutableStateOf(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SuggestionChip(
|
||||||
|
shape = MaterialTheme.shapes.medium,
|
||||||
|
colors = SuggestionChipDefaults.suggestionChipColors(
|
||||||
|
containerColor = MaterialTheme.colorScheme.surface,
|
||||||
|
labelColor = MaterialTheme.colorScheme.onSurface,
|
||||||
|
),
|
||||||
|
onClick = {
|
||||||
|
mainActivityX.navigateSortFilter(NavItem.Explore)
|
||||||
|
},
|
||||||
|
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))
|
||||||
|
}
|
||||||
|
)
|
||||||
Spacer(modifier = Modifier.weight(1f))
|
Spacer(modifier = Modifier.weight(1f))
|
||||||
CategoryChip(
|
CategoryChip(
|
||||||
category = stringResource(id = R.string.favorite_applications),
|
category = stringResource(id = R.string.favorite_applications),
|
||||||
|
@ -40,6 +40,7 @@ import com.machiav3lli.fdroid.ui.activities.MainActivityX
|
|||||||
import com.machiav3lli.fdroid.ui.compose.ProductsHorizontalRecycler
|
import com.machiav3lli.fdroid.ui.compose.ProductsHorizontalRecycler
|
||||||
import com.machiav3lli.fdroid.ui.compose.ProductsVerticalRecycler
|
import com.machiav3lli.fdroid.ui.compose.ProductsVerticalRecycler
|
||||||
import com.machiav3lli.fdroid.ui.compose.theme.AppTheme
|
import com.machiav3lli.fdroid.ui.compose.theme.AppTheme
|
||||||
|
import com.machiav3lli.fdroid.ui.navigation.NavItem
|
||||||
import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX
|
import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX
|
||||||
import com.machiav3lli.fdroid.utility.isDarkTheme
|
import com.machiav3lli.fdroid.utility.isDarkTheme
|
||||||
import com.machiav3lli.fdroid.utility.onLaunchClick
|
import com.machiav3lli.fdroid.utility.onLaunchClick
|
||||||
@ -152,13 +153,15 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) {
|
|||||||
text = stringResource(id = R.string.installed_applications),
|
text = stringResource(id = R.string.installed_applications),
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
)
|
)
|
||||||
/*SuggestionChip(
|
SuggestionChip(
|
||||||
shape = MaterialTheme.shapes.medium,
|
shape = MaterialTheme.shapes.medium,
|
||||||
colors = SuggestionChipDefaults.suggestionChipColors(
|
colors = SuggestionChipDefaults.suggestionChipColors(
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
containerColor = MaterialTheme.colorScheme.surface,
|
||||||
labelColor = MaterialTheme.colorScheme.onSurface,
|
labelColor = MaterialTheme.colorScheme.onSurface,
|
||||||
),
|
),
|
||||||
onClick = { }, // TODO add sort & filter
|
onClick = {
|
||||||
|
mainActivityX.navigateSortFilter(NavItem.Installed)
|
||||||
|
},
|
||||||
icon = {
|
icon = {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(18.dp),
|
modifier = Modifier.size(18.dp),
|
||||||
@ -169,7 +172,7 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) {
|
|||||||
label = {
|
label = {
|
||||||
Text(text = stringResource(id = R.string.sort_filter))
|
Text(text = stringResource(id = R.string.sort_filter))
|
||||||
}
|
}
|
||||||
)*/
|
)
|
||||||
}
|
}
|
||||||
ProductsVerticalRecycler(
|
ProductsVerticalRecycler(
|
||||||
productsList = primaryList?.sortedBy { it.label.lowercase() },
|
productsList = primaryList?.sortedBy { it.label.lowercase() },
|
||||||
|
@ -1,13 +1,18 @@
|
|||||||
package com.machiav3lli.fdroid.ui.pages
|
package com.machiav3lli.fdroid.ui.pages
|
||||||
|
|
||||||
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.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
|
import androidx.compose.material3.SuggestionChip
|
||||||
|
import androidx.compose.material3.SuggestionChipDefaults
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.SideEffect
|
import androidx.compose.runtime.SideEffect
|
||||||
@ -18,6 +23,7 @@ import androidx.compose.runtime.remember
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.machiav3lli.fdroid.R
|
import com.machiav3lli.fdroid.R
|
||||||
@ -26,6 +32,7 @@ import com.machiav3lli.fdroid.ui.activities.MainActivityX
|
|||||||
import com.machiav3lli.fdroid.ui.compose.ProductsHorizontalRecycler
|
import com.machiav3lli.fdroid.ui.compose.ProductsHorizontalRecycler
|
||||||
import com.machiav3lli.fdroid.ui.compose.components.ProductsListItem
|
import com.machiav3lli.fdroid.ui.compose.components.ProductsListItem
|
||||||
import com.machiav3lli.fdroid.ui.compose.theme.AppTheme
|
import com.machiav3lli.fdroid.ui.compose.theme.AppTheme
|
||||||
|
import com.machiav3lli.fdroid.ui.navigation.NavItem
|
||||||
import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX
|
import com.machiav3lli.fdroid.ui.viewmodels.MainNavFragmentViewModelX
|
||||||
import com.machiav3lli.fdroid.utility.isDarkTheme
|
import com.machiav3lli.fdroid.utility.isDarkTheme
|
||||||
import com.machiav3lli.fdroid.utility.onLaunchClick
|
import com.machiav3lli.fdroid.utility.onLaunchClick
|
||||||
@ -33,6 +40,7 @@ import kotlinx.coroutines.CoroutineScope
|
|||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@Composable
|
@Composable
|
||||||
fun LatestPage(viewModel: MainNavFragmentViewModelX) {
|
fun LatestPage(viewModel: MainNavFragmentViewModelX) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
@ -86,13 +94,15 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) {
|
|||||||
text = stringResource(id = R.string.recently_updated),
|
text = stringResource(id = R.string.recently_updated),
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
)
|
)
|
||||||
/*SuggestionChip(
|
SuggestionChip(
|
||||||
shape = MaterialTheme.shapes.medium,
|
shape = MaterialTheme.shapes.medium,
|
||||||
colors = SuggestionChipDefaults.suggestionChipColors(
|
colors = SuggestionChipDefaults.suggestionChipColors(
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
containerColor = MaterialTheme.colorScheme.surface,
|
||||||
labelColor = MaterialTheme.colorScheme.onSurface,
|
labelColor = MaterialTheme.colorScheme.onSurface,
|
||||||
),
|
),
|
||||||
onClick = { }, // TODO add sort & filter
|
onClick = {
|
||||||
|
mainActivityX.navigateSortFilter(NavItem.Latest)
|
||||||
|
},
|
||||||
icon = {
|
icon = {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(18.dp),
|
modifier = Modifier.size(18.dp),
|
||||||
@ -103,7 +113,7 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) {
|
|||||||
label = {
|
label = {
|
||||||
Text(text = stringResource(id = R.string.sort_filter))
|
Text(text = stringResource(id = R.string.sort_filter))
|
||||||
}
|
}
|
||||||
)*/
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
items(
|
items(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user