Prefs.java revision d9c75dba75ad4742dbaadc34db99d2b76cebca91
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";
4782862573bcf246128782b91ea627285c43133a8dAndrew Flynn        String DEBUG_MODE_ENABLED = "debugModeEnabled";
4882862573bcf246128782b91ea627285c43133a8dAndrew Flynn        String HOTSPOT_TILE_LAST_USED = "HotspotTileLastUsed";
4982862573bcf246128782b91ea627285c43133a8dAndrew Flynn        String COLOR_INVERSION_TILE_LAST_USED = "ColorInversionTileLastUsed";
5082862573bcf246128782b91ea627285c43133a8dAndrew Flynn        String DND_TILE_VISIBLE = "DndTileVisible";
5182862573bcf246128782b91ea627285c43133a8dAndrew Flynn        String DND_TILE_COMBINED_ICON = "DndTileCombinedIcon";
52f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock        String DND_CONFIRMED_PRIORITY_INTRODUCTION = "DndConfirmedPriorityIntroduction";
53d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock        String DND_CONFIRMED_SILENCE_INTRODUCTION = "DndConfirmedSilenceIntroduction";
54f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock        String DND_FAVORITE_BUCKET_INDEX = "DndCountdownMinuteIndex";
55f55b7f2fb614b917b7d1943396880978258dd1bbJohn Spurlock        String DND_NONE_SELECTED = "DndNoneSelected";
56d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock        String DND_FAVORITE_ZEN = "DndFavoriteZen";
5782862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
5882862573bcf246128782b91ea627285c43133a8dAndrew Flynn
5982862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static boolean getBoolean(Context context, @Key String key, boolean defaultValue) {
6082862573bcf246128782b91ea627285c43133a8dAndrew Flynn        return get(context).getBoolean(key, defaultValue);
6182862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
6282862573bcf246128782b91ea627285c43133a8dAndrew Flynn
6382862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static void putBoolean(Context context, @Key String key, boolean value) {
6482862573bcf246128782b91ea627285c43133a8dAndrew Flynn        get(context).edit().putBoolean(key, value).apply();
6582862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
6682862573bcf246128782b91ea627285c43133a8dAndrew Flynn
6782862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static int getInt(Context context, @Key String key, int defaultValue) {
6882862573bcf246128782b91ea627285c43133a8dAndrew Flynn        return get(context).getInt(key, defaultValue);
6982862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
7082862573bcf246128782b91ea627285c43133a8dAndrew Flynn
7182862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static void putInt(Context context, @Key String key, int value) {
7282862573bcf246128782b91ea627285c43133a8dAndrew Flynn        get(context).edit().putInt(key, value).apply();
7382862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
7482862573bcf246128782b91ea627285c43133a8dAndrew Flynn
7582862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static long getLong(Context context, @Key String key, long defaultValue) {
7682862573bcf246128782b91ea627285c43133a8dAndrew Flynn        return get(context).getLong(key, defaultValue);
7782862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
7882862573bcf246128782b91ea627285c43133a8dAndrew Flynn
7982862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static void putLong(Context context, @Key String key, long value) {
8082862573bcf246128782b91ea627285c43133a8dAndrew Flynn        get(context).edit().putLong(key, value).apply();
8182862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
8282862573bcf246128782b91ea627285c43133a8dAndrew Flynn
8382862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static Map<String, ?> getAll(Context context) {
8482862573bcf246128782b91ea627285c43133a8dAndrew Flynn        return get(context).getAll();
8582862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
8682862573bcf246128782b91ea627285c43133a8dAndrew Flynn
8782862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static void remove(Context context, @Key String key) {
8882862573bcf246128782b91ea627285c43133a8dAndrew Flynn        get(context).edit().remove(key).apply();
8982862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
9082862573bcf246128782b91ea627285c43133a8dAndrew Flynn
9182862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static void registerListener(Context context,
9282862573bcf246128782b91ea627285c43133a8dAndrew Flynn            OnSharedPreferenceChangeListener listener) {
9382862573bcf246128782b91ea627285c43133a8dAndrew Flynn        get(context).registerOnSharedPreferenceChangeListener(listener);
9482862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
9582862573bcf246128782b91ea627285c43133a8dAndrew Flynn
9682862573bcf246128782b91ea627285c43133a8dAndrew Flynn    public static void unregisterListener(Context context,
9782862573bcf246128782b91ea627285c43133a8dAndrew Flynn            OnSharedPreferenceChangeListener listener) {
9882862573bcf246128782b91ea627285c43133a8dAndrew Flynn        get(context).unregisterOnSharedPreferenceChangeListener(listener);
9982862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
10082862573bcf246128782b91ea627285c43133a8dAndrew Flynn
10182862573bcf246128782b91ea627285c43133a8dAndrew Flynn    private static SharedPreferences get(Context context) {
10282862573bcf246128782b91ea627285c43133a8dAndrew Flynn        return context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
10382862573bcf246128782b91ea627285c43133a8dAndrew Flynn    }
10482862573bcf246128782b91ea627285c43133a8dAndrew Flynn}
105