minor fix
This commit is contained in:
parent
727635ef68
commit
b837c0a5b6
6 changed files with 23 additions and 3 deletions
|
@ -4,6 +4,13 @@ import 'package:aves/utils/change_notifier.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
|
||||||
class Query extends ChangeNotifier {
|
class Query extends ChangeNotifier {
|
||||||
|
Query({required String? initialValue}) {
|
||||||
|
if (initialValue != null && initialValue.isNotEmpty) {
|
||||||
|
_enabled = true;
|
||||||
|
queryNotifier.value = initialValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool _enabled = false;
|
bool _enabled = false;
|
||||||
|
|
||||||
bool get enabled => _enabled;
|
bool get enabled => _enabled;
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
import 'package:aves/widgets/common/extensions/build_context.dart';
|
import 'package:aves/widgets/common/extensions/build_context.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
|
|
||||||
// names should match possible values on platform
|
// names should match possible values on platform
|
||||||
enum NameConflictStrategy { rename, replace, skip }
|
enum NameConflictStrategy { rename, replace, skip }
|
||||||
|
|
||||||
extension ExtraNameConflictStrategy on NameConflictStrategy {
|
extension ExtraNameConflictStrategy on NameConflictStrategy {
|
||||||
String toPlatform() => toString().substring('NameConflictStrategy.'.length);
|
// TODO TLAD [dart 2.15] replace `describeEnum()` by `enum.name`
|
||||||
|
String toPlatform() => describeEnum(this);
|
||||||
|
|
||||||
String getName(BuildContext context) {
|
String getName(BuildContext context) {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
|
|
|
@ -296,7 +296,8 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
|
||||||
}
|
}
|
||||||
|
|
||||||
// key is expected by test driver (e.g. 'menu-sort', 'menu-group', 'menu-map')
|
// key is expected by test driver (e.g. 'menu-sort', 'menu-group', 'menu-map')
|
||||||
Key _getActionKey(EntrySetAction action) => Key('menu-${action.toString().substring('EntrySetAction.'.length)}');
|
// TODO TLAD [dart 2.15] replace `describeEnum()` by `enum.name`
|
||||||
|
Key _getActionKey(EntrySetAction action) => Key('menu-${describeEnum(action)}');
|
||||||
|
|
||||||
Widget _toActionButton(EntrySetAction action, {required bool enabled}) {
|
Widget _toActionButton(EntrySetAction action, {required bool enabled}) {
|
||||||
final onPressed = enabled ? () => _onActionSelected(action) : null;
|
final onPressed = enabled ? () => _onActionSelected(action) : null;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'package:aves/model/entry.dart';
|
import 'package:aves/model/entry.dart';
|
||||||
|
import 'package:aves/model/filters/query.dart';
|
||||||
import 'package:aves/model/selection.dart';
|
import 'package:aves/model/selection.dart';
|
||||||
import 'package:aves/model/source/collection_lens.dart';
|
import 'package:aves/model/source/collection_lens.dart';
|
||||||
import 'package:aves/widgets/collection/collection_grid.dart';
|
import 'package:aves/widgets/collection/collection_grid.dart';
|
||||||
|
@ -8,6 +9,7 @@ import 'package:aves/widgets/common/providers/media_query_data_provider.dart';
|
||||||
import 'package:aves/widgets/common/providers/query_provider.dart';
|
import 'package:aves/widgets/common/providers/query_provider.dart';
|
||||||
import 'package:aves/widgets/common/providers/selection_provider.dart';
|
import 'package:aves/widgets/common/providers/selection_provider.dart';
|
||||||
import 'package:aves/widgets/drawer/app_drawer.dart';
|
import 'package:aves/widgets/drawer/app_drawer.dart';
|
||||||
|
import 'package:collection/collection.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
@ -37,10 +39,12 @@ class _CollectionPageState extends State<CollectionPage> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final liveFilter = collection.filters.firstWhereOrNull((v) => v is QueryFilter && v.live) as QueryFilter?;
|
||||||
return MediaQueryDataProvider(
|
return MediaQueryDataProvider(
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
body: SelectionProvider<AvesEntry>(
|
body: SelectionProvider<AvesEntry>(
|
||||||
child: QueryProvider(
|
child: QueryProvider(
|
||||||
|
initialQuery: liveFilter?.query,
|
||||||
child: Builder(
|
child: Builder(
|
||||||
builder: (context) => WillPopScope(
|
builder: (context) => WillPopScope(
|
||||||
onWillPop: () {
|
onWillPop: () {
|
||||||
|
|
|
@ -3,17 +3,19 @@ import 'package:flutter/widgets.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class QueryProvider extends StatelessWidget {
|
class QueryProvider extends StatelessWidget {
|
||||||
|
final String? initialQuery;
|
||||||
final Widget child;
|
final Widget child;
|
||||||
|
|
||||||
const QueryProvider({
|
const QueryProvider({
|
||||||
Key? key,
|
Key? key,
|
||||||
|
required this.initialQuery,
|
||||||
required this.child,
|
required this.child,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return ChangeNotifierProvider<Query>(
|
return ChangeNotifierProvider<Query>(
|
||||||
create: (context) => Query(),
|
create: (context) => Query(initialValue: initialQuery),
|
||||||
child: child,
|
child: child,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:aves/app_mode.dart';
|
import 'package:aves/app_mode.dart';
|
||||||
import 'package:aves/model/entry.dart';
|
import 'package:aves/model/entry.dart';
|
||||||
|
import 'package:aves/model/filters/query.dart';
|
||||||
import 'package:aves/model/source/collection_lens.dart';
|
import 'package:aves/model/source/collection_lens.dart';
|
||||||
import 'package:aves/widgets/collection/collection_grid.dart';
|
import 'package:aves/widgets/collection/collection_grid.dart';
|
||||||
import 'package:aves/widgets/collection/collection_page.dart';
|
import 'package:aves/widgets/collection/collection_page.dart';
|
||||||
|
@ -9,6 +10,7 @@ import 'package:aves/widgets/common/providers/query_provider.dart';
|
||||||
import 'package:aves/widgets/common/providers/selection_provider.dart';
|
import 'package:aves/widgets/common/providers/selection_provider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
import 'package:collection/collection.dart';
|
||||||
|
|
||||||
class ItemPickDialog extends StatefulWidget {
|
class ItemPickDialog extends StatefulWidget {
|
||||||
static const routeName = '/item_pick';
|
static const routeName = '/item_pick';
|
||||||
|
@ -35,12 +37,14 @@ class _ItemPickDialogState extends State<ItemPickDialog> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final liveFilter = collection.filters.firstWhereOrNull((v) => v is QueryFilter && v.live) as QueryFilter?;
|
||||||
return ListenableProvider<ValueNotifier<AppMode>>.value(
|
return ListenableProvider<ValueNotifier<AppMode>>.value(
|
||||||
value: ValueNotifier(AppMode.pickInternal),
|
value: ValueNotifier(AppMode.pickInternal),
|
||||||
child: MediaQueryDataProvider(
|
child: MediaQueryDataProvider(
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
body: SelectionProvider<AvesEntry>(
|
body: SelectionProvider<AvesEntry>(
|
||||||
child: QueryProvider(
|
child: QueryProvider(
|
||||||
|
initialQuery: liveFilter?.query,
|
||||||
child: GestureAreaProtectorStack(
|
child: GestureAreaProtectorStack(
|
||||||
child: SafeArea(
|
child: SafeArea(
|
||||||
bottom: false,
|
bottom: false,
|
||||||
|
|
Loading…
Reference in a new issue