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