restore method

bool restore(
  1. BuildContext context, {
  2. bool rootNavigator = true,
  3. bool withSafeArea = false,
})

restore the ZegoUIKitPrebuiltLiveAudioRoom from minimize

Implementation

bool restore(
  BuildContext context, {
  bool rootNavigator = true,
  bool withSafeArea = false,
}) {
  if (ZegoLiveAudioRoomMiniOverlayPageState.minimizing != state) {
    ZegoLoggerService.logInfo(
      'is not minimizing, ignore',
      tag: 'audio room',
      subTag: 'controller.minimize',
    );

    return false;
  }

  final minimizeData = private.minimizeData;
  if (null == minimizeData) {
    ZegoLoggerService.logError(
      'prebuiltData is null',
      tag: 'audio room',
      subTag: 'controller.minimize',
    );

    return false;
  }

  ZegoLoggerService.logInfo(
    'restore, '
    'context:$context, '
    'rootNavigator:$rootNavigator, '
    'withSafeArea:$withSafeArea, ',
    tag: 'audio room',
    subTag: 'controller.minimize',
  );

  /// re-enter prebuilt call
  ZegoLiveAudioRoomInternalMiniOverlayMachine().changeState(
    ZegoLiveAudioRoomMiniOverlayPageState.inAudioRoom,
  );

  try {
    Navigator.of(context, rootNavigator: rootNavigator).push(
      MaterialPageRoute(builder: (context) {
        final prebuiltAudioRoom = ZegoUIKitPrebuiltLiveAudioRoom(
          appID: minimizeData.appID,
          appSign: minimizeData.appSign,
          userID: minimizeData.userID,
          userName: minimizeData.userName,
          roomID: minimizeData.roomID,
          config: minimizeData.config,
          events: minimizeData.events,
        );
        return withSafeArea
            ? SafeArea(
                child: prebuiltAudioRoom,
              )
            : prebuiltAudioRoom;
      }),
    );
  } catch (e) {
    ZegoLoggerService.logError(
      'navigator push to call page exception:$e',
      tag: 'audio room',
      subTag: 'controller.minimize',
    );

    return false;
  }

  return true;
}