175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting/* 275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * Copyright (C) 2012 The Android Open Source Project 375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * 475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * Licensed under the Apache License, Version 2.0 (the "License"); 575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * you may not use this file except in compliance with the License. 675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * You may obtain a copy of the License at 775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * 875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * http://www.apache.org/licenses/LICENSE-2.0 975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * 1075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * Unless required by applicable law or agreed to in writing, software 1175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * distributed under the License is distributed on an "AS IS" BASIS, 1275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * See the License for the specific language governing permissions and 1475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting * limitations under the License. 1575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting */ 1675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 1775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingpackage com.android.calendar; 1875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 1975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingimport android.content.SharedPreferences; 2075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingimport android.content.SharedPreferences.Editor; 2175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingimport android.content.SharedPreferences.OnSharedPreferenceChangeListener; 2275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 2375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingimport java.util.HashMap; 2475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingimport java.util.Map; 2575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingimport java.util.Set; 2675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 2775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Tingclass FakeSharedPreferences implements SharedPreferences, SharedPreferences.Editor { 2875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 2975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting private HashMap<String, Object> mValues = new HashMap<String, Object>(); 3075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting private HashMap<String, Object> mTempValues = new HashMap<String, Object>(); 3175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 3275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 3375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor edit() { 3475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 3575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 3675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 3775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 3875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public boolean contains(String key) { 3975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return mValues.containsKey(key); 4075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 4175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 4275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 4375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Map<String, ?> getAll() { 4475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return new HashMap<String, Object>(mValues); 4575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 4675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 4775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 4875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public boolean getBoolean(String key, boolean defValue) { 4975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting if (mValues.containsKey(key)) { 5075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return ((Boolean)mValues.get(key)).booleanValue(); 5175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 5275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return defValue; 5375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 5475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 5575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 5675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public float getFloat(String key, float defValue) { 5775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting if (mValues.containsKey(key)) { 5875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return ((Float)mValues.get(key)).floatValue(); 5975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 6075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return defValue; 6175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 6275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 6375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 6475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public int getInt(String key, int defValue) { 6575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting if (mValues.containsKey(key)) { 6675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return ((Integer)mValues.get(key)).intValue(); 6775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 6875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return defValue; 6975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 7075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 7175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 7275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public long getLong(String key, long defValue) { 7375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting if (mValues.containsKey(key)) { 7475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return ((Long)mValues.get(key)).longValue(); 7575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 7675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return defValue; 7775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 7875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 7975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 8075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public String getString(String key, String defValue) { 8175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting if (mValues.containsKey(key)) 8275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return (String)mValues.get(key); 8375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return defValue; 8475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 8575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 8675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @SuppressWarnings("unchecked") 8775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 8875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Set<String> getStringSet(String key, Set<String> defValues) { 8975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting if (mValues.containsKey(key)) { 9075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return (Set<String>) mValues.get(key); 9175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 9275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return defValues; 9375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 9475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 9575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 9675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public void registerOnSharedPreferenceChangeListener( 9775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting OnSharedPreferenceChangeListener listener) { 9875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting throw new UnsupportedOperationException(); 9975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 10075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 10175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 10275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public void unregisterOnSharedPreferenceChangeListener( 10375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting OnSharedPreferenceChangeListener listener) { 10475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting throw new UnsupportedOperationException(); 10575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 10675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 10775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 10875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor putBoolean(String key, boolean value) { 10975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.put(key, Boolean.valueOf(value)); 11075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 11175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 11275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 11375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 11475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor putFloat(String key, float value) { 11575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.put(key, value); 11675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 11775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 11875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 11975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 12075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor putInt(String key, int value) { 12175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.put(key, value); 12275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 12375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 12475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 12575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 12675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor putLong(String key, long value) { 12775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.put(key, value); 12875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 12975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 13075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 13175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 13275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor putString(String key, String value) { 13375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.put(key, value); 13475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 13575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 13675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 13775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 13875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor putStringSet(String key, Set<String> values) { 13975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.put(key, values); 14075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 14175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 14275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 14375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 14475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor remove(String key) { 14575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.remove(key); 14675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 14775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 14875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 14975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 15075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public Editor clear() { 15175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mTempValues.clear(); 15275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return this; 15375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 15475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 15575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @SuppressWarnings("unchecked") 15675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 15775f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public boolean commit() { 15875f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting mValues = (HashMap<String, Object>)mTempValues.clone(); 15975f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting return true; 16075f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 16175f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting 16275f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting @Override 16375f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting public void apply() { 16475f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting commit(); 16575f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting } 16675f53668f94c3ced9d3cc8583d7e45ce725ff9deSara Ting}