/*
 * Copyright (C) 2018 Willi Ye <williye97@gmail.com>
 *
 * This file is part of Kernel Adiutor.
 *
 * Kernel Adiutor is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Kernel Adiutor is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Kernel Adiutor.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
package com.grarak.kerneladiutor.utils;

import android.content.Context;
import android.support.annotation.ColorRes;
import android.support.annotation.StyleRes;

import com.grarak.kerneladiutor.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by willi on 04.03.18.
 */

public class Themes {

    public static class Theme {
        private String mPrimary;
        private String mAccent;
        private @StyleRes
        int mStyle;

        private Theme(String primary, String accent, @StyleRes int style) {
            mPrimary = primary;
            mAccent = accent;
            mStyle = style;
        }

        public int getStyle() {
            return mStyle;
        }

        @Override
        public String toString() {
            return mPrimary + ";" + mAccent;
        }
    }

    private static final String THEME_PREF_KEY = "application_theme";
    private static final String DARK_THEME_PREF_KEY = "darktheme";
    private static final String DEFAULT_THEME = "defaultPrimary;pinkAccent";

    public static boolean isDarkTheme(Context context) {
        return Prefs.getBoolean(DARK_THEME_PREF_KEY, false, context);
    }

    public static Theme getTheme(Context context, boolean darktheme) {
        String savedTheme = Prefs.getString(THEME_PREF_KEY, DEFAULT_THEME, context);
        Theme theme;
        if (darktheme) {
            theme = sThemesDark.get(savedTheme);
        } else {
            theme = sThemes.get(savedTheme);
        }
        if (theme == null) {
            if (darktheme) {
                theme = sThemesDark.get(DEFAULT_THEME);
            } else {
                theme = sThemes.get(DEFAULT_THEME);
            }
        }
        return theme;
    }

    public static void savePrimaryColor(String color, Context context) {
        Prefs.saveString(THEME_PREF_KEY,
                color + ";" + getAccentColor(context), context);
    }

    public static void saveAccentColor(String color, Context context) {
        Prefs.saveString(THEME_PREF_KEY,
                getPrimaryColor(context) + ";" + color, context);
    }

    public static String getPrimaryColor(Context context) {
        return getTheme(context, false).mPrimary;
    }

    public static String getAccentColor(Context context) {
        return getTheme(context, false).mAccent;
    }

    @ColorRes
    public static int getColor(String color, Context context) {
        return context.getResources().getIdentifier(color,
                "color", context.getPackageName());
    }

    public static final List<String> sPrimaryColors = new ArrayList<>();
    public static final List<String> sAccentColors = new ArrayList<>();

    private static final Map<String, Theme> sThemes = new HashMap<>();
    private static final Map<String, Theme> sThemesDark = new HashMap<>();

    // generated by theme_generator.cpp
    static {
        sPrimaryColors.add("defaultPrimary");
        sPrimaryColors.add("redPrimary");
        sPrimaryColors.add("pinkPrimary");
        sPrimaryColors.add("purplePrimary");
        sPrimaryColors.add("bluePrimary");
        sPrimaryColors.add("greenPrimary");
        sPrimaryColors.add("orangePrimary");
        sPrimaryColors.add("brownPrimary");
        sPrimaryColors.add("greyPrimary");
        sPrimaryColors.add("blue_greyPrimary");
        sPrimaryColors.add("tealPrimary");
        sPrimaryColors.add("deep_purplePrimary");
        sPrimaryColors.add("limePrimary");
        sPrimaryColors.add("indigoPrimary");
        sPrimaryColors.add("cyanPrimary");
        sPrimaryColors.add("deep_orangePrimary");

        sAccentColors.add("defaultAccent");
        sAccentColors.add("redAccent");
        sAccentColors.add("pinkAccent");
        sAccentColors.add("purpleAccent");
        sAccentColors.add("blueAccent");
        sAccentColors.add("greenAccent");
        sAccentColors.add("orangeAccent");
        sAccentColors.add("brownAccent");
        sAccentColors.add("greyAccent");
        sAccentColors.add("blue_greyAccent");
        sAccentColors.add("tealAccent");
        sAccentColors.add("deep_purpleAccent");
        sAccentColors.add("limeAccent");
        sAccentColors.add("indigoAccent");
        sAccentColors.add("cyanAccent");
        sAccentColors.add("deep_orangeAccent");

        sThemes.put("defaultPrimary;redAccent", new Theme("defaultPrimary", "redAccent", R.style.Theme_Default_Red));
        sThemes.put("defaultPrimary;pinkAccent", new Theme("defaultPrimary", "pinkAccent", R.style.Theme_Default_Pink));
        sThemes.put("defaultPrimary;purpleAccent", new Theme("defaultPrimary", "purpleAccent", R.style.Theme_Default_Purple));
        sThemes.put("defaultPrimary;blueAccent", new Theme("defaultPrimary", "blueAccent", R.style.Theme_Default_Blue));
        sThemes.put("defaultPrimary;greenAccent", new Theme("defaultPrimary", "greenAccent", R.style.Theme_Default_Green));
        sThemes.put("defaultPrimary;orangeAccent", new Theme("defaultPrimary", "orangeAccent", R.style.Theme_Default_Orange));
        sThemes.put("defaultPrimary;brownAccent", new Theme("defaultPrimary", "brownAccent", R.style.Theme_Default_Brown));
        sThemes.put("defaultPrimary;greyAccent", new Theme("defaultPrimary", "greyAccent", R.style.Theme_Default_Grey));
        sThemes.put("defaultPrimary;blue_greyAccent", new Theme("defaultPrimary", "blue_greyAccent", R.style.Theme_Default_Blue_Grey));
        sThemes.put("defaultPrimary;tealAccent", new Theme("defaultPrimary", "tealAccent", R.style.Theme_Default_Teal));
        sThemes.put("defaultPrimary;deep_purpleAccent", new Theme("defaultPrimary", "deep_purpleAccent", R.style.Theme_Default_Deep_Purple));
        sThemes.put("defaultPrimary;limeAccent", new Theme("defaultPrimary", "limeAccent", R.style.Theme_Default_Lime));
        sThemes.put("defaultPrimary;indigoAccent", new Theme("defaultPrimary", "indigoAccent", R.style.Theme_Default_Indigo));
        sThemes.put("defaultPrimary;cyanAccent", new Theme("defaultPrimary", "cyanAccent", R.style.Theme_Default_Cyan));
        sThemes.put("defaultPrimary;deep_orangeAccent", new Theme("defaultPrimary", "deep_orangeAccent", R.style.Theme_Default_Deep_Orange));
        sThemes.put("redPrimary;defaultAccent", new Theme("redPrimary", "defaultAccent", R.style.Theme_Red_Default));
        sThemes.put("redPrimary;pinkAccent", new Theme("redPrimary", "pinkAccent", R.style.Theme_Red_Pink));
        sThemes.put("redPrimary;purpleAccent", new Theme("redPrimary", "purpleAccent", R.style.Theme_Red_Purple));
        sThemes.put("redPrimary;blueAccent", new Theme("redPrimary", "blueAccent", R.style.Theme_Red_Blue));
        sThemes.put("redPrimary;greenAccent", new Theme("redPrimary", "greenAccent", R.style.Theme_Red_Green));
        sThemes.put("redPrimary;orangeAccent", new Theme("redPrimary", "orangeAccent", R.style.Theme_Red_Orange));
        sThemes.put("redPrimary;brownAccent", new Theme("redPrimary", "brownAccent", R.style.Theme_Red_Brown));
        sThemes.put("redPrimary;greyAccent", new Theme("redPrimary", "greyAccent", R.style.Theme_Red_Grey));
        sThemes.put("redPrimary;blue_greyAccent", new Theme("redPrimary", "blue_greyAccent", R.style.Theme_Red_Blue_Grey));
        sThemes.put("redPrimary;tealAccent", new Theme("redPrimary", "tealAccent", R.style.Theme_Red_Teal));
        sThemes.put("redPrimary;deep_purpleAccent", new Theme("redPrimary", "deep_purpleAccent", R.style.Theme_Red_Deep_Purple));
        sThemes.put("redPrimary;limeAccent", new Theme("redPrimary", "limeAccent", R.style.Theme_Red_Lime));
        sThemes.put("redPrimary;indigoAccent", new Theme("redPrimary", "indigoAccent", R.style.Theme_Red_Indigo));
        sThemes.put("redPrimary;cyanAccent", new Theme("redPrimary", "cyanAccent", R.style.Theme_Red_Cyan));
        sThemes.put("redPrimary;deep_orangeAccent", new Theme("redPrimary", "deep_orangeAccent", R.style.Theme_Red_Deep_Orange));
        sThemes.put("pinkPrimary;defaultAccent", new Theme("pinkPrimary", "defaultAccent", R.style.Theme_Pink_Default));
        sThemes.put("pinkPrimary;redAccent", new Theme("pinkPrimary", "redAccent", R.style.Theme_Pink_Red));
        sThemes.put("pinkPrimary;purpleAccent", new Theme("pinkPrimary", "purpleAccent", R.style.Theme_Pink_Purple));
        sThemes.put("pinkPrimary;blueAccent", new Theme("pinkPrimary", "blueAccent", R.style.Theme_Pink_Blue));
        sThemes.put("pinkPrimary;greenAccent", new Theme("pinkPrimary", "greenAccent", R.style.Theme_Pink_Green));
        sThemes.put("pinkPrimary;orangeAccent", new Theme("pinkPrimary", "orangeAccent", R.style.Theme_Pink_Orange));
        sThemes.put("pinkPrimary;brownAccent", new Theme("pinkPrimary", "brownAccent", R.style.Theme_Pink_Brown));
        sThemes.put("pinkPrimary;greyAccent", new Theme("pinkPrimary", "greyAccent", R.style.Theme_Pink_Grey));
        sThemes.put("pinkPrimary;blue_greyAccent", new Theme("pinkPrimary", "blue_greyAccent", R.style.Theme_Pink_Blue_Grey));
        sThemes.put("pinkPrimary;tealAccent", new Theme("pinkPrimary", "tealAccent", R.style.Theme_Pink_Teal));
        sThemes.put("pinkPrimary;deep_purpleAccent", new Theme("pinkPrimary", "deep_purpleAccent", R.style.Theme_Pink_Deep_Purple));
        sThemes.put("pinkPrimary;limeAccent", new Theme("pinkPrimary", "limeAccent", R.style.Theme_Pink_Lime));
        sThemes.put("pinkPrimary;indigoAccent", new Theme("pinkPrimary", "indigoAccent", R.style.Theme_Pink_Indigo));
        sThemes.put("pinkPrimary;cyanAccent", new Theme("pinkPrimary", "cyanAccent", R.style.Theme_Pink_Cyan));
        sThemes.put("pinkPrimary;deep_orangeAccent", new Theme("pinkPrimary", "deep_orangeAccent", R.style.Theme_Pink_Deep_Orange));
        sThemes.put("purplePrimary;defaultAccent", new Theme("purplePrimary", "defaultAccent", R.style.Theme_Purple_Default));
        sThemes.put("purplePrimary;redAccent", new Theme("purplePrimary", "redAccent", R.style.Theme_Purple_Red));
        sThemes.put("purplePrimary;pinkAccent", new Theme("purplePrimary", "pinkAccent", R.style.Theme_Purple_Pink));
        sThemes.put("purplePrimary;blueAccent", new Theme("purplePrimary", "blueAccent", R.style.Theme_Purple_Blue));
        sThemes.put("purplePrimary;greenAccent", new Theme("purplePrimary", "greenAccent", R.style.Theme_Purple_Green));
        sThemes.put("purplePrimary;orangeAccent", new Theme("purplePrimary", "orangeAccent", R.style.Theme_Purple_Orange));
        sThemes.put("purplePrimary;brownAccent", new Theme("purplePrimary", "brownAccent", R.style.Theme_Purple_Brown));
        sThemes.put("purplePrimary;greyAccent", new Theme("purplePrimary", "greyAccent", R.style.Theme_Purple_Grey));
        sThemes.put("purplePrimary;blue_greyAccent", new Theme("purplePrimary", "blue_greyAccent", R.style.Theme_Purple_Blue_Grey));
        sThemes.put("purplePrimary;tealAccent", new Theme("purplePrimary", "tealAccent", R.style.Theme_Purple_Teal));
        sThemes.put("purplePrimary;deep_purpleAccent", new Theme("purplePrimary", "deep_purpleAccent", R.style.Theme_Purple_Deep_Purple));
        sThemes.put("purplePrimary;limeAccent", new Theme("purplePrimary", "limeAccent", R.style.Theme_Purple_Lime));
        sThemes.put("purplePrimary;indigoAccent", new Theme("purplePrimary", "indigoAccent", R.style.Theme_Purple_Indigo));
        sThemes.put("purplePrimary;cyanAccent", new Theme("purplePrimary", "cyanAccent", R.style.Theme_Purple_Cyan));
        sThemes.put("purplePrimary;deep_orangeAccent", new Theme("purplePrimary", "deep_orangeAccent", R.style.Theme_Purple_Deep_Orange));
        sThemes.put("bluePrimary;defaultAccent", new Theme("bluePrimary", "defaultAccent", R.style.Theme_Blue_Default));
        sThemes.put("bluePrimary;redAccent", new Theme("bluePrimary", "redAccent", R.style.Theme_Blue_Red));
        sThemes.put("bluePrimary;pinkAccent", new Theme("bluePrimary", "pinkAccent", R.style.Theme_Blue_Pink));
        sThemes.put("bluePrimary;purpleAccent", new Theme("bluePrimary", "purpleAccent", R.style.Theme_Blue_Purple));
        sThemes.put("bluePrimary;greenAccent", new Theme("bluePrimary", "greenAccent", R.style.Theme_Blue_Green));
        sThemes.put("bluePrimary;orangeAccent", new Theme("bluePrimary", "orangeAccent", R.style.Theme_Blue_Orange));
        sThemes.put("bluePrimary;brownAccent", new Theme("bluePrimary", "brownAccent", R.style.Theme_Blue_Brown));
        sThemes.put("bluePrimary;greyAccent", new Theme("bluePrimary", "greyAccent", R.style.Theme_Blue_Grey));
        sThemes.put("bluePrimary;blue_greyAccent", new Theme("bluePrimary", "blue_greyAccent", R.style.Theme_Blue_Blue_Grey));
        sThemes.put("bluePrimary;tealAccent", new Theme("bluePrimary", "tealAccent", R.style.Theme_Blue_Teal));
        sThemes.put("bluePrimary;deep_purpleAccent", new Theme("bluePrimary", "deep_purpleAccent", R.style.Theme_Blue_Deep_Purple));
        sThemes.put("bluePrimary;limeAccent", new Theme("bluePrimary", "limeAccent", R.style.Theme_Blue_Lime));
        sThemes.put("bluePrimary;indigoAccent", new Theme("bluePrimary", "indigoAccent", R.style.Theme_Blue_Indigo));
        sThemes.put("bluePrimary;cyanAccent", new Theme("bluePrimary", "cyanAccent", R.style.Theme_Blue_Cyan));
        sThemes.put("bluePrimary;deep_orangeAccent", new Theme("bluePrimary", "deep_orangeAccent", R.style.Theme_Blue_Deep_Orange));
        sThemes.put("greenPrimary;defaultAccent", new Theme("greenPrimary", "defaultAccent", R.style.Theme_Green_Default));
        sThemes.put("greenPrimary;redAccent", new Theme("greenPrimary", "redAccent", R.style.Theme_Green_Red));
        sThemes.put("greenPrimary;pinkAccent", new Theme("greenPrimary", "pinkAccent", R.style.Theme_Green_Pink));
        sThemes.put("greenPrimary;purpleAccent", new Theme("greenPrimary", "purpleAccent", R.style.Theme_Green_Purple));
        sThemes.put("greenPrimary;blueAccent", new Theme("greenPrimary", "blueAccent", R.style.Theme_Green_Blue));
        sThemes.put("greenPrimary;orangeAccent", new Theme("greenPrimary", "orangeAccent", R.style.Theme_Green_Orange));
        sThemes.put("greenPrimary;brownAccent", new Theme("greenPrimary", "brownAccent", R.style.Theme_Green_Brown));
        sThemes.put("greenPrimary;greyAccent", new Theme("greenPrimary", "greyAccent", R.style.Theme_Green_Grey));
        sThemes.put("greenPrimary;blue_greyAccent", new Theme("greenPrimary", "blue_greyAccent", R.style.Theme_Green_Blue_Grey));
        sThemes.put("greenPrimary;tealAccent", new Theme("greenPrimary", "tealAccent", R.style.Theme_Green_Teal));
        sThemes.put("greenPrimary;deep_purpleAccent", new Theme("greenPrimary", "deep_purpleAccent", R.style.Theme_Green_Deep_Purple));
        sThemes.put("greenPrimary;limeAccent", new Theme("greenPrimary", "limeAccent", R.style.Theme_Green_Lime));
        sThemes.put("greenPrimary;indigoAccent", new Theme("greenPrimary", "indigoAccent", R.style.Theme_Green_Indigo));
        sThemes.put("greenPrimary;cyanAccent", new Theme("greenPrimary", "cyanAccent", R.style.Theme_Green_Cyan));
        sThemes.put("greenPrimary;deep_orangeAccent", new Theme("greenPrimary", "deep_orangeAccent", R.style.Theme_Green_Deep_Orange));
        sThemes.put("orangePrimary;defaultAccent", new Theme("orangePrimary", "defaultAccent", R.style.Theme_Orange_Default));
        sThemes.put("orangePrimary;redAccent", new Theme("orangePrimary", "redAccent", R.style.Theme_Orange_Red));
        sThemes.put("orangePrimary;pinkAccent", new Theme("orangePrimary", "pinkAccent", R.style.Theme_Orange_Pink));
        sThemes.put("orangePrimary;purpleAccent", new Theme("orangePrimary", "purpleAccent", R.style.Theme_Orange_Purple));
        sThemes.put("orangePrimary;blueAccent", new Theme("orangePrimary", "blueAccent", R.style.Theme_Orange_Blue));
        sThemes.put("orangePrimary;greenAccent", new Theme("orangePrimary", "greenAccent", R.style.Theme_Orange_Green));
        sThemes.put("orangePrimary;brownAccent", new Theme("orangePrimary", "brownAccent", R.style.Theme_Orange_Brown));
        sThemes.put("orangePrimary;greyAccent", new Theme("orangePrimary", "greyAccent", R.style.Theme_Orange_Grey));
        sThemes.put("orangePrimary;blue_greyAccent", new Theme("orangePrimary", "blue_greyAccent", R.style.Theme_Orange_Blue_Grey));
        sThemes.put("orangePrimary;tealAccent", new Theme("orangePrimary", "tealAccent", R.style.Theme_Orange_Teal));
        sThemes.put("orangePrimary;deep_purpleAccent", new Theme("orangePrimary", "deep_purpleAccent", R.style.Theme_Orange_Deep_Purple));
        sThemes.put("orangePrimary;limeAccent", new Theme("orangePrimary", "limeAccent", R.style.Theme_Orange_Lime));
        sThemes.put("orangePrimary;indigoAccent", new Theme("orangePrimary", "indigoAccent", R.style.Theme_Orange_Indigo));
        sThemes.put("orangePrimary;cyanAccent", new Theme("orangePrimary", "cyanAccent", R.style.Theme_Orange_Cyan));
        sThemes.put("orangePrimary;deep_orangeAccent", new Theme("orangePrimary", "deep_orangeAccent", R.style.Theme_Orange_Deep_Orange));
        sThemes.put("brownPrimary;defaultAccent", new Theme("brownPrimary", "defaultAccent", R.style.Theme_Brown_Default));
        sThemes.put("brownPrimary;redAccent", new Theme("brownPrimary", "redAccent", R.style.Theme_Brown_Red));
        sThemes.put("brownPrimary;pinkAccent", new Theme("brownPrimary", "pinkAccent", R.style.Theme_Brown_Pink));
        sThemes.put("brownPrimary;purpleAccent", new Theme("brownPrimary", "purpleAccent", R.style.Theme_Brown_Purple));
        sThemes.put("brownPrimary;blueAccent", new Theme("brownPrimary", "blueAccent", R.style.Theme_Brown_Blue));
        sThemes.put("brownPrimary;greenAccent", new Theme("brownPrimary", "greenAccent", R.style.Theme_Brown_Green));
        sThemes.put("brownPrimary;orangeAccent", new Theme("brownPrimary", "orangeAccent", R.style.Theme_Brown_Orange));
        sThemes.put("brownPrimary;greyAccent", new Theme("brownPrimary", "greyAccent", R.style.Theme_Brown_Grey));
        sThemes.put("brownPrimary;blue_greyAccent", new Theme("brownPrimary", "blue_greyAccent", R.style.Theme_Brown_Blue_Grey));
        sThemes.put("brownPrimary;tealAccent", new Theme("brownPrimary", "tealAccent", R.style.Theme_Brown_Teal));
        sThemes.put("brownPrimary;deep_purpleAccent", new Theme("brownPrimary", "deep_purpleAccent", R.style.Theme_Brown_Deep_Purple));
        sThemes.put("brownPrimary;limeAccent", new Theme("brownPrimary", "limeAccent", R.style.Theme_Brown_Lime));
        sThemes.put("brownPrimary;indigoAccent", new Theme("brownPrimary", "indigoAccent", R.style.Theme_Brown_Indigo));
        sThemes.put("brownPrimary;cyanAccent", new Theme("brownPrimary", "cyanAccent", R.style.Theme_Brown_Cyan));
        sThemes.put("brownPrimary;deep_orangeAccent", new Theme("brownPrimary", "deep_orangeAccent", R.style.Theme_Brown_Deep_Orange));
        sThemes.put("greyPrimary;defaultAccent", new Theme("greyPrimary", "defaultAccent", R.style.Theme_Grey_Default));
        sThemes.put("greyPrimary;redAccent", new Theme("greyPrimary", "redAccent", R.style.Theme_Grey_Red));
        sThemes.put("greyPrimary;pinkAccent", new Theme("greyPrimary", "pinkAccent", R.style.Theme_Grey_Pink));
        sThemes.put("greyPrimary;purpleAccent", new Theme("greyPrimary", "purpleAccent", R.style.Theme_Grey_Purple));
        sThemes.put("greyPrimary;blueAccent", new Theme("greyPrimary", "blueAccent", R.style.Theme_Grey_Blue));
        sThemes.put("greyPrimary;greenAccent", new Theme("greyPrimary", "greenAccent", R.style.Theme_Grey_Green));
        sThemes.put("greyPrimary;orangeAccent", new Theme("greyPrimary", "orangeAccent", R.style.Theme_Grey_Orange));
        sThemes.put("greyPrimary;brownAccent", new Theme("greyPrimary", "brownAccent", R.style.Theme_Grey_Brown));
        sThemes.put("greyPrimary;blue_greyAccent", new Theme("greyPrimary", "blue_greyAccent", R.style.Theme_Grey_Blue_Grey));
        sThemes.put("greyPrimary;tealAccent", new Theme("greyPrimary", "tealAccent", R.style.Theme_Grey_Teal));
        sThemes.put("greyPrimary;deep_purpleAccent", new Theme("greyPrimary", "deep_purpleAccent", R.style.Theme_Grey_Deep_Purple));
        sThemes.put("greyPrimary;limeAccent", new Theme("greyPrimary", "limeAccent", R.style.Theme_Grey_Lime));
        sThemes.put("greyPrimary;indigoAccent", new Theme("greyPrimary", "indigoAccent", R.style.Theme_Grey_Indigo));
        sThemes.put("greyPrimary;cyanAccent", new Theme("greyPrimary", "cyanAccent", R.style.Theme_Grey_Cyan));
        sThemes.put("greyPrimary;deep_orangeAccent", new Theme("greyPrimary", "deep_orangeAccent", R.style.Theme_Grey_Deep_Orange));
        sThemes.put("blue_greyPrimary;defaultAccent", new Theme("blue_greyPrimary", "defaultAccent", R.style.Theme_Blue_Grey_Default));
        sThemes.put("blue_greyPrimary;redAccent", new Theme("blue_greyPrimary", "redAccent", R.style.Theme_Blue_Grey_Red));
        sThemes.put("blue_greyPrimary;pinkAccent", new Theme("blue_greyPrimary", "pinkAccent", R.style.Theme_Blue_Grey_Pink));
        sThemes.put("blue_greyPrimary;purpleAccent", new Theme("blue_greyPrimary", "purpleAccent", R.style.Theme_Blue_Grey_Purple));
        sThemes.put("blue_greyPrimary;blueAccent", new Theme("blue_greyPrimary", "blueAccent", R.style.Theme_Blue_Grey_Blue));
        sThemes.put("blue_greyPrimary;greenAccent", new Theme("blue_greyPrimary", "greenAccent", R.style.Theme_Blue_Grey_Green));
        sThemes.put("blue_greyPrimary;orangeAccent", new Theme("blue_greyPrimary", "orangeAccent", R.style.Theme_Blue_Grey_Orange));
        sThemes.put("blue_greyPrimary;brownAccent", new Theme("blue_greyPrimary", "brownAccent", R.style.Theme_Blue_Grey_Brown));
        sThemes.put("blue_greyPrimary;greyAccent", new Theme("blue_greyPrimary", "greyAccent", R.style.Theme_Blue_Grey_Grey));
        sThemes.put("blue_greyPrimary;tealAccent", new Theme("blue_greyPrimary", "tealAccent", R.style.Theme_Blue_Grey_Teal));
        sThemes.put("blue_greyPrimary;deep_purpleAccent", new Theme("blue_greyPrimary", "deep_purpleAccent", R.style.Theme_Blue_Grey_Deep_Purple));
        sThemes.put("blue_greyPrimary;limeAccent", new Theme("blue_greyPrimary", "limeAccent", R.style.Theme_Blue_Grey_Lime));
        sThemes.put("blue_greyPrimary;indigoAccent", new Theme("blue_greyPrimary", "indigoAccent", R.style.Theme_Blue_Grey_Indigo));
        sThemes.put("blue_greyPrimary;cyanAccent", new Theme("blue_greyPrimary", "cyanAccent", R.style.Theme_Blue_Grey_Cyan));
        sThemes.put("blue_greyPrimary;deep_orangeAccent", new Theme("blue_greyPrimary", "deep_orangeAccent", R.style.Theme_Blue_Grey_Deep_Orange));
        sThemes.put("tealPrimary;defaultAccent", new Theme("tealPrimary", "defaultAccent", R.style.Theme_Teal_Default));
        sThemes.put("tealPrimary;redAccent", new Theme("tealPrimary", "redAccent", R.style.Theme_Teal_Red));
        sThemes.put("tealPrimary;pinkAccent", new Theme("tealPrimary", "pinkAccent", R.style.Theme_Teal_Pink));
        sThemes.put("tealPrimary;purpleAccent", new Theme("tealPrimary", "purpleAccent", R.style.Theme_Teal_Purple));
        sThemes.put("tealPrimary;blueAccent", new Theme("tealPrimary", "blueAccent", R.style.Theme_Teal_Blue));
        sThemes.put("tealPrimary;greenAccent", new Theme("tealPrimary", "greenAccent", R.style.Theme_Teal_Green));
        sThemes.put("tealPrimary;orangeAccent", new Theme("tealPrimary", "orangeAccent", R.style.Theme_Teal_Orange));
        sThemes.put("tealPrimary;brownAccent", new Theme("tealPrimary", "brownAccent", R.style.Theme_Teal_Brown));
        sThemes.put("tealPrimary;greyAccent", new Theme("tealPrimary", "greyAccent", R.style.Theme_Teal_Grey));
        sThemes.put("tealPrimary;blue_greyAccent", new Theme("tealPrimary", "blue_greyAccent", R.style.Theme_Teal_Blue_Grey));
        sThemes.put("tealPrimary;deep_purpleAccent", new Theme("tealPrimary", "deep_purpleAccent", R.style.Theme_Teal_Deep_Purple));
        sThemes.put("tealPrimary;limeAccent", new Theme("tealPrimary", "limeAccent", R.style.Theme_Teal_Lime));
        sThemes.put("tealPrimary;indigoAccent", new Theme("tealPrimary", "indigoAccent", R.style.Theme_Teal_Indigo));
        sThemes.put("tealPrimary;cyanAccent", new Theme("tealPrimary", "cyanAccent", R.style.Theme_Teal_Cyan));
        sThemes.put("tealPrimary;deep_orangeAccent", new Theme("tealPrimary", "deep_orangeAccent", R.style.Theme_Teal_Deep_Orange));
        sThemes.put("deep_purplePrimary;defaultAccent", new Theme("deep_purplePrimary", "defaultAccent", R.style.Theme_Deep_Purple_Default));
        sThemes.put("deep_purplePrimary;redAccent", new Theme("deep_purplePrimary", "redAccent", R.style.Theme_Deep_Purple_Red));
        sThemes.put("deep_purplePrimary;pinkAccent", new Theme("deep_purplePrimary", "pinkAccent", R.style.Theme_Deep_Purple_Pink));
        sThemes.put("deep_purplePrimary;purpleAccent", new Theme("deep_purplePrimary", "purpleAccent", R.style.Theme_Deep_Purple_Purple));
        sThemes.put("deep_purplePrimary;blueAccent", new Theme("deep_purplePrimary", "blueAccent", R.style.Theme_Deep_Purple_Blue));
        sThemes.put("deep_purplePrimary;greenAccent", new Theme("deep_purplePrimary", "greenAccent", R.style.Theme_Deep_Purple_Green));
        sThemes.put("deep_purplePrimary;orangeAccent", new Theme("deep_purplePrimary", "orangeAccent", R.style.Theme_Deep_Purple_Orange));
        sThemes.put("deep_purplePrimary;brownAccent", new Theme("deep_purplePrimary", "brownAccent", R.style.Theme_Deep_Purple_Brown));
        sThemes.put("deep_purplePrimary;greyAccent", new Theme("deep_purplePrimary", "greyAccent", R.style.Theme_Deep_Purple_Grey));
        sThemes.put("deep_purplePrimary;blue_greyAccent", new Theme("deep_purplePrimary", "blue_greyAccent", R.style.Theme_Deep_Purple_Blue_Grey));
        sThemes.put("deep_purplePrimary;tealAccent", new Theme("deep_purplePrimary", "tealAccent", R.style.Theme_Deep_Purple_Teal));
        sThemes.put("deep_purplePrimary;limeAccent", new Theme("deep_purplePrimary", "limeAccent", R.style.Theme_Deep_Purple_Lime));
        sThemes.put("deep_purplePrimary;indigoAccent", new Theme("deep_purplePrimary", "indigoAccent", R.style.Theme_Deep_Purple_Indigo));
        sThemes.put("deep_purplePrimary;cyanAccent", new Theme("deep_purplePrimary", "cyanAccent", R.style.Theme_Deep_Purple_Cyan));
        sThemes.put("deep_purplePrimary;deep_orangeAccent", new Theme("deep_purplePrimary", "deep_orangeAccent", R.style.Theme_Deep_Purple_Deep_Orange));
        sThemes.put("limePrimary;defaultAccent", new Theme("limePrimary", "defaultAccent", R.style.Theme_Lime_Default));
        sThemes.put("limePrimary;redAccent", new Theme("limePrimary", "redAccent", R.style.Theme_Lime_Red));
        sThemes.put("limePrimary;pinkAccent", new Theme("limePrimary", "pinkAccent", R.style.Theme_Lime_Pink));
        sThemes.put("limePrimary;purpleAccent", new Theme("limePrimary", "purpleAccent", R.style.Theme_Lime_Purple));
        sThemes.put("limePrimary;blueAccent", new Theme("limePrimary", "blueAccent", R.style.Theme_Lime_Blue));
        sThemes.put("limePrimary;greenAccent", new Theme("limePrimary", "greenAccent", R.style.Theme_Lime_Green));
        sThemes.put("limePrimary;orangeAccent", new Theme("limePrimary", "orangeAccent", R.style.Theme_Lime_Orange));
        sThemes.put("limePrimary;brownAccent", new Theme("limePrimary", "brownAccent", R.style.Theme_Lime_Brown));
        sThemes.put("limePrimary;greyAccent", new Theme("limePrimary", "greyAccent", R.style.Theme_Lime_Grey));
        sThemes.put("limePrimary;blue_greyAccent", new Theme("limePrimary", "blue_greyAccent", R.style.Theme_Lime_Blue_Grey));
        sThemes.put("limePrimary;tealAccent", new Theme("limePrimary", "tealAccent", R.style.Theme_Lime_Teal));
        sThemes.put("limePrimary;deep_purpleAccent", new Theme("limePrimary", "deep_purpleAccent", R.style.Theme_Lime_Deep_Purple));
        sThemes.put("limePrimary;indigoAccent", new Theme("limePrimary", "indigoAccent", R.style.Theme_Lime_Indigo));
        sThemes.put("limePrimary;cyanAccent", new Theme("limePrimary", "cyanAccent", R.style.Theme_Lime_Cyan));
        sThemes.put("limePrimary;deep_orangeAccent", new Theme("limePrimary", "deep_orangeAccent", R.style.Theme_Lime_Deep_Orange));
        sThemes.put("indigoPrimary;defaultAccent", new Theme("indigoPrimary", "defaultAccent", R.style.Theme_Indigo_Default));
        sThemes.put("indigoPrimary;redAccent", new Theme("indigoPrimary", "redAccent", R.style.Theme_Indigo_Red));
        sThemes.put("indigoPrimary;pinkAccent", new Theme("indigoPrimary", "pinkAccent", R.style.Theme_Indigo_Pink));
        sThemes.put("indigoPrimary;purpleAccent", new Theme("indigoPrimary", "purpleAccent", R.style.Theme_Indigo_Purple));
        sThemes.put("indigoPrimary;blueAccent", new Theme("indigoPrimary", "blueAccent", R.style.Theme_Indigo_Blue));
        sThemes.put("indigoPrimary;greenAccent", new Theme("indigoPrimary", "greenAccent", R.style.Theme_Indigo_Green));
        sThemes.put("indigoPrimary;orangeAccent", new Theme("indigoPrimary", "orangeAccent", R.style.Theme_Indigo_Orange));
        sThemes.put("indigoPrimary;brownAccent", new Theme("indigoPrimary", "brownAccent", R.style.Theme_Indigo_Brown));
        sThemes.put("indigoPrimary;greyAccent", new Theme("indigoPrimary", "greyAccent", R.style.Theme_Indigo_Grey));
        sThemes.put("indigoPrimary;blue_greyAccent", new Theme("indigoPrimary", "blue_greyAccent", R.style.Theme_Indigo_Blue_Grey));
        sThemes.put("indigoPrimary;tealAccent", new Theme("indigoPrimary", "tealAccent", R.style.Theme_Indigo_Teal));
        sThemes.put("indigoPrimary;deep_purpleAccent", new Theme("indigoPrimary", "deep_purpleAccent", R.style.Theme_Indigo_Deep_Purple));
        sThemes.put("indigoPrimary;limeAccent", new Theme("indigoPrimary", "limeAccent", R.style.Theme_Indigo_Lime));
        sThemes.put("indigoPrimary;cyanAccent", new Theme("indigoPrimary", "cyanAccent", R.style.Theme_Indigo_Cyan));
        sThemes.put("indigoPrimary;deep_orangeAccent", new Theme("indigoPrimary", "deep_orangeAccent", R.style.Theme_Indigo_Deep_Orange));
        sThemes.put("cyanPrimary;defaultAccent", new Theme("cyanPrimary", "defaultAccent", R.style.Theme_Cyan_Default));
        sThemes.put("cyanPrimary;redAccent", new Theme("cyanPrimary", "redAccent", R.style.Theme_Cyan_Red));
        sThemes.put("cyanPrimary;pinkAccent", new Theme("cyanPrimary", "pinkAccent", R.style.Theme_Cyan_Pink));
        sThemes.put("cyanPrimary;purpleAccent", new Theme("cyanPrimary", "purpleAccent", R.style.Theme_Cyan_Purple));
        sThemes.put("cyanPrimary;blueAccent", new Theme("cyanPrimary", "blueAccent", R.style.Theme_Cyan_Blue));
        sThemes.put("cyanPrimary;greenAccent", new Theme("cyanPrimary", "greenAccent", R.style.Theme_Cyan_Green));
        sThemes.put("cyanPrimary;orangeAccent", new Theme("cyanPrimary", "orangeAccent", R.style.Theme_Cyan_Orange));
        sThemes.put("cyanPrimary;brownAccent", new Theme("cyanPrimary", "brownAccent", R.style.Theme_Cyan_Brown));
        sThemes.put("cyanPrimary;greyAccent", new Theme("cyanPrimary", "greyAccent", R.style.Theme_Cyan_Grey));
        sThemes.put("cyanPrimary;blue_greyAccent", new Theme("cyanPrimary", "blue_greyAccent", R.style.Theme_Cyan_Blue_Grey));
        sThemes.put("cyanPrimary;tealAccent", new Theme("cyanPrimary", "tealAccent", R.style.Theme_Cyan_Teal));
        sThemes.put("cyanPrimary;deep_purpleAccent", new Theme("cyanPrimary", "deep_purpleAccent", R.style.Theme_Cyan_Deep_Purple));
        sThemes.put("cyanPrimary;limeAccent", new Theme("cyanPrimary", "limeAccent", R.style.Theme_Cyan_Lime));
        sThemes.put("cyanPrimary;indigoAccent", new Theme("cyanPrimary", "indigoAccent", R.style.Theme_Cyan_Indigo));
        sThemes.put("cyanPrimary;deep_orangeAccent", new Theme("cyanPrimary", "deep_orangeAccent", R.style.Theme_Cyan_Deep_Orange));
        sThemes.put("deep_orangePrimary;defaultAccent", new Theme("deep_orangePrimary", "defaultAccent", R.style.Theme_Deep_Orange_Default));
        sThemes.put("deep_orangePrimary;redAccent", new Theme("deep_orangePrimary", "redAccent", R.style.Theme_Deep_Orange_Red));
        sThemes.put("deep_orangePrimary;pinkAccent", new Theme("deep_orangePrimary", "pinkAccent", R.style.Theme_Deep_Orange_Pink));
        sThemes.put("deep_orangePrimary;purpleAccent", new Theme("deep_orangePrimary", "purpleAccent", R.style.Theme_Deep_Orange_Purple));
        sThemes.put("deep_orangePrimary;blueAccent", new Theme("deep_orangePrimary", "blueAccent", R.style.Theme_Deep_Orange_Blue));
        sThemes.put("deep_orangePrimary;greenAccent", new Theme("deep_orangePrimary", "greenAccent", R.style.Theme_Deep_Orange_Green));
        sThemes.put("deep_orangePrimary;orangeAccent", new Theme("deep_orangePrimary", "orangeAccent", R.style.Theme_Deep_Orange_Orange));
        sThemes.put("deep_orangePrimary;brownAccent", new Theme("deep_orangePrimary", "brownAccent", R.style.Theme_Deep_Orange_Brown));
        sThemes.put("deep_orangePrimary;greyAccent", new Theme("deep_orangePrimary", "greyAccent", R.style.Theme_Deep_Orange_Grey));
        sThemes.put("deep_orangePrimary;blue_greyAccent", new Theme("deep_orangePrimary", "blue_greyAccent", R.style.Theme_Deep_Orange_Blue_Grey));
        sThemes.put("deep_orangePrimary;tealAccent", new Theme("deep_orangePrimary", "tealAccent", R.style.Theme_Deep_Orange_Teal));
        sThemes.put("deep_orangePrimary;deep_purpleAccent", new Theme("deep_orangePrimary", "deep_purpleAccent", R.style.Theme_Deep_Orange_Deep_Purple));
        sThemes.put("deep_orangePrimary;limeAccent", new Theme("deep_orangePrimary", "limeAccent", R.style.Theme_Deep_Orange_Lime));
        sThemes.put("deep_orangePrimary;indigoAccent", new Theme("deep_orangePrimary", "indigoAccent", R.style.Theme_Deep_Orange_Indigo));
        sThemes.put("deep_orangePrimary;cyanAccent", new Theme("deep_orangePrimary", "cyanAccent", R.style.Theme_Deep_Orange_Cyan));

        sThemesDark.put("defaultPrimary;redAccent", new Theme("defaultPrimary", "redAccent", R.style.Theme_Default_Red_Dark));
        sThemesDark.put("defaultPrimary;pinkAccent", new Theme("defaultPrimary", "pinkAccent", R.style.Theme_Default_Pink_Dark));
        sThemesDark.put("defaultPrimary;purpleAccent", new Theme("defaultPrimary", "purpleAccent", R.style.Theme_Default_Purple_Dark));
        sThemesDark.put("defaultPrimary;blueAccent", new Theme("defaultPrimary", "blueAccent", R.style.Theme_Default_Blue_Dark));
        sThemesDark.put("defaultPrimary;greenAccent", new Theme("defaultPrimary", "greenAccent", R.style.Theme_Default_Green_Dark));
        sThemesDark.put("defaultPrimary;orangeAccent", new Theme("defaultPrimary", "orangeAccent", R.style.Theme_Default_Orange_Dark));
        sThemesDark.put("defaultPrimary;brownAccent", new Theme("defaultPrimary", "brownAccent", R.style.Theme_Default_Brown_Dark));
        sThemesDark.put("defaultPrimary;greyAccent", new Theme("defaultPrimary", "greyAccent", R.style.Theme_Default_Grey_Dark));
        sThemesDark.put("defaultPrimary;blue_greyAccent", new Theme("defaultPrimary", "blue_greyAccent", R.style.Theme_Default_Blue_Grey_Dark));
        sThemesDark.put("defaultPrimary;tealAccent", new Theme("defaultPrimary", "tealAccent", R.style.Theme_Default_Teal_Dark));
        sThemesDark.put("defaultPrimary;deep_purpleAccent", new Theme("defaultPrimary", "deep_purpleAccent", R.style.Theme_Default_Deep_Purple_Dark));
        sThemesDark.put("defaultPrimary;limeAccent", new Theme("defaultPrimary", "limeAccent", R.style.Theme_Default_Lime_Dark));
        sThemesDark.put("defaultPrimary;indigoAccent", new Theme("defaultPrimary", "indigoAccent", R.style.Theme_Default_Indigo_Dark));
        sThemesDark.put("defaultPrimary;cyanAccent", new Theme("defaultPrimary", "cyanAccent", R.style.Theme_Default_Cyan_Dark));
        sThemesDark.put("defaultPrimary;deep_orangeAccent", new Theme("defaultPrimary", "deep_orangeAccent", R.style.Theme_Default_Deep_Orange_Dark));
        sThemesDark.put("redPrimary;defaultAccent", new Theme("redPrimary", "defaultAccent", R.style.Theme_Red_Default_Dark));
        sThemesDark.put("redPrimary;pinkAccent", new Theme("redPrimary", "pinkAccent", R.style.Theme_Red_Pink_Dark));
        sThemesDark.put("redPrimary;purpleAccent", new Theme("redPrimary", "purpleAccent", R.style.Theme_Red_Purple_Dark));
        sThemesDark.put("redPrimary;blueAccent", new Theme("redPrimary", "blueAccent", R.style.Theme_Red_Blue_Dark));
        sThemesDark.put("redPrimary;greenAccent", new Theme("redPrimary", "greenAccent", R.style.Theme_Red_Green_Dark));
        sThemesDark.put("redPrimary;orangeAccent", new Theme("redPrimary", "orangeAccent", R.style.Theme_Red_Orange_Dark));
        sThemesDark.put("redPrimary;brownAccent", new Theme("redPrimary", "brownAccent", R.style.Theme_Red_Brown_Dark));
        sThemesDark.put("redPrimary;greyAccent", new Theme("redPrimary", "greyAccent", R.style.Theme_Red_Grey_Dark));
        sThemesDark.put("redPrimary;blue_greyAccent", new Theme("redPrimary", "blue_greyAccent", R.style.Theme_Red_Blue_Grey_Dark));
        sThemesDark.put("redPrimary;tealAccent", new Theme("redPrimary", "tealAccent", R.style.Theme_Red_Teal_Dark));
        sThemesDark.put("redPrimary;deep_purpleAccent", new Theme("redPrimary", "deep_purpleAccent", R.style.Theme_Red_Deep_Purple_Dark));
        sThemesDark.put("redPrimary;limeAccent", new Theme("redPrimary", "limeAccent", R.style.Theme_Red_Lime_Dark));
        sThemesDark.put("redPrimary;indigoAccent", new Theme("redPrimary", "indigoAccent", R.style.Theme_Red_Indigo_Dark));
        sThemesDark.put("redPrimary;cyanAccent", new Theme("redPrimary", "cyanAccent", R.style.Theme_Red_Cyan_Dark));
        sThemesDark.put("redPrimary;deep_orangeAccent", new Theme("redPrimary", "deep_orangeAccent", R.style.Theme_Red_Deep_Orange_Dark));
        sThemesDark.put("pinkPrimary;defaultAccent", new Theme("pinkPrimary", "defaultAccent", R.style.Theme_Pink_Default_Dark));
        sThemesDark.put("pinkPrimary;redAccent", new Theme("pinkPrimary", "redAccent", R.style.Theme_Pink_Red_Dark));
        sThemesDark.put("pinkPrimary;purpleAccent", new Theme("pinkPrimary", "purpleAccent", R.style.Theme_Pink_Purple_Dark));
        sThemesDark.put("pinkPrimary;blueAccent", new Theme("pinkPrimary", "blueAccent", R.style.Theme_Pink_Blue_Dark));
        sThemesDark.put("pinkPrimary;greenAccent", new Theme("pinkPrimary", "greenAccent", R.style.Theme_Pink_Green_Dark));
        sThemesDark.put("pinkPrimary;orangeAccent", new Theme("pinkPrimary", "orangeAccent", R.style.Theme_Pink_Orange_Dark));
        sThemesDark.put("pinkPrimary;brownAccent", new Theme("pinkPrimary", "brownAccent", R.style.Theme_Pink_Brown_Dark));
        sThemesDark.put("pinkPrimary;greyAccent", new Theme("pinkPrimary", "greyAccent", R.style.Theme_Pink_Grey_Dark));
        sThemesDark.put("pinkPrimary;blue_greyAccent", new Theme("pinkPrimary", "blue_greyAccent", R.style.Theme_Pink_Blue_Grey_Dark));
        sThemesDark.put("pinkPrimary;tealAccent", new Theme("pinkPrimary", "tealAccent", R.style.Theme_Pink_Teal_Dark));
        sThemesDark.put("pinkPrimary;deep_purpleAccent", new Theme("pinkPrimary", "deep_purpleAccent", R.style.Theme_Pink_Deep_Purple_Dark));
        sThemesDark.put("pinkPrimary;limeAccent", new Theme("pinkPrimary", "limeAccent", R.style.Theme_Pink_Lime_Dark));
        sThemesDark.put("pinkPrimary;indigoAccent", new Theme("pinkPrimary", "indigoAccent", R.style.Theme_Pink_Indigo_Dark));
        sThemesDark.put("pinkPrimary;cyanAccent", new Theme("pinkPrimary", "cyanAccent", R.style.Theme_Pink_Cyan_Dark));
        sThemesDark.put("pinkPrimary;deep_orangeAccent", new Theme("pinkPrimary", "deep_orangeAccent", R.style.Theme_Pink_Deep_Orange_Dark));
        sThemesDark.put("purplePrimary;defaultAccent", new Theme("purplePrimary", "defaultAccent", R.style.Theme_Purple_Default_Dark));
        sThemesDark.put("purplePrimary;redAccent", new Theme("purplePrimary", "redAccent", R.style.Theme_Purple_Red_Dark));
        sThemesDark.put("purplePrimary;pinkAccent", new Theme("purplePrimary", "pinkAccent", R.style.Theme_Purple_Pink_Dark));
        sThemesDark.put("purplePrimary;blueAccent", new Theme("purplePrimary", "blueAccent", R.style.Theme_Purple_Blue_Dark));
        sThemesDark.put("purplePrimary;greenAccent", new Theme("purplePrimary", "greenAccent", R.style.Theme_Purple_Green_Dark));
        sThemesDark.put("purplePrimary;orangeAccent", new Theme("purplePrimary", "orangeAccent", R.style.Theme_Purple_Orange_Dark));
        sThemesDark.put("purplePrimary;brownAccent", new Theme("purplePrimary", "brownAccent", R.style.Theme_Purple_Brown_Dark));
        sThemesDark.put("purplePrimary;greyAccent", new Theme("purplePrimary", "greyAccent", R.style.Theme_Purple_Grey_Dark));
        sThemesDark.put("purplePrimary;blue_greyAccent", new Theme("purplePrimary", "blue_greyAccent", R.style.Theme_Purple_Blue_Grey_Dark));
        sThemesDark.put("purplePrimary;tealAccent", new Theme("purplePrimary", "tealAccent", R.style.Theme_Purple_Teal_Dark));
        sThemesDark.put("purplePrimary;deep_purpleAccent", new Theme("purplePrimary", "deep_purpleAccent", R.style.Theme_Purple_Deep_Purple_Dark));
        sThemesDark.put("purplePrimary;limeAccent", new Theme("purplePrimary", "limeAccent", R.style.Theme_Purple_Lime_Dark));
        sThemesDark.put("purplePrimary;indigoAccent", new Theme("purplePrimary", "indigoAccent", R.style.Theme_Purple_Indigo_Dark));
        sThemesDark.put("purplePrimary;cyanAccent", new Theme("purplePrimary", "cyanAccent", R.style.Theme_Purple_Cyan_Dark));
        sThemesDark.put("purplePrimary;deep_orangeAccent", new Theme("purplePrimary", "deep_orangeAccent", R.style.Theme_Purple_Deep_Orange_Dark));
        sThemesDark.put("bluePrimary;defaultAccent", new Theme("bluePrimary", "defaultAccent", R.style.Theme_Blue_Default_Dark));
        sThemesDark.put("bluePrimary;redAccent", new Theme("bluePrimary", "redAccent", R.style.Theme_Blue_Red_Dark));
        sThemesDark.put("bluePrimary;pinkAccent", new Theme("bluePrimary", "pinkAccent", R.style.Theme_Blue_Pink_Dark));
        sThemesDark.put("bluePrimary;purpleAccent", new Theme("bluePrimary", "purpleAccent", R.style.Theme_Blue_Purple_Dark));
        sThemesDark.put("bluePrimary;greenAccent", new Theme("bluePrimary", "greenAccent", R.style.Theme_Blue_Green_Dark));
        sThemesDark.put("bluePrimary;orangeAccent", new Theme("bluePrimary", "orangeAccent", R.style.Theme_Blue_Orange_Dark));
        sThemesDark.put("bluePrimary;brownAccent", new Theme("bluePrimary", "brownAccent", R.style.Theme_Blue_Brown_Dark));
        sThemesDark.put("bluePrimary;greyAccent", new Theme("bluePrimary", "greyAccent", R.style.Theme_Blue_Grey_Dark));
        sThemesDark.put("bluePrimary;blue_greyAccent", new Theme("bluePrimary", "blue_greyAccent", R.style.Theme_Blue_Blue_Grey_Dark));
        sThemesDark.put("bluePrimary;tealAccent", new Theme("bluePrimary", "tealAccent", R.style.Theme_Blue_Teal_Dark));
        sThemesDark.put("bluePrimary;deep_purpleAccent", new Theme("bluePrimary", "deep_purpleAccent", R.style.Theme_Blue_Deep_Purple_Dark));
        sThemesDark.put("bluePrimary;limeAccent", new Theme("bluePrimary", "limeAccent", R.style.Theme_Blue_Lime_Dark));
        sThemesDark.put("bluePrimary;indigoAccent", new Theme("bluePrimary", "indigoAccent", R.style.Theme_Blue_Indigo_Dark));
        sThemesDark.put("bluePrimary;cyanAccent", new Theme("bluePrimary", "cyanAccent", R.style.Theme_Blue_Cyan_Dark));
        sThemesDark.put("bluePrimary;deep_orangeAccent", new Theme("bluePrimary", "deep_orangeAccent", R.style.Theme_Blue_Deep_Orange_Dark));
        sThemesDark.put("greenPrimary;defaultAccent", new Theme("greenPrimary", "defaultAccent", R.style.Theme_Green_Default_Dark));
        sThemesDark.put("greenPrimary;redAccent", new Theme("greenPrimary", "redAccent", R.style.Theme_Green_Red_Dark));
        sThemesDark.put("greenPrimary;pinkAccent", new Theme("greenPrimary", "pinkAccent", R.style.Theme_Green_Pink_Dark));
        sThemesDark.put("greenPrimary;purpleAccent", new Theme("greenPrimary", "purpleAccent", R.style.Theme_Green_Purple_Dark));
        sThemesDark.put("greenPrimary;blueAccent", new Theme("greenPrimary", "blueAccent", R.style.Theme_Green_Blue_Dark));
        sThemesDark.put("greenPrimary;orangeAccent", new Theme("greenPrimary", "orangeAccent", R.style.Theme_Green_Orange_Dark));
        sThemesDark.put("greenPrimary;brownAccent", new Theme("greenPrimary", "brownAccent", R.style.Theme_Green_Brown_Dark));
        sThemesDark.put("greenPrimary;greyAccent", new Theme("greenPrimary", "greyAccent", R.style.Theme_Green_Grey_Dark));
        sThemesDark.put("greenPrimary;blue_greyAccent", new Theme("greenPrimary", "blue_greyAccent", R.style.Theme_Green_Blue_Grey_Dark));
        sThemesDark.put("greenPrimary;tealAccent", new Theme("greenPrimary", "tealAccent", R.style.Theme_Green_Teal_Dark));
        sThemesDark.put("greenPrimary;deep_purpleAccent", new Theme("greenPrimary", "deep_purpleAccent", R.style.Theme_Green_Deep_Purple_Dark));
        sThemesDark.put("greenPrimary;limeAccent", new Theme("greenPrimary", "limeAccent", R.style.Theme_Green_Lime_Dark));
        sThemesDark.put("greenPrimary;indigoAccent", new Theme("greenPrimary", "indigoAccent", R.style.Theme_Green_Indigo_Dark));
        sThemesDark.put("greenPrimary;cyanAccent", new Theme("greenPrimary", "cyanAccent", R.style.Theme_Green_Cyan_Dark));
        sThemesDark.put("greenPrimary;deep_orangeAccent", new Theme("greenPrimary", "deep_orangeAccent", R.style.Theme_Green_Deep_Orange_Dark));
        sThemesDark.put("orangePrimary;defaultAccent", new Theme("orangePrimary", "defaultAccent", R.style.Theme_Orange_Default_Dark));
        sThemesDark.put("orangePrimary;redAccent", new Theme("orangePrimary", "redAccent", R.style.Theme_Orange_Red_Dark));
        sThemesDark.put("orangePrimary;pinkAccent", new Theme("orangePrimary", "pinkAccent", R.style.Theme_Orange_Pink_Dark));
        sThemesDark.put("orangePrimary;purpleAccent", new Theme("orangePrimary", "purpleAccent", R.style.Theme_Orange_Purple_Dark));
        sThemesDark.put("orangePrimary;blueAccent", new Theme("orangePrimary", "blueAccent", R.style.Theme_Orange_Blue_Dark));
        sThemesDark.put("orangePrimary;greenAccent", new Theme("orangePrimary", "greenAccent", R.style.Theme_Orange_Green_Dark));
        sThemesDark.put("orangePrimary;brownAccent", new Theme("orangePrimary", "brownAccent", R.style.Theme_Orange_Brown_Dark));
        sThemesDark.put("orangePrimary;greyAccent", new Theme("orangePrimary", "greyAccent", R.style.Theme_Orange_Grey_Dark));
        sThemesDark.put("orangePrimary;blue_greyAccent", new Theme("orangePrimary", "blue_greyAccent", R.style.Theme_Orange_Blue_Grey_Dark));
        sThemesDark.put("orangePrimary;tealAccent", new Theme("orangePrimary", "tealAccent", R.style.Theme_Orange_Teal_Dark));
        sThemesDark.put("orangePrimary;deep_purpleAccent", new Theme("orangePrimary", "deep_purpleAccent", R.style.Theme_Orange_Deep_Purple_Dark));
        sThemesDark.put("orangePrimary;limeAccent", new Theme("orangePrimary", "limeAccent", R.style.Theme_Orange_Lime_Dark));
        sThemesDark.put("orangePrimary;indigoAccent", new Theme("orangePrimary", "indigoAccent", R.style.Theme_Orange_Indigo_Dark));
        sThemesDark.put("orangePrimary;cyanAccent", new Theme("orangePrimary", "cyanAccent", R.style.Theme_Orange_Cyan_Dark));
        sThemesDark.put("orangePrimary;deep_orangeAccent", new Theme("orangePrimary", "deep_orangeAccent", R.style.Theme_Orange_Deep_Orange_Dark));
        sThemesDark.put("brownPrimary;defaultAccent", new Theme("brownPrimary", "defaultAccent", R.style.Theme_Brown_Default_Dark));
        sThemesDark.put("brownPrimary;redAccent", new Theme("brownPrimary", "redAccent", R.style.Theme_Brown_Red_Dark));
        sThemesDark.put("brownPrimary;pinkAccent", new Theme("brownPrimary", "pinkAccent", R.style.Theme_Brown_Pink_Dark));
        sThemesDark.put("brownPrimary;purpleAccent", new Theme("brownPrimary", "purpleAccent", R.style.Theme_Brown_Purple_Dark));
        sThemesDark.put("brownPrimary;blueAccent", new Theme("brownPrimary", "blueAccent", R.style.Theme_Brown_Blue_Dark));
        sThemesDark.put("brownPrimary;greenAccent", new Theme("brownPrimary", "greenAccent", R.style.Theme_Brown_Green_Dark));
        sThemesDark.put("brownPrimary;orangeAccent", new Theme("brownPrimary", "orangeAccent", R.style.Theme_Brown_Orange_Dark));
        sThemesDark.put("brownPrimary;greyAccent", new Theme("brownPrimary", "greyAccent", R.style.Theme_Brown_Grey_Dark));
        sThemesDark.put("brownPrimary;blue_greyAccent", new Theme("brownPrimary", "blue_greyAccent", R.style.Theme_Brown_Blue_Grey_Dark));
        sThemesDark.put("brownPrimary;tealAccent", new Theme("brownPrimary", "tealAccent", R.style.Theme_Brown_Teal_Dark));
        sThemesDark.put("brownPrimary;deep_purpleAccent", new Theme("brownPrimary", "deep_purpleAccent", R.style.Theme_Brown_Deep_Purple_Dark));
        sThemesDark.put("brownPrimary;limeAccent", new Theme("brownPrimary", "limeAccent", R.style.Theme_Brown_Lime_Dark));
        sThemesDark.put("brownPrimary;indigoAccent", new Theme("brownPrimary", "indigoAccent", R.style.Theme_Brown_Indigo_Dark));
        sThemesDark.put("brownPrimary;cyanAccent", new Theme("brownPrimary", "cyanAccent", R.style.Theme_Brown_Cyan_Dark));
        sThemesDark.put("brownPrimary;deep_orangeAccent", new Theme("brownPrimary", "deep_orangeAccent", R.style.Theme_Brown_Deep_Orange_Dark));
        sThemesDark.put("greyPrimary;defaultAccent", new Theme("greyPrimary", "defaultAccent", R.style.Theme_Grey_Default_Dark));
        sThemesDark.put("greyPrimary;redAccent", new Theme("greyPrimary", "redAccent", R.style.Theme_Grey_Red_Dark));
        sThemesDark.put("greyPrimary;pinkAccent", new Theme("greyPrimary", "pinkAccent", R.style.Theme_Grey_Pink_Dark));
        sThemesDark.put("greyPrimary;purpleAccent", new Theme("greyPrimary", "purpleAccent", R.style.Theme_Grey_Purple_Dark));
        sThemesDark.put("greyPrimary;blueAccent", new Theme("greyPrimary", "blueAccent", R.style.Theme_Grey_Blue_Dark));
        sThemesDark.put("greyPrimary;greenAccent", new Theme("greyPrimary", "greenAccent", R.style.Theme_Grey_Green_Dark));
        sThemesDark.put("greyPrimary;orangeAccent", new Theme("greyPrimary", "orangeAccent", R.style.Theme_Grey_Orange_Dark));
        sThemesDark.put("greyPrimary;brownAccent", new Theme("greyPrimary", "brownAccent", R.style.Theme_Grey_Brown_Dark));
        sThemesDark.put("greyPrimary;blue_greyAccent", new Theme("greyPrimary", "blue_greyAccent", R.style.Theme_Grey_Blue_Grey_Dark));
        sThemesDark.put("greyPrimary;tealAccent", new Theme("greyPrimary", "tealAccent", R.style.Theme_Grey_Teal_Dark));
        sThemesDark.put("greyPrimary;deep_purpleAccent", new Theme("greyPrimary", "deep_purpleAccent", R.style.Theme_Grey_Deep_Purple_Dark));
        sThemesDark.put("greyPrimary;limeAccent", new Theme("greyPrimary", "limeAccent", R.style.Theme_Grey_Lime_Dark));
        sThemesDark.put("greyPrimary;indigoAccent", new Theme("greyPrimary", "indigoAccent", R.style.Theme_Grey_Indigo_Dark));
        sThemesDark.put("greyPrimary;cyanAccent", new Theme("greyPrimary", "cyanAccent", R.style.Theme_Grey_Cyan_Dark));
        sThemesDark.put("greyPrimary;deep_orangeAccent", new Theme("greyPrimary", "deep_orangeAccent", R.style.Theme_Grey_Deep_Orange_Dark));
        sThemesDark.put("blue_greyPrimary;defaultAccent", new Theme("blue_greyPrimary", "defaultAccent", R.style.Theme_Blue_Grey_Default_Dark));
        sThemesDark.put("blue_greyPrimary;redAccent", new Theme("blue_greyPrimary", "redAccent", R.style.Theme_Blue_Grey_Red_Dark));
        sThemesDark.put("blue_greyPrimary;pinkAccent", new Theme("blue_greyPrimary", "pinkAccent", R.style.Theme_Blue_Grey_Pink_Dark));
        sThemesDark.put("blue_greyPrimary;purpleAccent", new Theme("blue_greyPrimary", "purpleAccent", R.style.Theme_Blue_Grey_Purple_Dark));
        sThemesDark.put("blue_greyPrimary;blueAccent", new Theme("blue_greyPrimary", "blueAccent", R.style.Theme_Blue_Grey_Blue_Dark));
        sThemesDark.put("blue_greyPrimary;greenAccent", new Theme("blue_greyPrimary", "greenAccent", R.style.Theme_Blue_Grey_Green_Dark));
        sThemesDark.put("blue_greyPrimary;orangeAccent", new Theme("blue_greyPrimary", "orangeAccent", R.style.Theme_Blue_Grey_Orange_Dark));
        sThemesDark.put("blue_greyPrimary;brownAccent", new Theme("blue_greyPrimary", "brownAccent", R.style.Theme_Blue_Grey_Brown_Dark));
        sThemesDark.put("blue_greyPrimary;greyAccent", new Theme("blue_greyPrimary", "greyAccent", R.style.Theme_Blue_Grey_Grey_Dark));
        sThemesDark.put("blue_greyPrimary;tealAccent", new Theme("blue_greyPrimary", "tealAccent", R.style.Theme_Blue_Grey_Teal_Dark));
        sThemesDark.put("blue_greyPrimary;deep_purpleAccent", new Theme("blue_greyPrimary", "deep_purpleAccent", R.style.Theme_Blue_Grey_Deep_Purple_Dark));
        sThemesDark.put("blue_greyPrimary;limeAccent", new Theme("blue_greyPrimary", "limeAccent", R.style.Theme_Blue_Grey_Lime_Dark));
        sThemesDark.put("blue_greyPrimary;indigoAccent", new Theme("blue_greyPrimary", "indigoAccent", R.style.Theme_Blue_Grey_Indigo_Dark));
        sThemesDark.put("blue_greyPrimary;cyanAccent", new Theme("blue_greyPrimary", "cyanAccent", R.style.Theme_Blue_Grey_Cyan_Dark));
        sThemesDark.put("blue_greyPrimary;deep_orangeAccent", new Theme("blue_greyPrimary", "deep_orangeAccent", R.style.Theme_Blue_Grey_Deep_Orange_Dark));
        sThemesDark.put("tealPrimary;defaultAccent", new Theme("tealPrimary", "defaultAccent", R.style.Theme_Teal_Default_Dark));
        sThemesDark.put("tealPrimary;redAccent", new Theme("tealPrimary", "redAccent", R.style.Theme_Teal_Red_Dark));
        sThemesDark.put("tealPrimary;pinkAccent", new Theme("tealPrimary", "pinkAccent", R.style.Theme_Teal_Pink_Dark));
        sThemesDark.put("tealPrimary;purpleAccent", new Theme("tealPrimary", "purpleAccent", R.style.Theme_Teal_Purple_Dark));
        sThemesDark.put("tealPrimary;blueAccent", new Theme("tealPrimary", "blueAccent", R.style.Theme_Teal_Blue_Dark));
        sThemesDark.put("tealPrimary;greenAccent", new Theme("tealPrimary", "greenAccent", R.style.Theme_Teal_Green_Dark));
        sThemesDark.put("tealPrimary;orangeAccent", new Theme("tealPrimary", "orangeAccent", R.style.Theme_Teal_Orange_Dark));
        sThemesDark.put("tealPrimary;brownAccent", new Theme("tealPrimary", "brownAccent", R.style.Theme_Teal_Brown_Dark));
        sThemesDark.put("tealPrimary;greyAccent", new Theme("tealPrimary", "greyAccent", R.style.Theme_Teal_Grey_Dark));
        sThemesDark.put("tealPrimary;blue_greyAccent", new Theme("tealPrimary", "blue_greyAccent", R.style.Theme_Teal_Blue_Grey_Dark));
        sThemesDark.put("tealPrimary;deep_purpleAccent", new Theme("tealPrimary", "deep_purpleAccent", R.style.Theme_Teal_Deep_Purple_Dark));
        sThemesDark.put("tealPrimary;limeAccent", new Theme("tealPrimary", "limeAccent", R.style.Theme_Teal_Lime_Dark));
        sThemesDark.put("tealPrimary;indigoAccent", new Theme("tealPrimary", "indigoAccent", R.style.Theme_Teal_Indigo_Dark));
        sThemesDark.put("tealPrimary;cyanAccent", new Theme("tealPrimary", "cyanAccent", R.style.Theme_Teal_Cyan_Dark));
        sThemesDark.put("tealPrimary;deep_orangeAccent", new Theme("tealPrimary", "deep_orangeAccent", R.style.Theme_Teal_Deep_Orange_Dark));
        sThemesDark.put("deep_purplePrimary;defaultAccent", new Theme("deep_purplePrimary", "defaultAccent", R.style.Theme_Deep_Purple_Default_Dark));
        sThemesDark.put("deep_purplePrimary;redAccent", new Theme("deep_purplePrimary", "redAccent", R.style.Theme_Deep_Purple_Red_Dark));
        sThemesDark.put("deep_purplePrimary;pinkAccent", new Theme("deep_purplePrimary", "pinkAccent", R.style.Theme_Deep_Purple_Pink_Dark));
        sThemesDark.put("deep_purplePrimary;purpleAccent", new Theme("deep_purplePrimary", "purpleAccent", R.style.Theme_Deep_Purple_Purple_Dark));
        sThemesDark.put("deep_purplePrimary;blueAccent", new Theme("deep_purplePrimary", "blueAccent", R.style.Theme_Deep_Purple_Blue_Dark));
        sThemesDark.put("deep_purplePrimary;greenAccent", new Theme("deep_purplePrimary", "greenAccent", R.style.Theme_Deep_Purple_Green_Dark));
        sThemesDark.put("deep_purplePrimary;orangeAccent", new Theme("deep_purplePrimary", "orangeAccent", R.style.Theme_Deep_Purple_Orange_Dark));
        sThemesDark.put("deep_purplePrimary;brownAccent", new Theme("deep_purplePrimary", "brownAccent", R.style.Theme_Deep_Purple_Brown_Dark));
        sThemesDark.put("deep_purplePrimary;greyAccent", new Theme("deep_purplePrimary", "greyAccent", R.style.Theme_Deep_Purple_Grey_Dark));
        sThemesDark.put("deep_purplePrimary;blue_greyAccent", new Theme("deep_purplePrimary", "blue_greyAccent", R.style.Theme_Deep_Purple_Blue_Grey_Dark));
        sThemesDark.put("deep_purplePrimary;tealAccent", new Theme("deep_purplePrimary", "tealAccent", R.style.Theme_Deep_Purple_Teal_Dark));
        sThemesDark.put("deep_purplePrimary;limeAccent", new Theme("deep_purplePrimary", "limeAccent", R.style.Theme_Deep_Purple_Lime_Dark));
        sThemesDark.put("deep_purplePrimary;indigoAccent", new Theme("deep_purplePrimary", "indigoAccent", R.style.Theme_Deep_Purple_Indigo_Dark));
        sThemesDark.put("deep_purplePrimary;cyanAccent", new Theme("deep_purplePrimary", "cyanAccent", R.style.Theme_Deep_Purple_Cyan_Dark));
        sThemesDark.put("deep_purplePrimary;deep_orangeAccent", new Theme("deep_purplePrimary", "deep_orangeAccent", R.style.Theme_Deep_Purple_Deep_Orange_Dark));
        sThemesDark.put("limePrimary;defaultAccent", new Theme("limePrimary", "defaultAccent", R.style.Theme_Lime_Default_Dark));
        sThemesDark.put("limePrimary;redAccent", new Theme("limePrimary", "redAccent", R.style.Theme_Lime_Red_Dark));
        sThemesDark.put("limePrimary;pinkAccent", new Theme("limePrimary", "pinkAccent", R.style.Theme_Lime_Pink_Dark));
        sThemesDark.put("limePrimary;purpleAccent", new Theme("limePrimary", "purpleAccent", R.style.Theme_Lime_Purple_Dark));
        sThemesDark.put("limePrimary;blueAccent", new Theme("limePrimary", "blueAccent", R.style.Theme_Lime_Blue_Dark));
        sThemesDark.put("limePrimary;greenAccent", new Theme("limePrimary", "greenAccent", R.style.Theme_Lime_Green_Dark));
        sThemesDark.put("limePrimary;orangeAccent", new Theme("limePrimary", "orangeAccent", R.style.Theme_Lime_Orange_Dark));
        sThemesDark.put("limePrimary;brownAccent", new Theme("limePrimary", "brownAccent", R.style.Theme_Lime_Brown_Dark));
        sThemesDark.put("limePrimary;greyAccent", new Theme("limePrimary", "greyAccent", R.style.Theme_Lime_Grey_Dark));
        sThemesDark.put("limePrimary;blue_greyAccent", new Theme("limePrimary", "blue_greyAccent", R.style.Theme_Lime_Blue_Grey_Dark));
        sThemesDark.put("limePrimary;tealAccent", new Theme("limePrimary", "tealAccent", R.style.Theme_Lime_Teal_Dark));
        sThemesDark.put("limePrimary;deep_purpleAccent", new Theme("limePrimary", "deep_purpleAccent", R.style.Theme_Lime_Deep_Purple_Dark));
        sThemesDark.put("limePrimary;indigoAccent", new Theme("limePrimary", "indigoAccent", R.style.Theme_Lime_Indigo_Dark));
        sThemesDark.put("limePrimary;cyanAccent", new Theme("limePrimary", "cyanAccent", R.style.Theme_Lime_Cyan_Dark));
        sThemesDark.put("limePrimary;deep_orangeAccent", new Theme("limePrimary", "deep_orangeAccent", R.style.Theme_Lime_Deep_Orange_Dark));
        sThemesDark.put("indigoPrimary;defaultAccent", new Theme("indigoPrimary", "defaultAccent", R.style.Theme_Indigo_Default_Dark));
        sThemesDark.put("indigoPrimary;redAccent", new Theme("indigoPrimary", "redAccent", R.style.Theme_Indigo_Red_Dark));
        sThemesDark.put("indigoPrimary;pinkAccent", new Theme("indigoPrimary", "pinkAccent", R.style.Theme_Indigo_Pink_Dark));
        sThemesDark.put("indigoPrimary;purpleAccent", new Theme("indigoPrimary", "purpleAccent", R.style.Theme_Indigo_Purple_Dark));
        sThemesDark.put("indigoPrimary;blueAccent", new Theme("indigoPrimary", "blueAccent", R.style.Theme_Indigo_Blue_Dark));
        sThemesDark.put("indigoPrimary;greenAccent", new Theme("indigoPrimary", "greenAccent", R.style.Theme_Indigo_Green_Dark));
        sThemesDark.put("indigoPrimary;orangeAccent", new Theme("indigoPrimary", "orangeAccent", R.style.Theme_Indigo_Orange_Dark));
        sThemesDark.put("indigoPrimary;brownAccent", new Theme("indigoPrimary", "brownAccent", R.style.Theme_Indigo_Brown_Dark));
        sThemesDark.put("indigoPrimary;greyAccent", new Theme("indigoPrimary", "greyAccent", R.style.Theme_Indigo_Grey_Dark));
        sThemesDark.put("indigoPrimary;blue_greyAccent", new Theme("indigoPrimary", "blue_greyAccent", R.style.Theme_Indigo_Blue_Grey_Dark));
        sThemesDark.put("indigoPrimary;tealAccent", new Theme("indigoPrimary", "tealAccent", R.style.Theme_Indigo_Teal_Dark));
        sThemesDark.put("indigoPrimary;deep_purpleAccent", new Theme("indigoPrimary", "deep_purpleAccent", R.style.Theme_Indigo_Deep_Purple_Dark));
        sThemesDark.put("indigoPrimary;limeAccent", new Theme("indigoPrimary", "limeAccent", R.style.Theme_Indigo_Lime_Dark));
        sThemesDark.put("indigoPrimary;cyanAccent", new Theme("indigoPrimary", "cyanAccent", R.style.Theme_Indigo_Cyan_Dark));
        sThemesDark.put("indigoPrimary;deep_orangeAccent", new Theme("indigoPrimary", "deep_orangeAccent", R.style.Theme_Indigo_Deep_Orange_Dark));
        sThemesDark.put("cyanPrimary;defaultAccent", new Theme("cyanPrimary", "defaultAccent", R.style.Theme_Cyan_Default_Dark));
        sThemesDark.put("cyanPrimary;redAccent", new Theme("cyanPrimary", "redAccent", R.style.Theme_Cyan_Red_Dark));
        sThemesDark.put("cyanPrimary;pinkAccent", new Theme("cyanPrimary", "pinkAccent", R.style.Theme_Cyan_Pink_Dark));
        sThemesDark.put("cyanPrimary;purpleAccent", new Theme("cyanPrimary", "purpleAccent", R.style.Theme_Cyan_Purple_Dark));
        sThemesDark.put("cyanPrimary;blueAccent", new Theme("cyanPrimary", "blueAccent", R.style.Theme_Cyan_Blue_Dark));
        sThemesDark.put("cyanPrimary;greenAccent", new Theme("cyanPrimary", "greenAccent", R.style.Theme_Cyan_Green_Dark));
        sThemesDark.put("cyanPrimary;orangeAccent", new Theme("cyanPrimary", "orangeAccent", R.style.Theme_Cyan_Orange_Dark));
        sThemesDark.put("cyanPrimary;brownAccent", new Theme("cyanPrimary", "brownAccent", R.style.Theme_Cyan_Brown_Dark));
        sThemesDark.put("cyanPrimary;greyAccent", new Theme("cyanPrimary", "greyAccent", R.style.Theme_Cyan_Grey_Dark));
        sThemesDark.put("cyanPrimary;blue_greyAccent", new Theme("cyanPrimary", "blue_greyAccent", R.style.Theme_Cyan_Blue_Grey_Dark));
        sThemesDark.put("cyanPrimary;tealAccent", new Theme("cyanPrimary", "tealAccent", R.style.Theme_Cyan_Teal_Dark));
        sThemesDark.put("cyanPrimary;deep_purpleAccent", new Theme("cyanPrimary", "deep_purpleAccent", R.style.Theme_Cyan_Deep_Purple_Dark));
        sThemesDark.put("cyanPrimary;limeAccent", new Theme("cyanPrimary", "limeAccent", R.style.Theme_Cyan_Lime_Dark));
        sThemesDark.put("cyanPrimary;indigoAccent", new Theme("cyanPrimary", "indigoAccent", R.style.Theme_Cyan_Indigo_Dark));
        sThemesDark.put("cyanPrimary;deep_orangeAccent", new Theme("cyanPrimary", "deep_orangeAccent", R.style.Theme_Cyan_Deep_Orange_Dark));
        sThemesDark.put("deep_orangePrimary;defaultAccent", new Theme("deep_orangePrimary", "defaultAccent", R.style.Theme_Deep_Orange_Default_Dark));
        sThemesDark.put("deep_orangePrimary;redAccent", new Theme("deep_orangePrimary", "redAccent", R.style.Theme_Deep_Orange_Red_Dark));
        sThemesDark.put("deep_orangePrimary;pinkAccent", new Theme("deep_orangePrimary", "pinkAccent", R.style.Theme_Deep_Orange_Pink_Dark));
        sThemesDark.put("deep_orangePrimary;purpleAccent", new Theme("deep_orangePrimary", "purpleAccent", R.style.Theme_Deep_Orange_Purple_Dark));
        sThemesDark.put("deep_orangePrimary;blueAccent", new Theme("deep_orangePrimary", "blueAccent", R.style.Theme_Deep_Orange_Blue_Dark));
        sThemesDark.put("deep_orangePrimary;greenAccent", new Theme("deep_orangePrimary", "greenAccent", R.style.Theme_Deep_Orange_Green_Dark));
        sThemesDark.put("deep_orangePrimary;orangeAccent", new Theme("deep_orangePrimary", "orangeAccent", R.style.Theme_Deep_Orange_Orange_Dark));
        sThemesDark.put("deep_orangePrimary;brownAccent", new Theme("deep_orangePrimary", "brownAccent", R.style.Theme_Deep_Orange_Brown_Dark));
        sThemesDark.put("deep_orangePrimary;greyAccent", new Theme("deep_orangePrimary", "greyAccent", R.style.Theme_Deep_Orange_Grey_Dark));
        sThemesDark.put("deep_orangePrimary;blue_greyAccent", new Theme("deep_orangePrimary", "blue_greyAccent", R.style.Theme_Deep_Orange_Blue_Grey_Dark));
        sThemesDark.put("deep_orangePrimary;tealAccent", new Theme("deep_orangePrimary", "tealAccent", R.style.Theme_Deep_Orange_Teal_Dark));
        sThemesDark.put("deep_orangePrimary;deep_purpleAccent", new Theme("deep_orangePrimary", "deep_purpleAccent", R.style.Theme_Deep_Orange_Deep_Purple_Dark));
        sThemesDark.put("deep_orangePrimary;limeAccent", new Theme("deep_orangePrimary", "limeAccent", R.style.Theme_Deep_Orange_Lime_Dark));
        sThemesDark.put("deep_orangePrimary;indigoAccent", new Theme("deep_orangePrimary", "indigoAccent", R.style.Theme_Deep_Orange_Indigo_Dark));
        sThemesDark.put("deep_orangePrimary;cyanAccent", new Theme("deep_orangePrimary", "cyanAccent", R.style.Theme_Deep_Orange_Cyan_Dark));
    }
}
