package org.aisen.weibo.sina.ui.fragment.settings;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.support.bean.WallpaperBean;
import org.aisen.weibo.sina.support.utils.AppContext;
import org.aisen.weibo.sina.support.utils.AppSettings;
import org.aisen.weibo.sina.support.utils.BaiduAnalyzeUtils;
import org.aisen.weibo.sina.ui.activity.common.FragmentContainerActivity;
import org.aisen.weibo.sina.ui.activity.publish.PublishActivity;
import org.aisen.weibo.sina.ui.widget.WallpaperViewGroup;
import android.app.Activity;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import com.m.common.utils.CommSettings;
import com.m.ui.activity.BaseActivity;
/**
* 程序设置
*
* @author wangdan
*
*/
public class SettingsFragment extends VersionSettingsFragment implements OnPreferenceChangeListener {
public static void launch(Activity from) {
FragmentContainerActivity.launch(from, SettingsFragment.class, null);
}
private Preference pBasic;
private Preference pNotification;
private Preference pFlow;
private Preference pAbout;
private Preference pShareAisen;
private Preference pTheme;// 主题设置
private Preference pCustomWallpaper;// 自定义壁纸设置
private CheckBoxPreference pLaunchWallpaper;// 桌面壁纸
private CheckBoxPreference pTranslucent;// Translucent Modes
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addPreferencesFromResource(R.xml.ui_settings);
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
getActivity().getActionBar().setDisplayShowHomeEnabled(false);
getActivity().getActionBar().setTitle(R.string.title_settings);
pBasic = (Preference) findPreference("pBasic");
pBasic.setOnPreferenceClickListener(this);
pNotification = (Preference) findPreference("pNotification");
pNotification.setOnPreferenceClickListener(this);
pFlow = (Preference) findPreference("pFlow");
pFlow.setOnPreferenceClickListener(this);
pAbout = (Preference) findPreference("pAbout");
pAbout.setOnPreferenceClickListener(this);
pShareAisen = (Preference) findPreference("pShareAisen");
pShareAisen.setOnPreferenceClickListener(this);
pTheme = (Preference) findPreference("pTheme");
pTheme.setOnPreferenceClickListener(this);
Preference pMoreAdvanced = (Preference) findPreference("pMoreAdvanced");
pMoreAdvanced.setOnPreferenceClickListener(this);
pCustomWallpaper = (Preference) findPreference("pCustomWallpaper");
pCustomWallpaper.setOnPreferenceClickListener(this);
pLaunchWallpaper = (CheckBoxPreference) findPreference("pLaunchWallpaper");
pLaunchWallpaper.setOnPreferenceChangeListener(this);
pTranslucent = (CheckBoxPreference) findPreference("pTranslucent");
pTranslucent.setOnPreferenceChangeListener(this);
if (!WallpaperViewGroup.isKitKat())
pTranslucent.setEnabled(false);
wallpaperBean = AppContext.getWallpaper();
}
@Override
public boolean onPreferenceClick(Preference preference) {
if ("pBasic".equals(preference.getKey())) {
BasicSettingsFragment.launch(getActivity());
}
else if ("pNotification".equals(preference.getKey())) {
NotificationSettingsFragment.launch(getActivity());
}
else if ("pFlow".equals(preference.getKey())) {
FlowSettingsFragment.launch(getActivity());
}
else if ("pAbout".equals(preference.getKey())) {
OtherSettingsFragment.launch(getActivity());
}
else if ("pShareAisen".equals(preference.getKey())) {
PublishActivity.publishRecommend(getActivity());
}
else if ("pMoreAdvanced".equals(preference.getKey())) {
AdvancedFragment.launch(getActivity());
}
// 主题设置
else if ("pTheme".equals(preference.getKey())) {
ThemeStyleSettingsFragment.launch(getActivity());
}
// 自定义壁纸
if ("pCustomWallpaper".equals(preference.getKey())) {
WallpaperSettingsFragment.launch(getActivity());
}
return super.onPreferenceClick(preference);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// Translucent Modes
if ("pTranslucent".equals(preference.getKey())) {
if (Boolean.parseBoolean(newValue.toString())) {
if (AppSettings.isLaunchWallpaper())
CommSettings.setAppTheme(R.style.BaseTheme_Wallpaper_Translucent);
else
CommSettings.setAppTheme(R.style.BaseTheme_Translucent);
}
else {
if (AppSettings.isLaunchWallpaper())
CommSettings.setAppTheme(R.style.BaseTheme_Wallpaper);
else
CommSettings.setAppTheme(R.style.BaseTheme);
}
((BaseActivity) getActivity()).reload();
}
// 桌面壁纸
else if ("pLaunchWallpaper".equals(preference.getKey())) {
if (Boolean.parseBoolean(newValue.toString())) {
if (AppSettings.isTranslucentModes())
CommSettings.setAppTheme(R.style.BaseTheme_Wallpaper_Translucent);
else
CommSettings.setAppTheme(R.style.BaseTheme_Wallpaper);
}
else {
if (AppSettings.isTranslucentModes())
CommSettings.setAppTheme(R.style.BaseTheme_Translucent);
else
CommSettings.setAppTheme(R.style.BaseTheme);
}
((BaseActivity) getActivity()).reload();
}
return true;
}
private WallpaperBean wallpaperBean;
@Override
public void onResume() {
super.onResume();
BaiduAnalyzeUtils.onPageStart("设置");
resetTheme();
if (wallpaperBean != AppContext.getWallpaper())
((BaseActivity) getActivity()).reload();
}
private void resetTheme() {
pCustomWallpaper.setEnabled(true);
pCustomWallpaper.setSummary("");
pTheme.setEnabled(true);
pTheme.setSummary("");
// 桌面壁纸
if (AppSettings.isLaunchWallpaper()) {
pTheme.setEnabled(false);
pTheme.setSummary(R.string.settings_ui_bg_summary_02);
pCustomWallpaper.setEnabled(false);
pCustomWallpaper.setSummary(R.string.settings_ui_bg_summary_02);
}
else {
WallpaperBean wallpaper = AppContext.getWallpaper();
if (wallpaper != null) {
pTheme.setEnabled(false);
pTheme.setSummary(R.string.settings_ui_bg_summary_03);
pCustomWallpaper.setEnabled(true);
pCustomWallpaper.setSummary(R.string.settings_ui_bg_summary_03);
}
}
}
@Override
public void onPause() {
super.onPause();
BaiduAnalyzeUtils.onPageEnd("设置");
}
}