enterLiveRoomPage method

void enterLiveRoomPage(
  1. LiveInfo liveInfo
)

Implementation

void enterLiveRoomPage(LiveInfo liveInfo) async {
  if (isRepeatClick) {
    return;
  }
  isRepeatClick = true;
  GlobalFloatWindowManager floatWindowManager = GlobalFloatWindowManager.instance;
  GlobalFloatWindowState state = floatWindowManager.state;
  if (floatWindowManager.isFloating()) {
    if (state.ownerId.value == TUIRoomEngine
        .getSelfInfo()
        .userId) {
      isRepeatClick = false;
      makeToast(msg: LiveKitLocalizations.of(Global.appContext())!.livelist_exit_float_window_tip);
      return;
    }
    if (state.roomId.value == liveInfo.liveID) {
      isRepeatClick = false;
      floatWindowManager.switchToFullScreenMode();
      return;
    } else {
      floatWindowManager.overlayManager.closeOverlay();
    }
  }
  bool isOwner = liveInfo.liveOwner.userID == TUIRoomEngine
      .getSelfInfo()
      .userId;
  if (isOwner) {
    try {
      final result = await LiveListStore.shared.fetchLiveInfo(liveInfo.liveID);
      if (result.errorCode == TUIError.success.value()) {
        liveInfo.keepOwnerOnSeat = result.liveInfo.keepOwnerOnSeat;
      }
    } on Exception catch (e) {
      LiveKitLogger.error(e.toString());
    }
    Navigator.push(
        getContext(),
        MaterialPageRoute(
          settings: const RouteSettings(name: routeLiveRoomAudience),
          builder: (context) {
            if (floatWindowManager.isEnableFloatWindowFeature()) {
              return TUILiveRoomAnchorOverlay(roomId: liveInfo.liveID, liveInfo: liveInfo, needPrepare: false);
            } else {
              return TUILiveRoomAnchorWidget(roomId: liveInfo.liveID, liveInfo: liveInfo, needPrepare: false);
            }
          },
        ));
  } else {
    Navigator.push(
        getContext(),
        MaterialPageRoute(
          settings: const RouteSettings(name: routeLiveRoomAudience),
          builder: (context) {
            if (floatWindowManager.isEnableFloatWindowFeature()) {
              return TUILiveRoomAudienceOverlay(roomId: liveInfo.liveID);
            } else {
              return TUILiveRoomAudienceWidget(roomId: liveInfo.liveID);
            }
          },
        ));
  }
  isRepeatClick = false;
}