package com.tv.task;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.AsyncTask;
import android.widget.Toast;
import com.tv.btl.BaseApplication;
import com.tv.listener.UserListener;
import com.tv.model.User;
import com.tv.net.UserController;
/**
* Lớp thực hiện nhiệm vụ chạy ngầm , yêu cầu lớp Controller tương tác với
* server
*
* @author misugi_jun91
*
*/
public class UserTask extends AsyncTask<User, String, JSONObject> {
private int type;
private User user;
public static final int CHECK_USERNAME = 0;
public static final int REGISTER = 1;
public static final int LOGIN = 2;
public static final int INFO = 3;
public static final int CHECKFOLLOW = 4;
public static final int ADDFOLLOW = 5;
public static final int UNFOLLOW = 6;
public static final int VIEW_INFO=7;
private UserListener context;
private UserController uController;
public UserTask(int mType, UserListener mActivity) {
this.type = mType;
this.context = mActivity;
uController = new UserController();
}
/**
* Do task in new thread not main thread
*/
@Override
protected JSONObject doInBackground(User... params) {
JSONObject json = null;
switch (type) {
case REGISTER:
json = uController.registerUser(params[0]);
break;
case LOGIN:
json = uController.loginUser(params[0]);
break;
case INFO:
json = uController.getUserInfo(params[0]);
break;
case VIEW_INFO:
json=uController.getUserInfo(params[0]);
break;
default:
break;
}
return json;
// int resutl=uController.checkUsername(params[0]);
// System.out.println(resutl);
// return Integer.valueOf(resutl);
}
/**
* Go in to main thread after do the thread above
*/
protected void onPostExecute(JSONObject json) {
switch (type) {
case REGISTER:
System.out.println("nhan duoc goi tin");
register(json);
break;
case LOGIN:
login(json);
break;
case INFO:
getUserInfo(json);
break;
case VIEW_INFO:
viewInfo(json);
break;
default:
break;
}
}
// private void checkUsername(Integer value){
// switch (value) {
// case 0:
// Toast.makeText((Activity)context, "Khong the dang ky tai khoan nay",
// Toast.LENGTH_SHORT).show();
//
// break;
//
// default:
// Toast.makeText((Activity)context, "Co the dang ky tai khoan nay",
// Toast.LENGTH_SHORT).show();
// break;
// }
// }
private void register(JSONObject json) {
int result = 0;
try {
// TODO đăng kí tài khoản thành công tại đây
String register = json.getString("register");
if (Integer.parseInt(register) == 1) {
context.alertMessage("Đăng kí tài khoản thành công");
String uid = json.getString("uid");
System.out.println("uid la "+uid);
((BaseApplication) ((Activity) context).getApplication())
.setID(Integer.parseInt(uid));
System.out.println("uid"
+ ((BaseApplication) ((Activity) context)
.getApplication()).getID());
} else {
String checkuser = json.getString("checkusername");
if (Integer.parseInt(checkuser) == 0) {
context.alertMessage("Tên đăng nhập đã được sử dụng");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
private void login(JSONObject json) {
try {
String uid = json.getString("uid");
int user_id = Integer.parseInt(uid);
if (user_id == -1) {
context.alertMessage("Kiểm tra tài khoản và mật khẩu");
} else {
String displayName = json.getString("username");
String url = json.getString("avatar");
BaseApplication bs = (BaseApplication) ((Activity) context)
.getApplication();
bs.setID(Integer.parseInt(uid));
String username = json.getString("username");
bs.setUsername(username);
String urlavatar = json.getString("avatar");
bs.setUrlAvatar(urlavatar);
context.loginComplete();
}
} catch (JSONException e) {
}
}
/*
* $respone['fullname']=$user->getUser_fullname();
* $respone['email']=$user->getUser_email();
* $respone['phone']=$user->getUser_tel();
* $respone['address']=$user->getUser_address();
* $respone['taikhoan']=$user->getUser_taikhoan();
*/
private void getUserInfo(JSONObject json) {
try {
String fullname = json.getString("fullname");
String email = json.getString("email");
String phone = json.getString("phone");
String address = json.getString("address");
String taikhoan = json.getString("taikhoan");
User user = new User();
user.setFullname(fullname);
user.setEmail(email);
user.setPhone(phone);
user.setAddress(address);
user.setTaikhoan(taikhoan);
context.setUserInfo(user);
} catch (JSONException e) {
}
}
private void viewInfo(JSONObject json){
try {
String fullname = json.getString("fullname");
String email = json.getString("email");
String phone = json.getString("phone");
String address = json.getString("address");
String taikhoan = json.getString("taikhoan");
User user = new User();
user.setFullname(fullname);
user.setEmail(email);
user.setPhone(phone);
user.setAddress(address);
user.setTaikhoan(taikhoan);
context.viewInfo(user);
} catch (JSONException e) {
}
}
}