// Path: library/src/main/java/com/yarolegovich/mp/io/StorageModule.java
// public interface StorageModule {
// 
//     void saveBoolean(String key, boolean value);
// 
//     void saveString(String key, String value);
// 
//     void saveInt(String key, int value);
// 
//     void saveStringSet(String key, Set<String> value);
// 
//     boolean getBoolean(String key, boolean defaultVal);
// 
//     String getString(String key, String defaultVal);
// 
//     int getInt(String key, int defaultVal);
// 
//     Set<String> getStringSet(String key, Set<String> defaultVal);
// 
//     void onSaveInstanceState(Bundle outState);
// 
//     void onRestoreInstanceState(Bundle savedState);
// 
//     interface Factory {
//         StorageModule create(Context context);
//     }
// }
// 
// Path: library/src/main/java/com/yarolegovich/mp/util/Utils.java
// public class Utils {
// 
//     private Utils() {}
// 
//     public static int dpToPixels(Context context, int dp) {
//         Resources resources = context.getResources();
//         DisplayMetrics metrics = resources.getDisplayMetrics();
//         return Math.round(dp * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// 
//     public static int clickableBackground(Context context) {
//         TypedValue outValue = new TypedValue();
//         context.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
//         return outValue.resourceId;
//     }
// }


import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.Gravity;
import android.widget.SeekBar;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatSeekBar;
import com.yarolegovich.mp.io.StorageModule;
import com.yarolegovich.mp.util.Utils;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference_mp_max_val;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference_mp_min_val;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference_mp_show_val;
package com.yarolegovich.mp;





/**
 * Created by yarolegovich on 15.05.2016.
 */
public class MaterialSeekBarPreference extends AbsMaterialPreference<Integer> {

    private AppCompatSeekBar seekBar;
    private TextView value;

    private int minValue;
    private int maxValue;
    private boolean showValue;

    public MaterialSeekBarPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MaterialSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public MaterialSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    protected void onConfigureSelf() {
        int padding = Utils.dpToPixels(getContext(), 16);
        setPadding(0, padding, 0, padding);
        setGravity(Gravity.CENTER_VERTICAL);
        setClickable(true);
// Path: library/src/main/java/com/yarolegovich/mp/io/StorageModule.java
// public interface StorageModule {
// 
//     void saveBoolean(String key, boolean value);
// 
//     void saveString(String key, String value);
// 
//     void saveInt(String key, int value);
// 
//     void saveStringSet(String key, Set<String> value);
// 
//     boolean getBoolean(String key, boolean defaultVal);
// 
//     String getString(String key, String defaultVal);
// 
//     int getInt(String key, int defaultVal);
// 
//     Set<String> getStringSet(String key, Set<String> defaultVal);
// 
//     void onSaveInstanceState(Bundle outState);
// 
//     void onRestoreInstanceState(Bundle savedState);
// 
//     interface Factory {
//         StorageModule create(Context context);
//     }
// }
// 
// Path: library/src/main/java/com/yarolegovich/mp/util/Utils.java
// public class Utils {
// 
//     private Utils() {}
// 
//     public static int dpToPixels(Context context, int dp) {
//         Resources resources = context.getResources();
//         DisplayMetrics metrics = resources.getDisplayMetrics();
//         return Math.round(dp * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// 
//     public static int clickableBackground(Context context) {
//         TypedValue outValue = new TypedValue();
//         context.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
//         return outValue.resourceId;
//     }
// }


// Path: library/src/main/java/com/yarolegovich/mp/MaterialSeekBarPreference.java
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.Gravity;
import android.widget.SeekBar;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatSeekBar;
import com.yarolegovich.mp.io.StorageModule;
import com.yarolegovich.mp.util.Utils;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference_mp_max_val;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference_mp_min_val;
import static com.yarolegovich.mp.R.styleable.MaterialSeekBarPreference_mp_show_val;

package com.yarolegovich.mp;





/**
 * Created by yarolegovich on 15.05.2016.
 */
public class MaterialSeekBarPreference extends AbsMaterialPreference<Integer> {

    private AppCompatSeekBar seekBar;
    private TextView value;

    private int minValue;
    private int maxValue;
    private boolean showValue;

    public MaterialSeekBarPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MaterialSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public MaterialSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    protected void onConfigureSelf() {
        int padding = Utils.dpToPixels(getContext(), 16);
        setPadding(0, padding, 0, padding);
        setGravity(Gravity.CENTER_VERTICAL);
        setClickable(true);
        setBackgroundResource(Utils.clickableBackground(getContext()));