/*
* Copyright (c) 2012 Hai Bison
*
* See the file LICENSE at the root directory of this project for copying
* permission.
*/
package group.pals.android.lib.ui.filechooser.prefs;
import group.pals.android.lib.ui.filechooser.R;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
/**
* Convenient class for working with preferences.
*
* @author Hai Bison
* @since v4.3 beta
*/
public class Prefs {
/**
* This unique ID is used for storing preferences.
*
* @since v4.9 beta
*/
public static final String _Uid = "9795e88b-2ab4-4b81-a548-409091a1e0c6";
/**
* Generates global preference filename of this library.
*
* @param context
* {@link Context} - will be used to obtain the application
* context.
* @return the global preference filename.
*/
public static final String genPreferenceFilename(Context context) {
return String.format("%s_%s", context.getString(R.string.afc_lib_name), _Uid);
}
/**
* Gets new {@link SharedPreferences}
*
* @param context
* {@link Context}
* @return {@link SharedPreferences}
*/
public static SharedPreferences p(Context context) {
// always use application context
return context.getApplicationContext().getSharedPreferences(genPreferenceFilename(context),
Context.MODE_MULTI_PROCESS);
}
/**
* Setup {@code pm} to use global unique filename and global access mode.
* You must use this method if you let the user change preferences via UI
* (such as {@link PreferenceActivity}, {@link PreferenceFragment}...).
*
* @param c
* {@link Context}.
* @param pm
* {@link PreferenceManager}.
* @since v4.9 beta
*/
public static void setupPreferenceManager(Context c, PreferenceManager pm) {
pm.setSharedPreferencesMode(Context.MODE_MULTI_PROCESS);
pm.setSharedPreferencesName(genPreferenceFilename(c));
}// setupPreferenceManager()
}