import 'dart:collection'; import 'package:flutter/material.dart'; import 'package:flutter_provider_demo/dao/car_dao.dart'; import 'package:flutter_provider_demo/model/car_model.dart'; /// Description: car provider /// Time : 09/04/2023 Monday /// Author : liuyuqi.gov@msn.cn class CarProvider extends ChangeNotifier { late List _cars; int _count = 0; int get count => _count; UnmodifiableListView get allCars => UnmodifiableListView(_cars); UnmodifiableListView get unStartedCars => UnmodifiableListView(_cars.where((car) => car.start == false)); UnmodifiableListView get startedCars => UnmodifiableListView(_cars.where((car) => car.start == true)); Future> getCars() async { _cars = await CarDao.getCars(); notifyListeners(); return _cars; } void deleteCar(BuildContext context, CarModel car) async { await CarDao.deleteCar(car); _cars.remove(car); notifyListeners(); } /// add car void addCar(CarModel car) async { final id = await CarDao.addCar(car); if (id > 0) { _cars.add(car); notifyListeners(); } } void _showSnackBar(BuildContext context, String message) { final snackBar = SnackBar( duration: const Duration(milliseconds: 500), content: Text( message, style: const TextStyle(color: Colors.white), ), backgroundColor: Theme.of(context).primaryColor, ); ScaffoldMessenger.of(context).showSnackBar(snackBar); } void startCar(BuildContext context, CarModel car) { notifyListeners(); } }