Merge "Device state auto-rotation settings: log device state specific state changes" into tm-dev am: 5ff63a569c

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/17032838

Change-Id: I64b9f79666467378b7cc41171658f79592dc17e9
This commit is contained in:
Christian Göllner
2022-03-09 15:35:21 +00:00
committed by Automerger Merge Worker
2 changed files with 64 additions and 8 deletions

View File

@@ -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;
@@ -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);
}
@@ -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);