|
|
@@ -27,9 +27,14 @@ class OpenRoom extends StatefulWidget {
|
|
|
|
|
|
class OpenRoomState extends State<OpenRoom> {
|
|
|
TextStyle titleStyle = TextStyle(color: Colors.white, fontSize: 14);
|
|
|
- TextStyle valStyle = TextStyle(color: Colors.white, fontSize: 15, fontWeight: FontWeight.w500);
|
|
|
+ TextStyle valStyle =
|
|
|
+ TextStyle(color: Colors.white, fontSize: 15, fontWeight: FontWeight.w500);
|
|
|
|
|
|
- Map<String, dynamic> editRoomInfo = {"gameId": 1, "houseLevel": 1, "maxNumber": 10};
|
|
|
+ Map<String, dynamic> editRoomInfo = {
|
|
|
+ "gameId": 1,
|
|
|
+ "houseLevel": 1,
|
|
|
+ "maxNumber": 10
|
|
|
+ };
|
|
|
List<GameInfo> gameList = [];
|
|
|
List<HouseLevel> levelList = [];
|
|
|
|
|
|
@@ -61,14 +66,33 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
Toast.show(context, '请选择房间等级', 1500, 'info');
|
|
|
return;
|
|
|
}
|
|
|
- if (editRoomInfo['houseType'] == '1' && (editRoomInfo['gameHouseId'] == null || editRoomInfo['gameHouseId'] == '')) {
|
|
|
+ if (editRoomInfo['houseType'] == '1' &&
|
|
|
+ (editRoomInfo['gameHouseId'] == null ||
|
|
|
+ editRoomInfo['gameHouseId'] == '')) {
|
|
|
Toast.show(context, '请录入游戏房间号', 1500, 'info');
|
|
|
return;
|
|
|
}
|
|
|
- if (editRoomInfo['houseType'] == '1' && (editRoomInfo['gameHousePassword'] == null || editRoomInfo['gameHousePassword'] == '')) {
|
|
|
+ if (editRoomInfo['houseType'] == '1' &&
|
|
|
+ (editRoomInfo['gameHousePassword'] == null ||
|
|
|
+ editRoomInfo['gameHousePassword'] == '')) {
|
|
|
Toast.show(context, '请录入游戏房间密码', 1500, 'info');
|
|
|
return;
|
|
|
}
|
|
|
+ if (StoreProvider.of<AppState>(context).state.userInfo.moneyCoin != null) {
|
|
|
+ HouseLevel chooseLevelInfo = HouseLevel.empty();
|
|
|
+ for (var item in levelList) {
|
|
|
+ if (item.id.toString() == editRoomInfo['houseLevel'].toString()) {
|
|
|
+ chooseLevelInfo = item;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StoreProvider.of<AppState>(context).state.userInfo.moneyCoin <
|
|
|
+ chooseLevelInfo.entryCoin) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
bool hasPermission = await ScreenStreamPlugin.checkPermission();
|
|
|
if (!hasPermission) {
|
|
|
showDialog(
|
|
|
@@ -90,15 +114,23 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
);
|
|
|
return;
|
|
|
}
|
|
|
- editRoomInfo['createUser'] = StoreProvider.of<AppState>(context).state.userInfo.id;
|
|
|
+ editRoomInfo['createUser'] =
|
|
|
+ StoreProvider.of<AppState>(context).state.userInfo.id;
|
|
|
Toast.show(context, '加载中', -1, 'loading');
|
|
|
Result res = await HttpManager.post("houseInfo/save", data: editRoomInfo);
|
|
|
Toast.hide();
|
|
|
if (res.success) {
|
|
|
- HttpManager.post("houseInfo/join", data: {"houseId": res.data, "userId": StoreProvider.of<AppState>(context).state.userInfo.id});
|
|
|
+ HttpManager.post("houseInfo/join", data: {
|
|
|
+ "houseId": res.data,
|
|
|
+ "userId": StoreProvider.of<AppState>(context).state.userInfo.id
|
|
|
+ });
|
|
|
Toast.show(context, '创建成功', 1500, 'success');
|
|
|
Future.delayed(Duration(milliseconds: 1500), () {
|
|
|
- Navigator.pushReplacement(context, new CupertinoPageRoute(builder: (context) => new RoomInfo(roomId: res.data.toString())));
|
|
|
+ Navigator.pushReplacement(
|
|
|
+ context,
|
|
|
+ new CupertinoPageRoute(
|
|
|
+ builder: (context) =>
|
|
|
+ new RoomInfo(roomId: res.data.toString())));
|
|
|
});
|
|
|
} else {}
|
|
|
}
|
|
|
@@ -115,7 +147,11 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
gameList = _list;
|
|
|
if (res.data.length > 0) {
|
|
|
editRoomInfo['gameId'] = res.data[0]['id'];
|
|
|
- editRoomInfo['houseName'] = StoreProvider.of<AppState>(context).state.userInfo.nickname + '的' + res.data[0]['shortName'] + '房间';
|
|
|
+ editRoomInfo['houseName'] =
|
|
|
+ StoreProvider.of<AppState>(context).state.userInfo.nickname +
|
|
|
+ '的' +
|
|
|
+ res.data[0]['shortName'] +
|
|
|
+ '房间';
|
|
|
editRoomInfo['houseAbstract'] = res.data[0]['profile'] ?? '';
|
|
|
}
|
|
|
});
|
|
|
@@ -176,7 +212,8 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
child: FlatButton(
|
|
|
highlightColor: PRIMARY_COLOR,
|
|
|
padding: EdgeInsets.only(right: 0),
|
|
|
- child: Text('规则', style: TextStyle(color: Colors.white, fontSize: 13)),
|
|
|
+ child: Text('规则',
|
|
|
+ style: TextStyle(color: Colors.white, fontSize: 13)),
|
|
|
onPressed: () {},
|
|
|
),
|
|
|
)
|
|
|
@@ -237,8 +274,11 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(top: 12),
|
|
|
child: Text(
|
|
|
- editRoomInfo.containsKey('video') ? '已选择' : '不上传则自动使用官方默认视频',
|
|
|
- style: TextStyle(color: Color(0xFF9BA0AE), fontSize: 13),
|
|
|
+ editRoomInfo.containsKey('video')
|
|
|
+ ? '已选择'
|
|
|
+ : '不上传则自动使用官方默认视频',
|
|
|
+ style: TextStyle(
|
|
|
+ color: Color(0xFF9BA0AE), fontSize: 13),
|
|
|
),
|
|
|
)
|
|
|
],
|
|
|
@@ -348,17 +388,24 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
children: <Widget>[
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(right: 6),
|
|
|
- child: Image.asset('images/icon_jinbi_da_bai.png', width: 20),
|
|
|
+ child: Image.asset('images/icon_jinbi_da_bai.png',
|
|
|
+ width: 20),
|
|
|
),
|
|
|
Text(
|
|
|
'×' + (chooseLevelInfo.entryCoin ?? 0).toString(),
|
|
|
- style: TextStyle(color: Colors.white, fontSize: 16, fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.white,
|
|
|
+ fontSize: 16,
|
|
|
+ fontWeight: FontWeight.w500),
|
|
|
),
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(left: 20),
|
|
|
child: Text(
|
|
|
'创建房间',
|
|
|
- style: TextStyle(color: Colors.white, fontSize: 16, fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.white,
|
|
|
+ fontSize: 16,
|
|
|
+ fontWeight: FontWeight.w500),
|
|
|
),
|
|
|
)
|
|
|
],
|
|
|
@@ -455,14 +502,19 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
new Picker(
|
|
|
confirmText: '确定',
|
|
|
cancelText: "取消",
|
|
|
- adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
+ adapter: PickerDataAdapter<String>(
|
|
|
+ pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
changeToFirst: true,
|
|
|
textAlign: TextAlign.left,
|
|
|
columnPadding: const EdgeInsets.all(8.0),
|
|
|
onConfirm: (Picker picker, List value) {
|
|
|
setState(() {
|
|
|
editRoomInfo['gameId'] = gameList[value[0]].id;
|
|
|
- editRoomInfo['houseName'] = StoreProvider.of<AppState>(context).state.userInfo.nickname + '的' + gameList[value[0]].shortName + '房间';
|
|
|
+ editRoomInfo['houseName'] =
|
|
|
+ StoreProvider.of<AppState>(context).state.userInfo.nickname +
|
|
|
+ '的' +
|
|
|
+ gameList[value[0]].shortName +
|
|
|
+ '房间';
|
|
|
editRoomInfo['houseAbstract'] = gameList[value[0]].profile ?? '';
|
|
|
});
|
|
|
}).showModal(this.context);
|
|
|
@@ -478,7 +530,8 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
new Picker(
|
|
|
confirmText: '确定',
|
|
|
cancelText: "取消",
|
|
|
- adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
+ adapter: PickerDataAdapter<String>(
|
|
|
+ pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
changeToFirst: true,
|
|
|
textAlign: TextAlign.left,
|
|
|
columnPadding: const EdgeInsets.all(8.0),
|
|
|
@@ -498,7 +551,8 @@ class OpenRoomState extends State<OpenRoom> {
|
|
|
new Picker(
|
|
|
confirmText: '确定',
|
|
|
cancelText: "取消",
|
|
|
- adapter: PickerDataAdapter<String>(pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
+ adapter: PickerDataAdapter<String>(
|
|
|
+ pickerdata: new JsonDecoder().convert(PickerData)),
|
|
|
changeToFirst: true,
|
|
|
textAlign: TextAlign.left,
|
|
|
columnPadding: const EdgeInsets.all(8.0),
|
|
|
@@ -514,7 +568,14 @@ typedef int OnTapHomeMenu();
|
|
|
typedef ValueChanged<T> = void Function(T value);
|
|
|
|
|
|
class ChooseContent extends StatelessWidget {
|
|
|
- ChooseContent({Key key, this.title, this.val, this.chooseLevelInfo, this.isLevel = false, this.onTapHomeMenu}) : super(key: key);
|
|
|
+ ChooseContent(
|
|
|
+ {Key key,
|
|
|
+ this.title,
|
|
|
+ this.val,
|
|
|
+ this.chooseLevelInfo,
|
|
|
+ this.isLevel = false,
|
|
|
+ this.onTapHomeMenu})
|
|
|
+ : super(key: key);
|
|
|
final String title;
|
|
|
final String val;
|
|
|
final OnTapHomeMenu onTapHomeMenu;
|
|
|
@@ -549,15 +610,24 @@ class ChooseContent extends StatelessWidget {
|
|
|
),
|
|
|
Padding(
|
|
|
padding: EdgeInsets.only(left: 20, right: 2),
|
|
|
- child: Image.asset('images/icon_jinbi_da_bai.png', width: 20),
|
|
|
+ child: Image.asset('images/icon_jinbi_da_bai.png',
|
|
|
+ width: 20),
|
|
|
),
|
|
|
Text(
|
|
|
'×' + (chooseLevelInfo.entryCoin ?? 0).toString(),
|
|
|
- style: TextStyle(color: Colors.white, fontSize: 15, fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(
|
|
|
+ color: Colors.white,
|
|
|
+ fontSize: 15,
|
|
|
+ fontWeight: FontWeight.w500),
|
|
|
)
|
|
|
],
|
|
|
)
|
|
|
- : Text(val ?? '', style: TextStyle(fontSize: 15, color: Colors.white, fontWeight: FontWeight.w500), textAlign: TextAlign.right),
|
|
|
+ : Text(val ?? '',
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 15,
|
|
|
+ color: Colors.white,
|
|
|
+ fontWeight: FontWeight.w500),
|
|
|
+ textAlign: TextAlign.right),
|
|
|
),
|
|
|
Image.asset('images/icon_inter.png', width: 24)
|
|
|
],
|
|
|
@@ -569,7 +639,8 @@ class ChooseContent extends StatelessWidget {
|
|
|
}
|
|
|
|
|
|
class InputContent extends StatefulWidget {
|
|
|
- InputContent({Key key, this.title, this.value, this.onTextChange}) : super(key: key);
|
|
|
+ InputContent({Key key, this.title, this.value, this.onTextChange})
|
|
|
+ : super(key: key);
|
|
|
final String title;
|
|
|
final String value;
|
|
|
final ValueChanged onTextChange;
|
|
|
@@ -602,14 +673,16 @@ class InputContentState extends State<InputContent> {
|
|
|
child: TextField(
|
|
|
controller: _controller,
|
|
|
textAlign: TextAlign.end,
|
|
|
- style: TextStyle(fontSize: 15, color: Colors.white, fontWeight: FontWeight.w500),
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: 15, color: Colors.white, fontWeight: FontWeight.w500),
|
|
|
maxLength: 10,
|
|
|
decoration: InputDecoration(
|
|
|
hintText: "请输入" + widget.title,
|
|
|
hintStyle: TextStyle(color: Color(0xFF727785), fontSize: 13),
|
|
|
prefixIcon: Padding(
|
|
|
padding: EdgeInsets.symmetric(vertical: 12),
|
|
|
- child: Text(widget.title, style: TextStyle(fontSize: 14, color: Colors.white)),
|
|
|
+ child: Text(widget.title,
|
|
|
+ style: TextStyle(fontSize: 14, color: Colors.white)),
|
|
|
),
|
|
|
border: InputBorder.none,
|
|
|
counterStyle: TextStyle(fontSize: 0)),
|