main.dart 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import 'package:flutter_localizations/flutter_localizations.dart';
  2. import 'package:flutter/cupertino.dart';
  3. import 'package:flutter/services.dart';
  4. import 'package:jpush_flutter/jpush_flutter.dart';
  5. import 'package:redux/redux.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:flutter_redux/flutter_redux.dart';
  8. import 'package:shared_preferences/shared_preferences.dart';
  9. import 'package:flutter_bugly/flutter_bugly.dart';
  10. import './Localizations.dart';
  11. import 'model/UserInfo.dart';
  12. import 'net/HttpManager.dart';
  13. import 'net/Result.dart';
  14. import 'pages/HomePage.dart';
  15. import 'pages/loginFirst.dart';
  16. import 'redux/AppState.dart';
  17. class MobileCyberGamesApp extends StatelessWidget {
  18. const MobileCyberGamesApp(this.store);
  19. final Store<AppState> store;
  20. @override
  21. Widget build(BuildContext context) {
  22. return StoreProvider<AppState>(
  23. store: store,
  24. child: MaterialApp(
  25. title: '龙电竞',
  26. supportedLocales: [
  27. const Locale('en'), // English
  28. const Locale('zh'), // China
  29. ],
  30. localizationsDelegates: [
  31. GlobalMaterialLocalizations.delegate,
  32. GlobalWidgetsLocalizations.delegate,
  33. ChineseCupertinoLocalizations.delegate,
  34. ],
  35. theme: ThemeData(
  36. cardColor: Color(0xFF2B2B42),
  37. backgroundColor: Color(0xFF222335),
  38. primaryColor: Color(0xFFD4504B),
  39. buttonColor: Color(0xFFD4504B),
  40. accentColor: Color(0xFFD4504B),
  41. textSelectionColor: Colors.white,
  42. textTheme: TextTheme(
  43. subhead: TextStyle(color: Colors.white),
  44. title: TextStyle(color: Colors.white),
  45. ),
  46. primaryTextTheme: TextTheme(
  47. title: TextStyle(color: Colors.white),
  48. ),
  49. primaryIconTheme: IconThemeData(color: Colors.white),
  50. appBarTheme: AppBarTheme(color: Color(0xFF23253C)),
  51. buttonTheme: ButtonThemeData(
  52. buttonColor: Color(0xFFD4504B),
  53. highlightColor: Color(0xFF8E3B36),
  54. splashColor: Color(0xFF8E3B36),
  55. shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(0))),
  56. )),
  57. home: store.state.userInfo != null ? HomePage() : LoginFirst(),
  58. // home: LoginFirst(),
  59. routes: {'/home': (BuildContext context) => HomePage()},
  60. color: Color(0xFF2E3049),
  61. ),
  62. );
  63. }
  64. }
  65. Future<void> main() async {
  66. SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light.copyWith(
  67. statusBarColor: Colors.transparent,
  68. ));
  69. await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
  70. final JPush jpush = JPush();
  71. jpush.setup(
  72. appKey: '52209c854c4d7bfc14c0e60b',
  73. channel: 'theChannel',
  74. production: true,
  75. debug: true,
  76. );
  77. jpush.applyPushAuthority(NotificationSettingsIOS(sound: true, alert: true, badge: true));
  78. final prefs = await SharedPreferences.getInstance();
  79. HttpManager.token = prefs.getString('token') ?? '';
  80. Result result = await HttpManager.get('userInfo/getUserInfo');
  81. AppState state = AppState.empty();
  82. if (result.success && result.data != null) {
  83. UserInfo userInfo = UserInfo.fromJson(result.data);
  84. state.userInfo = userInfo;
  85. jpush.setAlias(userInfo.id.toString()).then((map) {});
  86. }
  87. final Store<AppState> store = Store<AppState>(appReducer, initialState: state);
  88. FlutterBugly.init(androidAppId: 'bd9a511cb9', iOSAppId: '');
  89. FlutterBugly.postCatchedException(() {
  90. runApp(MobileCyberGamesApp(store));
  91. });
  92. }