package com.ztspeech.simutalk2.dictionary.activity;
import android.app.AlertDialog;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.view.KeyEvent;
import android.widget.Toast;
import cn.ac.ia.directtrans.json.JsonRequestResult;
import cn.ac.ia.directtrans.json.JsonSetUserInfo;
import com.ztspeech.simutalk2.R;
import com.ztspeech.simutalk2.data.UserInfo;
import com.ztspeech.simutalk2.net.PostPackageEngine;
import com.ztspeech.simutalk2.net.ResultPackage;
import com.ztspeech.simutalk2.trans.InterpretActivity;
public class SettingActivity extends PreferenceActivity implements OnPreferenceClickListener,
OnPreferenceChangeListener {
// private static int CHANGE_USERNAME = 0;
// private String lLanguageKey;
private String cTranslateKey;
private String cAutoPlayKey;
private String cTTSKey;
private String cAutoJumpKey;
private String cBackRunKey;
private String cTranslatetalkKey;
private String cBLClickRecordKey;
// private String eNikiNameKey;
// private String lFrontSizeKey;
// private String lTTSSexKey;
// private String lTTSSpeedKey;
private EditTextPreference eNikiName;
// private ListPreference lLanguage;
private CheckBoxPreference cTranslate;
private CheckBoxPreference cTranslatetalk;
private CheckBoxPreference cAutoPlay;
private CheckBoxPreference cTTS;
private CheckBoxPreference cAutoJump;
private CheckBoxPreference cBackRun;
private CheckBoxPreference cBLClickRecord;
// private ListPreference lFrontSize;
// private ListPreference lTTSSex;
// private ListPreference lTTSSpeed;
private InterpretActivity mMain = null;
private SharedPreferences prefs;
private UserInfo mUser = UserInfo.getInstanse();
private PostPackageEngine mPostPackageEngine;
// private int postPackageType = CHANGE_USERNAME;
private String username;
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 200:
postPackageCallBack((ResultPackage) msg.obj);
break;
case 404:
eNikiName.setText(mUser.getUserName());
Toast.makeText(SettingActivity.this, (String) msg.obj, Toast.LENGTH_LONG).show();
break;
default:
break;
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
overridePendingTransition(R.anim.slideinright, R.anim.slideoutleft);
setTheme(R.style.perference_set_activity);
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.setting_preference);
// lLanguageKey =
// getResources().getString(R.string.setting_listpreference_choselanguage);
cTranslateKey = getResources().getString(R.string.setting_checkboxpreference_translate);
cAutoPlayKey = getResources().getString(R.string.setting_checkboxpreference_autoplay);
cTTSKey = getResources().getString(R.string.setting_checkboxpreference_tts);
cAutoJumpKey = getResources().getString(R.string.setting_checkboxpreference_autojump);
cBackRunKey = getResources().getString(R.string.setting_checkboxpreference_run);
cTranslatetalkKey = getResources().getString(R.string.setting_checkboxpreference_translatetalk);
cBLClickRecordKey = getResources().getString(R.string.setting_checkboxpreference_longclickrecord);
// eNikiNameKey =
// getResources().getString(R.string.setting_edittextpreference_nikename);
// lFrontSizeKey =
// getResources().getString(R.string.setting_listpreference_fontsize);
// lTTSSexKey =
// getResources().getString(R.string.setting_listpreference_ttssex);
// lTTSSpeedKey =
// getResources().getString(R.string.setting_listpreference_ttsspeed);
// eNikiName = (EditTextPreference) findPreference(eNikiNameKey);
// lLanguage = (ListPreference) findPreference(lLanguageKey);
cTranslate = (CheckBoxPreference) findPreference(cTranslateKey);
cTranslatetalk = (CheckBoxPreference) findPreference(cTranslatetalkKey);
cAutoPlay = (CheckBoxPreference) findPreference(cAutoPlayKey);
cTTS = (CheckBoxPreference) findPreference(cTTSKey);
cAutoJump = (CheckBoxPreference) findPreference(cAutoJumpKey);
cBackRun = (CheckBoxPreference) findPreference(cBackRunKey);
cBLClickRecord = (CheckBoxPreference) findPreference(cBLClickRecordKey);
// lFrontSize = (ListPreference) findPreference(lFrontSizeKey);
// lTTSSex = (ListPreference) findPreference(lTTSSexKey);
// lTTSSpeed = (ListPreference) findPreference(lTTSSpeedKey);
// eNikiName.setText(mUser.getUserName());
// eNikiName.setOnPreferenceClickListener(this);
// eNikiName.setOnPreferenceChangeListener(this);
// lLanguage.setOnPreferenceClickListener(this);
// lLanguage.setOnPreferenceChangeListener(this);
cTranslate.setOnPreferenceClickListener(this);
cTranslate.setOnPreferenceChangeListener(this);
cTranslatetalk.setOnPreferenceClickListener(this);
cTranslatetalk.setOnPreferenceChangeListener(this);
cAutoPlay.setOnPreferenceClickListener(this);
cAutoPlay.setOnPreferenceChangeListener(this);
cTTS.setOnPreferenceClickListener(this);
cTTS.setOnPreferenceChangeListener(this);
cAutoJump.setOnPreferenceClickListener(this);
cAutoJump.setOnPreferenceChangeListener(this);
cBackRun.setOnPreferenceChangeListener(this);
cBLClickRecord.setOnPreferenceChangeListener(this);
// lFrontSize.setOnPreferenceChangeListener(this);
// lFrontSize.setOnPreferenceClickListener(this);
// lTTSSex.setOnPreferenceChangeListener(this);
// lTTSSex.setOnPreferenceClickListener(this);
// lTTSSpeed.setOnPreferenceChangeListener(this);
// lTTSSpeed.setOnPreferenceClickListener(this);
mMain = InterpretActivity.getInstance();
prefs = PreferenceManager.getDefaultSharedPreferences(this);
}
@Override
protected void onResume() {
initConfig();
super.onResume();
}
public void initConfig() {
// if (mUser.s2sType.equals(UserInfo.S2T_CH2EN)) {
// lLanguage.setValueIndex(0);
// } else if (mUser.s2sType.equals(UserInfo.S2T_EN2CH)) {
// lLanguage.setValueIndex(1);
// }
// if (mUser.getTtsGender()) {
// lTTSSex.setValueIndex(0);
// } else {
// lTTSSex.setValueIndex(1);
// }
cTTS.setChecked(mUser.isLocaleTTS());
// ��������Ĭ��ֵ
// if(mUser.getTtsSpeed()==0.5){
// lTTSSpeed.setValueIndex(2);
// }else if(mUser.getTtsSpeed()==1.5){
// lTTSSpeed.setValueIndex(1);
// }else if(mUser.getTtsSpeed()==2.0){
// lTTSSpeed.setValueIndex(0);
// }
cAutoJump.setChecked(mUser.isOpenTransView());
cTranslatetalk.setChecked(mUser.isTranslatetalk());
cBLClickRecord.setChecked(mUser.isLClickRecord());
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// if (preference.getKey().equals(eNikiNameKey)) {
// // System.out.println(newValue.toString());
// if (newValue == null || newValue.toString().equals("") ||
// newValue.toString().length() <= 0) {
// return false;
// } else {
// checkUserName(newValue.toString());
// }
// } else
// if (preference.getKey().equals(lLanguageKey)) {
// // System.out.println(newValue.toString());
// // String result = prefs.getString(lLanguageKey, "no");
// if (newValue.toString().equals("0")) {
// mUser.s2sType = UserInfo.S2T_CH2EN;
// mMain.setS2sType(mUser.s2sType);
// } else if (newValue.toString().equals("1")) {
// mUser.s2sType = UserInfo.S2T_EN2CH;
// mMain.setS2sType(mUser.s2sType);
// }
// } else
if (preference.getKey().equals(cTranslateKey)) {
// System.out.println(newValue.toString());
mUser.setOnlyRecoginze(!Boolean.parseBoolean(newValue.toString()));
mMain.setOnlyRecoginze(mUser.isOnlyRecoginze());
}else if (preference.getKey().equals(cTranslatetalkKey)) {
// System.out.println(newValue.toString());
//���öԻ�����
mUser.setTranslatetalk(Boolean.parseBoolean(newValue.toString()));
} else if (preference.getKey().equals(cAutoPlayKey)) {
// System.out.println(newValue.toString());
mUser.autoTTS = Boolean.parseBoolean(newValue.toString());
mMain.setAutoTTS(mUser.autoTTS);
} else if (preference.getKey().equals(cTTSKey)) {
// System.out.println(newValue.toString());
mUser.setLocaleTTS(Boolean.parseBoolean(newValue.toString()));
mMain.setLocaleTTS(mUser.isLocaleTTS());
} else if (preference.getKey().equals(cAutoJumpKey)) {
mUser.setOpenTransView(Boolean.parseBoolean(newValue.toString()));
} else if (preference.getKey().equals(cBackRunKey)) {
mUser.setBackRun(Boolean.parseBoolean(newValue.toString()));
} else if (preference.getKey().equals(cBLClickRecordKey)) {
mUser.setLClickRecord(Boolean.parseBoolean(newValue.toString()));
}
// else if (preference.getKey().equals(lFrontSizeKey)) {
// mUser.setFontIndex(Integer.parseInt(newValue.toString()));
// mMain.setFontSize(Integer.parseInt(newValue.toString()));
// }
// else if (preference.getKey().equals(lTTSSexKey)) {
// switch (Integer.parseInt(newValue.toString())) {
// case 0:
// mUser.setTtsGender(true);
// break;
// case 1:
// mUser.setTtsGender(false);
// break;
// }
//
// }
// else if(preference.getKey().equals(lTTSSpeedKey)){
//
// //��������j
// mUser.setTtsSpeed(Float.valueOf(newValue.toString()));
// }
else {
return false;
}
return true;
}
@Override
public boolean onPreferenceClick(Preference preference) {
// if (preference.getKey().equals(lLanguageKey)) {
// // String result = prefs.getString(lLanguageKey, "no");
// // System.out.println(result);
// } else
if (preference.getKey().equals(cTranslateKey)) {
} else if (preference.getKey().equals(cAutoPlayKey)) {
} else if (preference.getKey().equals(cTTSKey)) {
} else if (preference.getKey().equals(cAutoJumpKey)) {
} else {
return false;
}
return false;
}
public boolean checkUserName(String nikeName) {
String sName = nikeName.trim();
JsonSetUserInfo info = new JsonSetUserInfo();
info.setUserName(sName);
username = sName;
mPostPackageEngine = new PostPackageEngine(SettingActivity.this, info, handler);
mPostPackageEngine.post();
// Toast.makeText(SettingActivity.this, "ok", Toast.LENGTH_LONG).show();
return true;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.finish();
overridePendingTransition(R.anim.slideinleft, R.anim.slideoutright);
return true;
} else {
return super.onKeyDown(keyCode, event);
}
}
@Override
protected void onPause() {
mUser.save();
super.onPause();
}
@Override
protected void onDestroy() {
mUser.save();
super.onDestroy();
}
private void postPackageCallBack(ResultPackage result) {
if (result.isNetSucceed()) {
JsonRequestResult ret = JsonRequestResult.fromJson(result.getJson());
if (ret != null) {
if (ret.succeed == true) {
mMain.setUserName(username);
mUser.save();
Toast.makeText(SettingActivity.this, "�ύ�ɹ�", Toast.LENGTH_SHORT).show();
} else {
eNikiName.setText(mUser.getUserName());
new AlertDialog.Builder(SettingActivity.this).setTitle("��ʾ").setMessage(ret.explain)
.setPositiveButton("ȷ��", null).show();
}
} else {
eNikiName.setText(mUser.getUserName());
}
} else {
eNikiName.setText(mUser.getUserName());
}
}
}