Loading core/java/android/hardware/display/ColorDisplayManager.java +301 −0 Original line number Diff line number Diff line Loading @@ -24,15 +24,19 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.content.Context; import android.metrics.LogMaker; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager.ServiceNotFoundException; import com.android.internal.R; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.time.LocalTime; /** * Manages the display's color transforms and modes. Loading Loading @@ -81,7 +85,43 @@ public final class ColorDisplayManager { @SystemApi public static final int CAPABILITY_HARDWARE_ACCELERATION_PER_APP = 0x4; /** * @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef({ AUTO_MODE_DISABLED, AUTO_MODE_CUSTOM_TIME, AUTO_MODE_TWILIGHT }) public @interface AutoMode {} /** * Auto mode value to prevent Night display from being automatically activated. It can still * be activated manually via {@link #setNightDisplayActivated(boolean)}. * * @see #setNightDisplayAutoMode(int) * * @hide */ public static final int AUTO_MODE_DISABLED = 0; /** * Auto mode value to automatically activate Night display at a specific start and end time. * * @see #setNightDisplayAutoMode(int) * @see #setNightDisplayCustomStartTime(LocalTime) * @see #setNightDisplayCustomEndTime(LocalTime) * * @hide */ public static final int AUTO_MODE_CUSTOM_TIME = 1; /** * Auto mode value to automatically activate Night display from sunset to sunrise. * * @see #setNightDisplayAutoMode(int) * * @hide */ public static final int AUTO_MODE_TWILIGHT = 2; private final ColorDisplayManagerInternal mManager; private MetricsLogger mMetricsLogger; /** * @hide Loading @@ -90,6 +130,150 @@ public final class ColorDisplayManager { mManager = ColorDisplayManagerInternal.getInstance(); } /** * (De)activates the night display transform. * * @hide */ @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS) public boolean setNightDisplayActivated(boolean activated) { return mManager.setNightDisplayActivated(activated); } /** * Returns whether the night display transform is currently active. * * @hide */ public boolean isNightDisplayActivated() { return mManager.isNightDisplayActivated(); } /** * Sets the color temperature of the night display transform. * * @hide */ @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS) public boolean setNightDisplayColorTemperature(int temperature) { return mManager.setNightDisplayColorTemperature(temperature); } /** * Gets the color temperature of the night display transform. * * @hide */ public int getNightDisplayColorTemperature() { return mManager.getNightDisplayColorTemperature(); } /** * Returns the current auto mode value controlling when Night display will be automatically * activated. One of {@link #AUTO_MODE_DISABLED}, {@link #AUTO_MODE_CUSTOM_TIME}, or * {@link #AUTO_MODE_TWILIGHT}. * * @hide */ public @AutoMode int getNightDisplayAutoMode() { return mManager.getNightDisplayAutoMode(); } /** * Returns the current auto mode value, without validation, or {@code 1} if the auto mode has * never been set. * * @hide */ public int getNightDisplayAutoModeRaw() { return mManager.getNightDisplayAutoModeRaw(); } /** * Sets the current auto mode value controlling when Night display will be automatically * activated. One of {@link #AUTO_MODE_DISABLED}, {@link #AUTO_MODE_CUSTOM_TIME}, or * {@link #AUTO_MODE_TWILIGHT}. * * @param autoMode the new auto mode to use * @return {@code true} if new auto mode was set successfully * * @hide */ public boolean setNightDisplayAutoMode(@AutoMode int autoMode) { if (autoMode != AUTO_MODE_DISABLED && autoMode != AUTO_MODE_CUSTOM_TIME && autoMode != AUTO_MODE_TWILIGHT) { throw new IllegalArgumentException("Invalid autoMode: " + autoMode); } if (mManager.getNightDisplayAutoMode() != autoMode) { getMetricsLogger().write(new LogMaker( MetricsEvent.ACTION_NIGHT_DISPLAY_AUTO_MODE_CHANGED) .setType(MetricsEvent.TYPE_ACTION) .setSubtype(autoMode)); } return mManager.setNightDisplayAutoMode(autoMode); } /** * Returns the local time when Night display will be automatically activated when using * {@link ColorDisplayManager#AUTO_MODE_CUSTOM_TIME}. * * @hide */ public @NonNull LocalTime getNightDisplayCustomStartTime() { return mManager.getNightDisplayCustomStartTime().getLocalTime(); } /** * Sets the local time when Night display will be automatically activated when using * {@link ColorDisplayManager#AUTO_MODE_CUSTOM_TIME}. * * @param startTime the local time to automatically activate Night display * @return {@code true} if the new custom start time was set successfully * * @hide */ public boolean setNightDisplayCustomStartTime(@NonNull LocalTime startTime) { if (startTime == null) { throw new IllegalArgumentException("startTime cannot be null"); } getMetricsLogger().write(new LogMaker( MetricsEvent.ACTION_NIGHT_DISPLAY_AUTO_MODE_CUSTOM_TIME_CHANGED) .setType(MetricsEvent.TYPE_ACTION) .setSubtype(0)); return mManager.setNightDisplayCustomStartTime(new Time(startTime)); } /** * Returns the local time when Night display will be automatically deactivated when using * {@link #AUTO_MODE_CUSTOM_TIME}. * * @hide */ public @NonNull LocalTime getNightDisplayCustomEndTime() { return mManager.getNightDisplayCustomEndTime().getLocalTime(); } /** * Sets the local time when Night display will be automatically deactivated when using * {@link #AUTO_MODE_CUSTOM_TIME}. * * @param endTime the local time to automatically deactivate Night display * @return {@code true} if the new custom end time was set successfully * * @hide */ public boolean setNightDisplayCustomEndTime(@NonNull LocalTime endTime) { if (endTime == null) { throw new IllegalArgumentException("endTime cannot be null"); } getMetricsLogger().write(new LogMaker( MetricsEvent.ACTION_NIGHT_DISPLAY_AUTO_MODE_CUSTOM_TIME_CHANGED) .setType(MetricsEvent.TYPE_ACTION) .setSubtype(1)); return mManager.setNightDisplayCustomEndTime(new Time(endTime)); } /** * Returns whether the device has a wide color gamut display. * Loading Loading @@ -137,6 +321,28 @@ public final class ColorDisplayManager { return context.getResources().getBoolean(R.bool.config_nightDisplayAvailable); } /** * Returns the minimum allowed color temperature (in Kelvin) to tint the display when * activated. * * @hide */ public static int getMinimumColorTemperature(Context context) { return context.getResources() .getInteger(R.integer.config_nightDisplayColorTemperatureMin); } /** * Returns the maximum allowed color temperature (in Kelvin) to tint the display when * activated. * * @hide */ public static int getMaximumColorTemperature(Context context) { return context.getResources() .getInteger(R.integer.config_nightDisplayColorTemperatureMax); } /** * Returns {@code true} if display white balance is supported by the device. * Loading Loading @@ -167,6 +373,13 @@ public final class ColorDisplayManager { return mManager.getTransformCapabilities(); } private MetricsLogger getMetricsLogger() { if (mMetricsLogger == null) { mMetricsLogger = new MetricsLogger(); } return mMetricsLogger; } private static class ColorDisplayManagerInternal { private static ColorDisplayManagerInternal sInstance; Loading @@ -192,6 +405,94 @@ public final class ColorDisplayManager { } } boolean isNightDisplayActivated() { try { return mCdm.isNightDisplayActivated(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayActivated(boolean activated) { try { return mCdm.setNightDisplayActivated(activated); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } int getNightDisplayColorTemperature() { try { return mCdm.getNightDisplayColorTemperature(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayColorTemperature(int temperature) { try { return mCdm.setNightDisplayColorTemperature(temperature); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } int getNightDisplayAutoMode() { try { return mCdm.getNightDisplayAutoMode(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } int getNightDisplayAutoModeRaw() { try { return mCdm.getNightDisplayAutoModeRaw(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayAutoMode(int autoMode) { try { return mCdm.setNightDisplayAutoMode(autoMode); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } Time getNightDisplayCustomStartTime() { try { return mCdm.getNightDisplayCustomStartTime(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayCustomStartTime(Time startTime) { try { return mCdm.setNightDisplayCustomStartTime(startTime); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } Time getNightDisplayCustomEndTime() { try { return mCdm.getNightDisplayCustomEndTime(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayCustomEndTime(Time endTime) { try { return mCdm.setNightDisplayCustomEndTime(endTime); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean isDeviceColorManaged() { try { return mCdm.isDeviceColorManaged(); Loading core/java/android/hardware/display/IColorDisplayManager.aidl +14 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.hardware.display; import android.hardware.display.Time; /** @hide */ interface IColorDisplayManager { boolean isDeviceColorManaged(); Loading @@ -24,4 +26,16 @@ interface IColorDisplayManager { boolean setAppSaturationLevel(String packageName, int saturationLevel); int getTransformCapabilities(); boolean isNightDisplayActivated(); boolean setNightDisplayActivated(boolean activated); int getNightDisplayColorTemperature(); boolean setNightDisplayColorTemperature(int temperature); int getNightDisplayAutoMode(); int getNightDisplayAutoModeRaw(); boolean setNightDisplayAutoMode(int autoMode); Time getNightDisplayCustomStartTime(); boolean setNightDisplayCustomStartTime(in Time time); Time getNightDisplayCustomEndTime(); boolean setNightDisplayCustomEndTime(in Time time); } No newline at end of file core/java/android/hardware/display/Time.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.display; parcelable Time; No newline at end of file core/java/android/hardware/display/Time.java 0 → 100644 +77 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.display; import android.os.Parcel; import android.os.Parcelable; import java.time.LocalTime; /** * @hide */ public final class Time implements Parcelable { private final int mHour; private final int mMinute; private final int mSecond; private final int mNano; public Time(LocalTime localTime) { mHour = localTime.getHour(); mMinute = localTime.getMinute(); mSecond = localTime.getSecond(); mNano = localTime.getNano(); } public Time(Parcel parcel) { mHour = parcel.readInt(); mMinute = parcel.readInt(); mSecond = parcel.readInt(); mNano = parcel.readInt(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int parcelableFlags) { parcel.writeInt(mHour); parcel.writeInt(mMinute); parcel.writeInt(mSecond); parcel.writeInt(mNano); } public LocalTime getLocalTime() { return LocalTime.of(mHour, mMinute, mSecond, mNano); } public static final Parcelable.Creator<Time> CREATOR = new Parcelable.Creator<Time>() { @Override public Time createFromParcel(Parcel source) { return new Time(source); } @Override public Time[] newArray(int size) { return new Time[size]; } }; } core/java/com/android/internal/app/ColorDisplayController.java +30 −174 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/java/android/hardware/display/ColorDisplayManager.java +301 −0 Original line number Diff line number Diff line Loading @@ -24,15 +24,19 @@ import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.content.Context; import android.metrics.LogMaker; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager.ServiceNotFoundException; import com.android.internal.R; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.time.LocalTime; /** * Manages the display's color transforms and modes. Loading Loading @@ -81,7 +85,43 @@ public final class ColorDisplayManager { @SystemApi public static final int CAPABILITY_HARDWARE_ACCELERATION_PER_APP = 0x4; /** * @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef({ AUTO_MODE_DISABLED, AUTO_MODE_CUSTOM_TIME, AUTO_MODE_TWILIGHT }) public @interface AutoMode {} /** * Auto mode value to prevent Night display from being automatically activated. It can still * be activated manually via {@link #setNightDisplayActivated(boolean)}. * * @see #setNightDisplayAutoMode(int) * * @hide */ public static final int AUTO_MODE_DISABLED = 0; /** * Auto mode value to automatically activate Night display at a specific start and end time. * * @see #setNightDisplayAutoMode(int) * @see #setNightDisplayCustomStartTime(LocalTime) * @see #setNightDisplayCustomEndTime(LocalTime) * * @hide */ public static final int AUTO_MODE_CUSTOM_TIME = 1; /** * Auto mode value to automatically activate Night display from sunset to sunrise. * * @see #setNightDisplayAutoMode(int) * * @hide */ public static final int AUTO_MODE_TWILIGHT = 2; private final ColorDisplayManagerInternal mManager; private MetricsLogger mMetricsLogger; /** * @hide Loading @@ -90,6 +130,150 @@ public final class ColorDisplayManager { mManager = ColorDisplayManagerInternal.getInstance(); } /** * (De)activates the night display transform. * * @hide */ @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS) public boolean setNightDisplayActivated(boolean activated) { return mManager.setNightDisplayActivated(activated); } /** * Returns whether the night display transform is currently active. * * @hide */ public boolean isNightDisplayActivated() { return mManager.isNightDisplayActivated(); } /** * Sets the color temperature of the night display transform. * * @hide */ @RequiresPermission(android.Manifest.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS) public boolean setNightDisplayColorTemperature(int temperature) { return mManager.setNightDisplayColorTemperature(temperature); } /** * Gets the color temperature of the night display transform. * * @hide */ public int getNightDisplayColorTemperature() { return mManager.getNightDisplayColorTemperature(); } /** * Returns the current auto mode value controlling when Night display will be automatically * activated. One of {@link #AUTO_MODE_DISABLED}, {@link #AUTO_MODE_CUSTOM_TIME}, or * {@link #AUTO_MODE_TWILIGHT}. * * @hide */ public @AutoMode int getNightDisplayAutoMode() { return mManager.getNightDisplayAutoMode(); } /** * Returns the current auto mode value, without validation, or {@code 1} if the auto mode has * never been set. * * @hide */ public int getNightDisplayAutoModeRaw() { return mManager.getNightDisplayAutoModeRaw(); } /** * Sets the current auto mode value controlling when Night display will be automatically * activated. One of {@link #AUTO_MODE_DISABLED}, {@link #AUTO_MODE_CUSTOM_TIME}, or * {@link #AUTO_MODE_TWILIGHT}. * * @param autoMode the new auto mode to use * @return {@code true} if new auto mode was set successfully * * @hide */ public boolean setNightDisplayAutoMode(@AutoMode int autoMode) { if (autoMode != AUTO_MODE_DISABLED && autoMode != AUTO_MODE_CUSTOM_TIME && autoMode != AUTO_MODE_TWILIGHT) { throw new IllegalArgumentException("Invalid autoMode: " + autoMode); } if (mManager.getNightDisplayAutoMode() != autoMode) { getMetricsLogger().write(new LogMaker( MetricsEvent.ACTION_NIGHT_DISPLAY_AUTO_MODE_CHANGED) .setType(MetricsEvent.TYPE_ACTION) .setSubtype(autoMode)); } return mManager.setNightDisplayAutoMode(autoMode); } /** * Returns the local time when Night display will be automatically activated when using * {@link ColorDisplayManager#AUTO_MODE_CUSTOM_TIME}. * * @hide */ public @NonNull LocalTime getNightDisplayCustomStartTime() { return mManager.getNightDisplayCustomStartTime().getLocalTime(); } /** * Sets the local time when Night display will be automatically activated when using * {@link ColorDisplayManager#AUTO_MODE_CUSTOM_TIME}. * * @param startTime the local time to automatically activate Night display * @return {@code true} if the new custom start time was set successfully * * @hide */ public boolean setNightDisplayCustomStartTime(@NonNull LocalTime startTime) { if (startTime == null) { throw new IllegalArgumentException("startTime cannot be null"); } getMetricsLogger().write(new LogMaker( MetricsEvent.ACTION_NIGHT_DISPLAY_AUTO_MODE_CUSTOM_TIME_CHANGED) .setType(MetricsEvent.TYPE_ACTION) .setSubtype(0)); return mManager.setNightDisplayCustomStartTime(new Time(startTime)); } /** * Returns the local time when Night display will be automatically deactivated when using * {@link #AUTO_MODE_CUSTOM_TIME}. * * @hide */ public @NonNull LocalTime getNightDisplayCustomEndTime() { return mManager.getNightDisplayCustomEndTime().getLocalTime(); } /** * Sets the local time when Night display will be automatically deactivated when using * {@link #AUTO_MODE_CUSTOM_TIME}. * * @param endTime the local time to automatically deactivate Night display * @return {@code true} if the new custom end time was set successfully * * @hide */ public boolean setNightDisplayCustomEndTime(@NonNull LocalTime endTime) { if (endTime == null) { throw new IllegalArgumentException("endTime cannot be null"); } getMetricsLogger().write(new LogMaker( MetricsEvent.ACTION_NIGHT_DISPLAY_AUTO_MODE_CUSTOM_TIME_CHANGED) .setType(MetricsEvent.TYPE_ACTION) .setSubtype(1)); return mManager.setNightDisplayCustomEndTime(new Time(endTime)); } /** * Returns whether the device has a wide color gamut display. * Loading Loading @@ -137,6 +321,28 @@ public final class ColorDisplayManager { return context.getResources().getBoolean(R.bool.config_nightDisplayAvailable); } /** * Returns the minimum allowed color temperature (in Kelvin) to tint the display when * activated. * * @hide */ public static int getMinimumColorTemperature(Context context) { return context.getResources() .getInteger(R.integer.config_nightDisplayColorTemperatureMin); } /** * Returns the maximum allowed color temperature (in Kelvin) to tint the display when * activated. * * @hide */ public static int getMaximumColorTemperature(Context context) { return context.getResources() .getInteger(R.integer.config_nightDisplayColorTemperatureMax); } /** * Returns {@code true} if display white balance is supported by the device. * Loading Loading @@ -167,6 +373,13 @@ public final class ColorDisplayManager { return mManager.getTransformCapabilities(); } private MetricsLogger getMetricsLogger() { if (mMetricsLogger == null) { mMetricsLogger = new MetricsLogger(); } return mMetricsLogger; } private static class ColorDisplayManagerInternal { private static ColorDisplayManagerInternal sInstance; Loading @@ -192,6 +405,94 @@ public final class ColorDisplayManager { } } boolean isNightDisplayActivated() { try { return mCdm.isNightDisplayActivated(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayActivated(boolean activated) { try { return mCdm.setNightDisplayActivated(activated); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } int getNightDisplayColorTemperature() { try { return mCdm.getNightDisplayColorTemperature(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayColorTemperature(int temperature) { try { return mCdm.setNightDisplayColorTemperature(temperature); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } int getNightDisplayAutoMode() { try { return mCdm.getNightDisplayAutoMode(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } int getNightDisplayAutoModeRaw() { try { return mCdm.getNightDisplayAutoModeRaw(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayAutoMode(int autoMode) { try { return mCdm.setNightDisplayAutoMode(autoMode); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } Time getNightDisplayCustomStartTime() { try { return mCdm.getNightDisplayCustomStartTime(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayCustomStartTime(Time startTime) { try { return mCdm.setNightDisplayCustomStartTime(startTime); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } Time getNightDisplayCustomEndTime() { try { return mCdm.getNightDisplayCustomEndTime(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean setNightDisplayCustomEndTime(Time endTime) { try { return mCdm.setNightDisplayCustomEndTime(endTime); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } boolean isDeviceColorManaged() { try { return mCdm.isDeviceColorManaged(); Loading
core/java/android/hardware/display/IColorDisplayManager.aidl +14 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package android.hardware.display; import android.hardware.display.Time; /** @hide */ interface IColorDisplayManager { boolean isDeviceColorManaged(); Loading @@ -24,4 +26,16 @@ interface IColorDisplayManager { boolean setAppSaturationLevel(String packageName, int saturationLevel); int getTransformCapabilities(); boolean isNightDisplayActivated(); boolean setNightDisplayActivated(boolean activated); int getNightDisplayColorTemperature(); boolean setNightDisplayColorTemperature(int temperature); int getNightDisplayAutoMode(); int getNightDisplayAutoModeRaw(); boolean setNightDisplayAutoMode(int autoMode); Time getNightDisplayCustomStartTime(); boolean setNightDisplayCustomStartTime(in Time time); Time getNightDisplayCustomEndTime(); boolean setNightDisplayCustomEndTime(in Time time); } No newline at end of file
core/java/android/hardware/display/Time.aidl 0 → 100644 +19 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.display; parcelable Time; No newline at end of file
core/java/android/hardware/display/Time.java 0 → 100644 +77 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.display; import android.os.Parcel; import android.os.Parcelable; import java.time.LocalTime; /** * @hide */ public final class Time implements Parcelable { private final int mHour; private final int mMinute; private final int mSecond; private final int mNano; public Time(LocalTime localTime) { mHour = localTime.getHour(); mMinute = localTime.getMinute(); mSecond = localTime.getSecond(); mNano = localTime.getNano(); } public Time(Parcel parcel) { mHour = parcel.readInt(); mMinute = parcel.readInt(); mSecond = parcel.readInt(); mNano = parcel.readInt(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int parcelableFlags) { parcel.writeInt(mHour); parcel.writeInt(mMinute); parcel.writeInt(mSecond); parcel.writeInt(mNano); } public LocalTime getLocalTime() { return LocalTime.of(mHour, mMinute, mSecond, mNano); } public static final Parcelable.Creator<Time> CREATOR = new Parcelable.Creator<Time>() { @Override public Time createFromParcel(Parcel source) { return new Time(source); } @Override public Time[] newArray(int size) { return new Time[size]; } }; }
core/java/com/android/internal/app/ColorDisplayController.java +30 −174 File changed.Preview size limit exceeded, changes collapsed. Show changes