package com.yaoyumeng.v2ex.ui.fragment; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ListView; import com.yaoyumeng.v2ex.Application; import com.yaoyumeng.v2ex.R; import com.yaoyumeng.v2ex.api.V2EXManager; import com.yaoyumeng.v2ex.ui.AboutActivity; import com.yaoyumeng.v2ex.utils.AccountUtils; import com.yaoyumeng.v2ex.utils.FileUtils; /** * 设置 * Created by yw on 2015/5/13. */ public class SettingsFragment extends PreferenceFragment { SharedPreferences mPreferences; Preference mCache; Preference mAbout; CheckBoxPreference mHttps; CheckBoxPreference mEffect; CheckBoxPreference mLoadimage; CheckBoxPreference mJsonAPI; CheckBoxPreference mMessagePush; Button mLogout; Application mApp = Application.getInstance(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.settings); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); ViewGroup root = (ViewGroup) getView(); ListView localListView = (ListView) root.findViewById(android.R.id.list); localListView.setBackgroundColor(0); localListView.setCacheColorHint(0); root.removeView(localListView); ViewGroup localViewGroup = (ViewGroup) LayoutInflater.from(getActivity()) .inflate(R.layout.fragment_settings, null); ((ViewGroup) localViewGroup.findViewById(R.id.setting_content)) .addView(localListView, -1, -1); localViewGroup.setVisibility(View.VISIBLE); root.addView(localViewGroup); //退出登录 mLogout = (Button) localViewGroup.findViewById(R.id.setting_logout); boolean isLogin = AccountUtils.isLogined(getActivity()); if (isLogin) { mLogout.setVisibility(View.VISIBLE); } else { mLogout.setVisibility(View.GONE); } mLogout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.settings_dialog_hint) .setMessage(R.string.settings_logout_or_not) .setPositiveButton(R.string.title_confirm_yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { V2EXManager.logout(getActivity()); AccountUtils.removeAll(getActivity()); getActivity().finish(); } }) .setNegativeButton(R.string.title_confirm_cancel, null).show(); } }); // https mHttps = (CheckBoxPreference) findPreference("pref_https"); mHttps.setChecked(mApp.isHttps()); mHttps.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { mApp.setConfigHttps(mHttps.isChecked()); return true; } }); // 加载图片loadimage mLoadimage = (CheckBoxPreference) findPreference("pref_noimage_nowifi"); mLoadimage.setChecked(!mApp.isLoadImageInMobileNetwork()); mLoadimage.setSummary(mLoadimage.isChecked() ? R.string.settings_noimage_nowifi_summary : R.string.settings_image_nowifi_summary); mLoadimage.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { mApp.setConfigLoadImageInMobileNetwork(!mLoadimage.isChecked()); mLoadimage.setSummary(mLoadimage.isChecked() ? R.string.settings_noimage_nowifi_summary : R.string.settings_image_nowifi_summary); return true; } }); mJsonAPI = (CheckBoxPreference) findPreference("pref_jsonapi"); mJsonAPI.setChecked(mApp.isJsonAPI()); mJsonAPI.setSummary(getActivity().getString(mJsonAPI.isChecked() ? R.string.settings_use_jsonapi_summary : R.string.settings_use_browser_summary)); mJsonAPI.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { mApp.setConfigJsonAPI(mJsonAPI.isChecked()); mJsonAPI.setSummary(getActivity().getString(mJsonAPI.isChecked() ? R.string.settings_use_jsonapi_summary : R.string.settings_use_browser_summary)); return true; } }); // 消息推送 mMessagePush = (CheckBoxPreference) findPreference("pref_message_push"); mMessagePush.setChecked(mApp.isMessagePush()); mMessagePush.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { mApp.setMessagePush(mMessagePush.isChecked()); return true; } }); // 动画效果 mEffect = (CheckBoxPreference) findPreference("pref_effect"); mEffect.setChecked(mApp.isShowEffect()); mEffect.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { mApp.setConfigEffect(mEffect.isChecked()); return true; } }); // 清除缓存 mCache = findPreference("pref_cache"); mCache.setSummary(FileUtils.getFileSize(FileUtils.getCacheSize(getActivity()))); mCache.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.settings_dialog_hint) .setMessage(R.string.settings_clear_cache_or_not) .setPositiveButton(R.string.title_confirm_yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { FileUtils.clearAppCache(getActivity()); mCache.setSummary("0KB"); } }) .setNegativeButton(R.string.title_confirm_cancel, null).show(); return true; } }); // 关于我们 mAbout = findPreference("pref_about"); mAbout.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { showAboutMe(); return true; } }); } private void showAboutMe() { Intent intent = new Intent(getActivity(), AboutActivity.class); startActivity(intent); } }