Loading services/core/java/com/android/server/display/DisplayManagerService.java +46 −0 Original line number Diff line number Diff line Loading @@ -45,7 +45,10 @@ import android.app.compat.CompatChanges; import android.companion.virtual.IVirtualDevice; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.ParceledListSlice; import android.content.res.Resources; Loading Loading @@ -421,6 +424,32 @@ public final class DisplayManagerService extends SystemService { // Receives notifications about changes to Settings. private SettingsObserver mSettingsObserver; // Keeps note of what state the device is in, used for idle screen brightness mode. private boolean mIsDocked; private boolean mIsDreaming; private final BroadcastReceiver mIdleModeReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final DisplayManagerInternal dmi = LocalServices.getService(DisplayManagerInternal.class); if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())) { int dockState = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, Intent.EXTRA_DOCK_STATE_UNDOCKED); mIsDocked = dockState == Intent.EXTRA_DOCK_STATE_DESK || dockState == Intent.EXTRA_DOCK_STATE_LE_DESK || dockState == Intent.EXTRA_DOCK_STATE_HE_DESK; } if (Intent.ACTION_DREAMING_STARTED.equals(intent.getAction())) { mIsDreaming = true; } else if (Intent.ACTION_DREAMING_STOPPED.equals(intent.getAction())) { mIsDreaming = false; } setDockedAndIdleEnabled(/* enabled= */(mIsDocked && mIsDreaming), Display.DEFAULT_DISPLAY); } }; private final boolean mAllowNonNativeRefreshRateOverride; private final BrightnessSynchronizer mBrightnessSynchronizer; Loading Loading @@ -616,6 +645,13 @@ public final class DisplayManagerService extends SystemService { mSettingsObserver = new SettingsObserver(); mBrightnessSynchronizer.startSynchronizing(); final IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_DREAMING_STARTED); filter.addAction(Intent.ACTION_DREAMING_STOPPED); filter.addAction(Intent.ACTION_DOCK_EVENT); mContext.registerReceiver(mIdleModeReceiver, filter); } @VisibleForTesting Loading Loading @@ -2096,6 +2132,16 @@ public final class DisplayManagerService extends SystemService { } } void setDockedAndIdleEnabled(boolean enabled, int displayId) { synchronized (mSyncRoot) { final DisplayPowerController displayPowerController = mDisplayPowerControllers.get( displayId); if (displayPowerController != null) { displayPowerController.setAutomaticScreenBrightnessMode(enabled); } } } private void clearViewportsLocked() { mViewports.clear(); } Loading services/core/java/com/android/server/display/DisplayManagerShellCommand.java +18 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,10 @@ class DisplayManagerShellCommand extends ShellCommand { return setUserDisabledHdrTypes(); case "get-user-disabled-hdr-types": return getUserDisabledHdrTypes(); case "dock": return setDockedAndIdle(); case "undock": return unsetDockedAndIdle(); default: return handleDefaultCommands(cmd); } Loading Loading @@ -124,6 +128,10 @@ class DisplayManagerShellCommand extends ShellCommand { pw.println(" Sets the user disabled HDR types as TYPES"); pw.println(" get-user-disabled-hdr-types"); pw.println(" Returns the user disabled HDR types"); pw.println(" dock"); pw.println(" Sets brightness to docked + idle screen brightness mode"); pw.println(" undock"); pw.println(" Sets brightness to active (normal) screen brightness mode"); pw.println(); Intent.printIntentArgsHelp(pw , ""); } Loading Loading @@ -345,4 +353,14 @@ class DisplayManagerShellCommand extends ShellCommand { return -1; } } private int setDockedAndIdle() { mService.setDockedAndIdleEnabled(true, Display.DEFAULT_DISPLAY); return 0; } private int unsetDockedAndIdle() { mService.setDockedAndIdleEnabled(false, Display.DEFAULT_DISPLAY); return 0; } } services/core/java/com/android/server/display/DisplayPowerController.java +0 −5 Original line number Diff line number Diff line Loading @@ -395,11 +395,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call @Nullable private BrightnessMappingStrategy mIdleModeBrightnessMapper; // If these are both true, and mIdleModeBrightnessMapper != null, // then we are in idle screen brightness mode. private boolean mIsDreaming; private boolean mIsDocked; // The current brightness configuration. @Nullable private BrightnessConfiguration mBrightnessConfiguration; Loading Loading
services/core/java/com/android/server/display/DisplayManagerService.java +46 −0 Original line number Diff line number Diff line Loading @@ -45,7 +45,10 @@ import android.app.compat.CompatChanges; import android.companion.virtual.IVirtualDevice; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.ParceledListSlice; import android.content.res.Resources; Loading Loading @@ -421,6 +424,32 @@ public final class DisplayManagerService extends SystemService { // Receives notifications about changes to Settings. private SettingsObserver mSettingsObserver; // Keeps note of what state the device is in, used for idle screen brightness mode. private boolean mIsDocked; private boolean mIsDreaming; private final BroadcastReceiver mIdleModeReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { final DisplayManagerInternal dmi = LocalServices.getService(DisplayManagerInternal.class); if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())) { int dockState = intent.getIntExtra(Intent.EXTRA_DOCK_STATE, Intent.EXTRA_DOCK_STATE_UNDOCKED); mIsDocked = dockState == Intent.EXTRA_DOCK_STATE_DESK || dockState == Intent.EXTRA_DOCK_STATE_LE_DESK || dockState == Intent.EXTRA_DOCK_STATE_HE_DESK; } if (Intent.ACTION_DREAMING_STARTED.equals(intent.getAction())) { mIsDreaming = true; } else if (Intent.ACTION_DREAMING_STOPPED.equals(intent.getAction())) { mIsDreaming = false; } setDockedAndIdleEnabled(/* enabled= */(mIsDocked && mIsDreaming), Display.DEFAULT_DISPLAY); } }; private final boolean mAllowNonNativeRefreshRateOverride; private final BrightnessSynchronizer mBrightnessSynchronizer; Loading Loading @@ -616,6 +645,13 @@ public final class DisplayManagerService extends SystemService { mSettingsObserver = new SettingsObserver(); mBrightnessSynchronizer.startSynchronizing(); final IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_DREAMING_STARTED); filter.addAction(Intent.ACTION_DREAMING_STOPPED); filter.addAction(Intent.ACTION_DOCK_EVENT); mContext.registerReceiver(mIdleModeReceiver, filter); } @VisibleForTesting Loading Loading @@ -2096,6 +2132,16 @@ public final class DisplayManagerService extends SystemService { } } void setDockedAndIdleEnabled(boolean enabled, int displayId) { synchronized (mSyncRoot) { final DisplayPowerController displayPowerController = mDisplayPowerControllers.get( displayId); if (displayPowerController != null) { displayPowerController.setAutomaticScreenBrightnessMode(enabled); } } } private void clearViewportsLocked() { mViewports.clear(); } Loading
services/core/java/com/android/server/display/DisplayManagerShellCommand.java +18 −0 Original line number Diff line number Diff line Loading @@ -76,6 +76,10 @@ class DisplayManagerShellCommand extends ShellCommand { return setUserDisabledHdrTypes(); case "get-user-disabled-hdr-types": return getUserDisabledHdrTypes(); case "dock": return setDockedAndIdle(); case "undock": return unsetDockedAndIdle(); default: return handleDefaultCommands(cmd); } Loading Loading @@ -124,6 +128,10 @@ class DisplayManagerShellCommand extends ShellCommand { pw.println(" Sets the user disabled HDR types as TYPES"); pw.println(" get-user-disabled-hdr-types"); pw.println(" Returns the user disabled HDR types"); pw.println(" dock"); pw.println(" Sets brightness to docked + idle screen brightness mode"); pw.println(" undock"); pw.println(" Sets brightness to active (normal) screen brightness mode"); pw.println(); Intent.printIntentArgsHelp(pw , ""); } Loading Loading @@ -345,4 +353,14 @@ class DisplayManagerShellCommand extends ShellCommand { return -1; } } private int setDockedAndIdle() { mService.setDockedAndIdleEnabled(true, Display.DEFAULT_DISPLAY); return 0; } private int unsetDockedAndIdle() { mService.setDockedAndIdleEnabled(false, Display.DEFAULT_DISPLAY); return 0; } }
services/core/java/com/android/server/display/DisplayPowerController.java +0 −5 Original line number Diff line number Diff line Loading @@ -395,11 +395,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call @Nullable private BrightnessMappingStrategy mIdleModeBrightnessMapper; // If these are both true, and mIdleModeBrightnessMapper != null, // then we are in idle screen brightness mode. private boolean mIsDreaming; private boolean mIsDocked; // The current brightness configuration. @Nullable private BrightnessConfiguration mBrightnessConfiguration; Loading