diff options
14 files changed, 138 insertions, 144 deletions
diff --git a/proto/src/metrics_constants/metrics_constants.proto b/proto/src/metrics_constants/metrics_constants.proto index b3e5f693d530..0084b536f467 100644 --- a/proto/src/metrics_constants/metrics_constants.proto +++ b/proto/src/metrics_constants/metrics_constants.proto @@ -5434,7 +5434,7 @@ message MetricsEvent { FIELD_END_BATTERY_PERCENT = 1308; // ACTION: Settings > Display > Night Light - // SUBTYPE: com.android.server.display.ColorDisplayService.AutoMode value + // SUBTYPE: com.android.server.display.color.ColorDisplayService.AutoMode value // CATEGORY: SETTINGS // OS: P ACTION_NIGHT_DISPLAY_AUTO_MODE_CHANGED = 1309; diff --git a/services/art-profile b/services/art-profile index 7892fcb79822..6de96e861388 100644 --- a/services/art-profile +++ b/services/art-profile @@ -1013,7 +1013,7 @@ HPLcom/android/server/display/AutomaticBrightnessController;->updateAmbientLux() HPLcom/android/server/display/AutomaticBrightnessController;->weightIntegral(J)F HPLcom/android/server/display/BrightnessTracker$Injector;->currentTimeMillis()J HPLcom/android/server/display/BrightnessTracker$Injector;->elapsedRealtimeNanos()J -HPLcom/android/server/display/ColorDisplayService$ColorMatrixEvaluator;->evaluate(F[F[F)[F +HPLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;->evaluate(F[F[F)[F HPLcom/android/server/display/ColorFade;->draw(F)Z HPLcom/android/server/display/ColorFade;->drawFaded(FF)V HPLcom/android/server/display/DisplayManagerService$BinderService;->getDisplayIds()[I @@ -3413,7 +3413,7 @@ Lcom/android/server/devicepolicy/CryptoTestHelper; Lcom/android/server/devicepolicy/DevicePolicyManagerService$Lifecycle; Lcom/android/server/display/-$$Lambda$VirtualDisplayAdapter$PFyqe-aYIEBicSVtuy5lL_bT8B0; Lcom/android/server/display/AutomaticBrightnessController$Callbacks; -Lcom/android/server/display/ColorDisplayService; +Lcom/android/server/display/color/ColorDisplayService; Lcom/android/server/display/DisplayAdapter$1; Lcom/android/server/display/DisplayAdapter$2; Lcom/android/server/display/DisplayAdapter$Listener; @@ -3433,7 +3433,7 @@ Lcom/android/server/display/DisplayManagerService$SyncRoot; Lcom/android/server/display/DisplayManagerService; Lcom/android/server/display/DisplayManagerShellCommand; Lcom/android/server/display/DisplayPowerController; -Lcom/android/server/display/DisplayTransformManager; +Lcom/android/server/display/color/DisplayTransformManager; Lcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord; Lcom/android/server/display/LocalDisplayAdapter$HotplugDisplayEventReceiver; Lcom/android/server/display/LocalDisplayAdapter$LocalDisplayDevice$1; @@ -10616,39 +10616,39 @@ PLcom/android/server/display/BrightnessTracker;->stopSensorListener()V PLcom/android/server/display/BrightnessTracker;->writeAmbientBrightnessStats()V PLcom/android/server/display/BrightnessTracker;->writeEvents()V PLcom/android/server/display/BrightnessTracker;->writeEventsLocked(Ljava/io/OutputStream;)V -PLcom/android/server/display/ColorDisplayService$2;-><init>(Lcom/android/server/display/ColorDisplayService;Lcom/android/server/display/DisplayTransformManager;)V -PLcom/android/server/display/ColorDisplayService$2;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V -PLcom/android/server/display/ColorDisplayService$3;-><init>(Lcom/android/server/display/ColorDisplayService;Lcom/android/server/display/DisplayTransformManager;[F)V -PLcom/android/server/display/ColorDisplayService$3;->onAnimationEnd(Landroid/animation/Animator;)V -PLcom/android/server/display/ColorDisplayService$AutoMode;-><init>(Lcom/android/server/display/ColorDisplayService;)V -PLcom/android/server/display/ColorDisplayService$AutoMode;-><init>(Lcom/android/server/display/ColorDisplayService;Lcom/android/server/display/ColorDisplayService$1;)V -PLcom/android/server/display/ColorDisplayService$ColorMatrixEvaluator;-><init>()V -PLcom/android/server/display/ColorDisplayService$ColorMatrixEvaluator;-><init>(Lcom/android/server/display/ColorDisplayService$1;)V -PLcom/android/server/display/ColorDisplayService$ColorMatrixEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; -PLcom/android/server/display/ColorDisplayService$CustomAutoMode$1;-><init>(Lcom/android/server/display/ColorDisplayService$CustomAutoMode;Lcom/android/server/display/ColorDisplayService;)V -PLcom/android/server/display/ColorDisplayService$CustomAutoMode;-><init>(Lcom/android/server/display/ColorDisplayService;)V -PLcom/android/server/display/ColorDisplayService$CustomAutoMode;->onActivated(Z)V -PLcom/android/server/display/ColorDisplayService$CustomAutoMode;->onAlarm()V -PLcom/android/server/display/ColorDisplayService$CustomAutoMode;->onStart()V -PLcom/android/server/display/ColorDisplayService$CustomAutoMode;->updateActivated()V -PLcom/android/server/display/ColorDisplayService$CustomAutoMode;->updateNextAlarm(Ljava/lang/Boolean;Ljava/time/LocalDateTime;)V -PLcom/android/server/display/ColorDisplayService;-><init>(Landroid/content/Context;)V -PLcom/android/server/display/ColorDisplayService;->access$1000(Lcom/android/server/display/ColorDisplayService;)Ljava/lang/Boolean; -PLcom/android/server/display/ColorDisplayService;->access$602(Lcom/android/server/display/ColorDisplayService;Landroid/animation/ValueAnimator;)Landroid/animation/ValueAnimator; -PLcom/android/server/display/ColorDisplayService;->applyTint(Z)V -PLcom/android/server/display/ColorDisplayService;->getDateTimeAfter(Ljava/time/LocalTime;Ljava/time/LocalDateTime;)Ljava/time/LocalDateTime; -PLcom/android/server/display/ColorDisplayService;->getDateTimeBefore(Ljava/time/LocalTime;Ljava/time/LocalDateTime;)Ljava/time/LocalDateTime; -PLcom/android/server/display/ColorDisplayService;->isUserSetupCompleted(Landroid/content/ContentResolver;I)Z -PLcom/android/server/display/ColorDisplayService;->onActivated(Z)V -PLcom/android/server/display/ColorDisplayService;->onAutoModeChanged(I)V -PLcom/android/server/display/ColorDisplayService;->onBootPhase(I)V -PLcom/android/server/display/ColorDisplayService;->onDisplayColorModeChanged(I)V -PLcom/android/server/display/ColorDisplayService;->onStart()V -PLcom/android/server/display/ColorDisplayService;->onStartUser(I)V -PLcom/android/server/display/ColorDisplayService;->onUserChanged(I)V -PLcom/android/server/display/ColorDisplayService;->setCoefficientMatrix(Landroid/content/Context;Z)V -PLcom/android/server/display/ColorDisplayService;->setMatrix(I[F)V -PLcom/android/server/display/ColorDisplayService;->setUp()V +PLcom/android/server/display/color/ColorDisplayService$2;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/DisplayTransformManager;)V +PLcom/android/server/display/color/ColorDisplayService$2;->onAnimationUpdate(Landroid/animation/ValueAnimator;)V +PLcom/android/server/display/color/ColorDisplayService$3;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/DisplayTransformManager;[F)V +PLcom/android/server/display/color/ColorDisplayService$3;->onAnimationEnd(Landroid/animation/Animator;)V +PLcom/android/server/display/color/ColorDisplayService$AutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V +PLcom/android/server/display/color/ColorDisplayService$AutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;Lcom/android/server/display/color/ColorDisplayService$1;)V +PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>()V +PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;-><init>(Lcom/android/server/display/color/ColorDisplayService$1;)V +PLcom/android/server/display/color/ColorDisplayService$ColorMatrixEvaluator;->evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; +PLcom/android/server/display/color/ColorDisplayService$CustomAutoMode$1;-><init>(Lcom/android/server/display/color/ColorDisplayService$CustomAutoMode;Lcom/android/server/display/color/ColorDisplayService;)V +PLcom/android/server/display/color/ColorDisplayService$CustomAutoMode;-><init>(Lcom/android/server/display/color/ColorDisplayService;)V +PLcom/android/server/display/color/ColorDisplayService$CustomAutoMode;->onActivated(Z)V +PLcom/android/server/display/color/ColorDisplayService$CustomAutoMode;->onAlarm()V +PLcom/android/server/display/color/ColorDisplayService$CustomAutoMode;->onStart()V +PLcom/android/server/display/color/ColorDisplayService$CustomAutoMode;->updateActivated()V +PLcom/android/server/display/color/ColorDisplayService$CustomAutoMode;->updateNextAlarm(Ljava/lang/Boolean;Ljava/time/LocalDateTime;)V +PLcom/android/server/display/color/ColorDisplayService;-><init>(Landroid/content/Context;)V +PLcom/android/server/display/color/ColorDisplayService;->access$1000(Lcom/android/server/display/color/ColorDisplayService;)Ljava/lang/Boolean; +PLcom/android/server/display/color/ColorDisplayService;->access$602(Lcom/android/server/display/color/ColorDisplayService;Landroid/animation/ValueAnimator;)Landroid/animation/ValueAnimator; +PLcom/android/server/display/color/ColorDisplayService;->applyTint(Z)V +PLcom/android/server/display/color/ColorDisplayService;->getDateTimeAfter(Ljava/time/LocalTime;Ljava/time/LocalDateTime;)Ljava/time/LocalDateTime; +PLcom/android/server/display/color/ColorDisplayService;->getDateTimeBefore(Ljava/time/LocalTime;Ljava/time/LocalDateTime;)Ljava/time/LocalDateTime; +PLcom/android/server/display/color/ColorDisplayService;->isUserSetupCompleted(Landroid/content/ContentResolver;I)Z +PLcom/android/server/display/color/ColorDisplayService;->onActivated(Z)V +PLcom/android/server/display/color/ColorDisplayService;->onAutoModeChanged(I)V +PLcom/android/server/display/color/ColorDisplayService;->onBootPhase(I)V +PLcom/android/server/display/color/ColorDisplayService;->onDisplayColorModeChanged(I)V +PLcom/android/server/display/color/ColorDisplayService;->onStart()V +PLcom/android/server/display/color/ColorDisplayService;->onStartUser(I)V +PLcom/android/server/display/color/ColorDisplayService;->onUserChanged(I)V +PLcom/android/server/display/color/ColorDisplayService;->setCoefficientMatrix(Landroid/content/Context;Z)V +PLcom/android/server/display/color/ColorDisplayService;->setMatrix(I[F)V +PLcom/android/server/display/color/ColorDisplayService;->setUp()V PLcom/android/server/display/ColorFade$NaturalSurfaceLayout;-><init>(Landroid/hardware/display/DisplayManagerInternal;ILandroid/view/SurfaceControl;)V PLcom/android/server/display/ColorFade$NaturalSurfaceLayout;->dispose()V PLcom/android/server/display/ColorFade$NaturalSurfaceLayout;->onDisplayTransaction()V @@ -10878,17 +10878,17 @@ PLcom/android/server/display/DisplayPowerState;->setColorFadeLevel(F)V PLcom/android/server/display/DisplayPowerState;->setScreenBrightness(I)V PLcom/android/server/display/DisplayPowerState;->setScreenState(I)V PLcom/android/server/display/DisplayPowerState;->waitUntilClean(Ljava/lang/Runnable;)Z -PLcom/android/server/display/DisplayTransformManager;->applyColorMatrix([F)V -PLcom/android/server/display/DisplayTransformManager;->applySaturation(F)V -PLcom/android/server/display/DisplayTransformManager;->computeColorMatrixLocked()[F -PLcom/android/server/display/DisplayTransformManager;->getColorMatrix(I)[F -PLcom/android/server/display/DisplayTransformManager;->needsLinearColorMatrix()Z -PLcom/android/server/display/DisplayTransformManager;->needsLinearColorMatrix(I)Z -PLcom/android/server/display/DisplayTransformManager;->setColorMatrix(I[F)V -PLcom/android/server/display/DisplayTransformManager;->setColorMode(I[F)Z -PLcom/android/server/display/DisplayTransformManager;->setDaltonizerMode(I)V -PLcom/android/server/display/DisplayTransformManager;->setDisplayColor(I)V -PLcom/android/server/display/DisplayTransformManager;->updateConfiguration()V +PLcom/android/server/display/color/DisplayTransformManager;->applyColorMatrix([F)V +PLcom/android/server/display/color/DisplayTransformManager;->applySaturation(F)V +PLcom/android/server/display/color/DisplayTransformManager;->computeColorMatrixLocked()[F +PLcom/android/server/display/color/DisplayTransformManager;->getColorMatrix(I)[F +PLcom/android/server/display/color/DisplayTransformManager;->needsLinearColorMatrix()Z +PLcom/android/server/display/color/DisplayTransformManager;->needsLinearColorMatrix(I)Z +PLcom/android/server/display/color/DisplayTransformManager;->setColorMatrix(I[F)V +PLcom/android/server/display/color/DisplayTransformManager;->setColorMode(I[F)Z +PLcom/android/server/display/color/DisplayTransformManager;->setDaltonizerMode(I)V +PLcom/android/server/display/color/DisplayTransformManager;->setDisplayColor(I)V +PLcom/android/server/display/color/DisplayTransformManager;->updateConfiguration()V PLcom/android/server/display/HysteresisLevels;-><init>([I[I[I)V PLcom/android/server/display/HysteresisLevels;->getBrighteningThreshold(F)F PLcom/android/server/display/HysteresisLevels;->getDarkeningThreshold(F)F @@ -19436,7 +19436,7 @@ SPLcom/android/server/display/DisplayManagerService;->scheduleTraversalLocked(Z) SPLcom/android/server/display/DisplayManagerService;->sendDisplayEventLocked(II)V SPLcom/android/server/display/DisplayManagerService;->updateDisplayStateLocked(Lcom/android/server/display/DisplayDevice;)Ljava/lang/Runnable; SPLcom/android/server/display/DisplayManagerService;->updateLogicalDisplaysLocked()Z -SPLcom/android/server/display/DisplayTransformManager;-><init>()V +SPLcom/android/server/display/color/DisplayTransformManager;-><init>()V SPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;-><init>(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)V SPLcom/android/server/display/LocalDisplayAdapter$DisplayModeRecord;->hasMatchingMode(Landroid/view/SurfaceControl$PhysicalDisplayInfo;)Z SPLcom/android/server/display/LocalDisplayAdapter$HotplugDisplayEventReceiver;-><init>(Lcom/android/server/display/LocalDisplayAdapter;Landroid/os/Looper;)V diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index 01d19c04d97e..1aaaf41679f7 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -96,7 +96,6 @@ import com.android.server.DisplayThread; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.UiThread; -import com.android.server.display.ColorDisplayService.ColorDisplayServiceInternal; import com.android.server.wm.SurfaceAnimationThread; import com.android.server.wm.WindowManagerInternal; @@ -357,7 +356,6 @@ public final class DisplayManagerService extends SystemService { publishBinderService(Context.DISPLAY_SERVICE, new BinderService(), true /*allowIsolated*/); publishLocalService(DisplayManagerInternal.class, new LocalService()); - publishLocalService(DisplayTransformManager.class, new DisplayTransformManager()); } @Override @@ -1535,13 +1533,6 @@ public final class DisplayManagerService extends SystemService { pw.println(); mPersistentDataStore.dump(pw); - - final ColorDisplayServiceInternal cds = LocalServices.getService( - ColorDisplayServiceInternal.class); - if (cds != null) { - pw.println(); - cds.dump(pw); - } } } diff --git a/services/core/java/com/android/server/display/OWNERS b/services/core/java/com/android/server/display/OWNERS index 0d64dbd83a34..25cb5ae0891a 100644 --- a/services/core/java/com/android/server/display/OWNERS +++ b/services/core/java/com/android/server/display/OWNERS @@ -2,5 +2,3 @@ michaelwr@google.com dangittik@google.com hackbod@google.com ogunwale@google.com - -per-file ColorDisplayService.java=christyfranks@google.com diff --git a/services/core/java/com/android/server/display/AppSaturationController.java b/services/core/java/com/android/server/display/color/AppSaturationController.java index 5d5e4f70ea7f..e42be02d4a9e 100644 --- a/services/core/java/com/android/server/display/AppSaturationController.java +++ b/services/core/java/com/android/server/display/color/AppSaturationController.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package com.android.server.display; +package com.android.server.display.color; import android.annotation.UserIdInt; import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; -import com.android.server.display.ColorDisplayService.ColorTransformController; +import com.android.server.display.color.ColorDisplayService.ColorTransformController; import java.io.PrintWriter; import java.lang.ref.WeakReference; diff --git a/services/core/java/com/android/server/display/ColorDisplayService.java b/services/core/java/com/android/server/display/color/ColorDisplayService.java index 7dd3b363810d..b1e5510b3adc 100644 --- a/services/core/java/com/android/server/display/ColorDisplayService.java +++ b/services/core/java/com/android/server/display/color/ColorDisplayService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.display; +package com.android.server.display.color; import static android.hardware.display.ColorDisplayManager.AUTO_MODE_CUSTOM_TIME; import static android.hardware.display.ColorDisplayManager.AUTO_MODE_DISABLED; @@ -24,9 +24,9 @@ import static android.hardware.display.ColorDisplayManager.COLOR_MODE_BOOSTED; import static android.hardware.display.ColorDisplayManager.COLOR_MODE_NATURAL; import static android.hardware.display.ColorDisplayManager.COLOR_MODE_SATURATED; -import static com.android.server.display.DisplayTransformManager.LEVEL_COLOR_MATRIX_DISPLAY_WHITE_BALANCE; -import static com.android.server.display.DisplayTransformManager.LEVEL_COLOR_MATRIX_NIGHT_DISPLAY; -import static com.android.server.display.DisplayTransformManager.LEVEL_COLOR_MATRIX_SATURATION; +import static com.android.server.display.color.DisplayTransformManager.LEVEL_COLOR_MATRIX_DISPLAY_WHITE_BALANCE; +import static com.android.server.display.color.DisplayTransformManager.LEVEL_COLOR_MATRIX_NIGHT_DISPLAY; +import static com.android.server.display.color.DisplayTransformManager.LEVEL_COLOR_MATRIX_SATURATION; import android.Manifest; import android.animation.Animator; @@ -233,6 +233,7 @@ public final class ColorDisplayService extends SystemService { public void onStart() { publishBinderService(Context.COLOR_DISPLAY_SERVICE, new BinderService()); publishLocalService(ColorDisplayServiceInternal.class, new ColorDisplayServiceInternal()); + publishLocalService(DisplayTransformManager.class, new DisplayTransformManager()); } @Override @@ -632,9 +633,9 @@ public final class ColorDisplayService extends SystemService { @VisibleForTesting void updateDisplayWhiteBalanceStatus() { boolean oldActivated = mDisplayWhiteBalanceTintController.isActivated(); - mDisplayWhiteBalanceTintController.setActivated(isDisplayWhiteBalanceSettingEnabled() && - !mNightDisplayTintController.isActivated() && - DisplayTransformManager.needsLinearColorMatrix()); + mDisplayWhiteBalanceTintController.setActivated(isDisplayWhiteBalanceSettingEnabled() + && !mNightDisplayTintController.isActivated() + && DisplayTransformManager.needsLinearColorMatrix()); boolean activated = mDisplayWhiteBalanceTintController.isActivated(); if (mDisplayWhiteBalanceListener != null && oldActivated != activated) { @@ -819,7 +820,7 @@ public final class ColorDisplayService extends SystemService { /** * Get the current color mode from system properties, or return -1 if invalid. * - * See {@link com.android.server.display.DisplayTransformManager} + * See {@link DisplayTransformManager} */ private @ColorMode int getCurrentColorModeFromSystemProperties() { final int displayColorSetting = SystemProperties.getInt("persist.sys.sf.native_mode", 0); @@ -851,7 +852,7 @@ public final class ColorDisplayService extends SystemService { private void dumpInternal(PrintWriter pw) { pw.println("COLOR DISPLAY MANAGER dumpsys (color_display)"); - pw.println("Night Display:"); + pw.println("Night display:"); if (mNightDisplayTintController.isAvailable(getContext())) { pw.println(" Activated: " + mNightDisplayTintController.isActivated()); pw.println(" Color temp: " + mNightDisplayTintController.getColorTemperature()); @@ -923,14 +924,15 @@ public final class ColorDisplayService extends SystemService { if (mLastActivatedTime != null) { // Maintain the existing activated state if within the current period. - if (mLastActivatedTime.isBefore(now) && mLastActivatedTime.isAfter(start) + if (mLastActivatedTime.isBefore(now) + && mLastActivatedTime.isAfter(start) && (mLastActivatedTime.isAfter(end) || now.isBefore(end))) { activate = mNightDisplayTintController.isActivatedSetting(); } } - if (mNightDisplayTintController.isActivatedStateNotSet() || ( - mNightDisplayTintController.isActivated() != activate)) { + if (mNightDisplayTintController.isActivatedStateNotSet() + || (mNightDisplayTintController.isActivated() != activate)) { mNightDisplayTintController.setActivated(activate); } @@ -1305,10 +1307,11 @@ public final class ColorDisplayService extends SystemService { } final class DisplayWhiteBalanceTintController extends TintController { + // Three chromaticity coordinates per color: X, Y, and Z - private final int NUM_VALUES_PER_PRIMARY = 3; + private static final int NUM_VALUES_PER_PRIMARY = 3; // Four colors: red, green, blue, and white - private final int NUM_DISPLAY_PRIMARIES_VALS = 4 * NUM_VALUES_PER_PRIMARY; + private static final int NUM_DISPLAY_PRIMARIES_VALS = 4 * NUM_VALUES_PER_PRIMARY; private final Object mLock = new Object(); @VisibleForTesting @@ -1478,25 +1481,25 @@ public final class ColorDisplayService extends SystemService { pw.println(" mTemperatureMax = " + mTemperatureMax); pw.println(" mTemperatureDefault = " + mTemperatureDefault); pw.println(" mCurrentColorTemperature = " + mCurrentColorTemperature); - pw.println(" mCurrentColorTemperatureXYZ = " + - matrixToString(mCurrentColorTemperatureXYZ, 3)); - pw.println(" mDisplayColorSpaceRGB RGB-to-XYZ = " + - matrixToString(mDisplayColorSpaceRGB.getTransform(), 3)); - pw.println(" mChromaticAdaptationMatrix = " + - matrixToString(mChromaticAdaptationMatrix, 3)); - pw.println(" mDisplayColorSpaceRGB XYZ-to-RGB = " + - matrixToString(mDisplayColorSpaceRGB.getInverseTransform(), 3)); - pw.println(" mMatrixDisplayWhiteBalance = " + - matrixToString(mMatrixDisplayWhiteBalance, 4)); + pw.println(" mCurrentColorTemperatureXYZ = " + + matrixToString(mCurrentColorTemperatureXYZ, 3)); + pw.println(" mDisplayColorSpaceRGB RGB-to-XYZ = " + + matrixToString(mDisplayColorSpaceRGB.getTransform(), 3)); + pw.println(" mChromaticAdaptationMatrix = " + + matrixToString(mChromaticAdaptationMatrix, 3)); + pw.println(" mDisplayColorSpaceRGB XYZ-to-RGB = " + + matrixToString(mDisplayColorSpaceRGB.getInverseTransform(), 3)); + pw.println(" mMatrixDisplayWhiteBalance = " + + matrixToString(mMatrixDisplayWhiteBalance, 4)); } } private ColorSpace.Rgb makeRgbColorSpaceFromXYZ(float[] redGreenBlueXYZ, float[] whiteXYZ) { return new ColorSpace.Rgb( - "Display Color Space", - redGreenBlueXYZ, - whiteXYZ, - 2.2f // gamma, unused for display white balance + "Display Color Space", + redGreenBlueXYZ, + whiteXYZ, + 2.2f // gamma, unused for display white balance ); } @@ -1507,19 +1510,19 @@ public final class ColorDisplayService extends SystemService { } DisplayPrimaries primaries = SurfaceControl.getDisplayNativePrimaries(displayToken); - if (primaries == null || primaries.red == null || primaries.green == null || - primaries.blue == null || primaries.white == null) { + if (primaries == null || primaries.red == null || primaries.green == null + || primaries.blue == null || primaries.white == null) { return null; } return makeRgbColorSpaceFromXYZ( - new float[] { - primaries.red.X, primaries.red.Y, primaries.red.Z, - primaries.green.X, primaries.green.Y, primaries.green.Z, - primaries.blue.X, primaries.blue.Y, primaries.blue.Z, + new float[]{ + primaries.red.X, primaries.red.Y, primaries.red.Z, + primaries.green.X, primaries.green.Y, primaries.green.Z, + primaries.blue.X, primaries.blue.Y, primaries.blue.Z, }, - new float[] { primaries.white.X, primaries.white.Y, primaries.white.Z } - ); + new float[]{primaries.white.X, primaries.white.Y, primaries.white.Z} + ); } private ColorSpace.Rgb getDisplayColorSpaceFromResources(Resources res) { @@ -1540,7 +1543,7 @@ public final class ColorDisplayService extends SystemService { return makeRgbColorSpaceFromXYZ(displayRedGreenBlueXYZ, displayWhiteXYZ); } - }; + } /** * Local service that allows color transforms to be enabled from other system services. @@ -1572,10 +1575,6 @@ public final class ColorDisplayService extends SystemService { return mDisplayWhiteBalanceTintController.isActivated(); } - public void dump(PrintWriter pw) { - mDisplayWhiteBalanceTintController.dump(pw); - } - /** * Adds a {@link WeakReference<ColorTransformController>} for a newly started activity, and * invokes {@link ColorTransformController#applyAppSaturation(float[], float[])} if needed. diff --git a/services/core/java/com/android/server/display/DisplayTransformManager.java b/services/core/java/com/android/server/display/color/DisplayTransformManager.java index ef92401bf3fd..026837f07356 100644 --- a/services/core/java/com/android/server/display/DisplayTransformManager.java +++ b/services/core/java/com/android/server/display/color/DisplayTransformManager.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.display; +package com.android.server.display.color; import android.app.ActivityTaskManager; import android.hardware.display.ColorDisplayManager; @@ -117,12 +117,12 @@ public class DisplayTransformManager { /** * Sets and applies a current color transform matrix for a given level. * <p> - * Note: all color transforms are first composed to a single matrix in ascending order based - * on level before being applied to the display. + * Note: all color transforms are first composed to a single matrix in ascending order based on + * level before being applied to the display. * * @param level the level used to identify and compose the color transform (low -> high) * @param value the 4x4 color transform matrix (in column-major order), or {@code null} to - * remove the color transform matrix associated with the provided level + * remove the color transform matrix associated with the provided level */ public void setColorMatrix(int level, float[] value) { if (value != null && value.length != 16) { @@ -235,13 +235,15 @@ public class DisplayTransformManager { } /** - * Return true when the specified colorMode requires the color matrix to - * work in linear space. + * Return true when the specified colorMode requires the color matrix to work in linear space. */ public static boolean needsLinearColorMatrix(int colorMode) { return colorMode != ColorDisplayManager.COLOR_MODE_SATURATED; } + /** + * Sets color mode and updates night display transform values. + */ public boolean setColorMode(int colorMode, float[] nightDisplayMatrix) { if (colorMode == ColorDisplayManager.COLOR_MODE_NATURAL) { applySaturation(COLOR_SATURATION_NATURAL); @@ -264,8 +266,8 @@ public class DisplayTransformManager { } /** - * Returns whether the screen is color managed via SurfaceFlinger's - * {@link #SURFACE_FLINGER_TRANSACTION_QUERY_COLOR_MANAGED}. + * Returns whether the screen is color managed via SurfaceFlinger's {@link + * #SURFACE_FLINGER_TRANSACTION_QUERY_COLOR_MANAGED}. */ public boolean isDeviceColorManaged() { final IBinder flinger = ServiceManager.getService(SURFACE_FLINGER); diff --git a/services/core/java/com/android/server/display/color/OWNERS b/services/core/java/com/android/server/display/color/OWNERS new file mode 100644 index 000000000000..27adf127d880 --- /dev/null +++ b/services/core/java/com/android/server/display/color/OWNERS @@ -0,0 +1,4 @@ +christyfranks@google.com +justinklaassen@google.com + +per-file DisplayTransformManager.java=michaelwr@google.com
\ No newline at end of file diff --git a/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java b/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java index d95e92b71357..e7181e23f15d 100644 --- a/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java +++ b/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceController.java @@ -22,7 +22,7 @@ import android.util.Spline; import com.android.internal.util.Preconditions; import com.android.server.LocalServices; -import com.android.server.display.ColorDisplayService.ColorDisplayServiceInternal; +import com.android.server.display.color.ColorDisplayService.ColorDisplayServiceInternal; import com.android.server.display.utils.History; import java.io.PrintWriter; diff --git a/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceSettings.java b/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceSettings.java index a53e91c622fb..1b7251c19778 100644 --- a/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceSettings.java +++ b/services/core/java/com/android/server/display/whitebalance/DisplayWhiteBalanceSettings.java @@ -29,8 +29,8 @@ import android.util.Slog; import com.android.internal.util.Preconditions; import com.android.server.LocalServices; -import com.android.server.display.ColorDisplayService; -import com.android.server.display.ColorDisplayService.ColorDisplayServiceInternal; +import com.android.server.display.color.ColorDisplayService; +import com.android.server.display.color.ColorDisplayService.ColorDisplayServiceInternal; import com.android.server.display.whitebalance.DisplayWhiteBalanceController.Callbacks; import java.io.PrintWriter; diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index 88c8b953a2e9..05c4c2793a01 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -118,7 +118,7 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.ToBooleanFunction; import com.android.server.AttributeCache; import com.android.server.LocalServices; -import com.android.server.display.ColorDisplayService; +import com.android.server.display.color.ColorDisplayService; import com.android.server.policy.WindowManagerPolicy; import com.android.server.policy.WindowManagerPolicy.StartingSurface; import com.android.server.wm.RemoteAnimationController.RemoteAnimationRecord; diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 8d88c5a004a9..512a745f5abe 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -89,8 +89,8 @@ import com.android.server.clipboard.ClipboardService; import com.android.server.connectivity.IpConnectivityMetrics; import com.android.server.coverage.CoverageService; import com.android.server.devicepolicy.DevicePolicyManagerService; -import com.android.server.display.ColorDisplayService; import com.android.server.display.DisplayManagerService; +import com.android.server.display.color.ColorDisplayService; import com.android.server.dreams.DreamManagerService; import com.android.server.emergency.EmergencyAffordanceService; import com.android.server.gpu.GpuService; diff --git a/services/tests/servicestests/src/com/android/server/display/AppSaturationControllerTest.java b/services/tests/servicestests/src/com/android/server/display/color/AppSaturationControllerTest.java index e51884429718..7c9a81d2e094 100644 --- a/services/tests/servicestests/src/com/android/server/display/AppSaturationControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/display/color/AppSaturationControllerTest.java @@ -14,9 +14,9 @@ * limitations under the License. */ -package com.android.server.display; +package com.android.server.display.color; -import static com.android.server.display.AppSaturationController.TRANSLATION_VECTOR; +import static com.android.server.display.color.AppSaturationController.TRANSLATION_VECTOR; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -29,7 +29,7 @@ import android.os.UserHandle; import androidx.test.runner.AndroidJUnit4; -import com.android.server.display.ColorDisplayService.ColorTransformController; +import com.android.server.display.color.ColorDisplayService.ColorTransformController; import org.junit.After; import org.junit.Before; diff --git a/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java b/services/tests/servicestests/src/com/android/server/display/color/ColorDisplayServiceTest.java index 01759d2e8f4a..2f427b0e26f9 100644 --- a/services/tests/servicestests/src/com/android/server/display/ColorDisplayServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/display/color/ColorDisplayServiceTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.display; +package com.android.server.display.color; import static com.google.common.truth.Truth.assertWithMessage; @@ -70,7 +70,7 @@ public class ColorDisplayServiceTest { private MockTwilightManager mTwilightManager; - private ColorDisplayService mColorDisplayService; + private ColorDisplayService mCds; private ColorDisplayService.BinderService mBinderService; @BeforeClass @@ -96,17 +96,17 @@ public class ColorDisplayServiceTest { mTwilightManager = new MockTwilightManager(); LocalServices.addService(TwilightManager.class, mTwilightManager); - mColorDisplayService = new ColorDisplayService(mContext); - mBinderService = mColorDisplayService.new BinderService(); + mCds = new ColorDisplayService(mContext); + mBinderService = mCds.new BinderService(); LocalServices.addService(ColorDisplayService.ColorDisplayServiceInternal.class, - mColorDisplayService.new ColorDisplayServiceInternal()); + mCds.new ColorDisplayServiceInternal()); } @After public void tearDown() { LocalServices.removeServiceForTest(TwilightManager.class); - mColorDisplayService = null; + mCds = null; mTwilightManager = null; @@ -1003,7 +1003,7 @@ public class ColorDisplayServiceTest { /* Since we are using FakeSettingsProvider which could not trigger observer change, * force an update here.*/ - mColorDisplayService.updateDisplayWhiteBalanceStatus(); + mCds.updateDisplayWhiteBalanceStatus(); assertDwbActive(false); } @@ -1015,12 +1015,12 @@ public class ColorDisplayServiceTest { setAutoModeTwilight(-120 /* sunsetOffset */, -60 /* sunriseOffset */); setActivated(true /* activated */, -30 /* lastActivatedTimeOffset */); - mColorDisplayService.updateDisplayWhiteBalanceStatus(); + mCds.updateDisplayWhiteBalanceStatus(); assertDwbActive(false); /* Disable nightlight */ setActivated(false /* activated */, -30 /* lastActivatedTimeOffset */); - mColorDisplayService.updateDisplayWhiteBalanceStatus(); + mCds.updateDisplayWhiteBalanceStatus(); assertDwbActive(true); } @@ -1031,48 +1031,48 @@ public class ColorDisplayServiceTest { startService(); mBinderService.setColorMode(ColorDisplayManager.COLOR_MODE_NATURAL); - mColorDisplayService.updateDisplayWhiteBalanceStatus(); + mCds.updateDisplayWhiteBalanceStatus(); assertDwbActive(true); } @Test public void displayWhiteBalance_setTemperatureOverMax() { - int max = mColorDisplayService.mDisplayWhiteBalanceTintController.mTemperatureMax; + int max = mCds.mDisplayWhiteBalanceTintController.mTemperatureMax; ColorDisplayService.ColorDisplayServiceInternal cdsInternal = LocalServices.getService( - ColorDisplayService.ColorDisplayServiceInternal.class); - cdsInternal.setDisplayWhiteBalanceColorTemperature(max+1); + ColorDisplayService.ColorDisplayServiceInternal.class); + cdsInternal.setDisplayWhiteBalanceColorTemperature(max + 1); assertWithMessage("Unexpected temperature set") - .that(mColorDisplayService.mDisplayWhiteBalanceTintController.mCurrentColorTemperature) + .that(mCds.mDisplayWhiteBalanceTintController.mCurrentColorTemperature) .isEqualTo(max); } @Test public void displayWhiteBalance_setTemperatureBelowMin() { - int min = mColorDisplayService.mDisplayWhiteBalanceTintController.mTemperatureMin; + int min = mCds.mDisplayWhiteBalanceTintController.mTemperatureMin; ColorDisplayService.ColorDisplayServiceInternal cdsInternal = LocalServices.getService( - ColorDisplayService.ColorDisplayServiceInternal.class); + ColorDisplayService.ColorDisplayServiceInternal.class); cdsInternal.setDisplayWhiteBalanceColorTemperature(min - 1); assertWithMessage("Unexpected temperature set") - .that(mColorDisplayService.mDisplayWhiteBalanceTintController.mCurrentColorTemperature) + .that(mCds.mDisplayWhiteBalanceTintController.mCurrentColorTemperature) .isEqualTo(min); } @Test public void displayWhiteBalance_setValidTemperature() { - int min = mColorDisplayService.mDisplayWhiteBalanceTintController.mTemperatureMin; - int max = mColorDisplayService.mDisplayWhiteBalanceTintController.mTemperatureMax; + int min = mCds.mDisplayWhiteBalanceTintController.mTemperatureMin; + int max = mCds.mDisplayWhiteBalanceTintController.mTemperatureMax; int valToSet = (min + max) / 2; ColorDisplayService.ColorDisplayServiceInternal cdsInternal = LocalServices.getService( - ColorDisplayService.ColorDisplayServiceInternal.class); + ColorDisplayService.ColorDisplayServiceInternal.class); cdsInternal.setDisplayWhiteBalanceColorTemperature(valToSet); assertWithMessage("Unexpected temperature set") - .that(mColorDisplayService.mDisplayWhiteBalanceTintController.mCurrentColorTemperature) + .that(mCds.mDisplayWhiteBalanceTintController.mCurrentColorTemperature) .isEqualTo(valToSet); } @@ -1171,14 +1171,14 @@ public class ColorDisplayServiceTest { } /** - * Convenience method to start {@link #mColorDisplayService}. + * Convenience method to start {@link #mCds}. */ private void startService() { Secure.putIntForUser(mContext.getContentResolver(), Secure.USER_SETUP_COMPLETE, 1, mUserId); InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> { - mColorDisplayService.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); - mColorDisplayService.onStartUser(mUserId); + mCds.onBootPhase(SystemService.PHASE_BOOT_COMPLETED); + mCds.onStartUser(mUserId); }); } @@ -1224,7 +1224,7 @@ public class ColorDisplayServiceTest { */ private void assertDwbActive(boolean enabled) { assertWithMessage("Incorrect Display White Balance state") - .that(mColorDisplayService.mDisplayWhiteBalanceTintController.isActivated()) + .that(mCds.mDisplayWhiteBalanceTintController.isActivated()) .isEqualTo(enabled); } |