Refine metrics log in infrastructure

- Add interfaces to set/get metrics category in BasePreferenceController
  for descendants having a chance to get it.
- Set metrics category in DashboardFragment
- Automatically log metrics in onPreferenceChange of
  TogglePreferenceController
- Add support for TwoStateButtonPreference in TogglePreferenceController
  to make the preference generic

Bug: 137559984
Test: robotest
Change-Id: Ia7e0d24a3db1991b18e0286d9894570fa71247a3
This commit is contained in:
Jason Chiu
2020-04-01 15:40:47 +08:00
parent 9266fe32f7
commit 819abf7f87
10 changed files with 53 additions and 38 deletions

View File

@@ -17,7 +17,6 @@
package com.android.settings.display;
import android.app.UiModeManager;
import android.app.settings.SettingsEnums;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -33,8 +32,6 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -49,7 +46,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple
@VisibleForTesting
Preference mPreference;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private UiModeManager mUiModeManager;
private PowerManager mPowerManager;
private Context mContext;
@@ -68,7 +64,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple
mContext = context;
mUiModeManager = context.getSystemService(UiModeManager.class);
mPowerManager = context.getSystemService(PowerManager.class);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
}
@Override
@@ -91,7 +86,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple
@Override
public boolean setChecked(boolean isChecked) {
mMetricsFeatureProvider.logClickedPreference(mPreference, SettingsEnums.DISPLAY);
final boolean dialogSeen =
Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.DARK_MODE_DIALOG_SEEN, 0) == DIALOG_SEEN;

View File

@@ -16,7 +16,6 @@
package com.android.settings.display;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.display.ColorDisplayManager;
import android.text.TextUtils;
@@ -50,8 +49,7 @@ public class NightDisplayActivationPreferenceController extends TogglePreference
@Override
public void onClick(View v) {
mButtonTriggered = true;
mMetricsFeatureProvider.logClickedPreference(mPreference,
SettingsEnums.NIGHT_DISPLAY_SETTINGS);
mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory());
mColorDisplayManager.setNightDisplayActivated(
!mColorDisplayManager.isNightDisplayActivated());
updateStateInternal();

View File

@@ -16,7 +16,6 @@
package com.android.settings.display.darkmode;
import android.app.UiModeManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Configuration;
import android.os.PowerManager;
@@ -136,8 +135,7 @@ public class DarkModeActivationPreferenceController extends BasePreferenceContro
private final View.OnClickListener mListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
mMetricsFeatureProvider.logClickedPreference(mPreference,
SettingsEnums.DARK_UI_SETTINGS);
mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory());
final boolean active = (mContext.getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_YES) != 0;
mUiModeManager.setNightModeActivated(!active);