src.com.android.systemui.tuner.TunerSwitch Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of android-all Show documentation
Show all versions of android-all Show documentation
A library jar that provides APIs for Applications written for the Google Android Platform.
package com.android.systemui.tuner;
import android.content.Context;
import android.content.res.TypedArray;
import android.provider.Settings;
import android.util.AttributeSet;
import androidx.preference.SwitchPreference;
import com.android.internal.logging.MetricsLogger;
import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.tuner.TunerService.Tunable;
public class TunerSwitch extends SwitchPreference implements Tunable {
private final boolean mDefault;
private final int mAction;
public TunerSwitch(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TunerSwitch);
mDefault = a.getBoolean(R.styleable.TunerSwitch_defValue, false);
mAction = a.getInt(R.styleable.TunerSwitch_metricsAction, -1);
}
@Override
public void onAttached() {
super.onAttached();
Dependency.get(TunerService.class).addTunable(this, getKey().split(","));
}
@Override
public void onDetached() {
Dependency.get(TunerService.class).removeTunable(this);
super.onDetached();
}
@Override
public void onTuningChanged(String key, String newValue) {
setChecked(TunerService.parseIntegerSwitch(newValue, mDefault));
}
@Override
protected void onClick() {
super.onClick();
if (mAction != -1) {
MetricsLogger.action(getContext(), mAction, isChecked());
}
}
@Override
protected boolean persistBoolean(boolean value) {
for (String key : getKey().split(",")) {
Settings.Secure.putString(getContext().getContentResolver(), key, value ? "1" : "0");
}
return true;
}
}