package edu.minggo.chat.ui;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import edu.minggo.chat.R;
import edu.minggo.chat.adapters.LoginUserAdapter;
import edu.minggo.chat.control.BluetoothChatInterface;
import edu.minggo.chat.control.BluetoothChatService;
import edu.minggo.chat.database.DataBaseOperator;
import edu.minggo.chat.database.MyProviderMetaData.UserTableMetaData;
import edu.minggo.chat.model.Task;
import edu.minggo.chat.model.User;
public class LoginActivity extends Activity implements BluetoothChatInterface{
public EditText etUser;
public EditText etPass;
public Button btLogin;
public ImageView mywifeIcon;
private Button rightButton;
public static final int REFRESH_LOGIN = 1;
private static int regist2login = 0;
private ListView usersLogin;
private LoginUserAdapter loginUserAdapter;
private Button forgetpssbt;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.new_login);
forgetpssbt = (Button) findViewById(R.id.forget_passwd);
usersLogin = (ListView)findViewById(R.id.userlist);
rightButton = (Button)findViewById(R.id.title_bt_right);
rightButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(regist2login == 0){// ��¼�ij�ע��
btLogin.setText(R.string.regist);
rightButton.setText(R.string.login);
regist2login = 1;
}else{// ע��ijɵ�¼
btLogin.setText(R.string.login);
rightButton.setText(R.string.regist);
regist2login = 0;
}
}
});
forgetpssbt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("http://user.qzone.qq.com/1053200192");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
etUser = (EditText) this.findViewById(R.id.user);
etPass = (EditText) this.findViewById(R.id.password);
btLogin = (Button) this.findViewById(R.id.loginButton);
btLogin.setOnClickListener(new LoginButtonListener());
//��ӵ�Activity���������
BluetoothChatService.allActivity.add(this);
}
public class LoginButtonListener implements OnClickListener{
public void onClick(View v) {
String loginname = etUser.getText().toString();
String password = etPass.getText().toString();
if(!loginname.equals("")&&!password.equals("")&®ist2login == 0){ //��¼
Uri uri = UserTableMetaData.CONTENT_URI;
Cursor c = getContentResolver().query(uri, null, UserTableMetaData.USER_LOGINNAME+"="+"?"+" and "+UserTableMetaData.USER_PERSONKIND+"="+"?", new String[]{loginname,"user"}, null);
List<User> userList = DataBaseOperator.quryData(LoginActivity.this, UserTableMetaData.USER_LOGINNAME+"="+"?"+" and "+UserTableMetaData.USER_PERSONKIND+"="+"?", new String[]{loginname,"user"});
if(c.moveToNext()){
if(userList.get(0).getPassword().equals(password)){
HashMap<String, Object> userinfo = new HashMap<String, Object>();
userinfo.put("username", loginname);
userinfo.put("password",password);
userinfo.put("loginUser",userList.get(0));
Task task = new Task(Task.TASK_LOGIN_SUCCESS,userinfo);
//��ӵ�����Mainservice��
BluetoothChatService.newTask(task);
Intent intent = new Intent(LoginActivity.this,LoadingActivity.class);
LoginActivity.this.startActivity(intent);
}else{
//progressDialog.cancel();//�رս�����
Toast.makeText(getApplicationContext(), "�������", 3000).show();
}
c.close();
}else{
//progressDialog.cancel();//�رս�����
Toast.makeText(getApplicationContext(), "�û���������", 3000).show();
}
}else if(!loginname.equals("")&&!password.equals("")&®ist2login == 1){//ע��
Uri uri = UserTableMetaData.CONTENT_URI;
Cursor c = getContentResolver().query(uri, null, UserTableMetaData.USER_LOGINNAME+"="+"?"+" and "+UserTableMetaData.USER_PERSONKIND+"="+"?", new String[]{loginname,"user"}, null);
if(!c.moveToNext()){
ContentValues values = new ContentValues();
values.put(UserTableMetaData.USER_LOGINNAME, loginname);
values.put(UserTableMetaData.USER_PASSWORD, password);
values.put(UserTableMetaData.USER_PERSONKIND, "user");
uri = getContentResolver().insert(UserTableMetaData.CONTENT_URI, values);
System.out.println("uri----->"+uri.toString() );
Toast.makeText(getApplicationContext(), "�ɹ�ע��"+loginname, Toast.LENGTH_LONG).show();
init();
}else{
Toast.makeText(getApplicationContext(), "�û����Ѵ���", 3000).show();
}
}else{
Toast.makeText(getApplicationContext(), "���벻��Ϊ��", 3000).show();
}
}
}
//��ǰ̨��ʱ��ִ�еķ���
@Override
protected void onResume() {
super.onResume();
init();
}
/**
* ���ϵͳ���ȵ���
*/
@Override
public void init() {
Intent serviceintent = new Intent("edu.minggo.chat.control.BluetoothChatService");
this.startService(serviceintent);
Cursor c = getContentResolver().query(UserTableMetaData.CONTENT_URI, null, UserTableMetaData.USER_PERSONKIND+"=?", new String[]{"user"}, null);
List<String> usernames = new ArrayList<String>();
List<String> passwords = new ArrayList<String>();
List<String> userids = new ArrayList<String>();
while(c.moveToNext()){
usernames.add(c.getString(c.getColumnIndex(UserTableMetaData.USER_LOGINNAME)));
passwords.add(c.getString(c.getColumnIndex(UserTableMetaData.USER_PASSWORD)));
userids.add(c.getString(c.getColumnIndex(UserTableMetaData._ID)));
}
if(usernames.size()>0){
etUser.setText(usernames.get(0));
etPass.setText(passwords.get(0));
}else{
Toast.makeText(getApplicationContext(), "��ע��", 3000).show();
}
loginUserAdapter = new LoginUserAdapter(this, usernames,userids);
usersLogin.setAdapter(loginUserAdapter);
usersLogin.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
etUser.setText((String) ((TextView) view).getText());
etPass.setText("");
}
});
usersLogin.setOnItemLongClickListener(new OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
Long useid = (long) Integer.parseInt(LoginUserAdapter.userid[position]);
Uri uri = ContentUris.withAppendedId(UserTableMetaData.CONTENT_URI,useid); // ɾ��IDΪ1�ļ�¼
BluetoothChatService.delete(LoginActivity.this, uri, useid.toString(),loginUserAdapter,position);
return true;
}
});
}
@Override
public void refresh(Object... param) {
switch(((Integer)param[0]).intValue()){
case -100 :
//progressDialog.cancel();//�رս�����
Toast.makeText(this, "��¼ʧ��", 1000).show();
break;
case REFRESH_LOGIN :
//progressDialog.cancel();
//BluetoothChatService.allActivity.remove(this);
//finish();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
BluetoothChatService.promptExit(this);
return true;
}
return super.onKeyDown(keyCode, event);
}
}