182862573bcf246128782b91ea627285c43133a8dAndrew Flynn/* 282862573bcf246128782b91ea627285c43133a8dAndrew Flynn * Copyright (C) 2015 The Android Open Source Project 382862573bcf246128782b91ea627285c43133a8dAndrew Flynn * 482862573bcf246128782b91ea627285c43133a8dAndrew Flynn * Licensed under the Apache License, Version 2.0 (the "License"); 582862573bcf246128782b91ea627285c43133a8dAndrew Flynn * you may not use this file except in compliance with the License. 682862573bcf246128782b91ea627285c43133a8dAndrew Flynn * You may obtain a copy of the License at 782862573bcf246128782b91ea627285c43133a8dAndrew Flynn * 882862573bcf246128782b91ea627285c43133a8dAndrew Flynn * http://www.apache.org/licenses/LICENSE-2.0 982862573bcf246128782b91ea627285c43133a8dAndrew Flynn * 1082862573bcf246128782b91ea627285c43133a8dAndrew Flynn * Unless required by applicable law or agreed to in writing, software 1182862573bcf246128782b91ea627285c43133a8dAndrew Flynn * distributed under the License is distributed on an "AS IS" BASIS, 1282862573bcf246128782b91ea627285c43133a8dAndrew Flynn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1382862573bcf246128782b91ea627285c43133a8dAndrew Flynn * See the License for the specific language governing permissions and 1482862573bcf246128782b91ea627285c43133a8dAndrew Flynn * limitations under the License. 1582862573bcf246128782b91ea627285c43133a8dAndrew Flynn */ 1682862573bcf246128782b91ea627285c43133a8dAndrew Flynn 1782862573bcf246128782b91ea627285c43133a8dAndrew Flynnpackage com.android.systemui; 1882862573bcf246128782b91ea627285c43133a8dAndrew Flynn 1982862573bcf246128782b91ea627285c43133a8dAndrew Flynnimport android.annotation.StringDef; 2082862573bcf246128782b91ea627285c43133a8dAndrew Flynnimport android.content.Context; 2182862573bcf246128782b91ea627285c43133a8dAndrew Flynnimport android.content.SharedPreferences; 2282862573bcf246128782b91ea627285c43133a8dAndrew Flynnimport android.content.SharedPreferences.OnSharedPreferenceChangeListener; 2382862573bcf246128782b91ea627285c43133a8dAndrew Flynn 2482862573bcf246128782b91ea627285c43133a8dAndrew Flynnimport java.lang.annotation.Retention; 2582862573bcf246128782b91ea627285c43133a8dAndrew Flynnimport java.lang.annotation.RetentionPolicy; 2682862573bcf246128782b91ea627285c43133a8dAndrew Flynnimport java.util.Map; 2782862573bcf246128782b91ea627285c43133a8dAndrew Flynn 2882862573bcf246128782b91ea627285c43133a8dAndrew Flynnpublic final class Prefs { 2982862573bcf246128782b91ea627285c43133a8dAndrew Flynn private Prefs() {} // no instantation 3082862573bcf246128782b91ea627285c43133a8dAndrew Flynn 3182862573bcf246128782b91ea627285c43133a8dAndrew Flynn @Retention(RetentionPolicy.SOURCE) 3282862573bcf246128782b91ea627285c43133a8dAndrew Flynn @StringDef({ 3382862573bcf246128782b91ea627285c43133a8dAndrew Flynn Key.SEARCH_APP_WIDGET_ID, 3482862573bcf246128782b91ea627285c43133a8dAndrew Flynn Key.DEBUG_MODE_ENABLED, 3582862573bcf246128782b91ea627285c43133a8dAndrew Flynn Key.HOTSPOT_TILE_LAST_USED, 3682862573bcf246128782b91ea627285c43133a8dAndrew Flynn Key.COLOR_INVERSION_TILE_LAST_USED, 3782862573bcf246128782b91ea627285c43133a8dAndrew Flynn Key.DND_TILE_VISIBLE, 38f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock Key.DND_TILE_COMBINED_ICON, 39f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock Key.DND_CONFIRMED_PRIORITY_INTRODUCTION, 40d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock Key.DND_CONFIRMED_SILENCE_INTRODUCTION, 41f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock Key.DND_FAVORITE_BUCKET_INDEX, 42f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock Key.DND_NONE_SELECTED, 43d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock Key.DND_FAVORITE_ZEN, 4482862573bcf246128782b91ea627285c43133a8dAndrew Flynn }) 4582862573bcf246128782b91ea627285c43133a8dAndrew Flynn public @interface Key { 4682862573bcf246128782b91ea627285c43133a8dAndrew Flynn String SEARCH_APP_WIDGET_ID = "searchAppWidgetId"; 47af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung String SEARCH_APP_WIDGET_PACKAGE = "searchAppWidgetPackage"; 4882862573bcf246128782b91ea627285c43133a8dAndrew Flynn String DEBUG_MODE_ENABLED = "debugModeEnabled"; 4982862573bcf246128782b91ea627285c43133a8dAndrew Flynn String HOTSPOT_TILE_LAST_USED = "HotspotTileLastUsed"; 5082862573bcf246128782b91ea627285c43133a8dAndrew Flynn String COLOR_INVERSION_TILE_LAST_USED = "ColorInversionTileLastUsed"; 5182862573bcf246128782b91ea627285c43133a8dAndrew Flynn String DND_TILE_VISIBLE = "DndTileVisible"; 5282862573bcf246128782b91ea627285c43133a8dAndrew Flynn String DND_TILE_COMBINED_ICON = "DndTileCombinedIcon"; 53f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock String DND_CONFIRMED_PRIORITY_INTRODUCTION = "DndConfirmedPriorityIntroduction"; 54d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock String DND_CONFIRMED_SILENCE_INTRODUCTION = "DndConfirmedSilenceIntroduction"; 55f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock String DND_FAVORITE_BUCKET_INDEX = "DndCountdownMinuteIndex"; 56f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock String DND_NONE_SELECTED = "DndNoneSelected"; 57d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock String DND_FAVORITE_ZEN = "DndFavoriteZen"; 5882862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 5982862573bcf246128782b91ea627285c43133a8dAndrew Flynn 6082862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static boolean getBoolean(Context context, @Key String key, boolean defaultValue) { 6182862573bcf246128782b91ea627285c43133a8dAndrew Flynn return get(context).getBoolean(key, defaultValue); 6282862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 6382862573bcf246128782b91ea627285c43133a8dAndrew Flynn 6482862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static void putBoolean(Context context, @Key String key, boolean value) { 6582862573bcf246128782b91ea627285c43133a8dAndrew Flynn get(context).edit().putBoolean(key, value).apply(); 6682862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 6782862573bcf246128782b91ea627285c43133a8dAndrew Flynn 6882862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static int getInt(Context context, @Key String key, int defaultValue) { 6982862573bcf246128782b91ea627285c43133a8dAndrew Flynn return get(context).getInt(key, defaultValue); 7082862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 7182862573bcf246128782b91ea627285c43133a8dAndrew Flynn 7282862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static void putInt(Context context, @Key String key, int value) { 7382862573bcf246128782b91ea627285c43133a8dAndrew Flynn get(context).edit().putInt(key, value).apply(); 7482862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 7582862573bcf246128782b91ea627285c43133a8dAndrew Flynn 7682862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static long getLong(Context context, @Key String key, long defaultValue) { 7782862573bcf246128782b91ea627285c43133a8dAndrew Flynn return get(context).getLong(key, defaultValue); 7882862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 7982862573bcf246128782b91ea627285c43133a8dAndrew Flynn 8082862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static void putLong(Context context, @Key String key, long value) { 8182862573bcf246128782b91ea627285c43133a8dAndrew Flynn get(context).edit().putLong(key, value).apply(); 8282862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 8382862573bcf246128782b91ea627285c43133a8dAndrew Flynn 84af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung public static String getString(Context context, @Key String key, String defaultValue) { 85af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung return get(context).getString(key, defaultValue); 86af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung } 87af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung 88af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung public static void putString(Context context, @Key String key, String value) { 89af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung get(context).edit().putString(key, value).apply(); 90af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung } 91af3bb6936786a8c14ac01da3d81d196d17b68b96Winson Chung 9282862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static Map<String, ?> getAll(Context context) { 9382862573bcf246128782b91ea627285c43133a8dAndrew Flynn return get(context).getAll(); 9482862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 9582862573bcf246128782b91ea627285c43133a8dAndrew Flynn 9682862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static void remove(Context context, @Key String key) { 9782862573bcf246128782b91ea627285c43133a8dAndrew Flynn get(context).edit().remove(key).apply(); 9882862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 9982862573bcf246128782b91ea627285c43133a8dAndrew Flynn 10082862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static void registerListener(Context context, 10182862573bcf246128782b91ea627285c43133a8dAndrew Flynn OnSharedPreferenceChangeListener listener) { 10282862573bcf246128782b91ea627285c43133a8dAndrew Flynn get(context).registerOnSharedPreferenceChangeListener(listener); 10382862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 10482862573bcf246128782b91ea627285c43133a8dAndrew Flynn 10582862573bcf246128782b91ea627285c43133a8dAndrew Flynn public static void unregisterListener(Context context, 10682862573bcf246128782b91ea627285c43133a8dAndrew Flynn OnSharedPreferenceChangeListener listener) { 10782862573bcf246128782b91ea627285c43133a8dAndrew Flynn get(context).unregisterOnSharedPreferenceChangeListener(listener); 10882862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 10982862573bcf246128782b91ea627285c43133a8dAndrew Flynn 11082862573bcf246128782b91ea627285c43133a8dAndrew Flynn private static SharedPreferences get(Context context) { 11182862573bcf246128782b91ea627285c43133a8dAndrew Flynn return context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE); 11282862573bcf246128782b91ea627285c43133a8dAndrew Flynn } 11382862573bcf246128782b91ea627285c43133a8dAndrew Flynn} 114