Enable(visible) or Disabled(invisible) all one-handed settings

preference by System Property flag configuration.

To check System Property flag "support_one_handed_mode" configuration
then enable(visible) or disable(invisible) all one-handed settings
preference.

Bug: 154290458

Test: manual
Test: RunSettingsRoboTests
Change-Id: Ib6ed12dd65e66747e53b6333574ba0ad5be3c6e0
This commit is contained in:
Jason Chang
2020-04-21 17:36:53 +08:00
parent 66ce3302c8
commit f62888975e
4 changed files with 54 additions and 3 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.gestures;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.os.SystemProperties;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -57,11 +58,21 @@ public class OneHandedEnablePreferenceControllerTest {
}
@Test
public void getAvailabilityStatus_byDefault_shouldAvailable() {
public void getAvailabilityStatus_setSupportOneHandedModeProperty_shouldAvailable() {
SystemProperties.set(OneHandedEnablePreferenceController.SUPPORT_ONE_HANDED_MODE, "true");
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
public void getAvailabilityStatus_unsetSupportOneHandedModeProperty_shouldUnsupported() {
SystemProperties.set(OneHandedEnablePreferenceController.SUPPORT_ONE_HANDED_MODE, "false");
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
}
@Test
public void getSummary_enabledOneHanded_shouldDisplayOnSummary() {
OneHandedSettingsUtils.setSettingsOneHandedModeEnabled(mContext, true);

View File

@@ -18,6 +18,8 @@ package com.android.settings.gestures;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.os.SystemProperties;
import android.provider.SearchIndexableResource;
import org.junit.Before;
@@ -25,6 +27,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@@ -32,10 +35,12 @@ import java.util.List;
public class OneHandedSettingsTest {
private OneHandedSettings mSettings;
private Context mContext;
@Before
public void setUp() {
mSettings = new OneHandedSettings();
mContext = RuntimeEnvironment.application;
}
@Test
@@ -47,4 +52,26 @@ public class OneHandedSettingsTest {
assertThat(indexRes).isNotNull();
assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
}
@Test
public void isPageSearchEnabled_setSupportOneHandedModeProperty_shouldReturnTrue() {
SystemProperties.set(OneHandedEnablePreferenceController.SUPPORT_ONE_HANDED_MODE, "true");
final Object obj = ReflectionHelpers.callInstanceMethod(
OneHandedSettings.SEARCH_INDEX_DATA_PROVIDER, "isPageSearchEnabled",
ReflectionHelpers.ClassParameter.from(Context.class, mContext));
final boolean isEnabled = (Boolean) obj;
assertThat(isEnabled).isTrue();
}
@Test
public void isPageSearchEnabled_unsetSupportOneHandedModeProperty_shouldReturnFalse() {
SystemProperties.set(OneHandedEnablePreferenceController.SUPPORT_ONE_HANDED_MODE, "false");
final Object obj = ReflectionHelpers.callInstanceMethod(
OneHandedSettings.SEARCH_INDEX_DATA_PROVIDER, "isPageSearchEnabled",
ReflectionHelpers.ClassParameter.from(Context.class, mContext));
final boolean isEnabled = (Boolean) obj;
assertThat(isEnabled).isFalse();
}
}