import 'dart:ui' as ui; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:aslan/app_localizations.dart'; import 'package:aslan/chatvibe_domain/models/res/login_res.dart'; import 'package:aslan/chatvibe_ui/widgets/room/room_msg_item.dart'; import 'package:aslan/chatvibe_ui/widgets/room/at_room_user_info_card.dart'; import 'package:provider/provider.dart'; import 'package:aslan/chatvibe_core/constants/at_room_msg_type.dart'; import 'package:aslan/chatvibe_core/constants/at_screen.dart'; import 'package:aslan/chatvibe_core/utilities/at_lk_dialog_util.dart'; import 'package:aslan/chatvibe_data/sources/local/user_manager.dart'; import 'package:aslan/chatvibe_domain/models/res/mic_res.dart'; import 'package:aslan/chatvibe_managers/rtc_manager.dart'; import 'package:aslan/chatvibe_managers/rtm_manager.dart'; import '../../../chatvibe_data/models/enum/at_room_roles_type.dart'; class EmptyMaiSelect extends StatelessWidget { final num index; final ChatVibeUserProfile? clickUser; const EmptyMaiSelect({Key? key, required this.index, this.clickUser}) : super(key: key); @override Widget build(BuildContext context) { RtcProvider provider = Provider.of(context, listen: false); List list = []; list.add(SizedBox(height: 10.w)); if (index == -1) { if (provider.isFz() || provider.isGL()) { if (clickUser?.id != AccountStorage().getCurrentUser()?.userProfile?.id) { list.add( _item( ATAppLocalizations.of(context)!.inviteToTheMicrophone, "atu_images/room/at_icon_mic_go_up.png", context, () { Navigator.of(context).pop(); Provider.of(context, listen: false).sendMsg( Msg( groupId: provider .currenRoom ?.roomProfile ?.roomProfile ?.roomAccount ?? "", msg: AccountStorage() .getCurrentUser() ?.userProfile ?.userNickname, role: AccountStorage().getCurrentUser()?.userProfile?.id, type: ATRoomMsgType.bsm, toUser: clickUser, ), addLocal: false, ); }, ), ); } } } else { MicRes? userWheat = provider.roomWheatMap[index]; if (userWheat?.user?.id == AccountStorage().getCurrentUser()?.userProfile?.id) { if (provider.isFz()) { ///点击的是自己 if (userWheat?.micMute ?? false) { list.add( _item( ATAppLocalizations.of(context)!.openTheMic, "atu_images/room/at_icon_mic_open.png", context, () { Navigator.of(context).pop(); provider.jieJinMai(index); }, ), ); } else { list.add( _item( ATAppLocalizations.of(context)!.muteTheMic, "atu_images/room/at_icon_mic_mute.png", context, () { Navigator.of(context).pop(); provider.jinMai(index); }, ), ); } } list.add( _item( ATAppLocalizations.of(context)!.leavelTheMic, "atu_images/room/at_icon_mic_leavel.png", context, () { Navigator.of(context).pop(); provider.xiaMai(index); }, ), ); } else { if (provider.isFz() || provider.isGL()) { ///操作的人是房主,并且座位没人 if (clickUser == null) { if (!(userWheat?.micLock ?? false)) { list.add( _item( ATAppLocalizations.of(context)!.takeTheMic, "atu_images/room/at_icon_mic_go_up.png", context, () { Navigator.of(context).pop(); provider.shangMai(index); }, ), ); } if ((userWheat?.micLock ?? false)) { list.add( _item( ATAppLocalizations.of(context)!.unlockTheMic, "atu_images/room/at_icon_mic_unlock.png", context, () { Navigator.of(context).pop(); provider.jieFeng(index); }, ), ); } else { list.add( _item( ATAppLocalizations.of(context)!.lockTheMic, "atu_images/room/at_icon_mic_lock.png", context, () { Navigator.of(context).pop(); provider.fengMai(index); }, ), ); } } if (clickUser?.roles == ATRoomRolesType.HOMEOWNER.name || clickUser?.roles == ATRoomRolesType.ADMIN.name) { if (provider.isFz()) { if (userWheat?.micMute ?? false) { list.add( _item( ATAppLocalizations.of(context)!.openTheMic, "atu_images/room/at_icon_mic_open.png", context, () { Navigator.of(context).pop(); provider.jieJinMai(index); }, ), ); } else { list.add( _item( ATAppLocalizations.of(context)!.muteTheMic, "atu_images/room/at_icon_mic_mute.png", context, () { Navigator.of(context).pop(); provider.jinMai(index); }, ), ); } } } else { if (userWheat?.micMute ?? false) { list.add( _item( ATAppLocalizations.of(context)!.openTheMic, "atu_images/room/at_icon_mic_open.png", context, () { Navigator.of(context).pop(); provider.jieJinMai(index); }, ), ); } else { list.add( _item( ATAppLocalizations.of(context)!.muteTheMic, "atu_images/room/at_icon_mic_mute.png", context, () { Navigator.of(context).pop(); provider.jinMai(index); }, ), ); } } } else { if (userWheat?.user == null) { if (!(userWheat?.micLock ?? false)) { list.add( _item( ATAppLocalizations.of(context)!.takeTheMic, "atu_images/room/at_icon_mic_go_up.png", context, () { Navigator.of(context).pop(); provider.shangMai(index); }, ), ); } else { // list.add( // _item('Leavel the mic ', "atu_images/room/at_icon_mic_leavel.png", () { // Navigator.of(context).pop(); // provider.xiaMai(index); // }), // ); } } } } } if (clickUser != null) { list.add( _item( ATAppLocalizations.of(context)!.openUserProfleCard, "atu_images/room/at_icon_open_card.png", context, () { Navigator.of(context).pop(); showBottomInBottomDialog( context!, ATRoomUserInfoCard(userId: clickUser?.id), ); }, ), ); } list.add( _item(ATAppLocalizations.of(context)!.cancel, null, context, () { Navigator.of(context).pop(); }), ); list.add(SizedBox(height: 10.w)); return SafeArea( child: Container( width: ScreenUtil().screenWidth, decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.only( topLeft: Radius.circular(12.w), topRight: Radius.circular(12.w), ), ), child: Column(children: list), ), ); } Widget _item( String msg, String? icon, BuildContext context, Function onClick, ) { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () { onClick(); }, child: Column( children: [ Container( decoration: msg == ATAppLocalizations.of(context)!.cancel ? BoxDecoration( color: Color(0xffF2F2F2), borderRadius: BorderRadius.all(Radius.circular(32.w)), ) : null, width: ScreenUtil().screenWidth * 0.7, padding: EdgeInsets.symmetric(vertical: 10.w), child: Row( mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.min, children: [ Container( alignment: Alignment.center, child: Text( msg, style: TextStyle( fontSize: sp(16), color: msg == ATAppLocalizations.of(context)!.cancel ? Color(0xffB1B1B1) : Colors.black, fontWeight: FontWeight.w400, decoration: TextDecoration.none, ), ), ), ], ), ), ], ), ); } }