/* ** Copyright 2012, Joel Pedraza ** ** 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 net.saik0.android.unifiedpreference; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.text.TextUtils; @TargetApi(Build.VERSION_CODES.HONEYCOMB) public abstract class UnifiedPreferenceFragment extends PreferenceFragment { public static final String ARG_PREFERENCE_RES = "unifiedpreference_preferenceRes"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Pseudo-inherit sharedPreferencesName and sharedPreferencesMode from Activity UnifiedPreferenceContainer container = (UnifiedPreferenceContainer) getActivity(); String sharedPreferencesName = container.getSharedPreferencesName(); int sharedPreferencesMode = container.getSharedPreferencesMode(); PreferenceManager preferenceManager = getPreferenceManager(); if (!TextUtils.isEmpty(sharedPreferencesName)) { preferenceManager.setSharedPreferencesName(sharedPreferencesName); } if (sharedPreferencesMode != 0) { preferenceManager.setSharedPreferencesMode(sharedPreferencesMode); } // Inflate from preferences.xml file int layoutRes = getArguments().getInt(ARG_PREFERENCE_RES, 0); if (layoutRes > 0) { addPreferencesFromResource(layoutRes); onBindPreferenceSummariesToValues(); } } /** * Bind the summaries of EditText/List/Dialog/Ringtone preferences * to their values. When their values change, their summaries are * updated to reflect the new value, per the Android Design * guidelines. */ protected void onBindPreferenceSummariesToValues() { UnifiedPreferenceUtils.bindAllPreferenceSummariesToValues(getPreferenceScreen()); } }