Changes to bottom buttons UI on Apps page

This commit is contained in:
Imran Remtulla
2023-05-14 14:18:31 -04:00
parent eda5fec37c
commit 03c2ce9a01

View File

@@ -61,8 +61,6 @@ class AppsPageState extends State<AppsPage> {
var settingsProvider = context.watch<SettingsProvider>(); var settingsProvider = context.watch<SettingsProvider>();
var sourceProvider = SourceProvider(); var sourceProvider = SourceProvider();
var listedApps = appsProvider.getAppValues().toList(); var listedApps = appsProvider.getAppValues().toList();
var currentFilterIsUpdatesOnly =
filter.isIdenticalTo(updatesOnlyFilter, settingsProvider);
refresh() { refresh() {
HapticFeedback.lightImpact(); HapticFeedback.lightImpact();
@@ -887,44 +885,41 @@ class AppsPageState extends State<AppsPage> {
}); });
} }
getMainBottomButtonsRow() { getMainBottomButtons() {
return Row( return [
mainAxisAlignment: MainAxisAlignment.spaceEvenly, IconButton(
children: [
IconButton(
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
onPressed: selectedAppIds.isEmpty onPressed: getMassObtainFunction(),
? null tooltip: selectedAppIds.isEmpty
: () { ? tr('installUpdateApps')
appsProvider.removeAppsWithModal( : tr('installUpdateSelectedApps'),
context, selectedApps.toList()); icon: const Icon(
}, Icons.file_download_outlined,
tooltip: tr('removeSelectedApps'), )),
icon: const Icon(Icons.delete_outline_outlined), IconButton(
), visualDensity: VisualDensity.compact,
IconButton( onPressed: selectedAppIds.isEmpty
visualDensity: VisualDensity.compact, ? null
onPressed: getMassObtainFunction(), : () {
tooltip: selectedAppIds.isEmpty appsProvider.removeAppsWithModal(
? tr('installUpdateApps') context, selectedApps.toList());
: tr('installUpdateSelectedApps'), },
icon: const Icon( tooltip: tr('removeSelectedApps'),
Icons.file_download_outlined, icon: const Icon(Icons.delete_outline_outlined),
)), ),
IconButton( IconButton(
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
onPressed: selectedAppIds.isEmpty ? null : launchCategorizeDialog(), onPressed: selectedAppIds.isEmpty ? null : launchCategorizeDialog(),
tooltip: tr('categorize'), tooltip: tr('categorize'),
icon: const Icon(Icons.category_outlined), icon: const Icon(Icons.category_outlined),
), ),
IconButton( IconButton(
visualDensity: VisualDensity.compact, visualDensity: VisualDensity.compact,
onPressed: selectedAppIds.isEmpty ? null : showMoreOptionsDialog, onPressed: selectedAppIds.isEmpty ? null : showMoreOptionsDialog,
tooltip: tr('more'), tooltip: tr('more'),
icon: const Icon(Icons.more_horiz), icon: const Icon(Icons.more_horiz),
), ),
], ];
);
} }
showFilterDialog() async { showFilterDialog() async {
@@ -997,50 +992,33 @@ class AppsPageState extends State<AppsPage> {
} }
getFilterButtonsRow() { getFilterButtonsRow() {
var isFilterOff = filter.isIdenticalTo(neutralFilter, settingsProvider);
return Row( return Row(
children: [ children: [
getSelectAllButton(), getSelectAllButton(),
IconButton(
color: Theme.of(context).colorScheme.primary,
style: const ButtonStyle(visualDensity: VisualDensity.compact),
tooltip: isFilterOff ? tr('filter') : tr('filterActive'),
onPressed: isFilterOff
? showFilterDialog
: () {
setState(() {
filter = AppsFilter();
});
},
icon: Icon(isFilterOff
? Icons.filter_list_rounded
: Icons.filter_list_off_rounded)),
const SizedBox(
width: 10,
),
const VerticalDivider(), const VerticalDivider(),
Expanded( Expanded(
child: SingleChildScrollView( child: Row(
scrollDirection: Axis.horizontal, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
child: getMainBottomButtonsRow())), children: getMainBottomButtons(),
const VerticalDivider(), )),
IconButton(
visualDensity: VisualDensity.compact,
onPressed: () {
setState(() {
if (currentFilterIsUpdatesOnly) {
filter = AppsFilter();
} else {
filter = updatesOnlyFilter;
}
});
},
tooltip: currentFilterIsUpdatesOnly
? tr('removeOutdatedFilter')
: tr('showOutdatedOnly'),
icon: Icon(
currentFilterIsUpdatesOnly
? Icons.update_disabled_rounded
: Icons.update_rounded,
color: Theme.of(context).colorScheme.primary,
),
),
TextButton.icon(
style: const ButtonStyle(visualDensity: VisualDensity.compact),
label: Text(
filter.isIdenticalTo(neutralFilter, settingsProvider)
? tr('filter')
: tr('filterActive'),
style: TextStyle(
fontWeight:
filter.isIdenticalTo(neutralFilter, settingsProvider)
? FontWeight.normal
: FontWeight.bold),
),
onPressed: showFilterDialog,
icon: const Icon(Icons.filter_list_rounded))
], ],
); );
} }