Merge "Move ColorDisplayService to color subdirectory"

This commit is contained in:
Christine Franks
2019-02-27 22:04:24 +00:00
committed by Android (Google) Code Review
14 changed files with 138 additions and 144 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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);
}
}
}

View File

@@ -2,5 +2,3 @@ michaelwr@google.com
dangittik@google.com
hackbod@google.com
ogunwale@google.com
per-file ColorDisplayService.java=christyfranks@google.com

View File

@@ -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;

View File

@@ -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.

View File

@@ -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);

View File

@@ -0,0 +1,4 @@
christyfranks@google.com
justinklaassen@google.com
per-file DisplayTransformManager.java=michaelwr@google.com

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);
}