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.Activity; import android.app.Fragment; import android.os.AsyncTask; import com.tv.btl.BaseApplication; import com.tv.listener.ProductListener; import com.tv.listener.UserListener; import com.tv.model.Comment; import com.tv.model.Product; import com.tv.net.ProductController; import com.tv.net.UserController; import com.tv.view.Frag_feed; import com.tv.view.Frag_mypage; public class ProductTask extends AsyncTask<Product, String, JSONObject> { private int type; private Product product; public static final int NEWPOST = 0; public static final int VIEWPOST = 1; public static final int FEED = 2; public static final int MYPAGE = 3; public static final int MORE_PAGE = 4; public static final int MORE_FEED = 5; BaseApplication bs ; private boolean eFragment; private ProductListener context; private ProductController pController; public ProductTask(int mType, ProductListener mActivity) { this.type = mType; this.context = mActivity; pController = new ProductController(); if(mActivity instanceof Activity){ bs=(BaseApplication) ((Activity)context).getApplication(); eFragment=false; } else bs=(BaseApplication) ((((Fragment) context) .getActivity()).getApplication()); eFragment=true; } @Override protected JSONObject doInBackground(Product... params) { JSONObject json = null; switch (type) { case NEWPOST: json = pController.newPost(params[0]); break; case FEED: json = pController.getFeed(); break; case MYPAGE: json = pController.getMyPage(params[0]); break; case MORE_PAGE: int p=1; // int p = ((BaseApplication) ((Frag_mypage) context).getActivity() // .getApplication()).getPage_page(); if(eFragment){ p=bs.getPage_page(); } else{ p=bs.getView_page(); } json = pController.morePage(p, params[0].getUid()); case MORE_FEED: int page = ((BaseApplication) ((Fragment) context).getActivity() .getApplication()).getFeedPage(); json = pController.moreFeed(page + 1); break; default: break; } return json; } public void onPostExecute(JSONObject json) { switch (type) { case NEWPOST: NewPost(json); break; case FEED: Feed(json); break; case MYPAGE: MyPage(json); break; case MORE_FEED: MoreFeed(json); break; case MORE_PAGE: Morepage(json); default: break; } } public void NewPost(JSONObject json) { try { String result = json.getString("result"); if (Integer.parseInt(result) == 1) { context.saveFinish(); } } catch (Exception e) { e.printStackTrace(); } } public void Feed(JSONObject json) { List<Product> productList = new ArrayList<Product>(); int maxFeed = 0; try { maxFeed = Integer.parseInt(json.getString("maxid")); JSONArray product = json.getJSONArray("product"); JSONArray username = json.getJSONArray("user_name"); for (int i = 0; i < product.length(); i++) { Product pr = new Product(); JSONObject s = product.getJSONObject(i); // s=product.getJSONObject(i); pr.setPname(s.getString("product_name")); pr.setDate(s.getString("post_publicationDate")); pr.setDes(s.getString("product_description")); pr.setPid(Integer.parseInt(s.getString("product_id"))); pr.setUid(Integer.parseInt(s.getString("user_id"))); pr.setLon(Double.parseDouble(s.getString("post_lon"))); pr.setLat(Double.parseDouble(s.getString("post_lat"))); System.out.println("lon"+pr.getLon()); String url = "http://10.0.2.2:85/raovattructuyen/" + s.getString("product_avatar"); pr.setUrl(url); String name = username.getString(i); pr.setUname(name); productList.add(pr); } } catch (Exception e) { e.printStackTrace(); } BaseApplication bs = (BaseApplication) ((((Fragment) context) .getActivity()).getApplication()); if (maxFeed != bs.getMaxFeed()) { bs.setFeedPage(1); context.reload(productList); bs.setMaxFeed(maxFeed); } } public void MyPage(JSONObject json) { List<Product> productList = new ArrayList<Product>(); int maxPage = 0; try { // maxPage = Integer.parseInt(json.getString("maxid")); JSONArray product = json.getJSONArray("product"); for (int i = 0; i < product.length(); i++) { Product pr = new Product(); JSONObject s = product.getJSONObject(i); // s=product.getJSONObject(i); pr.setPname(s.getString("product_name")); pr.setDate(s.getString("post_publicationDate")); pr.setDes(s.getString("product_description")); pr.setPid(Integer.parseInt(s.getString("product_id"))); pr.setUid(Integer.parseInt(s.getString("user_id"))); String url = "http://10.0.2.2:85/raovattructuyen/" + s.getString("product_avatar"); pr.setUrl(url); pr.setLon(Double.parseDouble(s.getString("post_lon"))); pr.setLat(Double.parseDouble(s.getString("post_lat"))); productList.add(pr); } } 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(productList); } } public void ViewPost(JSONObject json) { try { } catch (Exception e) { e.printStackTrace(); } } public void MoreFeed(JSONObject json) { try { int page = Integer.parseInt(json.getString("page")); // BaseApplication bs = (BaseApplication) ((((Fragment) context) // .getActivity()).getApplication()); // bs.setFeedPage(page); if(eFragment){ bs.setFeedPage(page); } else { bs.setView_page(page); } System.out.println("aa" + page); List<Product> productList = new ArrayList<Product>(); JSONArray product = json.getJSONArray("product"); for (int i = 0; i < product.length(); i++) { Product pr = new Product(); JSONObject s = product.getJSONObject(i); // s=product.getJSONObject(i); pr.setPname(s.getString("product_name")); pr.setDate(s.getString("post_publicationDate")); pr.setDes(s.getString("product_description")); pr.setPid(Integer.parseInt(s.getString("product_id"))); pr.setUid(Integer.parseInt(s.getString("user_id"))); String url = "http://10.0.2.2:85/raovattructuyen/" + s.getString("product_avatar"); pr.setLon(Double.parseDouble(s.getString("post_lon"))); pr.setLat(Double.parseDouble(s.getString("post_lat"))); pr.setUrl(url); productList.add(pr); } context.loadMore(productList); } catch (Exception e) { e.printStackTrace(); } } public void Morepage(JSONObject json) { try { int page = Integer.parseInt(json.getString("page")); BaseApplication bs = (BaseApplication) ((((Fragment) context) .getActivity()).getApplication()); bs.setPage_page(page); List<Product> productList = new ArrayList<Product>(); JSONArray product = json.getJSONArray("product"); for (int i = 0; i < product.length(); i++) { Product pr = new Product(); JSONObject s = product.getJSONObject(i); // s=product.getJSONObject(i); pr.setPname(s.getString("product_name")); pr.setDate(s.getString("post_publicationDate")); pr.setDes(s.getString("product_description")); pr.setPid(Integer.parseInt(s.getString("product_id"))); pr.setUid(Integer.parseInt(s.getString("user_id"))); String url = "http://10.0.2.2:85/raovattructuyen/" + s.getString("product_avatar"); pr.setLon(Double.parseDouble(s.getString("post_lon"))); pr.setLat(Double.parseDouble(s.getString("post_lat"))); pr.setUrl(url); productList.add(pr); } context.loadMore(productList); } catch (Exception e) { e.printStackTrace(); } } }