x1ongzhu 6 rokov pred
rodič
commit
c5a417788b
76 zmenil súbory, kde vykonal 517 pridanie a 78 odobranie
  1. 1 1
      android/app/build.gradle
  2. BIN
      images/1x/icon_jifen.png
  3. BIN
      images/1x/icon_jinbi.png
  4. BIN
      images/1x/icon_paihangbang_04.png
  5. BIN
      images/2x/home_icon_vip.png
  6. BIN
      images/2x/icon_jifen.png
  7. BIN
      images/2x/icon_jinbi.png
  8. BIN
      images/2x/icon_jinru.png
  9. BIN
      images/2x/icon_paiming0000.png
  10. BIN
      images/2x/icon_paiming01.png
  11. BIN
      images/2x/icon_paiming02.png
  12. BIN
      images/2x/icon_paiming03.png
  13. BIN
      images/2x/icon_paimingno.png
  14. BIN
      images/2x/icon_qiandao.png
  15. BIN
      images/2x/tabbar_icon_01.png
  16. BIN
      images/2x/tabbar_icon_01_pre.png
  17. BIN
      images/2x/tabbar_icon_02.png
  18. BIN
      images/2x/tabbar_icon_02_pre.png
  19. BIN
      images/2x/tabbar_icon_03.png
  20. BIN
      images/2x/tabbar_icon_03_pre.png
  21. BIN
      images/2x/text_saishiliebiao.png
  22. BIN
      images/3x/home_icon_vip.png
  23. BIN
      images/3x/icon_jifen.png
  24. BIN
      images/3x/icon_jinbi.png
  25. BIN
      images/3x/icon_jinru.png
  26. BIN
      images/3x/icon_paiming0000.png
  27. BIN
      images/3x/icon_paiming01.png
  28. BIN
      images/3x/icon_paiming02.png
  29. BIN
      images/3x/icon_paiming03.png
  30. BIN
      images/3x/icon_paimingno.png
  31. BIN
      images/3x/icon_qiandao.png
  32. BIN
      images/3x/tabbar_icon_01.png
  33. BIN
      images/3x/tabbar_icon_01_pre.png
  34. BIN
      images/3x/tabbar_icon_02.png
  35. BIN
      images/3x/tabbar_icon_02_pre.png
  36. BIN
      images/3x/tabbar_icon_03.png
  37. BIN
      images/3x/tabbar_icon_03_pre.png
  38. BIN
      images/3x/text_saishiliebiao.png
  39. BIN
      images/game.png
  40. BIN
      images/home_icon_vip.png
  41. BIN
      images/icon_jinru.png
  42. BIN
      images/icon_paiming0000.png
  43. BIN
      images/icon_paiming01.png
  44. BIN
      images/icon_paiming02.png
  45. BIN
      images/icon_paiming03.png
  46. BIN
      images/icon_paimingno.png
  47. BIN
      images/icon_qiandao.png
  48. BIN
      images/tabbar_icon_01.png
  49. BIN
      images/tabbar_icon_01_pre.png
  50. BIN
      images/tabbar_icon_02.png
  51. BIN
      images/tabbar_icon_02_pre.png
  52. BIN
      images/tabbar_icon_03.png
  53. BIN
      images/tabbar_icon_03_pre.png
  54. BIN
      images/text_saishiliebiao.png
  55. 20 17
      lib/main.dart
  56. 25 0
      lib/model/CompetitionInfo.dart
  57. 25 0
      lib/model/CompetitionInfo.g.dart
  58. 4 4
      lib/model/HouseInfo.dart
  59. 3 3
      lib/model/HouseInfo.g.dart
  60. 1 1
      lib/net/HttpManager.dart
  61. 194 0
      lib/pages/Competitions.dart
  62. 1 1
      lib/pages/CreateRoom.dart
  63. 64 0
      lib/pages/Home.dart
  64. 0 0
      lib/pages/HomePage.bak.dart
  65. 28 25
      lib/pages/UserChange.dart
  66. 1 2
      lib/pages/loginSecond.dart
  67. 0 14
      lib/pages/roomInfo.dart
  68. 1 1
      lib/pages/roomList.dart
  69. 2 2
      lib/styles/colors.dart
  70. 111 0
      lib/widget/Competition.dart
  71. 1 1
      lib/widget/RoomItem.dart
  72. 29 1
      pubspec.lock
  73. 1 0
      pubspec.yaml
  74. 3 3
      screen_stream_plugin/android/src/main/java/com/izouma/screen_stream_plugin/ImageAvailableListener.java
  75. 1 1
      screen_stream_plugin/android/src/main/java/com/izouma/screen_stream_plugin/VideoProcessService.java
  76. 1 1
      screen_stream_plugin/ios/Classes/ScreenStreamPlugin.m

+ 1 - 1
android/app/build.gradle

@@ -70,7 +70,7 @@ android {
         }
         release {
             signingConfig signingConfigs.release
-            minifyEnabled true
+            minifyEnabled false
             useProguard true
             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
         }

BIN
images/1x/icon_jifen.png


BIN
images/1x/icon_jinbi.png


BIN
images/1x/icon_paihangbang_04.png


BIN
images/2x/home_icon_vip.png


BIN
images/2x/icon_jifen.png


BIN
images/2x/icon_jinbi.png


BIN
images/2x/icon_jinru.png


BIN
images/2x/icon_paiming0000.png


BIN
images/2x/icon_paiming01.png


BIN
images/2x/icon_paiming02.png


BIN
images/2x/icon_paiming03.png


BIN
images/2x/icon_paimingno.png


BIN
images/2x/icon_qiandao.png


BIN
images/2x/tabbar_icon_01.png


BIN
images/2x/tabbar_icon_01_pre.png


BIN
images/2x/tabbar_icon_02.png


BIN
images/2x/tabbar_icon_02_pre.png


BIN
images/2x/tabbar_icon_03.png


BIN
images/2x/tabbar_icon_03_pre.png


BIN
images/2x/text_saishiliebiao.png


BIN
images/3x/home_icon_vip.png


BIN
images/3x/icon_jifen.png


BIN
images/3x/icon_jinbi.png


BIN
images/3x/icon_jinru.png


BIN
images/3x/icon_paiming0000.png


BIN
images/3x/icon_paiming01.png


BIN
images/3x/icon_paiming02.png


BIN
images/3x/icon_paiming03.png


BIN
images/3x/icon_paimingno.png


BIN
images/3x/icon_qiandao.png


BIN
images/3x/tabbar_icon_01.png


BIN
images/3x/tabbar_icon_01_pre.png


BIN
images/3x/tabbar_icon_02.png


BIN
images/3x/tabbar_icon_02_pre.png


BIN
images/3x/tabbar_icon_03.png


BIN
images/3x/tabbar_icon_03_pre.png


BIN
images/3x/text_saishiliebiao.png


BIN
images/game.png


BIN
images/home_icon_vip.png


BIN
images/icon_jinru.png


BIN
images/icon_paiming0000.png


BIN
images/icon_paiming01.png


BIN
images/icon_paiming02.png


BIN
images/icon_paiming03.png


BIN
images/icon_paimingno.png


BIN
images/icon_qiandao.png


BIN
images/tabbar_icon_01.png


BIN
images/tabbar_icon_01_pre.png


BIN
images/tabbar_icon_02.png


BIN
images/tabbar_icon_02_pre.png


BIN
images/tabbar_icon_03.png


BIN
images/tabbar_icon_03_pre.png


BIN
images/text_saishiliebiao.png


+ 20 - 17
lib/main.dart

@@ -10,9 +10,10 @@ import './Localizations.dart';
 import 'model/UserInfo.dart';
 import 'net/HttpManager.dart';
 import 'net/Result.dart';
-import 'pages/HomePage.dart';
 import 'pages/loginFirst.dart';
 import 'redux/AppState.dart';
+import 'pages/Home.dart';
+import './styles/colors.dart';
 
 class MobileCyberGamesApp extends StatelessWidget {
   const MobileCyberGamesApp(this.store);
@@ -35,21 +36,21 @@ class MobileCyberGamesApp extends StatelessWidget {
           ChineseCupertinoLocalizations.delegate,
         ],
         theme: ThemeData(
-            cardColor: Color(0xFF2B2B42),
-            backgroundColor: Color(0xFF222335),
-            primaryColor: Color(0xFFC2524D),
-            buttonColor: Color(0xFFC2524D),
-            accentColor: Color(0xFFC2524D),
-            textSelectionColor: Colors.white,
-            textTheme: TextTheme(
-              subhead: TextStyle(color: Colors.white),
-            ),
-            buttonTheme: ButtonThemeData(
-              buttonColor: Color(0xFFC2524D),
-              highlightColor: Color(0xFF9B4040),
-              splashColor: Color(0xFF9B4040),
-              shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(0))),
-            )),
+          cardColor: Color(0xFF2B2B42),
+          backgroundColor: Color(0xFF222335),
+          primaryColor: PRIMARY_COLOR,
+          buttonColor: PRIMARY_COLOR,
+          accentColor: PRIMARY_COLOR,
+          textSelectionColor: Colors.white,
+          textTheme: TextTheme(
+            subhead: TextStyle(color: Colors.white),
+          ),
+          buttonTheme: ButtonThemeData(
+            buttonColor: PRIMARY_COLOR,
+            splashColor: PRIMARY_COLOR,
+            shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(0))),
+          ),
+        ),
         home: store.state.userInfo != null ? HomePage() : LoginFirst(),
         routes: {'/home': (BuildContext context) => HomePage()},
       ),
@@ -78,7 +79,9 @@ Future<void> main() async {
   if (result.success && result.data != null) {
     UserInfo userInfo = UserInfo.fromJson(result.data);
     state.userInfo = userInfo;
-    jpush.setAlias(userInfo.id.toString()).then((map) {});
+    try {
+      // jpush.setAlias(userInfo.id.toString()).then((map) {});
+    } catch (e) {}
   }
   Store<AppState> store = Store<AppState>(appReducer, initialState: state);
   runApp(MobileCyberGamesApp(store));

+ 25 - 0
lib/model/CompetitionInfo.dart

@@ -0,0 +1,25 @@
+import 'package:json_annotation/json_annotation.dart';
+
+part 'CompetitionInfo.g.dart';
+
+@JsonSerializable()
+class CompetitionInfo {
+  CompetitionInfo.empty();
+
+  CompetitionInfo(this.competitionName, this.startTime, this.endTime, this.type, this.bonus);
+
+  factory CompetitionInfo.fromJson(Map<String, dynamic> json) => _$CompetitionInfoFromJson(json);
+
+  String competitionName;
+  int startTime;
+  int endTime;
+  int type;
+  int bonus;
+
+  Map<String, dynamic> toJson() => _$CompetitionInfoToJson(this);
+
+  @override
+  String toString() {
+    return _$CompetitionInfoToJson(this).toString();
+  }
+}

+ 25 - 0
lib/model/CompetitionInfo.g.dart

@@ -0,0 +1,25 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of 'CompetitionInfo.dart';
+
+// **************************************************************************
+// JsonSerializableGenerator
+// **************************************************************************
+
+CompetitionInfo _$CompetitionInfoFromJson(Map<String, dynamic> json) {
+  return CompetitionInfo(
+      json['competitionName'] as String,
+      json['startTime'] as int,
+      json['endTime'] as int,
+      json['type'] as int,
+      json['bonus'] as int);
+}
+
+Map<String, dynamic> _$CompetitionInfoToJson(CompetitionInfo instance) =>
+    <String, dynamic>{
+      'competitionName': instance.competitionName,
+      'startTime': instance.startTime,
+      'endTime': instance.endTime,
+      'type': instance.type,
+      'bonus': instance.bonus
+    };

+ 4 - 4
lib/model/HouseInfo.dart

@@ -39,16 +39,16 @@ class HouseInfo {
   int maxNumber; //最大加入人数
   int bonus; //奖金
   int houseType; //0为个人1为官方
+  @JsonKey(name: 'houseLevelInfo')
   HouseLevel houseLevel;
   String gameHouseId; //游戏房间号
   String gameHousePassword; //游戏密码
   int statusFlag; //状态
   String createUser; //创建人
   int beginTime; //开始时间
-  int createTime;//创建时间
-  int scoreType;//评分类型
-  factory HouseInfo.fromJson(Map<String, dynamic> json) =>
-      _$HouseInfoFromJson(json);
+  int createTime; //创建时间
+  int scoreType; //评分类型
+  factory HouseInfo.fromJson(Map<String, dynamic> json) => _$HouseInfoFromJson(json);
 
   Map<String, dynamic> toJson() => _$HouseInfoToJson(this);
   // 命名构造函数

+ 3 - 3
lib/model/HouseInfo.g.dart

@@ -22,9 +22,9 @@ HouseInfo _$HouseInfoFromJson(Map<String, dynamic> json) {
       json['maxNumber'] as int,
       json['bonus'] as int,
       json['houseType'] as int,
-      json['houseLevel'] == null
+      json['houseLevelInfo'] == null
           ? null
-          : HouseLevel.fromJson(json['houseLevel'] as Map<String, dynamic>),
+          : HouseLevel.fromJson(json['houseLevelInfo'] as Map<String, dynamic>),
       json['gameHouseId'] as String,
       json['gameHousePassword'] as String,
       json['statusFlag'] as int,
@@ -47,7 +47,7 @@ Map<String, dynamic> _$HouseInfoToJson(HouseInfo instance) => <String, dynamic>{
       'maxNumber': instance.maxNumber,
       'bonus': instance.bonus,
       'houseType': instance.houseType,
-      'houseLevel': instance.houseLevel,
+      'houseLevelInfo': instance.houseLevel,
       'gameHouseId': instance.gameHouseId,
       'gameHousePassword': instance.gameHousePassword,
       'statusFlag': instance.statusFlag,

+ 1 - 1
lib/net/HttpManager.dart

@@ -3,7 +3,7 @@ import 'Result.dart';
 import 'package:intl/intl.dart';
 
 class HttpManager {
-  // static String baseUrl = 'http://47.96.141.102:8201/';
+  // static String baseUrl = 'http://47.96.141.102:8203/';
   static String baseUrl = 'http://192.168.50.132:8080/';
   static String token;
   static bool debug;

+ 194 - 0
lib/pages/Competitions.dart

@@ -0,0 +1,194 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:redux/redux.dart';
+import 'package:flutter_redux/flutter_redux.dart';
+import '../redux/AppState.dart';
+import '../model/UserInfo.dart';
+import 'package:cached_network_image/cached_network_image.dart';
+import '../net/Result.dart';
+import '../net/HttpManager.dart';
+import '../model/CompetitionInfo.dart';
+import '../widget/Competition.dart';
+
+class Competitions extends StatefulWidget {
+  @override
+  State<StatefulWidget> createState() => _CompetitionState();
+}
+
+class _CompetitionState extends State<Competitions> {
+  List<CompetitionInfo> competitionInfoList = [];
+
+  @override
+  void initState() {
+    super.initState();
+    Future.delayed(Duration.zero, () {
+      _getCompetitions();
+    });
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    return StoreConnector<AppState, UserInfo>(
+        converter: (Store store) => store.state.userInfo,
+        builder: (context, userInfo) => Material(
+              child: CupertinoPageScaffold(
+                backgroundColor: Color(0xFF0E1D32),
+                child: SizedBox(
+                  width: double.infinity,
+                  child: Column(
+                    children: <Widget>[
+                      Container(
+                        color: Color(0xff293354),
+                        child: SafeArea(
+                          child: SizedBox(
+                            width: double.infinity,
+                            height: 60,
+                            child: Container(
+                              child: Row(
+                                mainAxisAlignment: MainAxisAlignment.center,
+                                children: <Widget>[
+                                  Container(
+                                    child: ClipOval(
+                                      child: Builder(
+                                        builder: (context) {
+                                          return Material(
+                                            child: InkWell(
+                                              child: CachedNetworkImage(
+                                                imageUrl: userInfo.icon,
+                                                width: 42,
+                                                height: 42,
+                                              ),
+                                              onTap: () {
+                                                Scaffold.of(context).openDrawer();
+                                              },
+                                            ),
+                                          );
+                                        },
+                                      ),
+                                    ),
+                                    margin: EdgeInsets.only(left: 15),
+                                  ),
+                                  Expanded(
+                                    child: Container(
+                                      height: 42,
+                                      margin: EdgeInsets.only(left: 8),
+                                      child: Column(
+                                        crossAxisAlignment: CrossAxisAlignment.start,
+                                        children: <Widget>[
+                                          Text(
+                                            userInfo.username,
+                                            style: TextStyle(
+                                              fontSize: 16,
+                                              color: Colors.white,
+                                              fontWeight: FontWeight.bold,
+                                            ),
+                                          ),
+                                          Row(
+                                            children: <Widget>[
+                                              Text(
+                                                '最强王者',
+                                                style: TextStyle(
+                                                  color: Color(0xFFFC9A3B),
+                                                  fontSize: 13,
+                                                  fontWeight: FontWeight.bold,
+                                                ),
+                                              )
+                                            ],
+                                          )
+                                        ],
+                                      ),
+                                    ),
+                                  ),
+                                  Container(
+                                    margin: EdgeInsets.fromLTRB(10, 0, 15, 0),
+                                    child: InkWell(
+                                      child: Container(
+                                        width: 62,
+                                        height: 32,
+                                        color: Color(0xFFE56B45),
+                                        child: Row(
+                                          children: <Widget>[
+                                            Container(
+                                              margin: EdgeInsets.only(left: 6),
+                                              child: Image.asset(
+                                                'images/icon_qiandao.png',
+                                                width: 20,
+                                                height: 20,
+                                              ),
+                                            ),
+                                            Container(
+                                              margin: EdgeInsets.only(left: 2),
+                                              child: Text(
+                                                '签到',
+                                                style: TextStyle(
+                                                  fontSize: 14,
+                                                  color: Colors.white,
+                                                ),
+                                              ),
+                                            )
+                                          ],
+                                        ),
+                                      ),
+                                      onTap: () {},
+                                    ),
+                                  ),
+                                ],
+                              ),
+                            ),
+                          ),
+                        ),
+                      ),
+                      Expanded(
+                        child: RefreshIndicator(
+                          child: Container(
+                            width: double.infinity,
+                            child: SingleChildScrollView(
+                              physics: AlwaysScrollableScrollPhysics(),
+                              padding: EdgeInsets.only(bottom: 7),
+                              child: Flex(
+                                direction: Axis.vertical,
+                                crossAxisAlignment: CrossAxisAlignment.stretch,
+                                children: buidChildren(),
+                              ),
+                            ),
+                          ),
+                          onRefresh: () {
+                            return _getCompetitions();
+                          },
+                        ),
+                      )
+                    ],
+                  ),
+                ),
+              ),
+            ));
+  }
+
+  List<Widget> buidChildren() {
+    List<Widget> list = [];
+    list.add(Padding(
+      padding: EdgeInsets.fromLTRB(15, 10, 15, 7),
+      child: Image.asset(
+        'images/text_saishiliebiao.png',
+        fit: BoxFit.contain,
+      ),
+    ));
+    competitionInfoList.forEach((competitionInfo) {
+      list.add(Competition(competitionInfo));
+    });
+    return list;
+  }
+
+  Future<void> _getCompetitions() async {
+    Result res = await HttpManager.get('competition/all', data: {'status': 1});
+    if (res.success) {
+      List<CompetitionInfo> list = [];
+      for (var item in res.data) {
+        list.add(CompetitionInfo.fromJson(item));
+      }
+      setState(() {
+        competitionInfoList = list;
+      });
+    }
+  }
+}

+ 1 - 1
lib/pages/CreateRoom.dart

@@ -91,4 +91,4 @@ class _CreateRoomBtn extends StatelessWidget {
       ),
     );
   }
-}
+} 

+ 64 - 0
lib/pages/Home.dart

@@ -0,0 +1,64 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/cupertino.dart';
+import './Competitions.dart';
+import '../widget/HomeDrawer.dart';
+
+class HomePage extends StatefulWidget {
+  const HomePage({Key key}) : super(key: key);
+  @override
+  _HomePageState createState() => _HomePageState();
+}
+
+class _HomePageState extends State<HomePage> with SingleTickerProviderStateMixin {
+  final List<Tab> myTabs = <Tab>[
+    Tab(text: 'LEFT'),
+    Tab(text: 'RIGHT'),
+  ];
+
+  TabController _tabController;
+
+  @override
+  void initState() {
+    super.initState();
+    _tabController = TabController(vsync: this, length: myTabs.length);
+  }
+
+  @override
+  void dispose() {
+    _tabController.dispose();
+    super.dispose();
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      drawer: HomeDrawer(),
+      body: CupertinoTabScaffold(
+        tabBar: CupertinoTabBar(
+          items: <BottomNavigationBarItem>[
+            BottomNavigationBarItem(
+              icon: Image.asset('images/tabbar_icon_01.png'),
+              activeIcon: Image.asset('images/tabbar_icon_01_pre.png'),
+              title: Text('赛事'),
+            ),
+            BottomNavigationBarItem(
+              icon: Image.asset('images/tabbar_icon_02.png'),
+              activeIcon: Image.asset('images/tabbar_icon_02_pre.png'),
+              title: Text('邮件'),
+            ),
+            BottomNavigationBarItem(
+              icon: Image.asset('images/tabbar_icon_03.png'),
+              activeIcon: Image.asset('images/tabbar_icon_03_pre.png'),
+              title: Text('商城'),
+            )
+          ],
+          backgroundColor: Color(0xff424767),
+          activeColor: Color(0xff1990F8),
+        ),
+        tabBuilder: (BuildContext context, int index) {
+          return Competitions();
+        },
+      ),
+    );
+  }
+}

+ 0 - 0
lib/pages/HomePage.dart → lib/pages/HomePage.bak.dart


+ 28 - 25
lib/pages/UserChange.dart

@@ -4,7 +4,10 @@ import 'package:flutter/cupertino.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:dio/dio.dart';
 import 'package:intl/intl.dart';
+import 'package:jpush_flutter/jpush_flutter.dart';
 import 'package:package_info/package_info.dart';
+import 'package:shared_preferences/shared_preferences.dart';
+import './loginFirst.dart';
 import '../styles/colors.dart';
 import 'dart:io';
 import 'dart:async';
@@ -117,31 +120,31 @@ class UserChangeState extends State<UserChange> {
                         ),
                       ),
                     ),
-                    // Positioned(
-                    //   bottom: 10,
-                    //   right: 15,
-                    //   left: 15,
-                    //   height: 48,
-                    //   child: FlatButton(
-                    //       textColor: Colors.white,
-                    //       color: PRIMARY_COLOR,
-                    //       highlightColor: Color(0xFF763434),
-                    //       child: Text(
-                    //         '退出登录',
-                    //         style: TextStyle(fontSize: 16, fontWeight: FontWeight.w700),
-                    //       ),
-                    //       onPressed: () async {
-                    //         Toast.show(context, '退出成功', 1500, 'success');
-                    //         Navigator.push(context, MaterialPageRoute(builder: (context) => LoginFirst()));
-                    //         final prefs = await SharedPreferences.getInstance();
-                    //         prefs.remove('token');
-                    //         JPush jpush = JPush();
-                    //         jpush.deleteAlias();
-                    //         // Future.delayed(const Duration(seconds: 1), () {
-                    //         //   StoreProvider.of<AppState>(context).dispatch(UpdateUserAction(null));
-                    //         // });
-                    //       }),
-                    // )
+                    Positioned(
+                      bottom: 10,
+                      right: 15,
+                      left: 15,
+                      height: 48,
+                      child: FlatButton(
+                          textColor: Colors.white,
+                          color: PRIMARY_COLOR,
+                          highlightColor: Color(0xFF763434),
+                          child: Text(
+                            '退出登录',
+                            style: TextStyle(fontSize: 16, fontWeight: FontWeight.w700),
+                          ),
+                          onPressed: () async {
+                            Toast.show(context, '退出成功', 1500, 'success');
+                            Navigator.push(context, MaterialPageRoute(builder: (context) => LoginFirst()));
+                            final prefs = await SharedPreferences.getInstance();
+                            prefs.remove('token');
+                            JPush jpush = JPush();
+                            jpush.deleteAlias();
+                            // Future.delayed(const Duration(seconds: 1), () {
+                            //   StoreProvider.of<AppState>(context).dispatch(UpdateUserAction(null));
+                            // });
+                          }),
+                    )
                   ],
                 ),
               ),

+ 1 - 2
lib/pages/loginSecond.dart

@@ -2,7 +2,6 @@ import 'dart:async';
 import 'package:flutter/material.dart';
 import 'package:shared_preferences/shared_preferences.dart';
 import 'package:flutter/cupertino.dart';
-import 'package:ttdj_plugin/ttdj_plugin.dart';
 import '../styles/colors.dart';
 import 'dart:ui';
 import '../styles/totast.dart';
@@ -10,7 +9,7 @@ import '../widget/ITextInput.dart';
 import 'package:flutter_redux/flutter_redux.dart';
 import '../net/HttpManager.dart';
 import '../net/Result.dart';
-import 'HomePage.dart';
+import 'Home.dart';
 import '../redux/AppState.dart';
 import '../redux/UserRedux.dart';
 import '../model/UserInfo.dart';

+ 0 - 14
lib/pages/roomInfo.dart

@@ -641,20 +641,6 @@ class RoomInfoState extends State<RoomInfo>
             child: Row(
               mainAxisAlignment: MainAxisAlignment.center,
               children: <Widget>[
-                Image.asset(
-                  'images/icon_jinbi_da_bai.png',
-                  width: 20,
-                ),
-                Container(
-                  margin: EdgeInsets.only(left: 6),
-                  child: Text(
-                    '×' + joinMoney.toString(),
-                    style: TextStyle(
-                        color: Colors.white,
-                        fontSize: 16,
-                        fontWeight: FontWeight.w500),
-                  ),
-                ),
                 Container(
                     margin: EdgeInsets.only(left: 20),
                     child: Text(

+ 1 - 1
lib/pages/roomList.dart

@@ -397,7 +397,7 @@ class RoomListState extends State<RoomList> {
       data['advancedQuery'] += 'AND_,houseType_,=_,' + houseType + '_;';
     }
     if (statusFlag != '') {
-      data['advancedQuery'] += 'AND_,statusFlag_,=_,' + statusFlag + '_;';
+      data['advancedQuery'] += 'AND_,status_flag_,=_,' + statusFlag + '_;';
     } else {
       data['statusStr'] = '0,4';
     }

+ 2 - 2
lib/styles/colors.dart

@@ -1,10 +1,10 @@
 import 'package:flutter/material.dart';
 
 //主颜色
-const PRIMARY_COLOR = Color(0xFFC2524D);
+const PRIMARY_COLOR = Color(0xFF1990F8);
 
 //辅助色
-const SUB_COLOR = Color(0xFFA6554F);
+const SUB_COLOR = Color(0xFF1C62A7);
 
 //背景色
 const BG_COLOR = Color(0xFF2B2B42);

+ 111 - 0
lib/widget/Competition.dart

@@ -0,0 +1,111 @@
+import 'package:flutter/material.dart';
+import 'package:flutter/cupertino.dart';
+import '../model/CompetitionInfo.dart';
+import 'package:intl/intl.dart';
+import '../pages/RoomList.dart';
+
+class Competition extends StatelessWidget {
+  final CompetitionInfo competitionInfo;
+  Competition(this.competitionInfo);
+  final Shader linearGradient = LinearGradient(
+    begin: Alignment.topCenter,
+    end: Alignment.bottomCenter,
+    colors: <Color>[Color(0xFFFFC84B), Color(0xFFA26A23)],
+  ).createShader(Rect.fromLTWH(0.0, 0.0, 200, 70));
+  @override
+  Widget build(BuildContext context) {
+    return GestureDetector(
+      child: Container(
+        color: Color(0xFF293354),
+        height: 80,
+        margin: EdgeInsets.fromLTRB(15, 7, 15, 7),
+        child: Stack(
+          overflow: Overflow.visible,
+          children: <Widget>[
+            Center(
+              child: Row(
+                children: <Widget>[
+                  Container(
+                    margin: EdgeInsets.only(left: 8),
+                    child: Image.asset(
+                      'images/game.png',
+                      width: 64,
+                      height: 64,
+                    ),
+                  ),
+                  Expanded(
+                    child: Container(
+                      margin: EdgeInsets.only(left: 10),
+                      height: 64,
+                      child: Column(
+                        crossAxisAlignment: CrossAxisAlignment.start,
+                        children: <Widget>[
+                          Text(
+                            competitionInfo.competitionName,
+                            style: TextStyle(fontSize: 14, color: Colors.white),
+                          ),
+                          Expanded(
+                            child: Text(
+                              '¥' + competitionInfo.bonus.toString(),
+                              style: TextStyle(
+                                fontSize: 20,
+                                foreground: Paint()..shader = linearGradient,
+                              ),
+                            ),
+                          ),
+                          Text(
+                            '比赛时间' +
+                                DateFormat('yyyy.MM.dd').format(new DateTime.fromMicrosecondsSinceEpoch(competitionInfo.startTime * 1000)) +
+                                '-' +
+                                DateFormat('yyyy.MM.dd').format(new DateTime.fromMicrosecondsSinceEpoch(competitionInfo.endTime * 1000)),
+                            style: TextStyle(
+                              color: Color(0xFF9A9CA2),
+                              fontSize: 11,
+                            ),
+                          )
+                        ],
+                      ),
+                    ),
+                  )
+                ],
+              ),
+            ),
+            Positioned(
+              right: 0,
+              top: 0,
+              bottom: 0,
+              child: Image.asset('images/icon_jinru.png'),
+            ),
+            Positioned(
+              right: 0,
+              top: 0,
+              bottom: 0,
+              child: Container(
+                width: 50,
+                height: 80,
+                child: Center(
+                  child: Text(
+                    '进入',
+                    style: TextStyle(fontSize: 15, color: Colors.white),
+                  ),
+                ),
+              ),
+            ),
+            Positioned(
+                right: 60,
+                top: -2,
+                width: 52,
+                height: 35,
+                child: Container(
+                  transform: Matrix4.translationValues(0.0, -2.0, 0.0),
+                  child: Image.asset('images/icon_paiming01.png'),
+                ))
+          ],
+        ),
+      ),
+      onTap: () {
+        Navigator.push(context, CupertinoPageRoute(builder: (context) => RoomList()));
+      },
+    );
+  }
+}

+ 1 - 1
lib/widget/RoomItem.dart

@@ -9,7 +9,7 @@ class HouseItem extends StatelessWidget {
   HouseItem({Key key, this.roomInfo, this.gameInfo}) : super(key: key);
   final HouseInfo roomInfo;
   final GameInfo gameInfo;
-  @override
+
   @override
   Widget build(BuildContext context) {
     // if(roomInfo==null){

+ 29 - 1
pubspec.lock

@@ -85,6 +85,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "6.5.0"
+  cached_network_image:
+    dependency: "direct main"
+    description:
+      name: cached_network_image
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.8.0"
   charcode:
     dependency: transitive
     description:
@@ -174,6 +181,13 @@ packages:
     description: flutter
     source: sdk
     version: "0.0.0"
+  flutter_cache_manager:
+    dependency: transitive
+    description:
+      name: flutter_cache_manager
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "0.3.2"
   flutter_localizations:
     dependency: "direct main"
     description: flutter
@@ -511,6 +525,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "1.5.4"
+  sqflite:
+    dependency: transitive
+    description:
+      name: sqflite
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "1.1.5"
   stack_trace:
     dependency: transitive
     description:
@@ -595,6 +616,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "5.0.2"
+  uuid:
+    dependency: transitive
+    description:
+      name: uuid
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.1"
   vector_math:
     dependency: transitive
     description:
@@ -632,4 +660,4 @@ packages:
     version: "2.1.15"
 sdks:
   dart: ">=2.1.1 <3.0.0"
-  flutter: ">=0.5.6 <2.0.0"
+  flutter: ">=1.2.1 <2.0.0"

+ 1 - 0
pubspec.yaml

@@ -36,6 +36,7 @@ dependencies:
     path: ./screen_stream_plugin
   ttdj_plugin:
     path: ./ttdj_plugin
+  cached_network_image: ^0.8.0
 
 dev_dependencies:
   build_runner: ^1.1.1

+ 3 - 3
screen_stream_plugin/android/src/main/java/com/izouma/screen_stream_plugin/ImageAvailableListener.java

@@ -33,11 +33,11 @@ public class ImageAvailableListener implements ImageReader.OnImageAvailableListe
         frameConverter = new AndroidFrameConverter();
         File recordFile = new File(context.getExternalFilesDir("record"), "record" + System.currentTimeMillis() + ".mp4");
         videoPath = recordFile.getAbsolutePath();
-        frameRecorder = new FFmpegFrameRecorder(recordFile, 1920, 1080, 1);
+        frameRecorder = new FFmpegFrameRecorder(recordFile, 1280, 720, 1);
         frameRecorder.setVideoBitrate(3 * 1024 * 1024);
         frameRecorder.setFrameRate(24);
         frameRecorder.setVideoOption("preset", "ultrafast");
-        frameRecorder.setVideoOption("crf", "30");
+        frameRecorder.setVideoOption("crf", "28");
         frameRecorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
         frameRecorder.setFormat("mp4");
         try {
@@ -74,7 +74,7 @@ public class ImageAvailableListener implements ImageReader.OnImageAvailableListe
 
                 Bitmap bitmap = Bitmap.createBitmap(1280, 720, Bitmap.Config.ARGB_8888);
                 bitmap.copyPixelsFromBuffer(buffer);
-                if (frameCount % 5 != 0) {
+                if (frameCount % 5 == 0) {
                     bitmap.recycle();
                     return;
                 }

+ 1 - 1
screen_stream_plugin/android/src/main/java/com/izouma/screen_stream_plugin/VideoProcessService.java

@@ -100,7 +100,7 @@ public class VideoProcessService extends Service implements ImageAvailableListen
                             e.printStackTrace();
                         }
                         try {
-                            String uploadId = new MultipartUploadRequest(VideoProcessService.this, "http://47.96.141.102:8201/playerInfo/uploadVideo")
+                            String uploadId = new MultipartUploadRequest(VideoProcessService.this, "http://47.96.141.102:8203/playerInfo/uploadVideo")
                                     .addFileToUpload(imageAvailableListener.getVideoPath(), "video")
                                     // .addFileToUpload("/storage/emulated/0/Android/data/com.izouma.mobilecybergames/files/record/record1553655902913.flv", "video")
                                     .addParameter("id", String.valueOf(playerInfoId))

+ 1 - 1
screen_stream_plugin/ios/Classes/ScreenStreamPlugin.m

@@ -37,7 +37,7 @@
 - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result {
     if ([@"start" isEqualToString:call.method]) {
         NSString *playerInfoId = call.arguments[@"playerInfoId"];
-        NSString *rtmpUrl = [NSString stringWithFormat:@"rtmp://47.96.141.102:1935/myapp/%@?playerInfoId=%@", playerInfoId, playerInfoId];
+        NSString *rtmpUrl = [NSString stringWithFormat:@"rtmp://47.96.141.102:1935/weidianjing/%@?playerInfoId=%@", playerInfoId, playerInfoId];
         NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.izouma.wnnaBattle"];
         [userDefaults setValue:rtmpUrl forKey:@"rtmpUrl"];
         [userDefaults synchronize];