handleAppEnterForeground method

void handleAppEnterForeground()

Implementation

void handleAppEnterForeground() async {
  CallKitUILog.i(
      _tag,
      'CallManager handleAppEnterForeground() '
      'callStatus = ${CallState.instance.selfUser.callStatus},'
      'currentPage = ${NECallKitNavigatorObserver.currentPage},'
      'isOpenFloatWindow = ${CallState.instance.isOpenFloatWindow},'
      'isInNativeIncomingBanner = ${CallState.instance.isInNativeIncomingBanner},'
      'isScreenLocked = ${await CallManager.instance.isScreenLocked()}');

  // 如果启用了应用外悬浮窗,且在通话中,则停止画中画
  if (Platform.isIOS &&
      CallState.instance.enableFloatWindowOutOfApp &&
      CallState.instance.isIOSOpenFloatWindowOutOfApp &&
      CallState.instance.callType == NECallType.video &&
      CallState.instance.selfUser.callStatus != NECallStatus.none) {
    await NECallKitPlatform.instance.disposePIP();
    if (!CallState.instance.isOpenFloatWindow) {
      backCallingPageFormFloatWindow();
    } else {
      NECallKitPlatform.instance.startFloatWindow();
      CallState.instance.isIOSOpenFloatWindowOutOfApp = false;
    }
    // 重新设置画中画
    NECallKitPlatform.instance.setupPIP();
  }

  if (CallState.instance.selfUser.callStatus != NECallStatus.none &&
      NECallKitNavigatorObserver.currentPage == CallPage.none &&
      CallState.instance.isOpenFloatWindow == false &&
      CallState.instance.isInNativeIncomingBanner == false &&
      !(await CallManager.instance.isScreenLocked())) {
    launchCallingPage();
  }
}