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()}',
);
// iOS: 如果启用了应用外悬浮窗,且在通话中,则停止画中画
if (Platform.isIOS &&
CallState.instance.enableFloatWindowOutOfApp &&
CallState.instance.isIOSOpenFloatWindowOutOfApp &&
CallState.instance.callType == NECallType.video &&
CallState.instance.selfUser.callStatus != NECallStatus.none) {
await NECallKitPlatform.instance.disposePIP();
CallState.instance.isIOSOpenFloatWindowOutOfApp = false;
if (!CallState.instance.isOpenFloatWindow) {
backCallingPageFormFloatWindow();
} else {
NECallKitPlatform.instance.startFloatWindow();
}
// 重新设置画中画
NECallKitPlatform.instance.setupPIP();
}
// OHOS: 如果启用了应用外悬浮窗,且在通话中(视频画中画或语音悬浮窗)
if (PlatformCompat.isOhos &&
CallState.instance.enableFloatWindowOutOfApp &&
CallState.instance.enableFloatWindow &&
CallState.instance.selfUser.callStatus == NECallStatus.accept) {
// 检查画中画是否正在运行
final isPipRunning = await NECallKitPlatform.instance.isPipRunning();
CallKitUILog.i(_tag,
'handleAppEnterForeground: OHOS isPipRunning=$isPipRunning, isOpenFloatWindow=${CallState.instance.isOpenFloatWindow}');
}
if (CallState.instance.selfUser.callStatus != NECallStatus.none &&
NECallKitNavigatorObserver.currentPage == CallPage.none &&
CallState.instance.isOpenFloatWindow == false &&
CallState.instance.isInNativeIncomingBanner == false &&
!(await CallManager.instance.isScreenLocked())) {
// T042:前台重显——若横幅模式开启且来电仍存活但横幅未显示,则重新展示横幅
if (_enableIncomingBanner && !_bannerIsActive) {
CallKitUILog.i(_tag, 'appResumed checkBannerState reShowBanner');
_bannerIsActive = true;
await NECallKitPlatform.instance.setIncomingBannerEnabled(true);
} else {
launchCallingPage();
}
}
}