package com.bdc.ociney.task;
import android.os.AsyncTask;
import com.bdc.ociney.modele.AllocineResponse;
import com.bdc.ociney.modele.Movie.Movie;
import com.bdc.ociney.service.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by florentchampigny on 01/05/2014.
*/
public class SearchMoviesTask extends AsyncTask<Object, Void, List<Movie>> {
boolean erreurReseau = false;
private SearchMoviesTaskCallBack callBack;
public SearchMoviesTask(SearchMoviesTaskCallBack callBack) {
this.callBack = callBack;
}
@Override
protected List<Movie> doInBackground(Object... data) {
String text = (String) data[0];
int page = 1;
if (data.length > 1)
page = ((Integer) data[1]).intValue();
try {
AllocineResponse response = Service.search(text, Service.FILTER_MOVIE, 20, page);
List<Movie> movies = new ArrayList<Movie>();
if (response != null && response.getFeed() != null && response.getFeed().getMovie() != null)
movies = response.getFeed().getMovie();
Collections.sort(movies);
return movies;
} catch (Service.NetworkException e) {
erreurReseau = true;
return null;
}
}
@Override
protected void onPostExecute(List<Movie> ms) {
super.onPostExecute(ms);
try {
if (callBack != null) {
if (erreurReseau)
callBack.onErreurReseau();
else
callBack.onSearchMoviesTaskTaskCallBack(ms);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public interface SearchMoviesTaskCallBack {
public void onSearchMoviesTaskTaskCallBack(List<Movie> movies);
public void onErreurReseau();
}
}