Loading src/com/android/settings/display/DeviceStateAutoRotateSettingController.java +24 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.app.settings.SettingsEnums; import android.content.Context; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; Loading Loading @@ -51,16 +52,24 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont private final String mDeviceStateDescription; private final MetricsFeatureProvider mMetricsFeatureProvider; public DeviceStateAutoRotateSettingController(Context context, int deviceState, String deviceStateDescription, int order) { @VisibleForTesting DeviceStateAutoRotateSettingController(Context context, int deviceState, String deviceStateDescription, int order, MetricsFeatureProvider metricsFeatureProvider) { super(context, getPreferenceKeyForDeviceState(deviceState)); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); mMetricsFeatureProvider = metricsFeatureProvider; mDeviceState = deviceState; mDeviceStateDescription = deviceStateDescription; mAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(context); mOrder = order; } public DeviceStateAutoRotateSettingController(Context context, int deviceState, String deviceStateDescription, int order) { this(context, deviceState, deviceStateDescription, order, FeatureFactory.getFactory(context).getMetricsFeatureProvider()); } void init(Lifecycle lifecycle) { lifecycle.addObserver(this); } Loading Loading @@ -108,12 +117,22 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont @Override public boolean setChecked(boolean isChecked) { boolean isRotationLocked = !isChecked; mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATION_LOCK, isRotationLocked); logSettingChanged(isChecked); mAutoRotateSettingsManager.updateSetting(mDeviceState, isRotationLocked); return true; } private void logSettingChanged(boolean isChecked) { boolean isRotationLocked = !isChecked; mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATION_LOCK, isRotationLocked); int actionCategory = isChecked ? SettingsEnums.ACTION_ENABLE_AUTO_ROTATION_DEVICE_STATE : SettingsEnums.ACTION_DISABLE_AUTO_ROTATION_DEVICE_STATE; mMetricsFeatureProvider.action(mContext, actionCategory, /* value= */ mDeviceState); } @Override public void updateRawDataToIndex(List<SearchIndexableRaw> rawData) { SearchIndexableRaw indexable = new SearchIndexableRaw(mContext); Loading tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java +40 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import android.app.settings.SettingsEnums; import android.content.Context; import androidx.preference.Preference; Loading @@ -30,11 +33,15 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager; import com.android.settings.testutils.shadow.ShadowRotationPolicy; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager; import com.android.settingslib.search.SearchIndexableRaw; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; Loading @@ -54,12 +61,26 @@ public class DeviceStateAutoRotateSettingControllerTest { private static final int DEFAULT_ORDER = -10; private final Context mContext = RuntimeEnvironment.application; private final DeviceStateAutoRotateSettingController mController = new DeviceStateAutoRotateSettingController(mContext, DEFAULT_DEVICE_STATE, DEFAULT_DEVICE_STATE_DESCRIPTION, DEFAULT_ORDER); private final DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(mContext); @Mock private MetricsFeatureProvider mMetricsFeatureProvider; private DeviceStateAutoRotateSettingController mController; @Before public void setUp() { MockitoAnnotations.initMocks(this); mController = new DeviceStateAutoRotateSettingController( mContext, DEFAULT_DEVICE_STATE, DEFAULT_DEVICE_STATE_DESCRIPTION, DEFAULT_ORDER, mMetricsFeatureProvider ); } @Test public void displayPreference_addsPreferenceToPreferenceScreen() { PreferenceScreen screen = new PreferenceManager(mContext).createPreferenceScreen(mContext); Loading Loading @@ -143,6 +164,22 @@ public class DeviceStateAutoRotateSettingControllerTest { assertThat(rotationLocked).isTrue(); } @Test public void setChecked_true_logsDeviceStateBasedSettingOn() { mController.setChecked(true); verify(mMetricsFeatureProvider).action(mContext, SettingsEnums.ACTION_ENABLE_AUTO_ROTATION_DEVICE_STATE, DEFAULT_DEVICE_STATE); } @Test public void setChecked_false_logsDeviceStateBasedSettingOff() { mController.setChecked(false); verify(mMetricsFeatureProvider).action(mContext, SettingsEnums.ACTION_DISABLE_AUTO_ROTATION_DEVICE_STATE, DEFAULT_DEVICE_STATE); } @Test public void updateRawDataToIndex_addsItemToList() { List<SearchIndexableRaw> rawData = new ArrayList<>(); Loading Loading
src/com/android/settings/display/DeviceStateAutoRotateSettingController.java +24 −5 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.app.settings.SettingsEnums; import android.content.Context; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; Loading Loading @@ -51,16 +52,24 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont private final String mDeviceStateDescription; private final MetricsFeatureProvider mMetricsFeatureProvider; public DeviceStateAutoRotateSettingController(Context context, int deviceState, String deviceStateDescription, int order) { @VisibleForTesting DeviceStateAutoRotateSettingController(Context context, int deviceState, String deviceStateDescription, int order, MetricsFeatureProvider metricsFeatureProvider) { super(context, getPreferenceKeyForDeviceState(deviceState)); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); mMetricsFeatureProvider = metricsFeatureProvider; mDeviceState = deviceState; mDeviceStateDescription = deviceStateDescription; mAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(context); mOrder = order; } public DeviceStateAutoRotateSettingController(Context context, int deviceState, String deviceStateDescription, int order) { this(context, deviceState, deviceStateDescription, order, FeatureFactory.getFactory(context).getMetricsFeatureProvider()); } void init(Lifecycle lifecycle) { lifecycle.addObserver(this); } Loading Loading @@ -108,12 +117,22 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont @Override public boolean setChecked(boolean isChecked) { boolean isRotationLocked = !isChecked; mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATION_LOCK, isRotationLocked); logSettingChanged(isChecked); mAutoRotateSettingsManager.updateSetting(mDeviceState, isRotationLocked); return true; } private void logSettingChanged(boolean isChecked) { boolean isRotationLocked = !isChecked; mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATION_LOCK, isRotationLocked); int actionCategory = isChecked ? SettingsEnums.ACTION_ENABLE_AUTO_ROTATION_DEVICE_STATE : SettingsEnums.ACTION_DISABLE_AUTO_ROTATION_DEVICE_STATE; mMetricsFeatureProvider.action(mContext, actionCategory, /* value= */ mDeviceState); } @Override public void updateRawDataToIndex(List<SearchIndexableRaw> rawData) { SearchIndexableRaw indexable = new SearchIndexableRaw(mContext); Loading
tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java +40 −3 Original line number Diff line number Diff line Loading @@ -21,6 +21,9 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import android.app.settings.SettingsEnums; import android.content.Context; import androidx.preference.Preference; Loading @@ -30,11 +33,15 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager; import com.android.settings.testutils.shadow.ShadowRotationPolicy; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager; import com.android.settingslib.search.SearchIndexableRaw; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; Loading @@ -54,12 +61,26 @@ public class DeviceStateAutoRotateSettingControllerTest { private static final int DEFAULT_ORDER = -10; private final Context mContext = RuntimeEnvironment.application; private final DeviceStateAutoRotateSettingController mController = new DeviceStateAutoRotateSettingController(mContext, DEFAULT_DEVICE_STATE, DEFAULT_DEVICE_STATE_DESCRIPTION, DEFAULT_ORDER); private final DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(mContext); @Mock private MetricsFeatureProvider mMetricsFeatureProvider; private DeviceStateAutoRotateSettingController mController; @Before public void setUp() { MockitoAnnotations.initMocks(this); mController = new DeviceStateAutoRotateSettingController( mContext, DEFAULT_DEVICE_STATE, DEFAULT_DEVICE_STATE_DESCRIPTION, DEFAULT_ORDER, mMetricsFeatureProvider ); } @Test public void displayPreference_addsPreferenceToPreferenceScreen() { PreferenceScreen screen = new PreferenceManager(mContext).createPreferenceScreen(mContext); Loading Loading @@ -143,6 +164,22 @@ public class DeviceStateAutoRotateSettingControllerTest { assertThat(rotationLocked).isTrue(); } @Test public void setChecked_true_logsDeviceStateBasedSettingOn() { mController.setChecked(true); verify(mMetricsFeatureProvider).action(mContext, SettingsEnums.ACTION_ENABLE_AUTO_ROTATION_DEVICE_STATE, DEFAULT_DEVICE_STATE); } @Test public void setChecked_false_logsDeviceStateBasedSettingOff() { mController.setChecked(false); verify(mMetricsFeatureProvider).action(mContext, SettingsEnums.ACTION_DISABLE_AUTO_ROTATION_DEVICE_STATE, DEFAULT_DEVICE_STATE); } @Test public void updateRawDataToIndex_addsItemToList() { List<SearchIndexableRaw> rawData = new ArrayList<>(); Loading