| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import 'package:e2ee_chat/view/add_friend.dart';
- import 'package:e2ee_chat/view/user_chat.dart';
- import 'package:flutter/material.dart';
- import 'package:provider/provider.dart';
- import 'package:provider/single_child_widget.dart';
- import 'package:flutter_localizations/flutter_localizations.dart';
- import 'common/cipher.dart';
- import 'common/global.dart';
- import 'l10n/localization_intl.dart';
- import 'presenter/locale.dart';
- import 'presenter/theme.dart';
- import 'presenter/login.dart';
- import 'view/friend_request.dart';
- import 'view/language.dart';
- import 'view/login.dart';
- import 'view/theme.dart';
- import 'view/home.dart';
- void main() {
- // generateRSAKeyPair();
- WidgetsFlutterBinding.ensureInitialized();
- Global.init().then((e) => runApp(MyApp()));
- }
- class MyApp extends StatelessWidget {
- // This widget is the root of your application.
- @override
- Widget build(BuildContext context) {
- return MultiProvider(
- providers: <SingleChildWidget>[
- ChangeNotifierProvider.value(value: ThemeModel()),
- ChangeNotifierProvider.value(value: LocaleModel()),
- ChangeNotifierProvider.value(value: LoginPresenter()),
- ],
- child: Consumer2<ThemeModel, LocaleModel>(
- builder: (BuildContext context, themeModel, localeModel, Widget? child) {
- return MaterialApp(
- navigatorKey: Global.navigatorKey,
- theme: ThemeData(
- primarySwatch: themeModel.theme,
- ),
- home: HomeRoute(), //应用主页
- locale: localeModel.locale,
- //我们只支持美国英语和中文简体
- supportedLocales: Global.locales,
- localizationsDelegates: [
- // 本地化的代理类
- GlobalMaterialLocalizations.delegate,
- GlobalWidgetsLocalizations.delegate,
- GmLocalizationsDelegate()
- ],
- localeResolutionCallback:
- (Locale? _locale, Iterable<Locale> supportedLocales) {
- if (localeModel.locale != null) {
- //如果已经选定语言,则不跟随系统
- return localeModel.locale;
- } else {
- Locale? locale;
- //APP语言跟随系统语言,如果系统语言不是中文简体或美国英语,
- //则默认使用美国英语
- if (supportedLocales.contains(_locale)) {
- locale = _locale;
- } else {
- locale = Locale('en');
- }
- return locale;
- }
- },
- // 注册命名路由表
- routes: <String, WidgetBuilder>{
- "login": (context) => LoginRoute(),
- "themes": (context) => ThemeRoute(),
- "language": (context) => LanguageRoute(),
- "add friend": (context) => AddFriendView(),
- "user chat": (context) => UserChatView(),
- "friend request": (context) => FriendRequestListView()
- },
- );
- },
- ),
- );
- }
- }
|