package org.aisen.weibo.sina.ui.fragment.settings;
import java.util.List;
import org.aisen.weibo.sina.R;
import org.aisen.weibo.sina.support.bean.AccountBean;
import org.aisen.weibo.sina.support.db.AccountDB;
import org.aisen.weibo.sina.support.utils.AppContext;
import org.aisen.weibo.sina.support.utils.BaiduAnalyzeUtils;
import org.aisen.weibo.sina.ui.activity.common.FragmentContainerActivity;
import org.aisen.weibo.sina.ui.fragment.account.AccountFragment;
import android.app.Activity;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import com.m.support.task.TaskException;
import com.m.support.task.WorkTask;
/**
* 更多高级设置
*
* @author Jeff.Wang
*
* @date 2014年10月21日
*/
public class AdvancedFragment extends BasePreferenceFragment
implements OnPreferenceChangeListener, OnPreferenceClickListener {
public static void launch(Activity from) {
FragmentContainerActivity.launch(from, AdvancedFragment.class, null);
}
private Preference pAccount;
private CheckBoxPreference pRotatePic;// 设置旋转照片
private CheckBoxPreference pSendDelay;// 内容发布延迟
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
addPreferencesFromResource(R.xml.ui_advanced);
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
getActivity().getActionBar().setDisplayShowHomeEnabled(false);
getActivity().getActionBar().setTitle(R.string.title_advanced);
pAccount = (Preference) findPreference("pAccount");
pAccount.setOnPreferenceClickListener(this);
pRotatePic = (CheckBoxPreference) findPreference("pRotatePic");
pRotatePic.setOnPreferenceChangeListener(this);
pSendDelay = (CheckBoxPreference) findPreference("pSendDelay");
pSendDelay.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceClick(Preference preference) {
if ("pAccount".equals(preference.getKey())) {
AccountFragment.launch(getActivity());
}
return true;
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if ("pRotatePic".equals(preference.getKey())) {
if (Boolean.parseBoolean(newValue.toString()))
BaiduAnalyzeUtils.onEvent("set_rotate_pic", "设置旋转照片");
}
else if ("pSendDelay".equals(preference.getKey())) {
if (Boolean.parseBoolean(newValue.toString()))
BaiduAnalyzeUtils.onEvent("set_publish_delay", "设置延迟发布");
}
return true;
}
@Override
public void onResume() {
super.onResume();
if (AppContext.isLogedin())
new AccountTask().execute();
else
getActivity().finish();
BaiduAnalyzeUtils.onPageStart("高级设置");
}
@Override
public void onPause() {
super.onPause();
BaiduAnalyzeUtils.onPageEnd("高级设置");
}
class AccountTask extends WorkTask<Void, Void, List<AccountBean>> {
@Override
public List<AccountBean> workInBackground(Void... params) throws TaskException {
return AccountDB.query();
}
@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()));
}
}
}