mirror of
https://github.com/k0shk0sh/FastHub.git
synced 2026-01-25 14:47:05 +00:00
added color picker in preference
This commit is contained in:
parent
84c973cff5
commit
efd9ea2e25
@ -150,6 +150,7 @@ dependencies {
|
||||
implementation 'org.jsoup:jsoup:1.10.2'
|
||||
implementation 'com.jakewharton:kotterknife:0.1.0-SNAPSHOT'
|
||||
implementation "com.evernote:android-state:${state_version}"
|
||||
implementation "petrov.kristiyan:colorpicker-library:1.1.4"
|
||||
compileOnly "org.projectlombok:lombok:${lombokVersion}"
|
||||
kapt "io.requery:requery-processor:${requery}"
|
||||
kapt "org.projectlombok:lombok:${lombokVersion}"
|
||||
|
||||
@ -0,0 +1,84 @@
|
||||
package com.fastaccess.ui.widgets;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.fastaccess.R;
|
||||
import com.fastaccess.helper.PrefGetter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
||||
import petrov.kristiyan.colorpicker.ColorPicker;
|
||||
|
||||
/**
|
||||
* Created by Hamad on 6/11/17.
|
||||
*/
|
||||
|
||||
public class ColorPickerPreference extends Preference implements Preference.OnPreferenceClickListener, ColorPicker.OnChooseColorListener {
|
||||
|
||||
private int mValue = Color.BLACK;
|
||||
private ColorPicker colorPicker;
|
||||
|
||||
public ColorPickerPreference(Context context) {
|
||||
super(context);
|
||||
init(context, null);
|
||||
}
|
||||
|
||||
public ColorPickerPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init(context, attrs);
|
||||
}
|
||||
|
||||
public ColorPickerPreference(Context context, AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
init(context, attrs);
|
||||
}
|
||||
|
||||
private void init(Context context, AttributeSet attrs) {
|
||||
setOnPreferenceClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
||||
/*
|
||||
colors should no be setup like this must be a better way to retrive them from the theme
|
||||
or from preferences
|
||||
also relaying on constant integers worries me
|
||||
*/
|
||||
String[] colors = {"#F44336", "#E91E63", "#9C27B0", "#673AB7", "#3F51B5", "#2196F3", "#03A9F4", "#00BCD4", "#009688", "#4CAF50", "#8BC34A", "#CDDC39", "#FFEB3B", "#FFC107", "#FF9800","#FF5722"};
|
||||
colorPicker = new ColorPicker(getContext()).setRoundColorButton(true).setColors(new ArrayList<>(Arrays.asList(colors)));
|
||||
colorPicker.setDefaultColorButton(Color.parseColor(colors[PrefGetter.getThemeColor(getContext()) - 1]));
|
||||
colorPicker.setOnChooseColorListener(this);
|
||||
colorPicker.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onChooseColor(int position, int color) {
|
||||
// put code
|
||||
//getOnPreferenceChangeListener().onPreferenceChange(ColorPickerPreference.this, color);
|
||||
Toast.makeText(getContext(), "" + position, Toast.LENGTH_SHORT).show();
|
||||
persistString(getContext().getResources().getStringArray(R.array.theme_colors)[position]);
|
||||
getOnPreferenceChangeListener().onPreferenceChange(this, getContext().getResources().getStringArray(R.array.theme_colors)[position]);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
|
||||
}
|
||||
}
|
||||
@ -7,7 +7,7 @@
|
||||
android:key="enable_ads"
|
||||
android:title="@string/enable_ads"/>
|
||||
|
||||
<ListPreference
|
||||
<com.fastaccess.ui.widgets.ColorPickerPreference
|
||||
android:defaultValue="@string/blue_theme_mode"
|
||||
android:dialogTitle="@string/theme_color_title"
|
||||
android:entries="@array/theme_colors"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user