/**
*
*/
package coolbuy360.searchhealth;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import coolbuy360.logic.AppConfig;
import coolbuy360.service.CommonMethod;
import coolbuy360.service.FileService;
import coolbuy360.service.FileServiceSize;
import coolbuy360.service.UpdateApp;
import coolbuy360.service.Util;
import coolbuy360.service.fileUtril;
import coolbuy360.service.searchApp;
/**
* ����
*
* @author yangxc
*
*/
public class Settings extends Activity {
Long cacheSize;
Long fileSize;
Long totalSize;
TextView txt_size;
RelativeLayout setting_item_imgQuality;
AppConfig appconfig;
CheckBox setting_check_autoOptimize;
String imgQualityValue;
String autoischeck;
searchApp app;
Dialog imgQualityDialog;
TextView setting_desc_imgQuality;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.setting);
// Ϊ�˳�����
app = searchApp.getInstance();
app.addActivity(this);
// ���÷��ذ�ť
ImageButton actionbar_pre_btn = (ImageButton) this
.findViewById(R.id.actionbar_pre_btn);
actionbar_pre_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Settings.this.finish();
}
});
setting_desc_imgQuality = (TextView) this
.findViewById(R.id.setting_desc_imgQuality);
RelativeLayout setting_item_autoOptimize = (RelativeLayout) this
.findViewById(R.id.setting_item_autoOptimize);
setting_item_imgQuality = (RelativeLayout) this
.findViewById(R.id.setting_item_imgQuality);
RelativeLayout setting_item_clearCache = (RelativeLayout) this
.findViewById(R.id.setting_item_clearCache);
RelativeLayout setting_item_checkUpdate = (RelativeLayout) this
.findViewById(R.id.setting_item_checkUpdate);
RelativeLayout setting_item_legalNotice = (RelativeLayout) this
.findViewById(R.id.setting_item_legalNotice);
RelativeLayout setting_item_aboutUs = (RelativeLayout) this
.findViewById(R.id.setting_item_aboutUs);
setting_check_autoOptimize = (CheckBox) this
.findViewById(R.id.setting_check_autoOptimize);
txt_size = (TextView) this.findViewById(R.id.setting_size_cache);
setting_item_autoOptimize.setOnTouchListener(new CommonMethod.setOnPressed());
/* setting_item_imgQuality.setOnTouchListener(); */
setting_item_clearCache.setOnTouchListener(new CommonMethod.setOnPressed());
setting_item_checkUpdate.setOnTouchListener(new CommonMethod.setOnPressed());
setting_item_legalNotice.setOnTouchListener(new CommonMethod.setOnPressed());
setting_item_aboutUs.setOnTouchListener(new CommonMethod.setOnPressed());
appconfig = new AppConfig(Settings.this);
new AsyloadState().execute();// ��ʼ��״̬
// ���Զ��Ż������
setting_item_autoOptimize.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
// ����CheckBox�Ĺ�ѡ״̬
setting_check_autoOptimize.setChecked(setting_check_autoOptimize
.isChecked() ? false : true);
}
});
// �Զ��Ż�checkѡ��״̬�ı��ʱ��ִ�е�״̬
setting_check_autoOptimize
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
// ִ������Ż�����
if (isChecked) {
setting_item_imgQuality.setClickable(false);
setting_item_imgQuality
.setBackgroundDrawable(getResources()
.getDrawable(
R.drawable.settingitem_tail_disable));
autoSetting(isChecked);
} else {
setting_item_imgQuality.setClickable(true);
setting_item_imgQuality
.setBackgroundDrawable(getResources()
.getDrawable(
R.drawable.settingitem_tail));
autoSetting(isChecked);
}
}
});
// ��ͼƬ���������
setting_item_imgQuality.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
LayoutInflater factory = LayoutInflater.from(Settings.this);
final View EntryView = factory.inflate(
R.layout.setting_imgquality_dialog, null);
final RelativeLayout setting_imgquality_item_smallimg = (RelativeLayout) EntryView
.findViewById(R.id.setting_imgquality_item_smallimg);
final RelativeLayout setting_imgquality_item_bigimg = (RelativeLayout) EntryView
.findViewById(R.id.setting_imgquality_item_bigimg);
final RadioButton radiobtn_big = (RadioButton) EntryView
.findViewById(R.id.setting_autoOptimize_radio_bigimg);
final RadioButton radiobtn_small = (RadioButton) EntryView
.findViewById(R.id.setting_autoOptimize_radio_smallimg);
radiocheck(imgQualityValue, radiobtn_big, radiobtn_small);
setting_imgquality_item_smallimg
.setOnTouchListener(new CommonMethod.setOnPressed());
setting_imgquality_item_bigimg
.setOnTouchListener(new CommonMethod.setOnPressed());
setting_imgquality_item_smallimg
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
updateImgQualtyDialog("low", radiobtn_big,
radiobtn_small);
}
});
setting_imgquality_item_bigimg
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
updateImgQualtyDialog("high", radiobtn_big,
radiobtn_small);
}
});
radiobtn_big.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
updateImgQualtyDialog("high", radiobtn_big,
radiobtn_small);
}
});
radiobtn_small.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
updateImgQualtyDialog("low", radiobtn_big,
radiobtn_small);
}
});
imgQualityDialog = new AlertDialog.Builder(Settings.this)
.setView(EntryView).setCancelable(true).show();
imgQualityDialog.setCanceledOnTouchOutside(true);
}
});
// ��������桱���
setting_item_clearCache.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
Log.i("chenlinwei", Util.getNowDate("yyyy-MM-dd HH:mm:ss") + "");
Boolean isRun = Util.runCommand("chmod 777 " + getCacheDir());
// int delCount= Utril.clearCacheFolder(getCacheDir(),
// Long.parseLong(Utril.getNowDate("yyyy-MM-dd HH:mm:ss")));
if (isRun) {
new asyDelateCache().execute();
} else {
Toast.makeText(Settings.this, "��Ȩ����", 1).show();
}
/*
* if(delCount>0) { Toast.makeText(Settings.this,
* "ɾ�����ݸ�����"+delCount, 1).show(); }
*/
}
});
// �������¡����
setting_item_checkUpdate.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
UpdateApp update = new UpdateApp(Settings.this);
update.startupdate();
}
});
// ���������������
setting_item_legalNotice.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
Intent pageIntent = new Intent().setClass(Settings.this,
LegalNotice.class);
startActivity(pageIntent);
}
});
// �����ڡ����
setting_item_aboutUs.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.setPressed(false);
Intent pageIntent = new Intent().setClass(Settings.this,
About.class);
startActivity(pageIntent);
}
});
}
/**
* ���������첽������
*
* @author chenlw
*
*/
private final class asyDelateCache extends AsyncTask<String, Void, Integer> {
private ProgressDialog pBarcheck;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
pBarcheck = new ProgressDialog(Settings.this);
// dialog.setTitle("Indeterminate");
pBarcheck.setMessage("����ɾ�����棡");
pBarcheck.setIndeterminate(true);
pBarcheck.setCancelable(true);
pBarcheck.show();
}
@Override
protected Integer doInBackground(String... params) {
try {
FileService filservice = new FileService(Settings.this);
filservice.deleteFolderFile(getCacheDir() + "", true);
filservice.deleteFolderFile(getFilesDir() + "", true);
filservice.deleteFolderFile( fileUtril.getSDCachePath(), false);
if (totalSize > 0) {
return 0;
} else {
return 1;
}
} catch (Exception e) {
// TODO Auto-generated catch block
// e.printStackTrace();
// Toast.makeText(Settings.this, e.getMessage(), 1).show();
return 1;
}
}
@Override
protected void onPostExecute(Integer result) {
// TODO Auto-generated method stub
pBarcheck.cancel();
if (result == 0) {
Toast.makeText(Settings.this,
"������棺" + FileServiceSize.FormetFileSize(totalSize), 1)
.show();
totalSize = Long.parseLong("0");
txt_size.setText("0B");
} else {
Toast.makeText(Settings.this, "û�л�����Ҫ���", 1).show();
}
}
}
/**
* ��ʼ����ȡ����
*/
private Integer InitData() {
try {
cacheSize = FileServiceSize.getFolderSize(getCacheDir());
fileSize = FileServiceSize.getFolderSize(getFilesDir());
totalSize = cacheSize + fileSize;
autoischeck = appconfig.getValue(AppConfig.Is_2G3G_AutoLoadImage);
imgQualityValue = appconfig.getValue(AppConfig.Img_Quality);// ͼƬ��������
return 0;
} catch (Exception e) {
return 1;
}
}
/**
* ��ʼ��չʾ������̬
*/
private void showData() {
txt_size.setText(FileServiceSize.FormetFileSize(totalSize) + "");
setting_check_autoOptimize.setChecked(autoischeck.equals("true") ? true
: false);
setting_desc_imgQuality
.setText(imgQualityValue.equals("low") ? "�����������Сͼ"
: "����������ش�ͼ");
}
/**
* radioButtonʵ�ֵ�ѡ��ʽ
*
* @param quarity
* @param radiobtn_big
* @param radionbtn_small
*/
private void radiocheck(String quarity, RadioButton radiobtn_big,
RadioButton radiobtn_small) {
if (quarity.equals("low")) {
radiobtn_small.setChecked(true);
radiobtn_big.setChecked(false);
} else {
radiobtn_big.setChecked(true);
radiobtn_small.setChecked(false);
}
}
/**
* �Զ��Ż���ش���
*
* @param ischeck
*/
private void autoSetting(Boolean ischeck) {
if (ischeck) {
/*
* int connecttype = Util.getConnectedType(Settings.this); if
* (connecttype == 1)// ����wifi�� {
* appconfig.setValue("Is_2G3G_AutoLoadImage", "true"); } else {
* appconfig.setValue("Is_2G3G_AutoLoadImage", "false"); }
*/
appconfig.setValue("Is_2G3G_AutoLoadImage", "true");
} else {
appconfig.setValue("Is_2G3G_AutoLoadImage", "false");
}
app.initAppConfig();// �ٴγ�ʼAppConfig�е�ֵ
}
/**
* ����ͼƬ��������ֵ
*
* @param value
*/
private void saveImgQualitySettings(String value) {
appconfig.setValue("Img_Quality", value);
app.initAppConfig();// �ٴγ�ʼAppConfig�е�ֵ
setting_desc_imgQuality.setText(value.equals("low") ? "�����������Сͼ"
: "����������ش�ͼ");
if (imgQualityDialog != null) {
imgQualityDialog.cancel();
}
}
/**
* ���µ�����״̬
*
* @param whoClick
* @param radiobtn_big
* @param radionbtn_small
*/
private void updateImgQualtyDialog(String whoClick,
RadioButton radiobtn_big, RadioButton radiobtn_small) {
if (imgQualityValue == null || !(imgQualityValue.equals(whoClick))) {
imgQualityValue = whoClick;
if (imgQualityValue.equals("low")) {
radiobtn_small.setChecked(true);
radiobtn_big.setChecked(false);
} else {
radiobtn_big.setChecked(true);
radiobtn_small.setChecked(false);
}
saveImgQualitySettings(imgQualityValue);
} else {
if (imgQualityDialog != null) {
imgQualityDialog.cancel();
}
}
}
// private void setting()
private final class AsyloadState extends AsyncTask<String, Void, Integer> {
@Override
protected Integer doInBackground(String... params) {
return InitData();
}
@Override
protected void onPostExecute(Integer result) {
// TODO Auto-generated method stub
if (result == 0) {
showData();
} else {
Toast.makeText(Settings.this, "��ȡ�����ļ���Ϣ����", Toast.LENGTH_SHORT)
.show();
}
}
}
}