From 617458b07c91d59c24e73c7c413c58467e437c7e Mon Sep 17 00:00:00 2001 From: Yi-Ling Chuang Date: Wed, 27 Nov 2019 16:09:34 +0800 Subject: [PATCH] Make all TogglePreferenceController slice-able. All the descendants of TogglePreferenceController are now slice-able by default, where every controller can still disable it by overriding this value. Though all of them are now slice-able, doesn't necessarily means they are exposed publicly as we set the default value of isPublicSlice() to false. For those that want to be public ones will have to override this value. Bug: 141088937 Test: robotests Change-Id: I2ea529c11f0177cd6c55754b632cd1fea1dcc48f --- .../settings/core/TogglePreferenceController.java | 9 +++++++++ .../settings/core/TogglePreferenceControllerTest.java | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/com/android/settings/core/TogglePreferenceController.java b/src/com/android/settings/core/TogglePreferenceController.java index 165d7eb1305..7abe6e09fca 100644 --- a/src/com/android/settings/core/TogglePreferenceController.java +++ b/src/com/android/settings/core/TogglePreferenceController.java @@ -70,4 +70,13 @@ public abstract class TogglePreferenceController extends BasePreferenceControlle return SliceData.SliceType.SWITCH; } + @Override + public boolean isSliceable() { + return true; + } + + @Override + public boolean isPublicSlice() { + return false; + } } \ No newline at end of file diff --git a/tests/robotests/src/com/android/settings/core/TogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/core/TogglePreferenceControllerTest.java index 7cda34a16ad..541f0c412ba 100644 --- a/tests/robotests/src/com/android/settings/core/TogglePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/core/TogglePreferenceControllerTest.java @@ -90,6 +90,16 @@ public class TogglePreferenceControllerTest { SliceData.SliceType.SWITCH); } + @Test + public void isSliceable_returnTrue() { + assertThat(mToggleController.isSliceable()).isTrue(); + } + + @Test + public void isPublicSlice_returnFalse() { + assertThat(mToggleController.isPublicSlice()).isFalse(); + } + private static class FakeToggle extends TogglePreferenceController { private boolean checkedFlag;