onInit method

  1. @override
void onInit()
override

Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.

Implementation

@override
void onInit() {
  observer = TUIRoomObserver(
    onRequestReceived: (request) {
      switch (request.requestAction) {
        case TUIRequestAction.requestToOpenRemoteCamera:
        case TUIRequestAction.requestToOpenRemoteMicrophone:
        case TUIRequestAction.requestRemoteUserOnSeat:
          showRequestDialog(request);
          break;
        default:
          break;
      }
    },
    onRequestCancelled: (requestId, userId) {
      if (isCameraInviteDialogShow) {
        Get.back();
        isCameraInviteDialogShow = false;
      }
      if (isMicrophoneInviteDialogShow) {
        Get.back();
        isMicrophoneInviteDialogShow = false;
      }
    },
    onRoomDismissed: (roomId) {
      showExitRoomDialog(RoomContentsTranslations.translate('roomDestroyed'));
    },
    onKickedOutOfRoom: (roomId, reason, message) {
      showExitRoomDialog(
          RoomContentsTranslations.translate('kickedOutOfRoom'));
    },
    onUserRoleChanged: (userId, role) {
      if (userId == RoomStore.to.currentUser.userId.value) {
        if (role == TUIRole.roomOwner) {
          showConferenceDialog(
            title: RoomContentsTranslations.translate('haveBecomeMaster'),
            confirmText: RoomContentsTranslations.translate('ok'),
            confirmTextStyle: RoomTheme.defaultTheme.textTheme.displayMedium,
            onConfirm: () {
              Get.back();
            },
            barrierDismissible: false,
          );
        }
        if (role == TUIRole.administrator) {
          if (RoomStore.to.roomInfo.speechMode ==
                  TUISpeechMode.speakAfterTakingSeat &&
              !RoomStore.to.currentUser.isOnSeat.value) {
            showConferenceDialog(
              title: RoomContentsTranslations.translate(
                  'haveBecomeAdministrator'),
              message: RoomContentsTranslations.translate(
                  'haveBecomeAdministratorMessage'),
              confirmText:
                  RoomContentsTranslations.translate('joinStageImmediately'),
              cancelText:
                  RoomContentsTranslations.translate('noYetJoinStage'),
              onConfirm: () {
                RoomEngineManager().takeSeat(_seatIndex, _reqTimeout, null);
                Get.back();
              },
            );
          } else {
            showConferenceDialog(
              title: RoomContentsTranslations.translate(
                  'haveBecomeAdministrator'),
              confirmText: RoomContentsTranslations.translate('ok'),
              confirmTextStyle:
                  RoomTheme.defaultTheme.textTheme.displayMedium,
              onConfirm: () {
                Get.back();
              },
              barrierDismissible: false,
            );
          }
        }
        if (role == TUIRole.generalUser &&
            RoomStore.to.currentUser.userRole.value ==
                TUIRole.administrator) {
          showConferenceDialog(
            title: RoomContentsTranslations.translate(
                'revokedYourAdministrator'),
            confirmText: RoomContentsTranslations.translate('ok'),
            confirmTextStyle: RoomTheme.defaultTheme.textTheme.displayMedium,
            onConfirm: () {
              Get.back();
            },
            barrierDismissible: false,
          );
          RoomStore.to.inviteSeatList.clear();
          RoomStore.to.inviteSeatMap.clear();
        }
        RoomStore.to.currentUser.userRole.value = role;
        RoomStore.to.updateItemTouchableState();
      }
    },
  );
  RoomEngineManager().getRoomEngine().addObserver(observer);
  super.onInit();
}