package com.simtice.cnbeta.ui;
import java.io.File;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
import android.view.MenuItem;
import com.actionbarsherlock.app.SherlockPreferenceActivity;
import com.simtice.cnbeta.R;
import com.simtice.cnbeta.util.CommonUtil;
import com.simtice.cnbeta.util.Constant;
import com.simtice.cnbeta.util.PreferencesUtil;
import com.simtice.cnbeta.util.imagecache.FileHelper;
import com.simtice.cnbeta.util.imagecache.FileManager;
import com.umeng.fb.FeedbackAgent;
/**
* 系统设置
*
* @author simtice
*
*/
public class PreferenceActivity extends SherlockPreferenceActivity implements OnSharedPreferenceChangeListener, OnPreferenceClickListener {
private PreferenceScreen psClean;
private ListPreference lp;
private CheckBoxPreference cp;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle arg0) {
setTheme(R.style.Sherlock___Theme_Light);
super.onCreate(arg0);
addPreferencesFromResource(R.xml.preferences);
initView();
}
@SuppressWarnings("deprecation")
private void initView() {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("系统设置");
getSupportActionBar().setIcon(R.drawable.icon);
SharedPreferences pfes = PreferenceManager.getDefaultSharedPreferences(this);
pfes.registerOnSharedPreferenceChangeListener(this);
psClean = (PreferenceScreen) findPreference(getString(R.string.preference_clearcache));
lp = (ListPreference) findPreference(getString(R.string.preference_font));
cp = (CheckBoxPreference) findPreference(getString(R.string.preference_wifi));
if (cp.isChecked()) {
cp.setSummary("在非Wifi下节省流量");
} else {
cp.setSummary("显示新闻图片,体验更佳");
}
setSummary(PreferencesUtil.getFontPreference(getApplicationContext()));
psClean.setOnPreferenceClickListener(this);
findPreference(getString(R.string.preference_feedback)).setOnPreferenceClickListener(this);
findPreference(getString(R.string.preference_about)).setOnPreferenceClickListener(this);
File file = new File(FileManager.getCacheRootDir(Constant.dirName));
try {
long size = FileHelper.getFolderSize(file);
psClean.setSummary(FileHelper.setFileSize(size));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
psClean.setSummary("0KB");
}
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(getString(R.string.preference_font))) {
setSummary(Integer.parseInt(lp.getValue()));
} else if (key.equals(getString(R.string.preference_wifi))) {
if (cp.isChecked()) {
cp.setSummary("在非Wifi下节省流量");
} else {
cp.setSummary("显示新闻图片,体验更佳");
}
}
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
if (item.getItemId() == android.R.id.home) {
finish();
}
return super.onMenuItemSelected(featureId, item);
}
private void setSummary(int size) {
String text = "";
switch (size) {
case 0:
text = "大";
break;
case 1:
text = "中";
break;
case 2:
text = "小";
break;
}
lp.setSummary(text);
}
@Override
public boolean onPreferenceClick(android.preference.Preference preference) {
if (preference.getKey().equals(getString(R.string.preference_clearcache))) {
CommonUtil.showAlertDialog(PreferenceActivity.this, "是否要清空缓存?", "", "确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
FileHelper.deleteDirectory(FileManager.getCacheRootDir(Constant.dirName));
psClean.setSummary("0KB");
CommonUtil.showToast(getApplicationContext(), "缓存已清理");
}
}, "取消", null);
} else if (preference.getKey().equals(getString(R.string.preference_feedback))) {
FeedbackAgent agent = new FeedbackAgent(this);
agent.startFeedbackActivity();
}else if (preference.getKey().equals(getString(R.string.preference_about))) {
startActivity(new Intent(PreferenceActivity.this,AboutActivity.class));
}
return false;
}
}