/*
* Copyright 2011 Greg Milette and Adam Stroud
*
* 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 root.gast.playground.pref;
import java.util.Locale;
import root.gast.playground.R;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
/**
* help deal with all the preferences
* @author Greg Milette <<a href="mailto:gregorym@gmail.com">gregorym@gmail.com</a>>
*/
public class PreferenceHelper
{
private static final String TAG = "PreferenceHelper";
public final static double NOT_SET = Double.MAX_VALUE;
private SharedPreferences preferences;
/**
*
*/
public PreferenceHelper(String preferencesName, Context context)
{
preferences = context.getSharedPreferences(preferencesName,
Context.MODE_WORLD_WRITEABLE);
}
/**
* @return the preferences
*/
public SharedPreferences getPrefs()
{
return preferences;
}
public int getInteger(Context context, int prefNameResource, int defaultValResource)
{
String prefName = context.getResources().getString(prefNameResource);
int defaultVal = context.getResources().getInteger(defaultValResource);
Log.d(TAG, prefName + " with default: " + defaultVal);
int pref = preferences.getInt(prefName, defaultVal);
return pref;
}
// public int getInt(String prefName, String defaultVal)
// {
// SharedPreferences preferences = getPrefs();
// int pref = Integer.parseInt(preferences.getString(prefName, defaultVal));
// return pref;
// }
public int getInt(Context context, int prefNameResource, int defaultValResource)
{
String prefName = context.getResources().getString(prefNameResource);
String defaultVal = context.getResources().getString(defaultValResource);
Log.d(TAG, prefName + " with default: " + defaultVal);
int pref = Integer.valueOf(preferences.getString(prefName, defaultVal));
return pref;
}
public long getLong(Context context, int prefNameResource, int defaultValResource)
{
String prefName = context.getResources().getString(prefNameResource);
String defaultVal = context.getResources().getString(defaultValResource);
return getLong(prefName, defaultVal);
}
public long getLong(String prefName, String defaultVal)
{
SharedPreferences preferences = getPrefs();
long pref = Long.valueOf(preferences.getString(prefName, defaultVal));
return pref;
}
// public double getDouble(String prefName, double defaultVal)
// {
// SharedPreferences preferences = getPrefs();
// double pref = Double.parseDouble(preferences.getString(prefName,
// String.valueOf(defaultVal)));
// return pref;
// }
//
public float getFloat(Context context, int prefNameResource, int defaultValResource)
{
SharedPreferences preferences = getPrefs();
String prefName = context.getResources().getString(prefNameResource);
String defaultVal = context.getResources().getString(defaultValResource);
float pref = Float.valueOf(preferences.getString(prefName, defaultVal));
return pref;
}
public String getString(Context context, int prefNameResource, int defaultValResource)
{
SharedPreferences preferences = getPrefs();
// String prefName = activity.getResources().getString(R.id)
String prefName = context.getResources().getString(prefNameResource);
String defaultVal = context.getResources().getString(defaultValResource);
String pref = preferences.getString(prefName, defaultVal);
Log.d(TAG, "prefname " + prefName + " val " + defaultVal + " pref " + pref);
return pref;
}
public String getString(String prefName, String defaultVal)
{
SharedPreferences preferences = getPrefs();
String pref = preferences.getString(prefName, defaultVal);
return pref;
}
public void setLanguage(Context context, Locale locale)
{
SharedPreferences preferences = getPrefs();
Editor editor = preferences.edit();
editor.putString(context.getString(R.string.pref_language), locale.toString());
editor.commit();
}
public void setInt(String preferenceName, int value)
{
SharedPreferences preferences = getPrefs();
Editor editor = preferences.edit();
editor.putInt(preferenceName, value);
editor.commit();
}
public void setString(String preferenceName, String value)
{
SharedPreferences preferences = getPrefs();
Editor editor = preferences.edit();
editor.putString(preferenceName, value);
editor.commit();
}
public boolean isLanguageSet(Context context)
{
SharedPreferences preferences = getPrefs();
return preferences.getAll().containsKey(context.getString(R.string.pref_language));
}
public boolean getBoolean(Context context, int prefNameResource, int defaultValResource)
{
String prefName = context.getResources().getString(prefNameResource);
String defaultVal = context.getResources().getString(defaultValResource);
return getBoolean(prefName, defaultVal);
}
public boolean getBoolean(String prefName, String defaultVal)
{
SharedPreferences preferences = getPrefs();
// boolean pref =
// Boolean.valueOf(preferences.getString(prefName, defaultVal));
boolean pref = preferences.getBoolean(prefName, Boolean.valueOf(defaultVal));
return pref;
}
}