diff options
Diffstat (limited to 'services/java/com/android/server/wm/WindowManagerService.java')
| -rwxr-xr-x | services/java/com/android/server/wm/WindowManagerService.java | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index f84451e..6906ed9 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -758,9 +758,15 @@ public class WindowManagerService extends IWindowManager.Stub // The desired scaling factor for compatible apps. float mCompatibleScreenScale; + // If true, only the core apps and services are being launched because the device + // is in a special boot mode, such as being encrypted or waiting for a decryption password. + // For example, when this flag is true, there will be no wallpaper service. + final boolean mOnlyCore; + public static WindowManagerService main(Context context, - PowerManagerService pm, boolean haveInputMethods, boolean allowBootMsgs) { - WMThread thr = new WMThread(context, pm, haveInputMethods, allowBootMsgs); + PowerManagerService pm, boolean haveInputMethods, boolean allowBootMsgs, + boolean onlyCore) { + WMThread thr = new WMThread(context, pm, haveInputMethods, allowBootMsgs, onlyCore); thr.start(); synchronized (thr) { @@ -781,21 +787,23 @@ public class WindowManagerService extends IWindowManager.Stub private final PowerManagerService mPM; private final boolean mHaveInputMethods; private final boolean mAllowBootMessages; + private final boolean mOnlyCore; public WMThread(Context context, PowerManagerService pm, - boolean haveInputMethods, boolean allowBootMsgs) { + boolean haveInputMethods, boolean allowBootMsgs, boolean onlyCore) { super("WindowManager"); mContext = context; mPM = pm; mHaveInputMethods = haveInputMethods; mAllowBootMessages = allowBootMsgs; + mOnlyCore = onlyCore; } @Override public void run() { Looper.prepare(); WindowManagerService s = new WindowManagerService(mContext, mPM, - mHaveInputMethods, mAllowBootMessages); + mHaveInputMethods, mAllowBootMessages, mOnlyCore); android.os.Process.setThreadPriority( android.os.Process.THREAD_PRIORITY_DISPLAY); android.os.Process.setCanSelfBackground(false); @@ -858,10 +866,11 @@ public class WindowManagerService extends IWindowManager.Stub } private WindowManagerService(Context context, PowerManagerService pm, - boolean haveInputMethods, boolean showBootMsgs) { + boolean haveInputMethods, boolean showBootMsgs, boolean onlyCore) { mContext = context; mHaveInputMethods = haveInputMethods; mAllowBootMessages = showBootMsgs; + mOnlyCore = onlyCore; mLimitedAlphaCompositing = context.getResources().getBoolean( com.android.internal.R.bool.config_sf_limitedAlpha); mHeadless = "1".equals(SystemProperties.get(SYSTEM_HEADLESS, "0")); @@ -5191,7 +5200,8 @@ public class WindowManagerService extends IWindowManager.Stub Slog.i(TAG, "performEnableScreen: mDisplayEnabled=" + mDisplayEnabled + " mForceDisplayEnabled=" + mForceDisplayEnabled + " mShowingBootMessages=" + mShowingBootMessages - + " mSystemBooted=" + mSystemBooted, here); + + " mSystemBooted=" + mSystemBooted + + " mOnlyCore=" + mOnlyCore, here); } if (mDisplayEnabled) { return; @@ -5209,7 +5219,8 @@ public class WindowManagerService extends IWindowManager.Stub // wallpaper, don't bother waiting for it boolean haveWallpaper = false; boolean wallpaperEnabled = mContext.getResources().getBoolean( - com.android.internal.R.bool.config_enableWallpaperService); + com.android.internal.R.bool.config_enableWallpaperService) + && !mOnlyCore; boolean haveKeyguard = true; final int N = mWindows.size(); for (int i=0; i<N; i++) { |
