diff options
Diffstat (limited to 'src/com/android/messaging/util/BuglePrefsImpl.java')
-rw-r--r-- | src/com/android/messaging/util/BuglePrefsImpl.java | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/src/com/android/messaging/util/BuglePrefsImpl.java b/src/com/android/messaging/util/BuglePrefsImpl.java new file mode 100644 index 0000000..7563040 --- /dev/null +++ b/src/com/android/messaging/util/BuglePrefsImpl.java @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.messaging.util; + +import android.content.Context; +import android.content.SharedPreferences; +import android.util.Base64; + +/** + * Thin wrapper to get/set shared prefs values. + */ +public abstract class BuglePrefsImpl extends BuglePrefs { + + private final Context mContext; + + public BuglePrefsImpl(final Context context) { + mContext = context; + } + + /** + * Validate the prefs key passed in. Subclasses should override this as needed to perform + * runtime checks (such as making sure per-subscription settings don't sneak into application- + * wide settings). + */ + protected void validateKey(String key) { + } + + @Override + public int getInt(final String key, final int defaultValue) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + return prefs.getInt(key, defaultValue); + } + + @Override + public long getLong(final String key, final long defaultValue) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + return prefs.getLong(key, defaultValue); + } + + @Override + public boolean getBoolean(final String key, final boolean defaultValue) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + return prefs.getBoolean(key, defaultValue); + } + + @Override + public String getString(final String key, final String defaultValue) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + return prefs.getString(key, defaultValue); + } + + @Override + public byte[] getBytes(String key) { + final String byteValue = getString(key, null); + return byteValue == null ? null : Base64.decode(byteValue, Base64.DEFAULT); + } + + @Override + public void putInt(final String key, final int value) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + final SharedPreferences.Editor editor = prefs.edit(); + editor.putInt(key, value); + editor.apply(); + } + + @Override + public void putLong(final String key, final long value) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + final SharedPreferences.Editor editor = prefs.edit(); + editor.putLong(key, value); + editor.apply(); + } + + @Override + public void putBoolean(final String key, final boolean value) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + final SharedPreferences.Editor editor = prefs.edit(); + editor.putBoolean(key, value); + editor.apply(); + } + + @Override + public void putString(final String key, final String value) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + final SharedPreferences.Editor editor = prefs.edit(); + editor.putString(key, value); + editor.apply(); + } + + @Override + public void putBytes(String key, byte[] value) { + final String encodedBytes = Base64.encodeToString(value, Base64.DEFAULT); + putString(key, encodedBytes); + } + + @Override + public void remove(final String key) { + validateKey(key); + final SharedPreferences prefs = mContext.getSharedPreferences( + getSharedPreferencesName(), Context.MODE_PRIVATE); + final SharedPreferences.Editor editor = prefs.edit(); + editor.remove(key); + editor.apply(); + } +} |