Loading services/core/java/com/android/server/display/DisplayGroupAllocator.java +4 −3 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ class DisplayGroupAllocator { public void initLater(Context context) { mContext = context; mCanDeviceEnterDesktopMode = mInjector.canEnterDesktopMode(mContext); mCanDefaultDisplayEnterDesktopMode = mInjector.canInternalDisplayHostDesktops(mContext); mCanDefaultDisplayEnterDesktopMode = mInjector.isDesktopModeSupportedOnInternalDisplay(mContext); } /** Loading Loading @@ -154,8 +155,8 @@ class DisplayGroupAllocator { return DesktopModeHelper.canEnterDesktopMode(context); } boolean canInternalDisplayHostDesktops(Context context) { return DesktopModeHelper.canInternalDisplayHostDesktops(context); boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return DesktopModeHelper.isDesktopModeSupportedOnInternalDisplay(context); } boolean canDisplayHostTasksLocked(LogicalDisplay display) { Loading services/core/java/com/android/server/display/DisplayManagerService.java +15 −11 Original line number Diff line number Diff line Loading @@ -889,9 +889,9 @@ public final class DisplayManagerService extends SystemService { } if (mFlags.isDefaultDisplayInTopologySwitchEnabled()) { mIncludeDefaultDisplayInTopology = mInjector.canInternalDisplayHostDesktops( mContext) || (Settings.Secure.getIntForUser(mContext.getContentResolver(), INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY, 0, UserHandle.USER_CURRENT) != 0); mIncludeDefaultDisplayInTopology = mInjector.isDesktopModeSupportedOnInternalDisplay(mContext) || getIncludeDefaultDisplayInTopologySetting(); } } Loading Loading @@ -1251,7 +1251,7 @@ public final class DisplayManagerService extends SystemService { } if (mFlags.isDefaultDisplayInTopologySwitchEnabled() && !mInjector.canInternalDisplayHostDesktops(mContext)) { && !mInjector.isDesktopModeSupportedOnInternalDisplay(mContext)) { mContext.getContentResolver().registerContentObserver( Settings.Secure.getUriFor( Settings.Secure.INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY), Loading Loading @@ -1282,7 +1282,7 @@ public final class DisplayManagerService extends SystemService { if (Settings.Secure.getUriFor(INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY).equals(uri)) { synchronized (mSyncRoot) { if (mFlags.isDefaultDisplayInTopologySwitchEnabled() && !mInjector.canInternalDisplayHostDesktops(mContext)) { && !mInjector.isDesktopModeSupportedOnInternalDisplay(mContext)) { handleIncludeDefaultDisplayInTopologySettingChangeLocked(); } } Loading Loading @@ -1324,9 +1324,7 @@ public final class DisplayManagerService extends SystemService { } private void handleIncludeDefaultDisplayInTopologySettingChangeLocked() { ContentResolver resolver = mContext.getContentResolver(); final boolean includeDefaultDisplayInTopology = Settings.Secure.getIntForUser(resolver, INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY, 0, UserHandle.USER_CURRENT) != 0; final boolean includeDefaultDisplayInTopology = getIncludeDefaultDisplayInTopologySetting(); if (mIncludeDefaultDisplayInTopology == includeDefaultDisplayInTopology) { return; Loading @@ -1353,6 +1351,12 @@ public final class DisplayManagerService extends SystemService { } } private boolean getIncludeDefaultDisplayInTopologySetting() { ContentResolver resolver = mContext.getContentResolver(); return Settings.Secure.getIntForUser(resolver, INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY, 0, UserHandle.USER_CURRENT) != 0; } private void restoreResolutionFromBackup() { int savedMode = Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.SCREEN_RESOLUTION_MODE, Loading Loading @@ -2506,7 +2510,7 @@ public final class DisplayManagerService extends SystemService { } boolean shouldIncludeDefaultDisplayInTopology() { return mInjector.canInternalDisplayHostDesktops(mContext) return mInjector.isDesktopModeSupportedOnInternalDisplay(mContext) || mIncludeDefaultDisplayInTopology; } Loading Loading @@ -4112,8 +4116,8 @@ public final class DisplayManagerService extends SystemService { onBrightnessChangeRunnable, hbmMetadata, bootCompleted, flags); } boolean canInternalDisplayHostDesktops(Context context) { return DesktopModeHelper.canInternalDisplayHostDesktops(context); boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return DesktopModeHelper.isDesktopModeSupportedOnInternalDisplay(context); } PersistentDataStore getPersistentDataStore() { Loading services/core/java/com/android/server/wm/DesktopModeHelper.java +9 −1 Original line number Diff line number Diff line Loading @@ -62,10 +62,18 @@ public final class DesktopModeHelper { return context.getResources().getBoolean(R.bool.config_isDesktopModeDevOptionSupported); } /** * Return {@code true} if desktop mode is unrestricted on the current device or it can host * desktop sessions on its internal display. */ public static boolean isDesktopModeSupportedOnInternalDisplay(@NonNull Context context) { return !shouldEnforceDeviceRestrictions() || canInternalDisplayHostDesktops(context); } /** * Return {@code true} if the current device can hosts desktop sessions on its internal display. */ public static boolean canInternalDisplayHostDesktops(@NonNull Context context) { private static boolean canInternalDisplayHostDesktops(@NonNull Context context) { return context.getResources().getBoolean(R.bool.config_canInternalDisplayHostDesktops); } Loading services/tests/displayservicetests/src/com/android/server/display/DisplayGroupAllocatorTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ public class DisplayGroupAllocatorTest { } @Override boolean canInternalDisplayHostDesktops(Context context) { boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return simulateExtendedMode; } Loading services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -398,7 +398,7 @@ public class DisplayManagerServiceTest { } @Override boolean canInternalDisplayHostDesktops(Context context) { boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return false; } Loading Loading @@ -4459,7 +4459,7 @@ public class DisplayManagerServiceTest { DisplayManagerService displayManager = new DisplayManagerService( mContext, new BasicInjector() { @Override boolean canInternalDisplayHostDesktops(Context context) { boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return true; } }); Loading Loading
services/core/java/com/android/server/display/DisplayGroupAllocator.java +4 −3 Original line number Diff line number Diff line Loading @@ -56,7 +56,8 @@ class DisplayGroupAllocator { public void initLater(Context context) { mContext = context; mCanDeviceEnterDesktopMode = mInjector.canEnterDesktopMode(mContext); mCanDefaultDisplayEnterDesktopMode = mInjector.canInternalDisplayHostDesktops(mContext); mCanDefaultDisplayEnterDesktopMode = mInjector.isDesktopModeSupportedOnInternalDisplay(mContext); } /** Loading Loading @@ -154,8 +155,8 @@ class DisplayGroupAllocator { return DesktopModeHelper.canEnterDesktopMode(context); } boolean canInternalDisplayHostDesktops(Context context) { return DesktopModeHelper.canInternalDisplayHostDesktops(context); boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return DesktopModeHelper.isDesktopModeSupportedOnInternalDisplay(context); } boolean canDisplayHostTasksLocked(LogicalDisplay display) { Loading
services/core/java/com/android/server/display/DisplayManagerService.java +15 −11 Original line number Diff line number Diff line Loading @@ -889,9 +889,9 @@ public final class DisplayManagerService extends SystemService { } if (mFlags.isDefaultDisplayInTopologySwitchEnabled()) { mIncludeDefaultDisplayInTopology = mInjector.canInternalDisplayHostDesktops( mContext) || (Settings.Secure.getIntForUser(mContext.getContentResolver(), INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY, 0, UserHandle.USER_CURRENT) != 0); mIncludeDefaultDisplayInTopology = mInjector.isDesktopModeSupportedOnInternalDisplay(mContext) || getIncludeDefaultDisplayInTopologySetting(); } } Loading Loading @@ -1251,7 +1251,7 @@ public final class DisplayManagerService extends SystemService { } if (mFlags.isDefaultDisplayInTopologySwitchEnabled() && !mInjector.canInternalDisplayHostDesktops(mContext)) { && !mInjector.isDesktopModeSupportedOnInternalDisplay(mContext)) { mContext.getContentResolver().registerContentObserver( Settings.Secure.getUriFor( Settings.Secure.INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY), Loading Loading @@ -1282,7 +1282,7 @@ public final class DisplayManagerService extends SystemService { if (Settings.Secure.getUriFor(INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY).equals(uri)) { synchronized (mSyncRoot) { if (mFlags.isDefaultDisplayInTopologySwitchEnabled() && !mInjector.canInternalDisplayHostDesktops(mContext)) { && !mInjector.isDesktopModeSupportedOnInternalDisplay(mContext)) { handleIncludeDefaultDisplayInTopologySettingChangeLocked(); } } Loading Loading @@ -1324,9 +1324,7 @@ public final class DisplayManagerService extends SystemService { } private void handleIncludeDefaultDisplayInTopologySettingChangeLocked() { ContentResolver resolver = mContext.getContentResolver(); final boolean includeDefaultDisplayInTopology = Settings.Secure.getIntForUser(resolver, INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY, 0, UserHandle.USER_CURRENT) != 0; final boolean includeDefaultDisplayInTopology = getIncludeDefaultDisplayInTopologySetting(); if (mIncludeDefaultDisplayInTopology == includeDefaultDisplayInTopology) { return; Loading @@ -1353,6 +1351,12 @@ public final class DisplayManagerService extends SystemService { } } private boolean getIncludeDefaultDisplayInTopologySetting() { ContentResolver resolver = mContext.getContentResolver(); return Settings.Secure.getIntForUser(resolver, INCLUDE_DEFAULT_DISPLAY_IN_TOPOLOGY, 0, UserHandle.USER_CURRENT) != 0; } private void restoreResolutionFromBackup() { int savedMode = Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.SCREEN_RESOLUTION_MODE, Loading Loading @@ -2506,7 +2510,7 @@ public final class DisplayManagerService extends SystemService { } boolean shouldIncludeDefaultDisplayInTopology() { return mInjector.canInternalDisplayHostDesktops(mContext) return mInjector.isDesktopModeSupportedOnInternalDisplay(mContext) || mIncludeDefaultDisplayInTopology; } Loading Loading @@ -4112,8 +4116,8 @@ public final class DisplayManagerService extends SystemService { onBrightnessChangeRunnable, hbmMetadata, bootCompleted, flags); } boolean canInternalDisplayHostDesktops(Context context) { return DesktopModeHelper.canInternalDisplayHostDesktops(context); boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return DesktopModeHelper.isDesktopModeSupportedOnInternalDisplay(context); } PersistentDataStore getPersistentDataStore() { Loading
services/core/java/com/android/server/wm/DesktopModeHelper.java +9 −1 Original line number Diff line number Diff line Loading @@ -62,10 +62,18 @@ public final class DesktopModeHelper { return context.getResources().getBoolean(R.bool.config_isDesktopModeDevOptionSupported); } /** * Return {@code true} if desktop mode is unrestricted on the current device or it can host * desktop sessions on its internal display. */ public static boolean isDesktopModeSupportedOnInternalDisplay(@NonNull Context context) { return !shouldEnforceDeviceRestrictions() || canInternalDisplayHostDesktops(context); } /** * Return {@code true} if the current device can hosts desktop sessions on its internal display. */ public static boolean canInternalDisplayHostDesktops(@NonNull Context context) { private static boolean canInternalDisplayHostDesktops(@NonNull Context context) { return context.getResources().getBoolean(R.bool.config_canInternalDisplayHostDesktops); } Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayGroupAllocatorTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ public class DisplayGroupAllocatorTest { } @Override boolean canInternalDisplayHostDesktops(Context context) { boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return simulateExtendedMode; } Loading
services/tests/displayservicetests/src/com/android/server/display/DisplayManagerServiceTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -398,7 +398,7 @@ public class DisplayManagerServiceTest { } @Override boolean canInternalDisplayHostDesktops(Context context) { boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return false; } Loading Loading @@ -4459,7 +4459,7 @@ public class DisplayManagerServiceTest { DisplayManagerService displayManager = new DisplayManagerService( mContext, new BasicInjector() { @Override boolean canInternalDisplayHostDesktops(Context context) { boolean isDesktopModeSupportedOnInternalDisplay(Context context) { return true; } }); Loading