Files
flutter-todos/lib/config/provider_config.dart
2019-12-16 15:37:34 +08:00

176 lines
5.2 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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