Add a new feature flag for the expand button in support lib.
- check the feature flag to determine whether to use the existing progressive disclosure mixin or use the expand button in the support library. - add corresponding preference xml files that add the new preference group attribute to use with the expand button in the support lib. Bug: 63985174 Test: make RunSettingsRoboTests Change-Id: Ida6eb6182a8066ad1413b7f6142512345fd914d0
This commit is contained in:
@@ -2,8 +2,11 @@ package com.android.settings;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.settings.dashboard.ProgressiveDisclosureMixin;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.XmlTestUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowPowerManagerWrapper;
|
||||
@@ -13,6 +16,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -25,9 +29,9 @@ public class DisplaySettingsTest {
|
||||
@Config(shadows = ShadowPowerManagerWrapper.class)
|
||||
public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
|
||||
final Context context = RuntimeEnvironment.application;
|
||||
// PowerManager wrapper = mock(PowerManager.class);
|
||||
// doReturn(wrapper).when(context).getSystemService(Context.POWER_SERVICE);
|
||||
final DisplaySettings fragment = new DisplaySettings();
|
||||
ReflectionHelpers.setField(fragment, "mProgressiveDisclosureMixin",
|
||||
mock(ProgressiveDisclosureMixin.class));
|
||||
final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
|
||||
fragment.getPreferenceScreenResId());
|
||||
final List<String> preferenceKeys = new ArrayList<>();
|
||||
|
@@ -19,6 +19,8 @@ package com.android.settings.applications;
|
||||
import android.content.Context;
|
||||
|
||||
import android.os.UserManager;
|
||||
|
||||
import com.android.settings.dashboard.ProgressiveDisclosureMixin;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.XmlTestUtils;
|
||||
@@ -27,6 +29,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -47,7 +50,10 @@ public class AppAndNotificationDashboardFragmentTest {
|
||||
when(context.getSystemService(Context.USER_SERVICE)).thenReturn(manager);
|
||||
final List<String> niks = AppAndNotificationDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
||||
.getNonIndexableKeys(context);
|
||||
final int xmlId = (new AppAndNotificationDashboardFragment()).getPreferenceScreenResId();
|
||||
AppAndNotificationDashboardFragment fragment = new AppAndNotificationDashboardFragment();
|
||||
ReflectionHelpers.setField(fragment, "mProgressiveDisclosureMixin",
|
||||
mock(ProgressiveDisclosureMixin.class));
|
||||
final int xmlId = fragment.getPreferenceScreenResId();
|
||||
|
||||
final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
|
||||
|
||||
|
@@ -26,7 +26,9 @@ import com.android.settings.R;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.FakeFeatureFactory;
|
||||
import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -39,6 +41,7 @@ import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static android.util.FeatureFlagUtils.FFLAG_PREFIX;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.nullable;
|
||||
@@ -53,7 +56,8 @@ import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
|
||||
shadows = {SettingsShadowSystemProperties.class})
|
||||
public class ProgressiveDisclosureTest {
|
||||
|
||||
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
|
||||
@@ -80,6 +84,25 @@ public class ProgressiveDisclosureTest {
|
||||
mPreference.setKey("test");
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
SettingsShadowSystemProperties.clear();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void systemPropertySetForNewAdvancedButtonFeature_verifyIsDisabled() {
|
||||
SettingsShadowSystemProperties.set(
|
||||
FFLAG_PREFIX + ProgressiveDisclosureMixin.FEATURE_FLAG_NEW_ADVANCE_BUTTON, "true");
|
||||
assertThat(mMixin.isEnabled()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void systemPropertyNotSet_verifyIsDisabled() {
|
||||
SettingsShadowSystemProperties.set(
|
||||
FFLAG_PREFIX + ProgressiveDisclosureMixin.FEATURE_FLAG_NEW_ADVANCE_BUTTON, "false");
|
||||
assertThat(mMixin.isEnabled()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldNotCollapse_lessPreferenceThanLimit() {
|
||||
when(mScreen.getPreferenceCount()).thenReturn(5);
|
||||
|
@@ -43,6 +43,7 @@ import android.view.textservice.TextServicesManager;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.dashboard.ProgressiveDisclosureMixin;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.XmlTestUtils;
|
||||
@@ -59,6 +60,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -101,6 +103,9 @@ public class LanguageAndInputSettingsTest {
|
||||
|
||||
@Test
|
||||
public void testGetPreferenceScreenResId() {
|
||||
ProgressiveDisclosureMixin progessiveMixin = mock(ProgressiveDisclosureMixin.class);
|
||||
when(progessiveMixin.isEnabled()).thenReturn(true);
|
||||
ReflectionHelpers.setField(mFragment, "mProgressiveDisclosureMixin", progessiveMixin);
|
||||
assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(R.xml.language_and_input);
|
||||
}
|
||||
|
||||
@@ -167,7 +172,10 @@ public class LanguageAndInputSettingsTest {
|
||||
.getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys);
|
||||
final List<String> niks = LanguageAndInputSettings.SEARCH_INDEX_DATA_PROVIDER
|
||||
.getNonIndexableKeys(context);
|
||||
final int xmlId = (new LanguageAndInputSettings()).getPreferenceScreenResId();
|
||||
LanguageAndInputSettings settings = new LanguageAndInputSettings();
|
||||
ReflectionHelpers.setField(settings, "mProgressiveDisclosureMixin",
|
||||
mock(ProgressiveDisclosureMixin.class));
|
||||
final int xmlId = settings.getPreferenceScreenResId();
|
||||
|
||||
final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
|
||||
|
||||
@@ -178,6 +186,8 @@ public class LanguageAndInputSettingsTest {
|
||||
public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
|
||||
final Context context = RuntimeEnvironment.application;
|
||||
final LanguageAndInputSettings fragment = new LanguageAndInputSettings();
|
||||
ReflectionHelpers.setField(fragment, "mProgressiveDisclosureMixin",
|
||||
mock(ProgressiveDisclosureMixin.class));
|
||||
final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
|
||||
fragment.getPreferenceScreenResId());
|
||||
final List<String> preferenceKeys = new ArrayList<>();
|
||||
|
@@ -21,6 +21,7 @@ import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import android.os.UserManager;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.ProgressiveDisclosureMixin;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.testutils.XmlTestUtils;
|
||||
@@ -30,6 +31,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -59,7 +61,10 @@ public class SoundSettingsTest {
|
||||
|
||||
final List<String> niks = SoundSettings.SEARCH_INDEX_DATA_PROVIDER
|
||||
.getNonIndexableKeys(context);
|
||||
final int xmlId = (new SoundSettings()).getPreferenceScreenResId();
|
||||
SoundSettings settings = new SoundSettings();
|
||||
ReflectionHelpers.setField(settings, "mProgressiveDisclosureMixin",
|
||||
mock(ProgressiveDisclosureMixin.class));
|
||||
final int xmlId = settings.getPreferenceScreenResId();
|
||||
final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
|
||||
keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(context,
|
||||
R.xml.zen_mode_settings));
|
||||
|
Reference in New Issue
Block a user