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:
Christian Göllner
2022-02-04 13:29:37 +01:00
parent 6e6527657e
commit 78a0e714c4
24 changed files with 1106 additions and 14 deletions

View File

@@ -143,6 +143,21 @@ public class DashboardFragmentTest {
assertThat(controller1).isSameInstanceAs(retrievedController);
}
@Test
public void useAll_returnsAllControllersOfType() {
final TestPreferenceController controller1 = new TestPreferenceController(mContext);
final TestPreferenceController controller2 = new TestPreferenceController(mContext);
final SubTestPreferenceController controller3 = new SubTestPreferenceController(mContext);
mTestFragment.addPreferenceController(controller1);
mTestFragment.addPreferenceController(controller2);
mTestFragment.addPreferenceController(controller3);
final List<TestPreferenceController> retrievedControllers = mTestFragment.useAll(
TestPreferenceController.class);
assertThat(retrievedControllers).containsExactly(controller1, controller2);
}
@Test
public void displayTilesAsPreference_shouldAddTilesWithIntent() {
when(mFakeFeatureFactory.dashboardFeatureProvider
@@ -360,6 +375,13 @@ public class DashboardFragmentTest {
}
}
public static class SubTestPreferenceController extends TestPreferenceController {
private SubTestPreferenceController(Context context) {
super(context);
}
}
private static class TestFragment extends DashboardFragment {
private final PreferenceManager mPreferenceManager;