package com.lq.fragment;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import android.util.Log;
import com.lq.activity.FolderChooseActivity;
import com.lq.xpressmusic.R;
import com.lq.util.Constant;
/**
* @author lq 2013-6-1 lq2625304@gmail.com
* */
public class SettingFragment extends PreferenceFragment implements
OnSharedPreferenceChangeListener {
// 与其preference.xml中对应的preference标签的key相对应
public static final String KEY_DOWNLOAD_LYRIC_AUTOMATICALLY = "key_download_lyric_automatically";
public static final String KEY_LYRIC_SAVE_PATH = "key_lyric_save_path";
public static final String KEY_RESET_TO_DEFAULT = "key_reset_to_default";
public static final String KEY_FILTER_BY_SIZE = "key_filter_by_size";
public static final String KEY_FILTER_BY_DURATION = "key_filter_by_duration";
private static final String TAG = SettingFragment.class.getSimpleName();
private Preference mLyricSavePathPreference = null;
@Override
public void onAttach(Activity activity) {
Log.i(TAG, "onAttach");
super.onAttach(activity);
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate");
super.onCreate(savedInstanceState);
// 加载配置文件
addPreferencesFromResource(R.xml.system_preference);
// 获得歌词保存路径偏好设置对象
mLyricSavePathPreference = getPreferenceScreen().findPreference(
KEY_LYRIC_SAVE_PATH);
}
@Override
public void onResume() {
Log.i(TAG, "onResume");
super.onResume();
// 注册偏好变化监听器,以便更新当前内容
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
// 显示歌词保存路径
String summary = getPreferenceScreen()
.getSharedPreferences()
.getString(KEY_LYRIC_SAVE_PATH, Constant.LYRIC_SAVE_FOLDER_PATH);
mLyricSavePathPreference.setSummary(summary);
}
@Override
public void onPause() {
Log.i(TAG, "onPause");
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
Log.i(TAG, "onPreferenceTreeClick");
if (preference.getKey().equals(KEY_RESET_TO_DEFAULT)) {
// TODO 恢复默认设置,清空sharedPreference
PreferenceManager.getDefaultSharedPreferences(getActivity()).edit()
.clear().commit();
getActivity().finish();
return true;
} else if (preference.getKey().equals(KEY_LYRIC_SAVE_PATH)) {
startActivity(new Intent(getActivity(), FolderChooseActivity.class));
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if (key.equals(KEY_LYRIC_SAVE_PATH)) {
// 更新歌词保存路径的显示
mLyricSavePathPreference.setSummary(sharedPreferences.getString(
KEY_LYRIC_SAVE_PATH, Constant.LYRIC_SAVE_FOLDER_PATH));
}
}
}