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:
@@ -16,21 +16,17 @@
|
||||
|
||||
package com.android.settings.fuelgauge.batterysaver;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.PowerManager;
|
||||
import android.provider.SettingsSlicesContract;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.core.TogglePreferenceController;
|
||||
import com.android.settings.fuelgauge.BatterySaverReceiver;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settings.widget.TwoStateButtonPreference;
|
||||
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;
|
||||
@@ -45,13 +41,11 @@ public class BatterySaverButtonPreferenceController extends
|
||||
|
||||
private final BatterySaverReceiver mBatterySaverReceiver;
|
||||
private final PowerManager mPowerManager;
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
|
||||
private TwoStateButtonPreference mPreference;
|
||||
|
||||
public BatterySaverButtonPreferenceController(Context context, String key) {
|
||||
super(context, key);
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||
mBatterySaverReceiver = new BatterySaverReceiver(context);
|
||||
mBatterySaverReceiver.setBatterySaverListener(this);
|
||||
@@ -100,21 +94,11 @@ public class BatterySaverButtonPreferenceController extends
|
||||
|
||||
@Override
|
||||
public boolean setChecked(boolean stateOn) {
|
||||
mMetricsFeatureProvider.logClickedPreference(mPreference,
|
||||
SettingsEnums.FUELGAUGE_BATTERY_SAVER);
|
||||
// This screen already shows a warning, so we don't need another warning.
|
||||
return BatterySaverUtils.setPowerSaveMode(mContext, stateOn,
|
||||
false /* needFirstTimeWarning */);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
if (mPreference != null) {
|
||||
mPreference.setChecked(isChecked());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPowerSaveModeChanged() {
|
||||
final boolean isChecked = isChecked();
|
||||
|
Reference in New Issue
Block a user