Merge "Add isSliceable API to BasePrefController"

This commit is contained in:
TreeHugger Robot
2018-05-22 21:02:45 +00:00
committed by Android (Google) Code Review
47 changed files with 475 additions and 18 deletions

View File

@@ -150,4 +150,19 @@ public class AmbientDisplayAlwaysOnPreferenceControllerTest {
assertThat(newValue).isEqualTo(currentValue);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AmbientDisplayAlwaysOnPreferenceController controller =
new AmbientDisplayAlwaysOnPreferenceController(mContext,
"ambient_display_always_on");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AmbientDisplayAlwaysOnPreferenceController controller =
new AmbientDisplayAlwaysOnPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -182,4 +182,19 @@ public class AmbientDisplayNotificationsPreferenceControllerTest {
assertThat(newValue).isEqualTo(currentValue);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AmbientDisplayNotificationsPreferenceController controller =
new AmbientDisplayNotificationsPreferenceController(mContext,
"ambient_display_notification");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AmbientDisplayNotificationsPreferenceController controller =
new AmbientDisplayNotificationsPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -93,4 +93,19 @@ public class AutoBrightnessPreferenceControllerTest {
assertThat(newValue).isEqualTo(SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AutoBrightnessPreferenceController controller =
new AutoBrightnessPreferenceController(mContext,
"auto_brightness");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AutoBrightnessPreferenceController controller =
new AutoBrightnessPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -104,7 +104,7 @@ public class AutoRotatePreferenceControllerTest {
@Test
public void testGetAvailabilityStatus() {
assertThat(mController.getAvailabilityStatus()).isEqualTo(BasePreferenceController
.CONDITIONALLY_UNAVAILABLE);
.UNSUPPORTED_ON_DEVICE);
enableAutoRotationPreference();
@@ -114,7 +114,7 @@ public class AutoRotatePreferenceControllerTest {
disableAutoRotationPreference();
assertThat(mController.getAvailabilityStatus()).isEqualTo(BasePreferenceController
.CONDITIONALLY_UNAVAILABLE);
.UNSUPPORTED_ON_DEVICE);
}
@Test
@@ -144,6 +144,20 @@ public class AutoRotatePreferenceControllerTest {
assertThat(RotationPolicy.isRotationLocked(mContext)).isFalse();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AutoRotatePreferenceController controller =
new AutoRotatePreferenceController(mContext, "auto_rotate");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AutoRotatePreferenceController controller =
new AutoRotatePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
private void enableAutoRotationPreference() {
when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
when(mContext.getResources().getBoolean(anyInt())).thenReturn(true);

View File

@@ -72,6 +72,20 @@ public class NightDisplayActivationPreferenceControllerTest {
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final NightDisplayActivationPreferenceController controller =
new NightDisplayActivationPreferenceController(mContext,"night_display_activated");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final NightDisplayActivationPreferenceController controller =
new NightDisplayActivationPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
@Test
public void onClick_activates() {
Secure.putInt(mContext.getContentResolver(), Secure.NIGHT_DISPLAY_ACTIVATED, 0);

View File

@@ -76,4 +76,18 @@ public class NightDisplayIntensityPreferenceControllerTest {
Secure.NIGHT_DISPLAY_COLOR_TEMPERATURE, -1))
.isEqualTo(3030);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final NightDisplayIntensityPreferenceController controller =
new NightDisplayIntensityPreferenceController(mContext,"night_display_temperature");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final NightDisplayIntensityPreferenceController controller =
new NightDisplayIntensityPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -17,10 +17,13 @@
package com.android.settings.gestures;
import static android.provider.Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED;
import static com.android.settings.gestures.DoubleTapPowerPreferenceController.OFF;
import static com.android.settings.gestures.DoubleTapPowerPreferenceController.ON;
import static com.android.settings.gestures.DoubleTapPowerPreferenceController.isSuggestionComplete;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
import android.content.ContentResolver;
@@ -29,6 +32,7 @@ import android.content.SharedPreferences;
import android.provider.Settings;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl;
import com.android.settings.display.AmbientDisplayAlwaysOnPreferenceController;
import com.android.settings.search.InlinePayload;
import com.android.settings.search.InlineSwitchPayload;
import com.android.settings.search.ResultPayload;
@@ -67,7 +71,8 @@ public class DoubleTapPowerPreferenceControllerTest {
@Test
public void isAvailable_configIsTrue_shouldReturnTrue() {
SettingsShadowResources.overrideResource(
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled, Boolean.TRUE);
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled,
Boolean.TRUE);
assertThat(mController.isAvailable()).isTrue();
}
@@ -75,7 +80,8 @@ public class DoubleTapPowerPreferenceControllerTest {
@Test
public void isAvailable_configIsTrue_shouldReturnFalse() {
SettingsShadowResources.overrideResource(
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled, Boolean.FALSE);
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled,
Boolean.FALSE);
assertThat(mController.isAvailable()).isFalse();
}
@@ -101,7 +107,7 @@ public class DoubleTapPowerPreferenceControllerTest {
@Test
public void testPreferenceController_ProperResultPayloadType() {
DoubleTapPowerPreferenceController controller =
new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
new DoubleTapPowerPreferenceController(mContext, KEY_DOUBLE_TAP_POWER);
ResultPayload payload = controller.getResultPayload();
assertThat(payload).isInstanceOf(InlineSwitchPayload.class);
}
@@ -111,7 +117,7 @@ public class DoubleTapPowerPreferenceControllerTest {
public void testSetValue_updatesCorrectly() {
int newValue = 1;
Settings.Secure.putInt(mContentResolver,
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
InlinePayload payload = ((InlineSwitchPayload) mController.getResultPayload());
payload.setValue(mContext, newValue);
@@ -148,7 +154,7 @@ public class DoubleTapPowerPreferenceControllerTest {
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled, true);
// No stored value in shared preferences if not visited yet.
final SharedPreferences prefs =
new SuggestionFeatureProviderImpl(mContext).getSharedPrefs(mContext);
new SuggestionFeatureProviderImpl(mContext).getSharedPrefs(mContext);
assertThat(isSuggestionComplete(mContext, prefs)).isFalse();
}
@@ -158,9 +164,23 @@ public class DoubleTapPowerPreferenceControllerTest {
com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled, true);
// No stored value in shared preferences if not visited yet.
final SharedPreferences prefs =
new SuggestionFeatureProviderImpl(mContext).getSharedPrefs(mContext);
new SuggestionFeatureProviderImpl(mContext).getSharedPrefs(mContext);
prefs.edit().putBoolean(DoubleTapPowerSettings.PREF_KEY_SUGGESTION_COMPLETE, true).commit();
assertThat(isSuggestionComplete(mContext, prefs)).isTrue();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final DoubleTapPowerPreferenceController controller =
new DoubleTapPowerPreferenceController(mContext, "gesture_double_tap_power");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final DoubleTapPowerPreferenceController controller =
new DoubleTapPowerPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -178,5 +178,20 @@ public class DoubleTapScreenPreferenceControllerTest {
final int availabilityStatus = mController.getAvailabilityStatus();
assertThat(availabilityStatus).isEqualTo(AVAILABLE);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final DoubleTapScreenPreferenceController controller =
new DoubleTapScreenPreferenceController(mContext,"gesture_double_tap_screen");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final DoubleTapScreenPreferenceController controller =
new DoubleTapScreenPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -155,4 +155,18 @@ public class DoubleTwistPreferenceControllerTest {
assertThat(mController.isChecked()).isFalse();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final DoubleTwistPreferenceController controller =
new DoubleTwistPreferenceController(mContext,"gesture_double_twist");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final DoubleTwistPreferenceController controller =
new DoubleTwistPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -170,4 +170,18 @@ public class PickupGesturePreferenceControllerTest {
assertThat(availabilityStatus).isEqualTo(AVAILABLE);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final PickupGesturePreferenceController controller =
new PickupGesturePreferenceController(mContext,"gesture_pick_up");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final PickupGesturePreferenceController controller =
new PickupGesturePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -168,4 +168,18 @@ public class SwipeToNotificationPreferenceControllerTest {
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT))
.thenReturn(enabled);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final SwipeToNotificationPreferenceController controller = new
SwipeToNotificationPreferenceController(mContext,"gesture_swipe_down_fingerprint");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final SwipeToNotificationPreferenceController controller =
new SwipeToNotificationPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -123,4 +123,18 @@ public class SwipeUpPreferenceControllerTest {
mController.setChecked(false);
assertThat(mController.isChecked()).isFalse();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final SwipeUpPreferenceController controller =
new SwipeUpPreferenceController(mContext,"gesture_swipe_up");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final SwipeUpPreferenceController controller =
new SwipeUpPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -177,4 +177,18 @@ public class AirplaneModePreferenceControllerTest {
assertThat(mPreference.isChecked()).isTrue();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final AirplaneModePreferenceController controller =
new AirplaneModePreferenceController(mContext,"toggle_airplane");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final AirplaneModePreferenceController controller =
new AirplaneModePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -183,4 +183,19 @@ public class BadgingNotificationPreferenceControllerTest {
assertThat(updatedValue).isEqualTo(ON);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final BadgingNotificationPreferenceController controller =
new BadgingNotificationPreferenceController(mContext,
"notification_badging");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final BadgingNotificationPreferenceController controller =
new BadgingNotificationPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -92,4 +92,18 @@ public class CallVolumePreferenceControllerTest {
assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_BLUETOOTH_SCO);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final CallVolumePreferenceController controller =
new CallVolumePreferenceController(mContext,"call_volume");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final CallVolumePreferenceController controller =
new CallVolumePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -18,6 +18,7 @@ package com.android.settings.notification;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
import android.media.AudioManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -33,9 +34,12 @@ public class MediaVolumePreferenceControllerTest {
private MediaVolumePreferenceController mController;
private Context mContext;
@Before
public void setUp() {
mController = new MediaVolumePreferenceController(RuntimeEnvironment.application);
mContext = RuntimeEnvironment.application;
mController = new MediaVolumePreferenceController(mContext);
}
@Test
@@ -53,4 +57,11 @@ public class MediaVolumePreferenceControllerTest {
public void getAudioStream_shouldReturnMusic() {
assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_MUSIC);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final MediaVolumePreferenceController controller = new MediaVolumePreferenceController(
mContext);
assertThat(controller.isSliceable()).isTrue();
}
}

View File

@@ -95,4 +95,11 @@ public class NotificationVolumePreferenceControllerTest {
public void getAudioStream_shouldReturnNotification() {
assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_NOTIFICATION);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final NotificationVolumePreferenceController controller =
new NotificationVolumePreferenceController(mContext);
assertThat(controller.isSliceable()).isTrue();
}
}

View File

@@ -97,4 +97,11 @@ public class RingVolumePreferenceControllerTest {
public void getAudioStream_shouldReturnRing() {
assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_RING);
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final RingVolumePreferenceController controller =
new RingVolumePreferenceController(mContext);
assertThat(controller.isSliceable()).isTrue();
}
}

View File

@@ -183,4 +183,18 @@ public class VibrateWhenRingPreferenceControllerTest {
assertThat(shadowContentResolver.getContentObservers(
Settings.System.getUriFor(VIBRATE_WHEN_RINGING))).isEmpty();
}
@Test
public void isSliceableCorrectKey_returnsTrue() {
final VibrateWhenRingPreferenceController controller =
new VibrateWhenRingPreferenceController(mContext, "vibrate_when_ringing");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
final VibrateWhenRingPreferenceController controller =
new VibrateWhenRingPreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}

View File

@@ -35,4 +35,9 @@ public class FakePreferenceController extends BasePreferenceController {
public int getSliceType() {
return SliceData.SliceType.SLIDER;
}
@Override
public boolean isSliceable() {
return true;
}
}

View File

@@ -70,6 +70,11 @@ public class SlicesDatabaseAccessorTest {
mAccessor = spy(new SlicesDatabaseAccessor(mContext));
mDb = SlicesDatabaseHelper.getInstance(mContext).getWritableDatabase();
SlicesDatabaseHelper.getInstance(mContext).setIndexedState();
// Register the fake a11y Service
ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
RuntimeEnvironment.application.getSystemService(AccessibilityManager.class));
shadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
}
@After
@@ -173,10 +178,6 @@ public class SlicesDatabaseAccessorTest {
public void getSliceKeys_indexesDatabase() {
// Force new indexing
Locale.setDefault(new Locale("ca"));
// Register the fake a11y Service
ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
RuntimeEnvironment.application.getSystemService(AccessibilityManager.class));
shadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
final SearchFeatureProvider provider = new SearchFeatureProviderImpl();
final SlicesFeatureProvider sliceProvider = spy(new SlicesFeatureProviderImpl());
final FakeFeatureFactory factory = FakeFeatureFactory.setupForTest();

View File

@@ -53,4 +53,9 @@ public class FakeSliderController extends SliderPreferenceController {
return Settings.Global.getInt(mContext.getContentResolver(),
AVAILABILITY_KEY, AVAILABLE);
}
@Override
public boolean isSliceable() {
return true;
}
}

View File

@@ -62,4 +62,9 @@ public class FakeToggleController extends TogglePreferenceController {
public IntentFilter getIntentFilter() {
return INTENT_FILTER;
}
@Override
public boolean isSliceable() {
return true;
}
}

View File

@@ -18,4 +18,9 @@ public class FakeUnavailablePreferenceController extends BasePreferenceControlle
return Settings.Global.getInt(mContext.getContentResolver(),
AVAILABILITY_KEY, 0);
}
@Override
public boolean isSliceable() {
return true;
}
}