onInit method
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();
}