package com.example.slidingmenu.yujing.client.activity.friends;
import org.json.JSONException;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.ContentValues;
import android.os.AsyncTask;
import android.widget.Toast;
import com.example.slidingmenu.R;
import com.example.slidingmenu.yujing.client.application.ClientApplication;
import com.example.slidingmenu.yujing.client.database.table.Friend;
import com.example.slidingmenu.yujing.client.network.HttpClient;
import com.example.slidingmenu.yujing.client.network.Request;
import com.example.slidingmenu.yujing.client.network.mode.RequestParam;
import com.example.slidingmenu.yujing.client.network.mode.ResponseParam;
public class AddFriendTask extends AsyncTask<Object, Integer, Boolean>{
private ProgressDialog dialog;
private int position = -1;
private Activity activity;
private OnAddFriend onAddListener;
public static interface OnAddFriend{
public void onAddFriendSuccess(Activity activity, int position);
public void onAddFriendFail(Activity activity, int position);
}
public AddFriendTask(Activity activity, OnAddFriend listener) {
this.activity = activity;
this.onAddListener = listener;
}
@Override
protected void onPreExecute() {
dialog = ProgressDialog.show(activity, "", activity.getText(R.string.waiting));
super.onPreExecute();
}
@Override
protected Boolean doInBackground(Object... param) {
//如果网络没有连接则更新进度为 网络连接异常
if(!HttpClient.isConnect(activity)) {
return false;
}
RequestParam requestParam = (RequestParam) param[0];
ContentValues values = (ContentValues)param[1];
position = (Integer) param[2];
String res = Request.request(requestParam.getJSON());
// 如果请求结果为空字符串,则请求失败
if ("".equals(res)) {
return false;
}
try {
ResponseParam response = new ResponseParam(res);
if (response.getResult() != ResponseParam.RESULT_SUCCESS) {
return false;
}
Friend.insertFriend(((ClientApplication) activity.getApplication()).getDatabaseHelper(), values);
return true;
} catch (JSONException e) {
e.printStackTrace();
}
return false;
}
@Override
protected void onPostExecute(Boolean result) {
dialog.dismiss();
dialog = null;
if(result) {
if(this.onAddListener != null)
this.onAddListener.onAddFriendSuccess(activity, position);
Toast.makeText(activity, "添加好友完成", 0).show();
} else {
if(this.onAddListener != null)
this.onAddListener.onAddFriendFail(activity, position);
Toast.makeText(activity, "添加好友失败", 0).show();
}
super.onPostExecute(result);
}
}