package com.ywwxhz.fragments;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.Preference;
import android.support.v4.preference.PreferenceFragment;
import android.text.format.Formatter;
import android.widget.Toast;
import com.balysv.materialripple.MaterialRippleLayout;
import com.ywwxhz.MyApplication;
import com.ywwxhz.cnbetareader.R;
import com.ywwxhz.lib.CroutonStyle;
import com.ywwxhz.lib.kits.FileKit;
import com.ywwxhz.lib.kits.Toolkit;
import com.ywwxhz.update.UpdateHelper;
import java.io.File;
/**
* cnBetaReader
* <p/>
* Created by 远望の无限(ywwxhz) on 2015/3/25 18:08.
*/
public class SettingFragment extends PreferenceFragment {
private Preference preference;
private boolean running = false;
private Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
preference = findPreference(getString(R.string.pref_clean_cache_key));
preference.setSummary(getFileSize());
preference.setOnPreferenceClickListener(onPreferenceClickListener);
findPreference(getString(R.string.pref_crash_key)).setOnPreferenceClickListener(onPreferenceClickListener);
findPreference(getString(R.string.pref_check_update_key)).setOnPreferenceClickListener(onPreferenceClickListener);
findPreference(getString(R.string.pref_show_large_image_key)).setOnPreferenceChangeListener(onPreferenceChangeListener);
findPreference(getString(R.string.pref_show_list_news_image_key)).setOnPreferenceChangeListener(onPreferenceChangeListener);
findPreference(getString(R.string.pref_enable_ripple_key)).setOnPreferenceChangeListener(onPreferenceChangeListener);
}
Preference.OnPreferenceChangeListener onPreferenceChangeListener
= new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference.getKey().equals(getString(R.string.pref_enable_ripple_key))) {
MaterialRippleLayout.setEnableRipple((Boolean) newValue);
} else {
MyApplication.getInstance().setListImageShowStatusChange(true);
}
return true;
}
};
Preference.OnPreferenceClickListener onPreferenceClickListener = new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
if (preference.getKey().equals(getString(R.string.pref_clean_cache_key))) {
if (!running) {
running = true;
Toolkit.showCrouton(getActivity(), "正在清理缓存中。请稍候。。", CroutonStyle.CONFIRM);
new AsyncTask<Object, Object, Object>() {
@Override
protected Object doInBackground(Object[] params) {
FileKit.deleteDir(MyApplication.getInstance().getInternalCacheDir());
try {
FileKit.deleteDir(MyApplication.getInstance().getExternalCacheDir());
} catch (Exception ignored) {
}
FileKit.deleteDir(new File(MyApplication.getInstance().getInternalCacheDir().getAbsolutePath() + "/../app_webview"));
return null;
}
@Override
protected void onPostExecute(Object o) {
try {
SettingFragment.this.preference.setSummary(getFileSize());
Toolkit.showCrouton(getActivity(), "缓存清理完成", CroutonStyle.INFO);
} catch (Exception ignored) {
}
running = false;
}
}.execute();
}
return false;
}if (preference.getKey().equals(getString(R.string.pref_check_update_key))) {
Toast.makeText(getActivity(), "正在检查更新中", Toast.LENGTH_SHORT).show();
UpdateHelper.build(getActivity(), MyApplication.getInstance().getUpdateUrl(),
new UpdateHelper.Options()
.setShowIgnoreVersion(true)
.setHintVersion(true)
).check();
} else {
throw new RuntimeException("Test Application Crash");
}
return false;
}
};
private String getFileSize() {
long size = 0;
size += FileKit.getFolderSize(MyApplication.getInstance().getInternalCacheDir());
size += FileKit.getFolderSize(MyApplication.getInstance().getExternalCacheDir());
size += FileKit.getFolderSize(new File(MyApplication.getInstance().getInternalCacheDir().getAbsolutePath() + "/../app_webview"));
return Formatter.formatFileSize(getActivity(), size);
}
}