import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:todo_list/json/task_bean.dart'; import 'package:todo_list/json/task_icon_bean.dart'; import 'package:todo_list/model/all_model.dart'; import 'package:todo_list/pages/all_page.dart'; class ProviderConfig { static ProviderConfig _instance; static ProviderConfig getInstance() { if (_instance == null) { _instance = ProviderConfig._internal(); } return _instance; } ProviderConfig._internal(); ///全局provider ChangeNotifierProvider getGlobal(Widget child) { return ChangeNotifierProvider( create: (context) => GlobalModel(), child: child, ); } ///主页provider ChangeNotifierProvider getMainPage() { return ChangeNotifierProvider( create: (context) => MainPageModel(), child: MainPage(), ); } ///任务详情页provider ChangeNotifierProvider getTaskDetailPage( int index, TaskBean taskBean, { DoneTaskPageModel doneTaskPageModel, SearchPageModel searchPageModel, }) { return ChangeNotifierProvider( create: (context) => TaskDetailPageModel( taskBean, doneTaskPageModel: doneTaskPageModel, searchPageModel: searchPageModel, heroTag: index, ), child: TaskDetailPage(), ); } ///任务编辑页provider ChangeNotifierProvider getEditTaskPage( TaskIconBean taskIcon, {TaskDetailPageModel taskDetailPageModel, TaskBean taskBean}) { return ChangeNotifierProvider( create: (context) => EditTaskPageModel(oldTaskBean: taskBean), child: EditTaskPage( taskIcon, taskDetailPageModel: taskDetailPageModel, ), ); } ///图标设置页provider ChangeNotifierProvider getIconSettingPage() { return ChangeNotifierProvider( create: (context) => IconSettingPageModel(), child: IconSettingPage(), ); } ///主题设置页provider ChangeNotifierProvider getThemePage() { return ChangeNotifierProvider( create: (context) => ThemePageModel(), child: ThemePage(), ); } ///头像裁剪页provider ChangeNotifierProvider getAvatarPage( {MainPageModel mainPageModel}) { return ChangeNotifierProvider( create: (context) => AvatarPageModel(), child: AvatarPage( mainPageModel: mainPageModel, ), ); } ///完成列表页provider ChangeNotifierProvider getDoneTaskPage() { return ChangeNotifierProvider( create: (context) => DoneTaskPageModel(), child: DoneTaskPage(), ); } ///搜索任务页provider ChangeNotifierProvider getSearchPage() { return ChangeNotifierProvider( create: (context) => SearchPageModel(), child: SearchPage(), ); } ///意见反馈页provider ChangeNotifierProvider getFeedbackPage( FeedbackWallPageModel feedbackWallPageModel) { return ChangeNotifierProvider( create: (context) => FeedbackPageModel(), child: FeedbackPage(feedbackWallPageModel), ); } ///意见反馈墙页provider ChangeNotifierProvider getFeedbackWallPage() { return ChangeNotifierProvider( create: (context) => FeedbackWallPageModel(), child: FeedbackWallPage(), ); } ///登录页provider ChangeNotifierProvider getLoginPage({bool isFirst = false}) { return ChangeNotifierProvider( create: (context) => LoginPageModel(isFirst: isFirst), child: LoginPage(), ); } ///注册页provider ChangeNotifierProvider getRegisterPage() { return ChangeNotifierProvider( create: (context) => RegisterPageModel(), child: RegisterPage(), ); } ///重设密码页provider,可以设重设密码,也可以设是记密码 ChangeNotifierProvider getResetPasswordPage( {bool isReset = true}) { return ChangeNotifierProvider( create: (context) => ResetPasswordPageModel(isReset), child: ResetPasswordPage(), ); } ///网络图片页provider,用于设置账号页面的背景,或者侧滑栏的头部,或者主页背景 ChangeNotifierProvider getNetPicturesPage( {@required String useType, AccountPageModel accountPageModel, TaskBean taskBean}) { return ChangeNotifierProvider( create: (context) => NetPicturesPageModel( useType: useType, accountPageModel: accountPageModel, taskBean: taskBean, ), child: NetPicturesPage(), ); } ///账号页面的provider ChangeNotifierProvider getAccountPage() { return ChangeNotifierProvider( create: (context) => AccountPageModel(), child: AccountPage(), ); } }