package pasta.music.utils; import android.content.Context; import android.content.DialogInterface; import android.graphics.Color; import android.preference.PreferenceManager; import android.support.annotation.ColorInt; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import pasta.music.R; public class PreferenceUtils { final public static String PRELOAD = "preload", LIMIT = "limit", DEBUG = "debug", THUMBNAILS = "thumbnails", RETRY = "retry", CARDS = "cards", LIST_TRACKS = "list_tracks", DARK_THEME = "dark_theme", PALETTE = "palette", PRIMARY = "primary_color", ACCENT = "accent_color", QUALITY = "playback_quality", ORDER = "order"; final public static int ORDER_ADDED = 0, ORDER_NAME = 1, ORDER_ARTIST = 2, ORDER_ALBUM = 3, ORDER_LENGTH = 4, ORDER_RANDOM = 5; public static boolean isPreload(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(PRELOAD, true); } public static int getLimit(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getInt(LIMIT, 0); } public static boolean isDebug(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(DEBUG, false); } public static boolean isThumbnails(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(THUMBNAILS, true); } public static int getRetryCount(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getInt(RETRY, 3); } public static boolean isCards(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(CARDS, false); } public static boolean isListTracks(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(LIST_TRACKS, true); } public static boolean isDarkTheme(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(DARK_THEME, false); } public static boolean isPalette(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(PALETTE, true); } @ColorInt public static int getPrimaryColor(Context context) { int color = PreferenceManager.getDefaultSharedPreferences(context).getInt(PRIMARY, ContextCompat.getColor(context, R.color.primary)); if (Color.alpha(color) < 255) { color = Color.argb(255, Color.red(color), Color.blue(color), Color.green(color)); } return color; } @ColorInt public static int getAccentColor(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getInt(ACCENT, ContextCompat.getColor(context, R.color.accent)); } public static int getQuality(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getInt(QUALITY, 1); } public static AlertDialog getOrderingDialog(final Context context, DialogInterface.OnClickListener onItemListener, DialogInterface.OnClickListener onClickListener) { return new AlertDialog.Builder(context) .setTitle(R.string.organize) .setSingleChoiceItems(R.array.organization, getTrackOrder(context), onItemListener) .setPositiveButton(R.string.save, onClickListener) .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface d, int which) { d.dismiss(); } }).create(); } public static int getTrackOrder(Context context) { return PreferenceManager.getDefaultSharedPreferences(context).getInt(ORDER, ORDER_ADDED); } public static int getColumnNumber(Context context, boolean landscape) { int columns = 2; if (landscape) columns++; return columns; } }