Add support for device state based auto-rotation preferences in Settings.
- Creates new preferences that are shown when device-state rotation is supported. - Hides standard preferences when device-state rotation is supported. - Controllers/Preferences for individual folded/unfolded rotation settings are created and added programatically based on the settable device states available. Test: Manually + Unit tests Bug: 195757480 Change-Id: If254220ca3018bc6ec1c4e3947375733f6816f92
This commit is contained in:
@@ -40,6 +40,7 @@ import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.ResolveInfoBuilder;
|
||||
import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
|
||||
import com.android.settings.testutils.shadow.ShadowSensorPrivacyManager;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -53,7 +54,10 @@ import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = ShadowSensorPrivacyManager.class)
|
||||
@Config(shadows = {
|
||||
ShadowSensorPrivacyManager.class,
|
||||
ShadowDeviceStateRotationLockSettingsManager.class
|
||||
})
|
||||
public class SmartAutoRotatePreferenceControllerTest {
|
||||
|
||||
private static final String PACKAGE_NAME = "package_name";
|
||||
@@ -95,6 +99,7 @@ public class SmartAutoRotatePreferenceControllerTest {
|
||||
new SmartAutoRotatePreferenceController(mContext, "smart_auto_rotate"));
|
||||
when(mController.isCameraLocked()).thenReturn(false);
|
||||
when(mController.isPowerSaveMode()).thenReturn(false);
|
||||
ShadowDeviceStateRotationLockSettingsManager.setDeviceStateRotationLockEnabled(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -199,6 +204,16 @@ public class SmartAutoRotatePreferenceControllerTest {
|
||||
.UNSUPPORTED_ON_DEVICE);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_deviceStateRotationEnabled_returnsUnsupported() {
|
||||
enableAutoRotationPreference();
|
||||
ShadowDeviceStateRotationLockSettingsManager.setDeviceStateRotationLockEnabled(true);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(
|
||||
BasePreferenceController.UNSUPPORTED_ON_DEVICE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isSliceableCorrectKey_returnsTrue() {
|
||||
final AutoRotatePreferenceController controller =
|
||||
|
Reference in New Issue
Block a user