Merge "Simplify accessibility display adjustments"

This commit is contained in:
Alan Viverette
2014-05-12 23:05:48 +00:00
committed by Android (Google) Code Review
4 changed files with 3 additions and 141 deletions

View File

@@ -23498,6 +23498,7 @@ package android.provider {
method public static boolean putLong(android.content.ContentResolver, java.lang.String, long);
method public static boolean putString(android.content.ContentResolver, java.lang.String, java.lang.String);
method public static final deprecated void setLocationProviderEnabled(android.content.ContentResolver, java.lang.String, boolean);
field public static final java.lang.String ACCESSIBILITY_DISPLAY_INVERSION_ENABLED = "accessibility_display_inversion_enabled";
field public static final java.lang.String ACCESSIBILITY_ENABLED = "accessibility_enabled";
field public static final java.lang.String ACCESSIBILITY_SPEAK_PASSWORD = "speak_password";
field public static final deprecated java.lang.String ADB_ENABLED = "adb_enabled";

View File

@@ -3838,21 +3838,10 @@ public final class Settings {
/**
* Setting that specifies whether display color inversion is enabled.
*
* @hide
*/
public static final String ACCESSIBILITY_DISPLAY_INVERSION_ENABLED =
"accessibility_display_inversion_enabled";
/**
* Integer property that specifies the type of color inversion to
* perform. Valid values are defined in AccessibilityManager.
*
* @hide
*/
public static final String ACCESSIBILITY_DISPLAY_INVERSION =
"accessibility_display_inversion";
/**
* Setting that specifies whether the quick setting tile for display
* color space adjustment is enabled.
@@ -3880,44 +3869,6 @@ public final class Settings {
public static final String ACCESSIBILITY_DISPLAY_DALTONIZER =
"accessibility_display_daltonizer";
/**
* Setting that specifies whether the quick setting tile for display
* contrast enhancement is enabled.
*
* @hide
*/
public static final String ACCESSIBILITY_DISPLAY_CONTRAST_QUICK_SETTING_ENABLED =
"accessibility_display_contrast_quick_setting_enabled";
/**
* Setting that specifies whether display contrast enhancement is
* enabled.
*
* @hide
*/
public static final String ACCESSIBILITY_DISPLAY_CONTRAST_ENABLED =
"accessibility_display_contrast_enabled";
/**
* Floating point property that specifies display contrast adjustment.
* Valid range is [0, ...] where 0 is gray, 1 is normal, and higher
* values indicate enhanced contrast.
*
* @hide
*/
public static final String ACCESSIBILITY_DISPLAY_CONTRAST =
"accessibility_display_contrast";
/**
* Floating point property that specifies display brightness adjustment.
* Valid range is [-1, 1] where -1 is black, 0 is default, and 1 is
* white.
*
* @hide
*/
public static final String ACCESSIBILITY_DISPLAY_BRIGHTNESS =
"accessibility_display_brightness";
/**
* The timout for considering a press to be a long press in milliseconds.
* @hide

View File

@@ -3698,17 +3698,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
private final Uri mEnhancedWebAccessibilityUri = Settings.Secure
.getUriFor(Settings.Secure.ACCESSIBILITY_SCRIPT_INJECTION);
private final Uri mDisplayContrastEnabledUri = Settings.Secure.getUriFor(
Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST_ENABLED);
private final Uri mDisplayContrastUri = Settings.Secure.getUriFor(
Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST);
private final Uri mDisplayBrightnessUri = Settings.Secure.getUriFor(
Settings.Secure.ACCESSIBILITY_DISPLAY_BRIGHTNESS);
private final Uri mDisplayInversionEnabledUri = Settings.Secure.getUriFor(
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
private final Uri mDisplayInversionUri = Settings.Secure.getUriFor(
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION);
private final Uri mDisplayDaltonizerEnabledUri = Settings.Secure.getUriFor(
Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED);
@@ -3733,16 +3724,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(mEnhancedWebAccessibilityUri,
false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(
mDisplayContrastEnabledUri, false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(
mDisplayContrastUri, false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(
mDisplayBrightnessUri, false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(
mDisplayInversionEnabledUri, false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(
mDisplayInversionUri, false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(
mDisplayDaltonizerEnabledUri, false, this, UserHandle.USER_ALL);
contentResolver.registerContentObserver(
@@ -3823,12 +3806,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub {
}
}
}
} else if (mDisplayContrastEnabledUri.equals(uri)
|| mDisplayInversionEnabledUri.equals(uri)
} else if (mDisplayInversionEnabledUri.equals(uri)
|| mDisplayDaltonizerEnabledUri.equals(uri)
|| mDisplayContrastUri.equals(uri)
|| mDisplayBrightnessUri.equals(uri)
|| mDisplayInversionUri.equals(uri)
|| mDisplayDaltonizerUri.equals(uri)) {
synchronized (mLock) {
// Profiles share the accessibility state of the parent. Therefore,

View File

@@ -41,22 +41,6 @@ class DisplayAdjustmentUtils {
0, 0, 0, 1
};
/** Matrix and offset used for standard display inversion. */
private static final float[] INVERSION_MATRIX_STANDARD = new float[] {
-1, 0, 0, 0,
0, -1, 0, 0,
0, 0, -1, 0,
1, 1, 1, 1
};
/** Matrix and offset used for hue-only display inversion. */
private static final float[] INVERSION_MATRIX_HUE_ONLY = new float[] {
0, .5f, .5f, 0,
.5f, 0, .5f, 0,
.5f, .5f, 0, 0,
0, 0, 0, 1
};
/** Matrix and offset used for value-only display inversion. */
private static final float[] INVERSION_MATRIX_VALUE_ONLY = new float[] {
0, -.5f, -.5f, 0,
@@ -65,15 +49,6 @@ class DisplayAdjustmentUtils {
1, 1, 1, 1
};
/** Default contrast for display contrast enhancement. */
private static final float DEFAULT_DISPLAY_CONTRAST = 2;
/** Default brightness for display contrast enhancement. */
private static final float DEFAULT_DISPLAY_BRIGHTNESS = 0;
/** Default inversion mode for display color inversion. */
private static final int DEFAULT_DISPLAY_INVERSION = AccessibilityManager.INVERSION_STANDARD;
/** Default inversion mode for display color correction. */
private static final int DEFAULT_DISPLAY_DALTONIZER =
AccessibilityManager.DALTONIZER_CORRECT_DEUTERANOMALY;
@@ -88,11 +63,6 @@ class DisplayAdjustmentUtils {
boolean hasColorTransform = Settings.Secure.getIntForUser(
cr, Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, 0, userId) == 1;
if (!hasColorTransform) {
hasColorTransform |= Settings.Secure.getIntForUser(
cr, Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST_ENABLED, 0, userId) == 1;
}
if (!hasColorTransform) {
hasColorTransform |= Settings.Secure.getIntForUser(
cr, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0, userId) == 1;
@@ -115,21 +85,7 @@ class DisplayAdjustmentUtils {
final boolean inversionEnabled = Settings.Secure.getIntForUser(
cr, Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED, 0, userId) == 1;
if (inversionEnabled) {
final int inversionMode = Settings.Secure.getIntForUser(cr,
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION, DEFAULT_DISPLAY_INVERSION,
userId);
final float[] inversionMatrix;
switch (inversionMode) {
case AccessibilityManager.INVERSION_HUE_ONLY:
inversionMatrix = INVERSION_MATRIX_HUE_ONLY;
break;
case AccessibilityManager.INVERSION_VALUE_ONLY:
inversionMatrix = INVERSION_MATRIX_VALUE_ONLY;
break;
default:
inversionMatrix = INVERSION_MATRIX_STANDARD;
}
final float[] inversionMatrix = INVERSION_MATRIX_VALUE_ONLY;
Matrix.multiplyMM(outputMatrix, 0, colorMatrix, 0, inversionMatrix, 0);
colorMatrix = outputMatrix;
@@ -138,31 +94,6 @@ class DisplayAdjustmentUtils {
hasColorTransform = true;
}
final boolean contrastEnabled = Settings.Secure.getIntForUser(
cr, Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST_ENABLED, 0, userId) == 1;
if (contrastEnabled) {
final float contrast = Settings.Secure.getFloatForUser(cr,
Settings.Secure.ACCESSIBILITY_DISPLAY_CONTRAST, DEFAULT_DISPLAY_CONTRAST,
userId);
final float brightness = Settings.Secure.getFloatForUser(cr,
Settings.Secure.ACCESSIBILITY_DISPLAY_BRIGHTNESS, DEFAULT_DISPLAY_BRIGHTNESS,
userId);
final float off = brightness * contrast - 0.5f * contrast + 0.5f;
final float[] contrastMatrix = {
contrast, 0, 0, 0,
0, contrast, 0, 0,
0, 0, contrast, 0,
off, off, off, 1
};
Matrix.multiplyMM(outputMatrix, 0, colorMatrix, 0, contrastMatrix, 0);
colorMatrix = outputMatrix;
outputMatrix = colorMatrix;
hasColorTransform = true;
}
final boolean daltonizerEnabled = Settings.Secure.getIntForUser(
cr, Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, 0, userId) != 0;
if (daltonizerEnabled) {