Merge 10952656
Merged-In: Ib02ae9caef06a46938947806dac8aabb1fa12d94
Change-Id: Ib1f728fef6241ddd7a2ce1522093f4a62a4a9d81
diff --git a/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java b/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java
index 95cf64c..992136c 100644
--- a/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java
+++ b/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverController.java
@@ -170,9 +170,10 @@
((SwitchPreference) mPreference).setChecked(false);
}
- // Regardless of whether ANGLE is enabled, disable the developer option UI
- // as long as UI is not enabled via debug property.
- if (!isAngleDeveloperOptionEnabled()) {
+ // Disable the developer option toggle UI if ANGLE is disabled, this means next time the
+ // debug property needs to be set to true again to enable ANGLE. If ANGLE is enabled, don't
+ // disable the developer option toggle UI so that it can be turned off easily.
+ if (!isAngleDeveloperOptionEnabled() && !((SwitchPreference) mPreference).isChecked()) {
mPreference.setEnabled(false);
}
}
diff --git a/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java b/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java
index 4aa38ae..a402d91 100644
--- a/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java
+++ b/tests/unit/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerJUnitTest.java
@@ -24,6 +24,8 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.eq;
@@ -472,4 +474,27 @@
SystemProperties.removeChangeCallback(propertyChangeSignal1.getCountDownJob());
SystemProperties.removeChangeCallback(propertyChangeSignal2.getCountDownJob());
}
+
+ @Test
+ public void updateState_DeveloperOptionPropertyIsFalse() {
+ // Test that when debug.graphics.angle.developeroption.enable is false:
+ when(mSystemPropertiesMock.getBoolean(eq(PROPERTY_DEBUG_ANGLE_DEVELOPER_OPTION),
+ anyBoolean())).thenReturn(false);
+ when(mSystemPropertiesMock.get(eq(PROPERTY_RO_GFX_ANGLE_SUPPORTED), any()))
+ .thenReturn("true");
+
+ // 1. "Enable ANGLE" switch is on, the switch should be enabled.
+ when(mSystemPropertiesMock.get(eq(PROPERTY_PERSISTENT_GRAPHICS_EGL), any()))
+ .thenReturn(ANGLE_DRIVER_SUFFIX);
+ mController.updateState(mPreference);
+ assertTrue(mPreference.isChecked());
+ assertTrue(mPreference.isEnabled());
+
+ // 2. "Enable ANGLE" switch is off, the switch should be disabled.
+ when(mSystemPropertiesMock.get(eq(PROPERTY_PERSISTENT_GRAPHICS_EGL), any()))
+ .thenReturn("");
+ mController.updateState(mPreference);
+ assertFalse(mPreference.isChecked());
+ assertFalse(mPreference.isEnabled());
+ }
}