aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Paik <spaik@google.com>2018-06-21 18:31:00 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-06-21 18:31:00 +0000
commitde7be61a2dfb41c54550a4edcde65721f38d5422 (patch)
treee30a768f05baf47493b420c4c1435ecc97c8f3d9
parent12eecfd9600c0f48b3652733f60c29e70ad6650b (diff)
parent8b5ee2c3c7df38b4d6595d62e6adadbc4ad3d733 (diff)
downloadCar-de7be61a2dfb41c54550a4edcde65721f38d5422.tar.gz
Merge "Fix display brightness scaling" into pi-dev
-rw-r--r--service/Android.mk6
-rw-r--r--service/src/com/android/car/systeminterface/DisplayInterface.java44
2 files changed, 21 insertions, 29 deletions
diff --git a/service/Android.mk b/service/Android.mk
index c03042d60a..d9ae9ecc71 100644
--- a/service/Android.mk
+++ b/service/Android.mk
@@ -27,6 +27,8 @@ include $(CLEAR_VARS)
LOCAL_SRC_FILES := $(car_service_sources)
+LOCAL_USE_AAPT2 := true
+
LOCAL_PACKAGE_NAME := CarService
LOCAL_PRIVATE_PLATFORM_APIS := true
@@ -47,6 +49,8 @@ LOCAL_STATIC_JAVA_LIBRARIES += \
car-systemtest \
com.android.car.procfsinspector-client \
+include frameworks/base/packages/SettingsLib/common.mk
+
include $(BUILD_PACKAGE)
#####################################################################################
@@ -72,6 +76,8 @@ LOCAL_STATIC_JAVA_LIBRARIES += \
car-systemtest \
com.android.car.procfsinspector-client \
+include frameworks/base/packages/SettingsLib/common.mk
+
include $(BUILD_STATIC_JAVA_LIBRARY)
include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/service/src/com/android/car/systeminterface/DisplayInterface.java b/service/src/com/android/car/systeminterface/DisplayInterface.java
index 015f54dc27..8dc7bd4044 100644
--- a/service/src/com/android/car/systeminterface/DisplayInterface.java
+++ b/service/src/com/android/car/systeminterface/DisplayInterface.java
@@ -16,6 +16,10 @@
package com.android.car.systeminterface;
+import static com.android.settingslib.display.BrightnessUtils.GAMMA_SPACE_MAX;
+import static com.android.settingslib.display.BrightnessUtils.convertGammaToLinear;
+import static com.android.settingslib.display.BrightnessUtils.convertLinearToGamma;
+
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
@@ -60,20 +64,18 @@ public interface DisplayInterface {
new ContentObserver(new Handler(Looper.getMainLooper())) {
@Override
public void onChange(boolean selfChange) {
- int brightness = mMinimumBacklight;
- int range = mMaximumBacklight - mMinimumBacklight;
+ int linear = GAMMA_SPACE_MAX;
try {
- brightness = System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS);
+ linear = System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException e) {
Log.e(CarLog.TAG_POWER, "Could not get SCREEN_BRIGHTNESS: " + e);
}
- // Convert brightness from 0-255 to 0-100%
- brightness -= mMinimumBacklight;
- brightness *= 100;
- brightness += (range + 1) / 2;
- brightness /= range;
- mService.sendDisplayBrightness(brightness);
+ int gamma = convertLinearToGamma(linear, mMinimumBacklight,
+ mMaximumBacklight);
+ int percentBright = (gamma * 100 + ((GAMMA_SPACE_MAX + 1) / 2))
+ / GAMMA_SPACE_MAX;
+ mService.sendDisplayBrightness(percentBright);
}
};
@@ -124,26 +126,10 @@ public interface DisplayInterface {
}
@Override
- public void setDisplayBrightness(int brightness) {
- // Brightness is set in percent. Need to convert this into 0-255 scale. The actual
- // brightness algorithm should look like this:
- //
- // newBrightness = (brightness * (max - min)) + min
- //
- // Since we're using integer arithmetic, do the multiplication first, then add 50 to
- // round up as needed.
- brightness *= mMaximumBacklight - mMinimumBacklight; // Multiply by full range
- brightness += 50; // Integer rounding
- brightness /= 100; // Divide by 100
- brightness += mMinimumBacklight;
- // Range checking
- if (brightness < mMinimumBacklight) {
- brightness = mMinimumBacklight;
- } else if (brightness > mMaximumBacklight) {
- brightness = mMaximumBacklight;
- }
- // Set the brightness
- System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, brightness);
+ public void setDisplayBrightness(int percentBright) {
+ int gamma = (percentBright * GAMMA_SPACE_MAX + 50) / 100;
+ int linear = convertGammaToLinear(gamma, mMinimumBacklight, mMaximumBacklight);
+ System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, linear);
}
@Override