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.JSONObject; import android.app.Activity; import android.app.ProgressDialog; import android.os.AsyncTask; import android.util.Log; import com.google.android.gms.drive.internal.ad; import com.ved.musicmapapp.MainActivity; import com.ved.musicmapapp.Objects.Artist; import com.ved.musicmapapp.Objects.Genre; import com.ved.musicmapapp.Objects.Song; import com.ved.musicmapapp.Objects.User; import com.ved.musicmapapp.adapters.DBAdapter; import com.ved.musicmapapp.utils.Statics; /** Get all artist info of an user */ public class GetUserArtistListTask extends AsyncTask<Void, Void, User> { private String fbId; private String curFbId; private Activity activity; private ProgressDialog dialog; public GetUserArtistListTask(Activity activity, String curFbId, String fbId) { Log.i("check","In GetUserArtistListTask"); this.fbId = fbId; this.curFbId = curFbId; this.activity = activity; this.dialog = new ProgressDialog(activity); this.dialog.setMessage("Loading..."); this.dialog.setCancelable(false); } @Override protected User 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 + "getUserArtist.php"); ArrayList<NameValuePair> nvps = new ArrayList<NameValuePair>(); nvps.add(new BasicNameValuePair("fbid", fbId)); nvps.add(new BasicNameValuePair("curFbId", curFbId)); httppost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpResponse response = httpclient.execute(httppost); String data = EntityUtils.toString(response.getEntity(), "UTF-8"); try { User user = Statics.getUserFromJSON(new JSONObject(data)); if (Statics.hashUsers != null) { User userTmp = Statics.hashUsers.get(user.getFbid()); if (userTmp != null) { userTmp.compareTo(user); Statics.hashUsers.put(user.getFbid(), userTmp); return userTmp; } else { Statics.hashUsers.put(user.getFbid(), user); return user; } } } catch (Exception e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(User result) { if (dialog != null && dialog.isShowing()) { dialog.dismiss(); } onSuccess(result); new AsynAddToDB(result).execute(); super.onPostExecute(result); } @Override protected void onPreExecute() { super.onPreExecute(); dialog.show(); } public void onSuccess(User result) { } public class AsynAddToDB extends AsyncTask<Void, Void, Void> { private User mUser; public AsynAddToDB(User user) { mUser = user; } @Override protected Void doInBackground(Void... params) { // TODO Auto-generated method stub if (mUser != null) { DBAdapter adapter = new DBAdapter(activity); adapter.addUser(mUser); adapter.removeAllArtistAndSongByUser(mUser); ArrayList<Song> songs = new ArrayList<Song>(); for (Artist artist : mUser.getArtists()) { // adapter.addArtist(artist, mUser); songs.addAll(artist.getSongs()); /* * for (Song song : artist.getSongs()) { * //adapter.addSong(song, artist, mUser.getID()); * songs.add(song); } */ } adapter.AddArtistsArrs(mUser.getArtists(), mUser); adapter.AddSongArrs(songs); ArrayList<Genre> genres = new ArrayList<Genre>(); for (Artist artist : mUser.getArtists()) { genres.addAll(artist.getGenre()); } adapter.addGenre(genres,mUser.getID()); } return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); } } }