Update: Use ActionChip for sort/filter and download-all chips

This commit is contained in:
machiav3lli 2022-10-09 23:08:17 +02:00
parent 269e462ae4
commit 1407e219d2
3 changed files with 24 additions and 94 deletions

View File

@ -7,13 +7,8 @@ import androidx.compose.foundation.layout.Spacer
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.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
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.SideEffect
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.ui.activities.MainActivityX
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.icons.Phosphor
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.FunnelSimple
@ -88,26 +84,10 @@ fun ExplorePage(viewModel: MainNavFragmentViewModelX) {
mutableStateOf(false)
}
SuggestionChip(
shape = MaterialTheme.shapes.medium,
colors = SuggestionChipDefaults.suggestionChipColors(
containerColor = MaterialTheme.colorScheme.surface,
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))
}
)
ActionChip(
textId = R.string.sort_filter,
icon = Phosphor.FunnelSimple
) { mainActivityX.navigateSortFilter(NavItem.Explore.destination) }
Spacer(modifier = Modifier.weight(1f))
CategoryChip(
category = stringResource(id = R.string.favorite_applications),

View File

@ -15,8 +15,6 @@ import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
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.SideEffect
@ -37,6 +35,7 @@ import com.machiav3lli.fdroid.database.entity.Product
import com.machiav3lli.fdroid.ui.activities.MainActivityX
import com.machiav3lli.fdroid.ui.compose.ProductsHorizontalRecycler
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.CaretDown
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.CaretUp
@ -117,32 +116,18 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) {
)
}
Spacer(modifier = Modifier.weight(1f))
SuggestionChip(
shape = MaterialTheme.shapes.medium,
colors = SuggestionChipDefaults.suggestionChipColors(
containerColor = MaterialTheme.colorScheme.surface,
labelColor = MaterialTheme.colorScheme.onSurface,
),
onClick = {
secondaryList?.let {
mainActivityX.syncConnection.binder?.updateApps(
it.map(
Product::toItem
)
ActionChip(
textId = R.string.update_all,
icon = Phosphor.Download,
) {
secondaryList?.let {
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) {
ProductsHorizontalRecycler(secondaryList, repositoriesMap) { item ->
@ -159,26 +144,10 @@ fun InstalledPage(viewModel: MainNavFragmentViewModelX) {
text = stringResource(id = R.string.installed_applications),
modifier = Modifier.weight(1f),
)
SuggestionChip(
shape = MaterialTheme.shapes.medium,
colors = SuggestionChipDefaults.suggestionChipColors(
containerColor = MaterialTheme.colorScheme.surface,
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))
}
)
ActionChip(
textId = R.string.sort_filter,
icon = Phosphor.FunnelSimple
) { mainActivityX.navigateSortFilter(NavItem.Installed.destination) }
}
ProductsVerticalRecycler(
productsList = primaryList?.sortedBy { it.label.lowercase() },

View File

@ -4,14 +4,10 @@ import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
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.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
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.SideEffect
@ -28,6 +24,7 @@ import com.machiav3lli.fdroid.R
import com.machiav3lli.fdroid.content.Preferences
import com.machiav3lli.fdroid.ui.activities.MainActivityX
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.icons.Phosphor
import com.machiav3lli.fdroid.ui.compose.icons.phosphor.FunnelSimple
@ -97,26 +94,10 @@ fun LatestPage(viewModel: MainNavFragmentViewModelX) {
text = stringResource(id = R.string.recently_updated),
modifier = Modifier.weight(1f),
)
SuggestionChip(
shape = MaterialTheme.shapes.medium,
colors = SuggestionChipDefaults.suggestionChipColors(
containerColor = MaterialTheme.colorScheme.surface,
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))
}
)
ActionChip(
textId = R.string.sort_filter,
icon = Phosphor.FunnelSimple
) { mainActivityX.navigateSortFilter(NavItem.Latest.destination) }
}
}
items(