aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2016-11-22 22:48:35 -0800
committerSteve Kondik <steve@cyngn.com>2016-11-22 22:48:35 -0800
commite8aecd3a8a9de5a2c1ced7c2c42761e7293c1b84 (patch)
tree4342298cd62cd015dfb34f2a40e0244029284259 /tests
parent7f19e742c1813ae5b3ac5569f96144feb020db42 (diff)
downloadlineage-sdk-e8aecd3a8a9de5a2c1ced7c2c42761e7293c1b84.tar.gz
lineage-sdk-e8aecd3a8a9de5a2c1ced7c2c42761e7293c1b84.tar.bz2
lineage-sdk-e8aecd3a8a9de5a2c1ced7c2c42761e7293c1b84.zip
cmsdk: Ensure CMHW feature constants aren't optimized out
* The preferences constraints system uses reflection to look up fields via strings, we need to ensure they are not optimized out by Proguard. Alternatively we can manually enumerate them, but it's yet another list of constants to maintain. We should have used a proper enumeration to begin with, but so it goes. * The @VisibleForTesting annotation is honored by the platform for ensuring that Proguard doesn't stomp fields. The support library has an @Keep annotation, but it's only supported by Gradle. If it becomes supported by the platform in the future, switch to it instead. * Also add tests for all of this. Change-Id: I9f324e003e2a9de5604085b978d5f95bdd098d32
Diffstat (limited to 'tests')
-rw-r--r--tests/src/org/cyanogenmod/tests/hardware/CMHardwareTest.java26
1 files changed, 24 insertions, 2 deletions
diff --git a/tests/src/org/cyanogenmod/tests/hardware/CMHardwareTest.java b/tests/src/org/cyanogenmod/tests/hardware/CMHardwareTest.java
index a65f632c..556246e3 100644
--- a/tests/src/org/cyanogenmod/tests/hardware/CMHardwareTest.java
+++ b/tests/src/org/cyanogenmod/tests/hardware/CMHardwareTest.java
@@ -51,6 +51,23 @@ public class CMHardwareTest extends TestActivity {
CMHardwareManager.FEATURE_PERSISTENT_STORAGE
);
+ private static final List<String> FEATURE_STRINGS = Arrays.asList(
+ "FEATURE_ADAPTIVE_BACKLIGHT",
+ "FEATURE_COLOR_ENHANCEMENT",
+ "FEATURE_DISPLAY_COLOR_CALIBRATION",
+ "FEATURE_DISPLAY_GAMMA_CALIBRATION",
+ "FEATURE_HIGH_TOUCH_SENSITIVITY",
+ "FEATURE_KEY_DISABLE",
+ "FEATURE_LONG_TERM_ORBITS",
+ "FEATURE_SERIAL_NUMBER",
+ "FEATURE_SUNLIGHT_ENHANCEMENT",
+ "FEATURE_TAP_TO_WAKE",
+ "FEATURE_TOUCH_HOVERING",
+ "FEATURE_AUTO_CONTRAST",
+ "FEATURE_DISPLAY_MODES",
+ "FEATURE_PERSISTENT_STORAGE"
+ );
+
private static final List<Integer> BOOLEAN_FEATURES = Arrays.asList(
CMHardwareManager.FEATURE_ADAPTIVE_BACKLIGHT,
CMHardwareManager.FEATURE_COLOR_ENHANCEMENT,
@@ -160,10 +177,15 @@ public class CMHardwareTest extends TestActivity {
@Override
protected void run() {
StringBuilder builder = new StringBuilder();
+ int i = 0;
for (int feature : FEATURES) {
+ boolean supported = mHardwareManager.isSupported(feature);
+ if (mHardwareManager.isSupported(FEATURE_STRINGS.get(i)) != supported) {
+ throw new RuntimeException("Internal error, feature string lookup failed");
+ }
+ i++;
builder.append("Feature " + feature + "\n")
- .append("is supported " + mHardwareManager.isSupported(feature)
- + "\n");
+ .append("is supported " + supported + "\n");
}
Toast.makeText(CMHardwareTest.this, "Supported features " +
builder.toString(),