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;
}
}