package de.robv.android.xposed.installer.util; import android.content.Context; import android.content.res.Resources.Theme; import android.content.res.TypedArray; import de.robv.android.xposed.installer.R; import de.robv.android.xposed.installer.XposedApp; import de.robv.android.xposed.installer.XposedBaseActivity; public final class ThemeUtil { private static int[] THEMES = new int[] { R.style.Theme_XposedInstaller_Light, R.style.Theme_XposedInstaller_Dark, R.style.Theme_XposedInstaller_Dark_Black, }; private ThemeUtil() { } public static int getSelectTheme() { int theme = XposedApp.getPreferences().getInt("theme", 0); return (theme >= 0 && theme < THEMES.length) ? theme : 0; } public static void setTheme(XposedBaseActivity activity) { activity.mTheme = getSelectTheme(); activity.setTheme(THEMES[activity.mTheme]); } public static void reloadTheme(XposedBaseActivity activity) { int theme = getSelectTheme(); if (theme != activity.mTheme) activity.recreate(); } public static int getThemeColor(Context context, int id) { Theme theme = context.getTheme(); TypedArray a = theme.obtainStyledAttributes(new int[] { id }); int result = a.getColor(0, 0); a.recycle(); return result; } }