import 'dart:async'; import 'package:aves_utils/aves_utils.dart'; import 'package:flutter/foundation.dart'; class Query extends ChangeNotifier { final AChangeNotifier _focusRequestNotifier = AChangeNotifier(); final ValueNotifier _queryNotifier = ValueNotifier(''); final StreamController _enabledStreamController = StreamController.broadcast(); Query({required String? initialValue}) { if (initialValue != null && initialValue.isNotEmpty) { _enabled = true; queryNotifier.value = initialValue; } } bool _enabled = false; bool get enabled => _enabled; set enabled(bool value) { _enabled = value; _enabledStreamController.add(_enabled); queryNotifier.value = ''; notifyListeners(); if (_enabled) { focusRequestNotifier.notifyListeners(); } } void toggle() => enabled = !enabled; Stream get enabledStream => _enabledStreamController.stream; AChangeNotifier get focusRequestNotifier => _focusRequestNotifier; ValueNotifier get queryNotifier => _queryNotifier; }