/** * */ package com.d3.d3xmpp.activites; import java.io.File; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.TextView; import com.d3.d3xmpp.R; import com.d3.d3xmpp.constant.Constants; import com.d3.d3xmpp.constant.MyApplication; import com.d3.d3xmpp.d3View.D3View; import com.d3.d3xmpp.dao.MsgDbHelper; import com.d3.d3xmpp.dao.NewFriendDbHelper; import com.d3.d3xmpp.dao.NewMsgDbHelper; import com.d3.d3xmpp.util.FileUtil; import com.d3.d3xmpp.util.MyAndroidUtil; import com.d3.d3xmpp.util.Tool; import com.d3.d3xmpp.util.XmppLoadThread; import com.d3.d3xmpp.xmpp.XmppConnection; /** * @author MZH * */ public class LoginActivity extends BaseActivity implements OnCheckedChangeListener, TextWatcher { @D3View(click="onClick") TextView registBtn,changePwdBtn,clearBtn; @D3View(click="onClick") Button loginBtn; @D3View CheckBox checkBox; @D3View TextView nameText,pwdText; private String name,pwd; private boolean isChecked = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.acti_login); initTitle(); isChecked = MyApplication.sharedPreferences.getBoolean(Constants.LOGIN_CHECK, false); checkBox.setOnCheckedChangeListener(this); checkBox.setChecked(isChecked); nameText.addTextChangedListener(this); //�ѵ�¼��,�Զ���¼ name = MyApplication.sharedPreferences.getString(Constants.LOGIN_ACCOUNT, null); pwd = MyApplication.sharedPreferences.getString(Constants.LOGIN_PWD, null); if (isChecked) { nameText.setText(name); } } public void onClick(View v) { switch (v.getId()) { case R.id.loginBtn: name = nameText.getText().toString(); pwd = pwdText.getText().toString(); if (TextUtils.isEmpty(name)) { Tool.initToast(LoginActivity.this, getString(R.string.register_name)); } else if (TextUtils.isEmpty(pwd)) { Tool.initToast(LoginActivity.this, getString(R.string.register_password)); } else { loginAccount(name, pwd); } break; case R.id.registBtn: Intent intent = new Intent(LoginActivity.this, RegActivity.class); startActivity(intent); break; // case R.id.changePwdBtn: // startActivity(new Intent(LoginActivity.this, ForgetPwdActivity.class)); // break; case R.id.clearBtn: new AlertDialog.Builder(this) .setTitle("��ʾ") .setMessage("ȷ������ۼ�������󲻿ɻָ���") .setPositiveButton("��", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { MsgDbHelper.getInstance(getApplicationContext()).clear(); NewFriendDbHelper.getInstance(getApplicationContext()).clear(); NewMsgDbHelper.getInstance(getApplicationContext()).clear(); FileUtil.RecursionDeleteFile(new File(Constants.SAVE_IMG_PATH)); FileUtil.RecursionDeleteFile(new File(Constants.SAVE_SOUND_PATH)); } }) .setNegativeButton("��", null) .show(); break; default: break; } } private void loginAccount(final String userName, final String password) { new XmppLoadThread(this) { @Override protected Object load() { boolean isSuccess = XmppConnection.getInstance().login(userName, password); if (isSuccess) { Constants.USER_NAME = name; Constants.PWD = password; } return isSuccess; } @Override protected void result(Object o) { boolean isSuccess = (Boolean) o; if (isSuccess) { if (isChecked) { MyAndroidUtil.editXmlByString(Constants.LOGIN_ACCOUNT, name); MyAndroidUtil.editXmlByString(Constants.LOGIN_PWD, pwd); } else { MyAndroidUtil.removeXml(Constants.LOGIN_ACCOUNT); MyAndroidUtil.removeXml(Constants.LOGIN_PWD); } Intent intent = new Intent(LoginActivity.this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); } else { Tool.initToast(LoginActivity.this, getResources().getString(R.string.login_error)); } } }; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (getIntent().getBooleanExtra("isRelogin", false)){ return false; } } return super.onKeyDown(keyCode, event); } @Override protected void onResume() { if (getIntent().getBooleanExtra("isRelogin", false)) { Tool.initToast(getApplicationContext(), "���˺����ڱ𴦵�¼"); } else if (Constants.USER_NAME != null && !Constants.USER_NAME.equals("")) { Intent intent = new Intent(LoginActivity.this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); finish(); } else { if (name!=null && pwd!=null) { //����Ϊ��,�Զ���¼ loginAccount(name, pwd); } } super.onResume(); } @Override public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { checkBox.setChecked(isChecked); this.isChecked = isChecked; MyAndroidUtil.editXml(Constants.LOGIN_CHECK, isChecked); if (isChecked) { checkBox.setButtonDrawable(R.drawable.login_checked); } else { checkBox.setButtonDrawable(R.drawable.login_check); } } @Override public void afterTextChanged(Editable arg0) { } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } }