package org.aisen.weibo.sina.ui.fragment.settings;
import android.os.Bundle;
import android.os.Handler;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import org.aisen.android.network.task.TaskException;
import org.aisen.android.network.task.WorkTask;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.base.AppContext;
import org.aisen.weibo.sina.support.bean.AccountBean;
import org.aisen.weibo.sina.support.utils.AccountUtils;
import org.aisen.weibo.sina.ui.fragment.account.AccountFragment;
import org.aisen.weibo.sina.ui.widget.AisenTextView;
import java.util.List;
/**
* 更多高级设置
*
* @author Jeff.Wang
*
* @date 2014年10月21日
*/
public class AdvancedItemFragment extends BasePreferenceFragment
implements OnPreferenceChangeListener, OnPreferenceClickListener {
public static BasePreferenceFragment newInstance() {
return new AdvancedItemFragment();
}
private CheckBoxPreference pInnerBrowser;// 设置默认浏览器
private Preference pAccount;// 账号管理
private Preference pNotification;// 通知中心
private Preference pFlow;// 流量控制
// private Preference pGroupsOffline;// 离线设置
private CheckBoxPreference pRotatePic;// 设置旋转照片
private CheckBoxPreference pSendDelay;// 内容发布延迟
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addPreferencesFromResource(R.xml.ui_advanced_item);
pRotatePic = (CheckBoxPreference) findPreference("pRotatePic");
pRotatePic.setOnPreferenceChangeListener(this);
pSendDelay = (CheckBoxPreference) findPreference("pSendDelay");
pSendDelay.setOnPreferenceChangeListener(this);
// pGroupsOffline = (Preference) findPreference("pGroupsOffline");
// pGroupsOffline.setOnPreferenceClickListener(this);
pNotification = (Preference) findPreference("pNotification");
pNotification.setOnPreferenceClickListener(this);
pFlow = (Preference) findPreference("pFlow");
findPreference("pOffline").setOnPreferenceClickListener(this);
pFlow.setOnPreferenceClickListener(this);
pAccount = (Preference) findPreference("pAccount");
pAccount.setOnPreferenceClickListener(this);
pInnerBrowser = (CheckBoxPreference) findPreference("pInnerBrowser");
pInnerBrowser.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceClick(Preference preference) {
if ("pNotification".equals(preference.getKey())) {
NotificationSettingsFragment.launch(getActivity());
}
else if ("pFlow".equals(preference.getKey())) {
FlowSettingsFragment.launch(getActivity());
}
else if ("pAccount".equals(preference.getKey())) {
AccountFragment.launch(getActivity());
}
else if ("pOffline".equals(preference.getKey())) {
OfflineSettingsFragment.launch(getActivity());
}
return true;
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if ("pRotatePic".equals(preference.getKey())) {
}
else if ("pSendDelay".equals(preference.getKey())) {
}
else if ("pInnerBrowser".equals(preference.getKey())) {
try {
AisenTextView.stringMemoryCache.evictAll();
} catch (Exception e) {
}
}
return true;
}
@Override
public void onResume() {
super.onResume();
if (AppContext.isLoggedIn())
new AccountTask().execute();
}
@Override
public void onPause() {
super.onPause();
}
class AccountTask extends WorkTask<Void, Void, List<AccountBean>> {
@Override
public List<AccountBean> workInBackground(Void... params) throws TaskException {
return AccountUtils.queryAccount();
}
@Override
protected void onSuccess(List<AccountBean> result) {
super.onSuccess(result);
if (getActivity() != null)
pAccount.setSummary(String.format(getString(R.string.settings_account_sumary), result.size()));
}
}
Handler mHandler = new Handler();
}