package com.ved.musicmapapp.providers; import java.util.ArrayList; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.params.BasicHttpParams; import org.apache.http.params.HttpConnectionParams; import org.apache.http.params.HttpParams; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.AsyncTask; import android.util.Log; import com.google.android.gms.internal.ew; import com.ved.musicmapapp.Objects.User; import com.ved.musicmapapp.Objects.UserLikes; import com.ved.musicmapapp.utils.Statics; /** Get all artist info of an user */ public class GetUserLikeDataTask extends AsyncTask<Void, Void, ArrayList<UserLikes>> { private String fbId; private Activity activity; private ProgressDialog dialog; public GetUserLikeDataTask(Activity activity, String fbId) { Log.i("check","In GetUserLikeDataTask"); this.fbId = fbId; this.activity = activity; this.dialog = new ProgressDialog(activity); this.dialog.setMessage("Loading..."); this.dialog.setCancelable(false); } @Override protected ArrayList<UserLikes> doInBackground(Void... params) { try { if (Statics.isNetworkConnected(activity)) { HttpParams httpParameters = new BasicHttpParams(); int timeoutConnection = 20000; HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection); int timeoutSocket = 20000; HttpConnectionParams .setSoTimeout(httpParameters, timeoutSocket); HttpClient httpclient = new DefaultHttpClient(httpParameters); HttpPost httppost = new HttpPost(Statics.WS_PATH + "getUserLikeData.php"); ArrayList<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("fbid", fbId)); httppost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpResponse response = httpclient.execute(httppost); String data = EntityUtils.toString(response.getEntity(), "UTF-8"); try { ArrayList<UserLikes> likeData = getUserLike(new JSONObject(data)); return likeData; } catch (Exception e) { } } } catch (Exception e) { } return null; } @Override protected void onPostExecute(ArrayList<UserLikes> result) { if (dialog.isShowing()) { dialog.dismiss(); onSuccess(result); } super.onPostExecute(result); } @Override protected void onPreExecute() { super.onPreExecute(); dialog.show(); } public void onSuccess(ArrayList<UserLikes> result) { } public ArrayList<UserLikes> getUserLike(JSONObject jsonObject) { ArrayList<UserLikes> arrsData = new ArrayList<UserLikes>(); try { JSONArray jsonArray = jsonObject.getJSONArray("games"); for (int i = 0; i < jsonArray.length(); i++) { arrsData.add(getUserLikeItem(jsonArray.getJSONObject(i), UserLikes.TYPE_GAME)); } jsonArray = jsonObject.getJSONArray("movies"); for (int i = 0; i < jsonArray.length(); i++) { arrsData.add(getUserLikeItem(jsonArray.getJSONObject(i), UserLikes.TYPE_MOVIE)); } jsonArray = jsonObject.getJSONArray("schools"); for (int i = 0; i < jsonArray.length(); i++) { arrsData.add(getUserLikeItem(jsonArray.getJSONObject(i), UserLikes.TYPE_SCHOOL)); } jsonArray = jsonObject.getJSONArray("books"); for (int i = 0; i < jsonArray.length(); i++) { arrsData.add(getUserLikeItem(jsonArray.getJSONObject(i), UserLikes.TYPE_BOOK)); } jsonArray = jsonObject.getJSONArray("others"); for (int i = 0; i < jsonArray.length(); i++) { arrsData.add(getUserLikeItem(jsonArray.getJSONObject(i), UserLikes.TYPE_OTHER)); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return arrsData; } public UserLikes getUserLikeItem(JSONObject json, int type) { UserLikes item; item = new UserLikes(); try { item.setTitle(json.getString("title")); item.setType(type); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return item; } }