package tk.zielony.carbonsamples; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.databinding.DataBindingUtil; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import tk.zielony.carbonsamples.databinding.ActivityColordemoBinding; public class ColorsActivity extends SamplesActivity { public static final String ACCENT = "accent"; public static final String PRIMARY = "primary"; public static final String STYLE = "style"; public static final String THEME = "theme"; public static class Item { String name; int value; public int color; public Item(String name, int value, int color) { this.name = name; this.value = value; this.color = color; } @Override public String toString() { return name; } } static Item[] styles = new Item[]{ new Item("Dark", R.style.ThemeDark, R.color.carbon_colorBackground_dark), new Item("Light", R.style.ThemeLight, R.color.carbon_colorBackground_light) }; public static Item[] primary = new Item[]{ new Item("Red", R.style.PrimaryRed, R.color.carbon_red_400), new Item("Pink", R.style.PrimaryPink, R.color.carbon_pink_400), new Item("Purple", R.style.PrimaryPurple, R.color.carbon_purple_400), new Item("Deep purple", R.style.PrimaryDeepPurple, R.color.carbon_deepPurple_400), new Item("Indigo", R.style.PrimaryIndigo, R.color.carbon_indigo_400), new Item("Blue", R.style.PrimaryBlue, R.color.carbon_blue_400), new Item("Light blue", R.style.PrimaryLightBlue, R.color.carbon_lightBlue_400), new Item("Cyan", R.style.PrimaryCyan, R.color.carbon_cyan_400), new Item("Teal", R.style.PrimaryTeal, R.color.carbon_teal_400), new Item("Green", R.style.PrimaryGreen, R.color.carbon_green_400), new Item("Light green", R.style.PrimaryLightGreen, R.color.carbon_lightGreen_400), new Item("Lime", R.style.PrimaryLime, R.color.carbon_lime_400), new Item("Yellow", R.style.PrimaryYellow, R.color.carbon_yellow_400), new Item("Amber", R.style.PrimaryAmber, R.color.carbon_amber_400), new Item("Orange", R.style.PrimaryOrange, R.color.carbon_orange_400), new Item("Deep orange", R.style.PrimaryDeepOrange, R.color.carbon_deepOrange_400), new Item("Brown", R.style.PrimaryBrown, R.color.carbon_brown_400), new Item("Grey", R.style.PrimaryGrey, R.color.carbon_grey_400), new Item("Blue grey", R.style.PrimaryBlueGrey, R.color.carbon_blueGrey_400) }; static Item[] accents = new Item[]{ new Item("Red", R.style.AccentRed, R.color.carbon_red_a200), new Item("Pink", R.style.AccentPink, R.color.carbon_pink_a200), new Item("Purple", R.style.AccentPurple, R.color.carbon_purple_a200), new Item("Deep purple", R.style.AccentDeepPurple, R.color.carbon_deepPurple_a200), new Item("Indigo", R.style.AccentIndigo, R.color.carbon_indigo_a200), new Item("Blue", R.style.AccentBlue, R.color.carbon_blue_a200), new Item("Light blue", R.style.AccentLightBlue, R.color.carbon_lightBlue_a200), new Item("Cyan", R.style.AccentCyan, R.color.carbon_cyan_a200), new Item("Teal", R.style.AccentTeal, R.color.carbon_teal_a200), new Item("Green", R.style.AccentGreen, R.color.carbon_green_a200), new Item("Light green", R.style.AccentLightGreen, R.color.carbon_lightGreen_a200), new Item("Lime", R.style.AccentLime, R.color.carbon_lime_a200), new Item("Yellow", R.style.AccentYellow, R.color.carbon_yellow_a200), new Item("Amber", R.style.AccentAmber, R.color.carbon_amber_a200), new Item("Orange", R.style.AccentOrange, R.color.carbon_orange_a200), new Item("Deep orange", R.style.AccentDeepOrange, R.color.carbon_deepOrange_a200), new Item("White", R.style.AccentWhite, R.color.carbon_white), new Item("Black", R.style.AccentBlack, R.color.carbon_black) }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityColordemoBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_colordemo); Samples.initToolbar(this, getString(R.string.colorsActivity_title)); binding.style.setItems(styles); binding.style.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { SharedPreferences preferences = ColorsActivity.this.getSharedPreferences(THEME, Context.MODE_PRIVATE); preferences.edit().putInt(STYLE, binding.style.getSelectedIndex()).commit(); Item item = (Item) binding.style.getSelectedItem(); binding.themebg.setImageDrawable(new ColorDrawable(getResources().getColor(item.color))); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); { SharedPreferences preferences = ColorsActivity.this.getSharedPreferences(THEME, Context.MODE_PRIVATE); binding.style.setSelectedIndex(preferences.getInt(STYLE, 1)); Item item = styles[preferences.getInt(STYLE, 1)]; binding.themebg.setImageDrawable(new ColorDrawable(getResources().getColor(item.color))); } binding.primary.setItems(primary); binding.primary.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { SharedPreferences preferences = ColorsActivity.this.getSharedPreferences(THEME, Context.MODE_PRIVATE); preferences.edit().putInt(PRIMARY, binding.primary.getSelectedIndex()).commit(); Item item = (Item) binding.primary.getSelectedItem(); binding.primarybg.setImageDrawable(new ColorDrawable(getResources().getColor(item.color))); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); { SharedPreferences preferences = ColorsActivity.this.getSharedPreferences(THEME, Context.MODE_PRIVATE); binding.primary.setSelectedIndex(preferences.getInt(PRIMARY, 0)); Item item = primary[preferences.getInt(PRIMARY, 8)]; binding.primarybg.setImageDrawable(new ColorDrawable(getResources().getColor(item.color))); } binding.accent.setItems(accents); binding.accent.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { SharedPreferences preferences = ColorsActivity.this.getSharedPreferences(THEME, Context.MODE_PRIVATE); preferences.edit().putInt(ACCENT, binding.accent.getSelectedIndex()).commit(); Item item = (Item) binding.accent.getSelectedItem(); binding.accentbg.setImageDrawable(new ColorDrawable(getResources().getColor(item.color))); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); { SharedPreferences preferences = ColorsActivity.this.getSharedPreferences(THEME, Context.MODE_PRIVATE); binding.accent.setSelectedIndex(preferences.getInt(ACCENT, 0)); Item item = accents[preferences.getInt(ACCENT, 14)]; binding.accentbg.setImageDrawable(new ColorDrawable(getResources().getColor(item.color))); } } @Override public void onBackPressed() { Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); } }