New color chooser dialog
This commit is contained in:
parent
48b63b7d78
commit
d8e94c1c85
12 changed files with 826 additions and 445 deletions
|
|
@ -10,6 +10,7 @@ import android.preference.ListPreference;
|
|||
import android.preference.Preference;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
|
|
@ -18,6 +19,7 @@ import android.view.View;
|
|||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.dialogs.ColorChooserDialog;
|
||||
import com.kabouzeid.gramophone.helper.MaterialColorHelper;
|
||||
import com.kabouzeid.gramophone.prefs.ColorChooserPreference;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsBaseActivity;
|
||||
import com.kabouzeid.gramophone.util.NavigationUtil;
|
||||
|
|
@ -48,11 +50,14 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onColorSelection(int title, int color) {
|
||||
if (title == R.string.primary_color) {
|
||||
PreferenceUtil.getInstance(this).setThemeColorPrimary(color);
|
||||
} else if (title == R.string.accent_color) {
|
||||
PreferenceUtil.getInstance(this).setThemeColorAccent(color);
|
||||
public void onColorSelection(@NonNull ColorChooserDialog dialog, @ColorInt int selectedColor) {
|
||||
switch (dialog.getTitleRes()) {
|
||||
case R.string.primary_color:
|
||||
PreferenceUtil.getInstance(this).setThemeColorPrimary(selectedColor);
|
||||
break;
|
||||
case R.string.accent_color:
|
||||
PreferenceUtil.getInstance(this).setThemeColorAccent(selectedColor);
|
||||
break;
|
||||
}
|
||||
recreateIfThemeChanged();
|
||||
}
|
||||
|
|
@ -133,10 +138,12 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
primaryColor.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(@NonNull Preference preference) {
|
||||
new ColorChooserDialog().show(
|
||||
((SettingsActivity) getActivity()),
|
||||
preference.getTitleRes(),
|
||||
((SettingsActivity) getActivity()).getThemeColorPrimary());
|
||||
ColorChooserDialog
|
||||
.create(preference.getTitleRes(),
|
||||
new ColorChooserDialog.Colors(MaterialColorHelper.createPrimaryColorIndexes(), MaterialColorHelper.createPrimaryColors()),
|
||||
PreferenceUtil.getInstance(getActivity()).getThemeColorPrimary(getActivity())
|
||||
)
|
||||
.show(((SettingsActivity) getActivity()).getSupportFragmentManager(), "COLOR_CHOOSER");
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
@ -146,10 +153,12 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
|
|||
accentColor.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||
@Override
|
||||
public boolean onPreferenceClick(@NonNull Preference preference) {
|
||||
new ColorChooserDialog().show(
|
||||
((SettingsActivity) getActivity()),
|
||||
preference.getTitleRes(),
|
||||
((SettingsActivity) getActivity()).getThemeColorAccent());
|
||||
ColorChooserDialog
|
||||
.create(preference.getTitleRes(),
|
||||
new ColorChooserDialog.Colors(MaterialColorHelper.createAccentColorIndexes(), MaterialColorHelper.createAccentColors()),
|
||||
PreferenceUtil.getInstance(getActivity()).getThemeColorAccent(getActivity())
|
||||
)
|
||||
.show(((SettingsActivity) getActivity()).getSupportFragmentManager(), "COLOR_CHOOSER");
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ import butterknife.ButterKnife;
|
|||
|
||||
/**
|
||||
* @author Karim Abou Zeid (kabouzeid)
|
||||
* <p/>
|
||||
* <p>
|
||||
* Do not use {@link #setContentView(int)} but wrap your layout with
|
||||
* {@link #wrapSlidingMusicPanelAndFab(int)} first and then return it in {@link #createContentView()}
|
||||
*/
|
||||
|
|
@ -669,24 +669,14 @@ public abstract class AbsSlidingMusicPanelActivity extends AbsMusicServiceActivi
|
|||
setSeekBarTint(progressSlider, thumbColor, progressColor);
|
||||
}
|
||||
|
||||
// note that this is not exactly the same as in ColorUtil
|
||||
@SuppressWarnings("ResourceType")
|
||||
@ColorInt
|
||||
private static int shiftColorUp(@ColorInt int color) {
|
||||
int alpha = Color.alpha(color);
|
||||
float[] hsv = new float[3];
|
||||
Color.colorToHSV(color, hsv);
|
||||
hsv[2] *= 1.2f; // value component
|
||||
return (alpha << 24) + (0x00ffffff & Color.HSVToColor(hsv));
|
||||
return ColorUtil.shiftColor(color, 1.2f);
|
||||
}
|
||||
|
||||
// note that this is not exactly the same as in ColorUtil
|
||||
@SuppressWarnings("ResourceType")
|
||||
@ColorInt
|
||||
private static int shiftColorDown(@ColorInt int color) {
|
||||
int alpha = Color.alpha(color);
|
||||
float[] hsv = new float[3];
|
||||
Color.colorToHSV(color, hsv);
|
||||
hsv[2] *= 0.8f; // value component
|
||||
return (alpha << 24) + (0x00ffffff & Color.HSVToColor(hsv));
|
||||
return ColorUtil.shiftColor(color, 0.8f);
|
||||
}
|
||||
|
||||
private static void setSeekBarTint(SeekBar seekBar, @ColorInt int thumbColor, @ColorInt int progressColor) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue