/* * Copyright 2016 Substance Mobile * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.animbus.music.util; import android.content.ComponentName; import android.content.Context; import android.content.pm.PackageManager; import android.view.View; import com.afollestad.appthemeengine.util.ATEUtil; import com.animbus.music.R; import com.animbus.music.ui.activity.settings.chooseIcon.Icon; /** * Created by Adrian on 7/26/2015. */ public class IconManager { public static final int DESIGNER_SRINI = 0, DESIGNER_ALEX = 1, DESIGNER_JAKA = 2, DESIGNER_NGUYEN = 3; public static final int COLOR_BLACK = 0, COLOR_WHITE = 1, COLOR_SLATE = 2, COLOR_RED = 3, COLOR_BLUE = 4, COLOR_GREEN = 5, COLOR_ORANGE = 6, COLOR_COLORFUL = 7; public static final int COLOR_BLACK_SIMPLE = 8, COLOR_WHITE_SIMPLE = 9; private static IconManager ourInstance = new IconManager(); Context cxt; int ICON_TRUE, ICON_FALSE; private IconManager() { ICON_FALSE = PackageManager.COMPONENT_ENABLED_STATE_DISABLED; ICON_TRUE = PackageManager.COMPONENT_ENABLED_STATE_ENABLED; } public static IconManager get() { return ourInstance; } public IconManager setContext(Context context) { this.cxt = context; return this; } public Icon getIcon() { return getIcon(Options.getSavedIconID()); } public void setIcon(Icon icon) { Options.setSavedIconID(icon.getId()); } public Icon getIcon(int id) { if (id == getID(DESIGNER_SRINI, COLOR_BLACK)) { return new Icon(DESIGNER_SRINI, COLOR_BLACK); } else if (id == getID(DESIGNER_SRINI, COLOR_WHITE)) { return new Icon(DESIGNER_SRINI, COLOR_WHITE); } else if (id == getID(DESIGNER_SRINI, COLOR_RED)) { return new Icon(DESIGNER_SRINI, COLOR_RED); } else if (id == getID(DESIGNER_SRINI, COLOR_SLATE)) { return new Icon(DESIGNER_SRINI, COLOR_SLATE); } else if (id == getID(DESIGNER_SRINI, COLOR_GREEN)) { return new Icon(DESIGNER_SRINI, COLOR_GREEN); } else if (id == getID(DESIGNER_SRINI, COLOR_BLUE)) { return new Icon(DESIGNER_SRINI, COLOR_BLUE); } else if (id == getID(DESIGNER_ALEX, COLOR_BLACK)) { return new Icon(DESIGNER_ALEX, COLOR_BLACK); } else if (id == getID(DESIGNER_ALEX, COLOR_WHITE)) { return new Icon(DESIGNER_ALEX, COLOR_WHITE); } else if (id == getID(DESIGNER_ALEX, COLOR_COLORFUL)) { return new Icon(DESIGNER_ALEX, COLOR_COLORFUL); } else if (id == getID(DESIGNER_JAKA, COLOR_BLACK)) { return new Icon(DESIGNER_JAKA, COLOR_BLACK); } else if (id == getID(DESIGNER_JAKA, COLOR_WHITE)) { return new Icon(DESIGNER_JAKA, COLOR_WHITE); } else if (id == getID(DESIGNER_NGUYEN, COLOR_ORANGE)) { return new Icon(DESIGNER_NGUYEN, COLOR_ORANGE); } else if (id == getID(DESIGNER_NGUYEN, COLOR_GREEN)) { return new Icon(DESIGNER_NGUYEN, COLOR_GREEN); } else if (id == getID(DESIGNER_NGUYEN, COLOR_RED)) { return new Icon(DESIGNER_NGUYEN, COLOR_RED); } else { return null; } } public Icon getOverviewIcon(Icon icon, int color){ int id = icon.getId(); boolean useLight = ATEUtil.isColorLight(color); if (id == getID(DESIGNER_SRINI, COLOR_BLACK)) { if (useLight){ return new Icon(DESIGNER_SRINI, COLOR_BLACK); } else { return new Icon(DESIGNER_SRINI, COLOR_WHITE); } } else if (id == getID(DESIGNER_SRINI, COLOR_WHITE)) { if (useLight){ return new Icon(DESIGNER_SRINI, COLOR_BLACK); } else { return new Icon(DESIGNER_SRINI, COLOR_WHITE); } } else if (id == getID(DESIGNER_SRINI, COLOR_RED)) { return new Icon(DESIGNER_SRINI, COLOR_RED); } else if (id == getID(DESIGNER_SRINI, COLOR_SLATE)) { return new Icon(DESIGNER_SRINI, COLOR_SLATE); } else if (id == getID(DESIGNER_SRINI, COLOR_GREEN)) { return new Icon(DESIGNER_SRINI, COLOR_GREEN); } else if (id == getID(DESIGNER_SRINI, COLOR_BLUE)) { return new Icon(DESIGNER_SRINI, COLOR_BLUE); } else if (id == getID(DESIGNER_ALEX, COLOR_BLACK)) { if (useLight){ return new Icon(DESIGNER_ALEX, COLOR_BLACK); } else { return new Icon(DESIGNER_ALEX, COLOR_WHITE); } } else if (id == getID(DESIGNER_ALEX, COLOR_WHITE)) { if (useLight){ return new Icon(DESIGNER_ALEX, COLOR_BLACK); } else { return new Icon(DESIGNER_ALEX, COLOR_WHITE); } } else if (id == getID(DESIGNER_ALEX, COLOR_COLORFUL)) { return new Icon(DESIGNER_ALEX, COLOR_COLORFUL); } else if (id == getID(DESIGNER_JAKA, COLOR_BLACK)) { if (useLight){ return new Icon(DESIGNER_JAKA, COLOR_BLACK_SIMPLE); } else { return new Icon(DESIGNER_JAKA, COLOR_WHITE_SIMPLE); } } else if (id == getID(DESIGNER_JAKA, COLOR_WHITE)) { if (useLight){ return new Icon(DESIGNER_SRINI, COLOR_BLACK_SIMPLE); } else { return new Icon(DESIGNER_SRINI, COLOR_WHITE_SIMPLE); } } else if (id == getID(DESIGNER_NGUYEN, COLOR_ORANGE)) { return new Icon(DESIGNER_NGUYEN, COLOR_ORANGE); } else if (id == getID(DESIGNER_NGUYEN, COLOR_GREEN)) { return new Icon(DESIGNER_NGUYEN, COLOR_GREEN); } else if (id == getID(DESIGNER_NGUYEN, COLOR_RED)) { return new Icon(DESIGNER_NGUYEN, COLOR_RED); } else { return null; } } public Icon getIcon(View v) { int id = -1; switch (v.getId()) { case R.id.settings_choose_icon_srini_black: id = getID(DESIGNER_SRINI, COLOR_BLACK); break; case R.id.settings_choose_icon_srini_white: id = getID(DESIGNER_SRINI, COLOR_WHITE); break; case R.id.settings_choose_icon_srini_red: id = getID(DESIGNER_SRINI, COLOR_RED); break; case R.id.settings_choose_icon_strini_slate: id = getID(DESIGNER_SRINI, COLOR_SLATE); break; case R.id.settings_choose_icon_srini_green: id = getID(DESIGNER_SRINI, COLOR_GREEN); break; case R.id.settings_choose_icon_srini_blue: id = getID(DESIGNER_SRINI, COLOR_BLUE); break; case R.id.settings_choose_icon_alex_black: id = getID(DESIGNER_ALEX, COLOR_BLACK); break; case R.id.settings_choose_icon_alex_white: id = getID(DESIGNER_ALEX, COLOR_WHITE); break; case R.id.settings_choose_icon_alex_color: id = getID(DESIGNER_ALEX, COLOR_COLORFUL); break; case R.id.settings_choose_icon_jaka_black: id = getID(DESIGNER_JAKA, COLOR_BLACK); break; case R.id.settings_choose_icon_jaka_white: id = getID(DESIGNER_JAKA, COLOR_WHITE); break; case R.id.settings_choose_icon_nguyen_orange: id = getID(DESIGNER_NGUYEN, COLOR_ORANGE); break; case R.id.settings_choose_icon_nguyen_green: id = getID(DESIGNER_NGUYEN, COLOR_GREEN); break; case R.id.settings_choose_icon_nguyen_red: id = getID(DESIGNER_NGUYEN, COLOR_RED); break; } return getIcon(id); } public Icon getIcon(int designer, int color) { return getIcon(getID(designer, color)); } public int getID(int designer, int color) { if (designer == DESIGNER_SRINI) { if (color == COLOR_BLACK) { return 0; } else if (color == COLOR_WHITE) { return 1; } else if (color == COLOR_RED) { return 2; } else if (color == COLOR_SLATE) { return 3; } else if (color == COLOR_GREEN) { return 4; } else if (color == COLOR_BLUE) { return 5; } else { return -1; } } else if (designer == DESIGNER_ALEX) { if (color == COLOR_BLACK) { return 6; } else if (color == COLOR_WHITE) { return 7; } else if (color == COLOR_COLORFUL) { return 8; } else { return -1; } } else if (designer == DESIGNER_JAKA) { if (color == COLOR_BLACK) { return 9; } else if (color == COLOR_WHITE) { return 10; } else if (color == COLOR_WHITE_SIMPLE) { return 11; } else if (color == COLOR_BLACK_SIMPLE) { return 12; } else { return -1; } } else if (designer == DESIGNER_NGUYEN) { if (color == COLOR_ORANGE) { return 13; } else if (color == COLOR_GREEN) { return 14; } else if (color == COLOR_RED) { return 15; } else { return -1; } } else { return -1; } } public ComponentName getName(int id) { if (id == getID(DESIGNER_SRINI, COLOR_BLACK)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.srini.black"); } else if (id == getID(DESIGNER_SRINI, COLOR_WHITE)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.srini.white"); } else if (id == getID(DESIGNER_SRINI, COLOR_RED)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.srini.red"); } else if (id == getID(DESIGNER_SRINI, COLOR_SLATE)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.srini.slate"); } else if (id == getID(DESIGNER_SRINI, COLOR_GREEN)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.srini.green"); } else if (id == getID(DESIGNER_SRINI, COLOR_BLUE)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.srini.blue"); } else if (id == getID(DESIGNER_ALEX, COLOR_BLACK)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.alex.black"); } else if (id == getID(DESIGNER_ALEX, COLOR_WHITE)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.alex.white"); } else if (id == getID(DESIGNER_ALEX, COLOR_COLORFUL)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.alex.color"); } else if (id == getID(DESIGNER_JAKA, COLOR_BLACK)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.jaka.black"); } else if (id == getID(DESIGNER_JAKA, COLOR_WHITE)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.jaka.white"); } else if (id == getID(DESIGNER_NGUYEN, COLOR_ORANGE)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.nguyen.orange"); } else if (id == getID(DESIGNER_NGUYEN, COLOR_GREEN)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.nguyen.green"); } else if (id == getID(DESIGNER_NGUYEN, COLOR_RED)) { return new ComponentName(cxt.getPackageName(), "com.animbus.music.activities.app.icon.nguyen.red"); } else { return null; } } public int getDrawable(int id){ if (id == getID(DESIGNER_SRINI, COLOR_BLACK)) { return R.mipmap.ic_launcher_srini_black; } else if (id == getID(DESIGNER_SRINI, COLOR_WHITE)) { return R.mipmap.ic_launcher_srini_white; } else if (id == getID(DESIGNER_SRINI, COLOR_RED)) { return R.mipmap.ic_launcher_srini_red; } else if (id == getID(DESIGNER_SRINI, COLOR_SLATE)) { return R.mipmap.ic_launcher_srini_slate; } else if (id == getID(DESIGNER_SRINI, COLOR_GREEN)) { return R.mipmap.ic_launcher_srini_black; } else if (id == getID(DESIGNER_SRINI, COLOR_BLUE)) { return R.mipmap.ic_launcher_srini_black; } else if (id == getID(DESIGNER_ALEX, COLOR_BLACK)) { return R.mipmap.ic_launcher_alex_black; } else if (id == getID(DESIGNER_ALEX, COLOR_WHITE)) { return R.mipmap.ic_launcher_alex_white; } else if (id == getID(DESIGNER_ALEX, COLOR_COLORFUL)) { return R.mipmap.ic_launcher_alex_color; } else if (id == getID(DESIGNER_JAKA, COLOR_BLACK)) { return R.mipmap.ic_launcher_jaka_dark; } else if (id == getID(DESIGNER_JAKA, COLOR_WHITE)) { return R.mipmap.ic_launcher_jaka_light; } else if (id == getID(DESIGNER_JAKA, COLOR_BLACK_SIMPLE)) { return R.mipmap.ic_launcher_jaka_dark_simple; } else if (id == getID(DESIGNER_JAKA, COLOR_WHITE_SIMPLE)) { return R.mipmap.ic_launcher_jaka_light_simple; } else if (id == getID(DESIGNER_NGUYEN, COLOR_ORANGE)) { return R.mipmap.ic_launcher_nguyen_orange; } else if (id == getID(DESIGNER_NGUYEN, COLOR_GREEN)) { return R.mipmap.ic_launcher_nguyen_green; } else if (id == getID(DESIGNER_NGUYEN, COLOR_RED)) { return R.mipmap.ic_launcher_nguyen_red; } else { return -1; } } public void enable(Icon ico){ cxt.getPackageManager().setComponentEnabledSetting(ico.getName(), ICON_TRUE, PackageManager.DONT_KILL_APP); } public void disable(Icon ico){ cxt.getPackageManager().setComponentEnabledSetting(ico.getName(), ICON_FALSE, PackageManager.DONT_KILL_APP); } public void switchTo(Icon ico){ disableAll(); enable(ico); } public void disableAll(){ disable(getIcon(DESIGNER_SRINI, COLOR_BLACK)); disable(getIcon(DESIGNER_SRINI, COLOR_WHITE)); disable(getIcon(DESIGNER_SRINI, COLOR_RED)); disable(getIcon(DESIGNER_SRINI, COLOR_SLATE)); disable(getIcon(DESIGNER_SRINI, COLOR_GREEN)); disable(getIcon(DESIGNER_SRINI, COLOR_BLUE)); disable(getIcon(DESIGNER_ALEX, COLOR_BLACK)); disable(getIcon(DESIGNER_ALEX, COLOR_WHITE)); disable(getIcon(DESIGNER_ALEX, COLOR_COLORFUL)); disable(getIcon(DESIGNER_JAKA, COLOR_BLACK)); disable(getIcon(DESIGNER_JAKA, COLOR_WHITE)); disable(getIcon(DESIGNER_NGUYEN, COLOR_ORANGE)); disable(getIcon(DESIGNER_NGUYEN, COLOR_GREEN)); disable(getIcon(DESIGNER_NGUYEN, COLOR_RED)); } public void enableAll(){ enable(getIcon(DESIGNER_SRINI, COLOR_BLACK)); enable(getIcon(DESIGNER_SRINI, COLOR_WHITE)); enable(getIcon(DESIGNER_SRINI, COLOR_RED)); enable(getIcon(DESIGNER_SRINI, COLOR_SLATE)); enable(getIcon(DESIGNER_SRINI, COLOR_GREEN)); enable(getIcon(DESIGNER_SRINI, COLOR_BLUE)); enable(getIcon(DESIGNER_ALEX, COLOR_BLACK)); enable(getIcon(DESIGNER_ALEX, COLOR_WHITE)); enable(getIcon(DESIGNER_ALEX, COLOR_COLORFUL)); enable(getIcon(DESIGNER_JAKA, COLOR_BLACK)); enable(getIcon(DESIGNER_JAKA, COLOR_WHITE)); enable(getIcon(DESIGNER_NGUYEN, COLOR_ORANGE)); enable(getIcon(DESIGNER_NGUYEN, COLOR_GREEN)); enable(getIcon(DESIGNER_NGUYEN, COLOR_RED)); } }