mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-06-07 16:29:55 +00:00
Update: Use ActionChip for sort/filter and download-all chips
This commit is contained in:
parent
269e462ae4
commit
1407e219d2
@ -7,13 +7,8 @@ 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.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.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
|
||||||
@ -31,6 +26,7 @@ import com.machiav3lli.fdroid.content.Preferences
|
|||||||
import com.machiav3lli.fdroid.entity.Section
|
import com.machiav3lli.fdroid.entity.Section
|
||||||
import com.machiav3lli.fdroid.ui.activities.MainActivityX
|
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.ActionChip
|
||||||
import com.machiav3lli.fdroid.ui.compose.components.CategoryChip
|
import com.machiav3lli.fdroid.ui.compose.components.CategoryChip
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.Phosphor
|
import com.machiav3lli.fdroid.ui.compose.icons.Phosphor
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.FunnelSimple
|
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.FunnelSimple
|
||||||
@ -88,26 +84,10 @@ fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
|
|||||||
mutableStateOf(false)
|
mutableStateOf(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
SuggestionChip(
|
ActionChip(
|
||||||
shape = MaterialTheme.shapes.medium,
|
textId = R.string.sort_filter,
|
||||||
colors = SuggestionChipDefaults.suggestionChipColors(
|
icon = Phosphor.FunnelSimple
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
) { mainActivityX.navigateSortFilter(NavItem.Explore.destination) }
|
||||||
labelColor = MaterialTheme.colorScheme.onSurface,
|
|
||||||
),
|
|
||||||
onClick = {
|
|
||||||
mainActivityX.navigateSortFilter(NavItem.Explore.destination)
|
|
||||||
},
|
|
||||||
icon = {
|
|
||||||
Icon(
|
|
||||||
modifier = Modifier.size(18.dp),
|
|
||||||
imageVector = Phosphor.FunnelSimple,
|
|
||||||
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),
|
||||||
|
@ -15,8 +15,6 @@ import androidx.compose.material3.ElevatedButton
|
|||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.Icon
|
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
|
||||||
@ -37,6 +35,7 @@ import com.machiav3lli.fdroid.database.entity.Product
|
|||||||
import com.machiav3lli.fdroid.ui.activities.MainActivityX
|
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.components.ActionChip
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.Phosphor
|
import com.machiav3lli.fdroid.ui.compose.icons.Phosphor
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CaretDown
|
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CaretDown
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CaretUp
|
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CaretUp
|
||||||
@ -117,32 +116,18 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
Spacer(modifier = Modifier.weight(1f))
|
Spacer(modifier = Modifier.weight(1f))
|
||||||
SuggestionChip(
|
ActionChip(
|
||||||
shape = MaterialTheme.shapes.medium,
|
textId = R.string.update_all,
|
||||||
colors = SuggestionChipDefaults.suggestionChipColors(
|
icon = Phosphor.Download,
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
) {
|
||||||
labelColor = MaterialTheme.colorScheme.onSurface,
|
secondaryList?.let {
|
||||||
),
|
mainActivityX.syncConnection.binder?.updateApps(
|
||||||
onClick = {
|
it.map(
|
||||||
secondaryList?.let {
|
Product::toItem
|
||||||
mainActivityX.syncConnection.binder?.updateApps(
|
|
||||||
it.map(
|
|
||||||
Product::toItem
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
}
|
|
||||||
},
|
|
||||||
icon = {
|
|
||||||
Icon(
|
|
||||||
modifier = Modifier.size(18.dp),
|
|
||||||
imageVector = Phosphor.Download,
|
|
||||||
contentDescription = stringResource(id = R.string.update_all)
|
|
||||||
)
|
)
|
||||||
},
|
|
||||||
label = {
|
|
||||||
Text(text = stringResource(id = R.string.update_all))
|
|
||||||
}
|
}
|
||||||
)
|
}
|
||||||
}
|
}
|
||||||
AnimatedVisibility(visible = updatesVisible) {
|
AnimatedVisibility(visible = updatesVisible) {
|
||||||
ProductsHorizontalRecycler(secondaryList, repositoriesMap) { item ->
|
ProductsHorizontalRecycler(secondaryList, repositoriesMap) { item ->
|
||||||
@ -159,26 +144,10 @@ 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(
|
ActionChip(
|
||||||
shape = MaterialTheme.shapes.medium,
|
textId = R.string.sort_filter,
|
||||||
colors = SuggestionChipDefaults.suggestionChipColors(
|
icon = Phosphor.FunnelSimple
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
) { mainActivityX.navigateSortFilter(NavItem.Installed.destination) }
|
||||||
labelColor = MaterialTheme.colorScheme.onSurface,
|
|
||||||
),
|
|
||||||
onClick = {
|
|
||||||
mainActivityX.navigateSortFilter(NavItem.Installed.destination)
|
|
||||||
},
|
|
||||||
icon = {
|
|
||||||
Icon(
|
|
||||||
modifier = Modifier.size(18.dp),
|
|
||||||
imageVector = Phosphor.FunnelSimple,
|
|
||||||
contentDescription = stringResource(id = R.string.sort_filter)
|
|
||||||
)
|
|
||||||
},
|
|
||||||
label = {
|
|
||||||
Text(text = stringResource(id = R.string.sort_filter))
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
ProductsVerticalRecycler(
|
ProductsVerticalRecycler(
|
||||||
productsList = primaryList?.sortedBy { it.label.lowercase() },
|
productsList = primaryList?.sortedBy { it.label.lowercase() },
|
||||||
|
@ -4,14 +4,10 @@ import androidx.compose.foundation.background
|
|||||||
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.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
|
||||||
@ -28,6 +24,7 @@ import com.machiav3lli.fdroid.R
|
|||||||
import com.machiav3lli.fdroid.content.Preferences
|
import com.machiav3lli.fdroid.content.Preferences
|
||||||
import com.machiav3lli.fdroid.ui.activities.MainActivityX
|
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.ActionChip
|
||||||
import com.machiav3lli.fdroid.ui.compose.components.ProductsListItem
|
import com.machiav3lli.fdroid.ui.compose.components.ProductsListItem
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.Phosphor
|
import com.machiav3lli.fdroid.ui.compose.icons.Phosphor
|
||||||
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.FunnelSimple
|
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.FunnelSimple
|
||||||
@ -97,26 +94,10 @@ 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(
|
ActionChip(
|
||||||
shape = MaterialTheme.shapes.medium,
|
textId = R.string.sort_filter,
|
||||||
colors = SuggestionChipDefaults.suggestionChipColors(
|
icon = Phosphor.FunnelSimple
|
||||||
containerColor = MaterialTheme.colorScheme.surface,
|
) { mainActivityX.navigateSortFilter(NavItem.Latest.destination) }
|
||||||
labelColor = MaterialTheme.colorScheme.onSurface,
|
|
||||||
),
|
|
||||||
onClick = {
|
|
||||||
mainActivityX.navigateSortFilter(NavItem.Latest.destination)
|
|
||||||
},
|
|
||||||
icon = {
|
|
||||||
Icon(
|
|
||||||
modifier = Modifier.size(18.dp),
|
|
||||||
imageVector = Phosphor.FunnelSimple,
|
|
||||||
contentDescription = stringResource(id = R.string.sort_filter)
|
|
||||||
)
|
|
||||||
},
|
|
||||||
label = {
|
|
||||||
Text(text = stringResource(id = R.string.sort_filter))
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
items(
|
items(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user