frameworks\base\services\core\java\com\android\server\wm\WindowManagerService.java
@Override
public void setFocusedApp(IBinder token, boolean moveFocusNow) {
if (!checkCallingPermission(MANAGE_APP_TOKENS, "setFocusedApp()")) {
throw new SecurityException("Requires MANAGE_APP_TOKENS permission");
}
synchronized(mWindowMap) {
final AppWindowToken newFocus;
if (token == null) {
if (DEBUG_FOCUS_LIGHT) Slog.v(TAG_WM, "Clearing focused app, was " + mFocusedApp);
newFocus = null;
} else {
newFocus = mRoot.getAppWindowToken(token);
if (newFocus == null) {
Slog.w(TAG_WM, "Attempted to set focus to non-existing app token: " + token);
}
if (DEBUG_FOCUS_LIGHT) Slog.v(TAG_WM, "Set focused app to: " + newFocus
+ " old focus=" + mFocusedApp + " moveFocusNow=" + moveFocusNow);
String str = "test weixin" + newFocus;
Log.d("weixin","===========str = " + str);
if(str.contains("plugin.voip.ui.VideoActivity") || str.contains("plugin.story.ui.StoryCaptureUI")){
SystemProperties.set("persist.sys.voip", "1");
}else{
SystemProperties.set("persist.sys.voip", "0");
}
}
final boolean changed = mFocusedApp != newFocus;
if (changed) {
AppWindowToken prev = mFocusedApp;
mFocusedApp = newFocus;
mInputMonitor.setFocusedAppLw(newFocus);
setFocusTaskRegionLocked(prev);
/// M: add for fullscreen switch feature @{
if (mWmsExt.isFullScreenCropState(mFocusedApp)) {
Slog.w(TAG_WM, " update display when set new focus");
final DisplayContent displayContent = getDefaultDisplayContentLocked();
displayContent.updateDisplayAndOrientation(
displayContent.getConfiguration().uiMode);
}
/// @}
}
if (moveFocusNow && changed) {
final long origId = Binder.clearCallingIdentity();
updateFocusedWindowLocked(UPDATE_FOCUS_NORMAL, true /*updateInputWindows*/);
Binder.restoreCallingIdentity(origId);
}
}
}