Instrument metrics for smart-auto-rotate and screen timeout

Test: locally with flame

Bug: 172974834
Change-Id: Id6927e749049c88e4efea2d69f93b9d397acc1c1
This commit is contained in:
Abel Tesfaye
2021-03-04 20:01:30 +00:00
parent c08943784c
commit 9481334a6a
3 changed files with 15 additions and 1 deletions

View File

@@ -20,6 +20,7 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEA
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
import android.Manifest; import android.Manifest;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
@@ -33,8 +34,10 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.bluetooth.RestrictionUtils; import com.android.settings.bluetooth.RestrictionUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedSwitchPreference; import com.android.settingslib.RestrictedSwitchPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.google.common.annotations.VisibleForTesting; import com.google.common.annotations.VisibleForTesting;
@@ -45,6 +48,7 @@ public class AdaptiveSleepPreferenceController {
private RestrictionUtils mRestrictionUtils; private RestrictionUtils mRestrictionUtils;
private PackageManager mPackageManager; private PackageManager mPackageManager;
private Context mContext; private Context mContext;
private MetricsFeatureProvider mMetricsFeatureProvider;
@VisibleForTesting @VisibleForTesting
RestrictedSwitchPreference mPreference; RestrictedSwitchPreference mPreference;
@@ -52,6 +56,7 @@ public class AdaptiveSleepPreferenceController {
public AdaptiveSleepPreferenceController(Context context, RestrictionUtils restrictionUtils) { public AdaptiveSleepPreferenceController(Context context, RestrictionUtils restrictionUtils) {
mContext = context; mContext = context;
mRestrictionUtils = restrictionUtils; mRestrictionUtils = restrictionUtils;
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
mPreference = new RestrictedSwitchPreference(context); mPreference = new RestrictedSwitchPreference(context);
mPreference.setTitle(R.string.adaptive_sleep_title); mPreference.setTitle(R.string.adaptive_sleep_title);
mPreference.setSummary(R.string.adaptive_sleep_description); mPreference.setSummary(R.string.adaptive_sleep_description);
@@ -60,6 +65,8 @@ public class AdaptiveSleepPreferenceController {
mPreference.setKey(PREFERENCE_KEY); mPreference.setKey(PREFERENCE_KEY);
mPreference.setOnPreferenceClickListener(preference -> { mPreference.setOnPreferenceClickListener(preference -> {
final boolean isChecked = ((RestrictedSwitchPreference) preference).isChecked(); final boolean isChecked = ((RestrictedSwitchPreference) preference).isChecked();
mMetricsFeatureProvider.action(context, SettingsEnums.ACTION_SCREEN_ATTENTION_CHANGED,
isChecked);
Settings.Secure.putInt(context.getContentResolver(), Settings.Secure.putInt(context.getContentResolver(),
Settings.Secure.ADAPTIVE_SLEEP, isChecked ? 1 : DEFAULT_VALUE); Settings.Secure.ADAPTIVE_SLEEP, isChecked ? 1 : DEFAULT_VALUE);
return true; return true;

View File

@@ -93,7 +93,8 @@ public class AutoRotateSwitchBarController implements OnMainSwitchChangeListener
private boolean setRotationLock(boolean isChecked) { private boolean setRotationLock(boolean isChecked) {
final boolean isLocked = !isChecked; final boolean isLocked = !isChecked;
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATION_LOCK, isLocked); mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATE_ROTATE_MASTER_TOGGLE,
isChecked);
RotationPolicy.setRotationLock(mContext, isLocked); RotationPolicy.setRotationLock(mContext, isLocked);
return true; return true;
} }

View File

@@ -37,6 +37,7 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.search.actionbar.SearchMenuController;
import com.android.settings.support.actionbar.HelpMenuController; import com.android.settings.support.actionbar.HelpMenuController;
@@ -44,6 +45,7 @@ import com.android.settings.support.actionbar.HelpResourceProvider;
import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settings.widget.RadioButtonPickerFragment;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexableRaw; import com.android.settingslib.search.SearchIndexableRaw;
import com.android.settingslib.widget.CandidateInfo; import com.android.settingslib.widget.CandidateInfo;
@@ -70,6 +72,7 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
private CharSequence[] mInitialEntries; private CharSequence[] mInitialEntries;
private CharSequence[] mInitialValues; private CharSequence[] mInitialValues;
private FooterPreference mPrivacyPreference; private FooterPreference mPrivacyPreference;
private MetricsFeatureProvider mMetricsFeatureProvider;
@VisibleForTesting @VisibleForTesting
RestrictedLockUtils.EnforcedAdmin mAdmin; RestrictedLockUtils.EnforcedAdmin mAdmin;
@@ -102,6 +105,7 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
mPrivacyPreference.setTitle(R.string.adaptive_sleep_privacy); mPrivacyPreference.setTitle(R.string.adaptive_sleep_privacy);
mPrivacyPreference.setSelectable(false); mPrivacyPreference.setSelectable(false);
mPrivacyPreference.setLayoutResource(R.layout.preference_footer); mPrivacyPreference.setLayoutResource(R.layout.preference_footer);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
} }
@Override @Override
@@ -244,6 +248,8 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
try { try {
if (context != null) { if (context != null) {
final long value = Long.parseLong(key); final long value = Long.parseLong(key);
mMetricsFeatureProvider.action(context, SettingsEnums.ACTION_SCREEN_TIMEOUT_CHANGED,
(int) value);
Settings.System.putLong(context.getContentResolver(), SCREEN_OFF_TIMEOUT, value); Settings.System.putLong(context.getContentResolver(), SCREEN_OFF_TIMEOUT, value);
} }
} catch (NumberFormatException e) { } catch (NumberFormatException e) {