package com.jenzz.materialpreference;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.CheckBox;
import static com.jenzz.materialpreference.ThemeUtils.isAtLeastL;
public class CheckBoxPreference extends TwoStatePreference {
public CheckBoxPreference(Context context) {
super(context);
init(context, null, 0, 0);
}
public CheckBoxPreference(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs, 0, 0);
}
public CheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs, defStyleAttr, 0);
}
public CheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(context, attrs, defStyleAttr, defStyleRes);
}
private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
TypedArray typedArray = context.obtainStyledAttributes(attrs, new int[] {
android.R.attr.summaryOn, android.R.attr.summaryOff, android.R.attr.disableDependentsState
}, defStyleAttr, defStyleRes);
setSummaryOn(typedArray.getString(0));
setSummaryOff(typedArray.getString(1));
setDisableDependentsState(typedArray.getBoolean(2, false));
typedArray.recycle();
setWidgetLayoutResource(R.layout.mp_checkbox_preference);
}
@Override @SuppressWarnings("deprecation")
protected void onBindView(View view) {
super.onBindView(view);
CheckBox checkboxView = (CheckBox) view.findViewById(R.id.checkbox);
checkboxView.setChecked(isChecked());
if (isAtLeastL()) {
// remove circular background when pressed
checkboxView.setBackgroundDrawable(null);
}
syncSummaryView(view);
}
}