package org.aisen.weibo.sina.ui.fragment.settings;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.support.utils.AisenUtil;
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 android.app.Activity;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceManager;
import com.m.common.context.GlobalContext;
/**
* 其他
*
* @author wangdan
*
*/
public class OtherSettingsFragment extends BasePreferenceFragment
implements OnPreferenceClickListener , OnPreferenceChangeListener {
public static void launch(Activity form) {
FragmentContainerActivity.launch(form, OtherSettingsFragment.class, null);
}
private Preference pAbout;
private Preference pHelp;
private Preference pFeedback;
private Preference pOpensource;// 开源协议
private Preference pGithub;// Github
private CheckBoxPreference pScreenRotate;// 屏幕旋转
private CheckBoxPreference pDisableCache;// 禁用缓存
private ListPreference pCacheValidity;// 业务数据有效期
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addPreferencesFromResource(R.xml.ui_about);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(GlobalContext.getInstance());
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
getActivity().getActionBar().setDisplayShowHomeEnabled(false);
getActivity().getActionBar().setTitle(R.string.title_about);
pFeedback = (Preference) findPreference("pFeedback");
pFeedback.setOnPreferenceClickListener(this);
pAbout = (Preference) findPreference("pAbout");
pAbout.setOnPreferenceClickListener(this);
pHelp = (Preference) findPreference("pHelp");
pHelp.setOnPreferenceClickListener(this);
pScreenRotate = (CheckBoxPreference) findPreference("pScreenRotate");
pScreenRotate.setOnPreferenceChangeListener(this);
pDisableCache = (CheckBoxPreference) findPreference("pDisableCache");
pDisableCache.setOnPreferenceChangeListener(this);
pOpensource = (Preference) findPreference("pOpensource");
pOpensource.setOnPreferenceClickListener(this);
pGithub = (Preference) findPreference("pGithub");
pGithub.setOnPreferenceClickListener(this);
// 缓存有效期
pCacheValidity = (ListPreference) findPreference("pCacheValidity");
pCacheValidity.setOnPreferenceChangeListener(this);
pCacheValidity.setEnabled(!AppSettings.isDisableCache());
int value = Integer.parseInt(prefs.getString("pCacheValidity", "1"));
setListSetting(value, R.array.pCacheValidity, pCacheValidity);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if ("pScreenRotate".equals(preference.getKey())) {
if (Boolean.parseBoolean(newValue.toString()))
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
else
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
else if ("pDisableCache".equals(preference.getKey())) {
pCacheValidity.setEnabled(!Boolean.parseBoolean(newValue.toString()));
}
else if ("pCacheValidity".equals(preference.getKey())) {
setListSetting(Integer.parseInt(newValue.toString()), R.array.pCacheValidity, pCacheValidity);
}
return true;
}
@Override
public boolean onPreferenceClick(Preference preference) {
if ("pFeedback".equals(preference.getKey())) {
PublishActivity.publishFeedback(getActivity());
}
else if ("pAbout".equals(preference.getKey())) {
AboutWebFragment.launchAbout(getActivity());
}
else if ("pHelp".equals(preference.getKey())) {
AboutWebFragment.launchHelp(getActivity());
}
else if ("pOpensource".equals(preference.getKey())) {
AboutWebFragment.launchOpensource(getActivity());
}
else if ("pGithub".equals(preference.getKey())) {
AisenUtil.launchBrowser(getActivity(), "https://github.com/wangdan/AisenWeiBo");
}
return true;
}
private void setListSetting(int value, int hintId, ListPreference listPreference) {
String[] valueTitleArr = getResources().getStringArray(hintId);
listPreference.setSummary(valueTitleArr[value]);
}
@Override
public void onResume() {
super.onResume();
BaiduAnalyzeUtils.onPageStart("关于设置");
}
@Override
public void onPause() {
super.onPause();
BaiduAnalyzeUtils.onPageEnd("关于设置");
}
}