changed callback

This commit is contained in:
danijoo
2015-10-29 23:46:26 +01:00
parent 103a8f34b0
commit 381ddfe9b1
4 changed files with 30 additions and 29 deletions

View File

@@ -7,6 +7,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import net.headlezz.udacityproject1.tmdbapi.Movie;
import net.headlezz.udacityproject1.tmdbapi.MovieList;
import net.headlezz.udacityproject1.tmdbapi.TMDBApi;
import java.util.List;
@@ -16,9 +17,9 @@ public class MovieListAdapter extends RecyclerView.Adapter<MovieListAdapter.Movi
MovieNavigation mMovieNavigation;
List<Movie> mMovies;
public MovieListAdapter(MovieNavigation mn, List<Movie> movies) {
public MovieListAdapter(MovieNavigation mn, MovieList movieList) {
mMovieNavigation = mn;
mMovies = movies;
mMovies = movieList.getList();
}
@Override

View File

@@ -16,19 +16,18 @@ import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.Toast;
import net.headlezz.udacityproject1.tmdbapi.Movie;
import net.headlezz.udacityproject1.tmdbapi.MovieList;
import net.headlezz.udacityproject1.tmdbapi.MovieListCallback;
import net.headlezz.udacityproject1.tmdbapi.TMDBApi;
import java.util.List;
import retrofit.Call;
import retrofit.Callback;
import retrofit.Response;
import retrofit.Retrofit;
/**
* A fragment showing a list of movies
*/
public class MovieListFragment extends Fragment {
public class MovieListFragment extends Fragment implements Callback<MovieList> {
public static final String TAG = MovieListFragment.class.getSimpleName();
@@ -121,29 +120,29 @@ public class MovieListFragment extends Fragment {
* mSortingOrder will be used to determine the sorting
*/
private void loadMovieList() {
mProgressBar.setVisibility(View.VISIBLE);
stopLoadingMovies(); // stop any running query before starting a new one
MovieListCallback cb = new MovieListCallback() {
@Override
protected void onResponse(MovieList movies) {
setListToGrid(movies.getList());
mProgressBar.setVisibility(View.GONE);
}
@Override
public void onFailure(Throwable t) {
Log.d(TAG, t.getClass().getSimpleName() + " " + t.getMessage());
mProgressBar.setVisibility(View.GONE);
if(!t.getMessage().equals("Canceled") && getActivity() != null)
Toast.makeText(getActivity(), t.getMessage(), Toast.LENGTH_SHORT).show();
}
};
mProgressBar.setVisibility(View.VISIBLE);
mMovieListCall = TMDBApi.discoverMovies(mSortingOrder, getString(R.string.api_key));
mMovieListCall.enqueue(cb);
mMovieListCall.enqueue(this);
}
private void setListToGrid(List<Movie> movies) {
mMovieGridView.setAdapter(new MovieListAdapter((MovieNavigation) getActivity(), movies));
@Override
public void onResponse(Response<MovieList> response, Retrofit retrofit) {
if(response.isSuccess())
setListToGrid(response.body());
mProgressBar.setVisibility(View.GONE);
}
@Override
public void onFailure(Throwable t) {
Log.d(TAG, t.getClass().getSimpleName() + " " + t.getMessage());
mProgressBar.setVisibility(View.GONE);
if(!t.getMessage().equals("Canceled") && getActivity() != null)
Toast.makeText(getActivity(), t.getMessage(), Toast.LENGTH_SHORT).show();
}
private void setListToGrid(MovieList movieList) {
mMovieGridView.setAdapter(new MovieListAdapter((MovieNavigation) getActivity(), movieList));
}
/**

View File

@@ -10,8 +10,8 @@ public abstract class MovieListCallback implements Callback<MovieList> {
public void onResponse(Response<MovieList> response, Retrofit retrofit) {
if(response.isSuccess())
onResponse(response.body());
else
onFailure(new MovieDownloadException("Something went wrong" + response.code())); // TODO make this better
else // we dont want want res
onFailure(new MovieDownloadException("Something went wrong" + response.code()));
}
protected abstract void onResponse(MovieList movies);