package com.mistareader; import android.app.Activity; import android.content.res.Resources.Theme; import android.util.TypedValue; public class ThemesManager { public static int CurrentTheme; public final static int THEME_DEFAULT = 0; public final static String SETTINGS_THEME = "THEME"; private final static int THEME_LIGHT = 1; private final static int THEME_GRAY = 2; private final static int THEME_BLACK = 3; public static int iconArrowUp; public static int iconArrowDown; public static int iconAccount; public static int iconThemes; public static int iconAbout; public static int iconForum; public static int iconReplies; public static int iconNewItem; public static int iconSend; public static int iconSettings; public static int colorBg_message_body; public static void changeTheme(Activity activity, int theme) { CurrentTheme = theme; activity.recreate(); } public static String getCurrentThemeName(Activity activity) { switch (CurrentTheme) { case THEME_LIGHT: return activity.getString(R.string.sThemeLight); case THEME_BLACK: return activity.getString(R.string.sThemePureBlack); } return activity.getString(R.string.sThemeGray); } public static void onActivityCreateSetTheme(Activity activity) { if (CurrentTheme == THEME_DEFAULT) { CurrentTheme = THEME_GRAY; } switch (CurrentTheme) { case THEME_GRAY: activity.setTheme(R.style.Theme_Gray); break; case THEME_LIGHT: activity.setTheme(R.style.Theme_Light); break; case THEME_BLACK: activity.setTheme(R.style.Theme_Black); break; default: } initIcons(activity); } public static void initIcons(Activity activity) { TypedValue typedValue = new TypedValue(); Theme theme = activity.getTheme(); theme.resolveAttribute(R.attr.bg_message_body, typedValue, true); colorBg_message_body = typedValue.data; theme.resolveAttribute(R.attr.iconArrowUp, typedValue, true); iconArrowUp = typedValue.resourceId; theme.resolveAttribute(R.attr.iconArrowDown, typedValue, true); iconArrowDown = typedValue.resourceId; theme.resolveAttribute(R.attr.iconAccount, typedValue, true); iconAccount = typedValue.resourceId; theme.resolveAttribute(R.attr.iconThemes, typedValue, true); iconThemes = typedValue.resourceId; theme.resolveAttribute(R.attr.iconAbout, typedValue, true); iconAbout = typedValue.resourceId; theme.resolveAttribute(R.attr.iconForum, typedValue, true); iconForum = typedValue.resourceId; theme.resolveAttribute(R.attr.iconReplies, typedValue, true); iconReplies = typedValue.resourceId; theme.resolveAttribute(R.attr.iconNewItem, typedValue, true); iconNewItem = typedValue.resourceId; theme.resolveAttribute(R.attr.iconSend, typedValue, true); iconSend = typedValue.resourceId; theme.resolveAttribute(R.attr.iconSettings, typedValue, true); iconSettings = typedValue.resourceId; } }