package com.tv.task; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Fragment; import android.os.AsyncTask; import com.tv.btl.BaseApplication; import com.tv.listener.FollowListener; import com.tv.model.User; import com.tv.net.FollowController; public class FollowTask extends AsyncTask<User, String, JSONObject> { private int type; private User user; public static final int CHECKFOLLOW = 0; public static final int ADDFOLLOW = 1; public static final int UNFOLLOW = 2; public static final int GETFOLLOW = 3; public static final int MORE_FOLLOW=4; private FollowListener context; private FollowController fController; public FollowTask(int mType, FollowListener mActivity) { this.type = mType; this.context = mActivity; fController = new FollowController(); } @Override protected JSONObject doInBackground(User... params) { JSONObject json = null; switch (type) { case CHECKFOLLOW: json = fController.checkFollow(params[0], params[1]); break; case ADDFOLLOW: json = fController.addFollow(params[0], params[1]); break; case UNFOLLOW: json = fController.unFollow(params[0], params[1]); break; case GETFOLLOW: json = fController.getFollow(params[0]); break; case MORE_FOLLOW: BaseApplication bs = (BaseApplication) ((((Fragment) context) .getActivity()).getApplication()); json=fController.moreFollow(params[0], bs.getPage_friend()+1); default: break; } return json; } protected void onPostExecute(JSONObject json) { switch (type) { case CHECKFOLLOW: checkFollow(json); break; case ADDFOLLOW: addFollow(json); break; case UNFOLLOW: unFollow(json); break; case GETFOLLOW: getFollow(json); break; case MORE_FOLLOW: moreFollow(json); break; default: break; } } private void checkFollow(JSONObject json) { try { int result = Integer.parseInt(json.getString("result")); context.checkFollow(result); } catch (JSONException e) { } } private void addFollow(JSONObject json) { try { int result = Integer.parseInt(json.getString("result")); context.addFollow(result); } catch (JSONException e) { } } private void unFollow(JSONObject json) { try { int result = Integer.parseInt(json.getString("result")); context.unFollow(result); } catch (JSONException e) { } } public void getFollow(JSONObject json) { List<User> userList = new ArrayList<User>(); int maxPage = 0; try { BaseApplication bs = (BaseApplication) ((((Fragment) context) .getActivity()).getApplication()); bs.setPage_friend(1); // maxPage = Integer.parseInt(json.getString("maxid")); JSONArray user = json.getJSONArray("users"); for (int i = 0; i < user.length(); i++) { User u = new User(); JSONObject s = user.getJSONObject(i); // s=user.getJSONObject(i); u.setFullname(s.getString("user_fullname")); u.setUername(s.getString("user_username")); u.setId(Integer.parseInt(s.getString("user_id"))); u.setEmail(s.getString("user_email")); u.setPhone(s.getString("user_tel")); String url = "http://10.0.2.2:85/raovattructuyen/" + s.getString("user_avatar"); u.setLinkava(url); userList.add(u); } } catch (Exception e) { e.printStackTrace(); } // BaseApplication bs = (BaseApplication) ((((Fragment) context) // .getActivity()).getApplication()); // if (maxPage != bs.getMaxPage()) { // bs.setMaxPage(maxPage); // bs.setPage_page(1); // context.reLoad(userList); // } context.reLoadFollow(userList); } public void moreFollow(JSONObject json){ try { List<User> userList = new ArrayList<User>(); int page=Integer.parseInt(json.getString("page")); BaseApplication bs = (BaseApplication) ((((Fragment) context) .getActivity()).getApplication()); bs.setPage_friend(page); JSONArray user = json.getJSONArray("users"); for (int i = 0; i < user.length(); i++) { User u = new User(); JSONObject s = user.getJSONObject(i); // s=user.getJSONObject(i); u.setFullname(s.getString("user_fullname")); u.setUername(s.getString("user_username")); u.setId(Integer.parseInt(s.getString("user_id"))); u.setEmail(s.getString("user_email")); u.setPhone(s.getString("user_tel")); String url = "http://10.0.2.2:85/raovattructuyen/" + s.getString("user_avatar"); u.setLinkava(url); userList.add(u); } } catch (Exception e) { e.printStackTrace(); } } }