handleAppEnterBackground method

void handleAppEnterBackground()

Implementation

void handleAppEnterBackground() async {
  CallKitUILog.i(
    _tag,
    'CallManager handleAppEnterBackground() '
    'callStatus = ${CallState.instance.selfUser.callStatus},'
    'currentPage = ${NECallKitNavigatorObserver.currentPage},'
    'isOpenFloatWindow = ${CallState.instance.isOpenFloatWindow},'
    'isIOSOpenFloatWindowOutOfApp = ${CallState.instance.isIOSOpenFloatWindowOutOfApp}',
  );

  // Android: 如果启用了应用外悬浮窗,且在通话中,则启动普通悬浮窗
  if (Platform.isAndroid &&
      CallState.instance.enableFloatWindowOutOfApp &&
      CallState.instance.enableFloatWindow &&
      CallState.instance.selfUser.callStatus == NECallStatus.accept) {
    openFloatWindowWithPageState();
  }

  // iOS: 进入后台启动画中画(仅视频通话)
  if (Platform.isIOS &&
      CallState.instance.enableFloatWindowOutOfApp &&
      CallState.instance.enableFloatWindow &&
      CallState.instance.callType == NECallType.video &&
      CallState.instance.selfUser.callStatus == NECallStatus.accept) {
    final success = await NECallKitPlatform.instance.startPIP();
    CallState.instance.isIOSOpenFloatWindowOutOfApp = success;
    CallKitUILog.i(
      _tag,
      'CallManager handleAppEnterBackground: startPIP result = $success',
    );
  }
}