package com.devadvance.rootcloak2; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceActivity; import java.util.Arrays; import java.util.HashSet; import java.util.Set; public class Common { public static final String PREFS_SETTINGS = "CustomizeSettings"; public static final String PACKAGE_NAME = BuildConfig.APPLICATION_ID; public static final String FIRST_RUN_KEY = Common.PACKAGE_NAME + "IS_FIRST_RUN"; public static final String DEBUG_KEY = Common.PACKAGE_NAME + "DEBUGGERPREF"; public static final String SHOW_WARNING = "SHOW_WARNING"; public static final PrefSet APPS = new AppsSet(); public static final PrefSet KEYWORDS = new KeywordSet(); public static final PrefSet COMMANDS = new CommandSet(); public static final PrefSet LIBRARIES = new LibrarySet(); public static abstract class PrefSet { abstract String getPrefKey(); abstract String getSetKey(); abstract Set<String> getDefaultSet(); public SharedPreferences getSharedPreferences(PreferenceActivity activity) { activity.getPreferenceManager().setSharedPreferencesMode(Context.MODE_WORLD_READABLE); return activity.getSharedPreferences(getPrefKey(), Context.MODE_WORLD_READABLE); } } public static class AppsSet extends PrefSet { public static final String PREFS_APPS = "CustomizeApps"; public static final String APP_SET_KEY = PACKAGE_NAME+"APPS_LIST"; // Uses the name LIST for legacy purposes public static final Set<String> DEFAULT_APPS_SET = new HashSet<String>(Arrays.asList(DefaultLists.DEFAULT_APPS_LIST)); @Override public String getPrefKey() { return PREFS_APPS; } @Override public String getSetKey() { return APP_SET_KEY; } @Override public Set<String> getDefaultSet() { return DEFAULT_APPS_SET; } } public static class KeywordSet extends PrefSet { public static final String PREFS_KEYWORDS = "CustomizeKeywords"; public static final String KEYWORD_SET_KEY = PACKAGE_NAME+"KEYWORD_SET"; public static final Set<String> DEFAULT_KEYWORD_SET = new HashSet<String>(Arrays.asList(DefaultLists.DEFAULT_KEYWORD_LIST)); @Override public String getPrefKey() { return PREFS_KEYWORDS; } @Override public String getSetKey() { return KEYWORD_SET_KEY; } @Override public Set<String> getDefaultSet() { return DEFAULT_KEYWORD_SET; } } public static class CommandSet extends PrefSet { public static final String PREFS_COMMANDS = "CustomizeCommands"; public static final String COMMAND_SET_KEY = PACKAGE_NAME+"APPS_SET"; public static final Set<String> DEFAULT_COMMAND_SET = new HashSet<String>(Arrays.asList(DefaultLists.DEFAULT_COMMAND_LIST)); @Override public String getPrefKey() { return PREFS_COMMANDS; } @Override public String getSetKey() { return COMMAND_SET_KEY; } @Override public Set<String> getDefaultSet() { return DEFAULT_COMMAND_SET; } } public static class LibrarySet extends PrefSet { public static final String PREFS_LIBNAMES = "CustomizeLibnames"; public static final String LIBRARY_SET_KEY = "LIBNAMES_SET"; public static final Set<String> DEFAULT_LIBNAME_SET = new HashSet<String>(Arrays.asList(DefaultLists.DEFAULT_LIBNAME_LIST)); @Override public String getPrefKey() { return PREFS_LIBNAMES; } @Override public String getSetKey() { return LIBRARY_SET_KEY; } @Override public Set<String> getDefaultSet() { return DEFAULT_LIBNAME_SET; } } }