Skip to content

Instantly share code, notes, and snippets.

@alfianyusufabdullah
Created January 25, 2018 10:24
Show Gist options
  • Save alfianyusufabdullah/6643dc706ee20c810f08222beda04e61 to your computer and use it in GitHub Desktop.
Save alfianyusufabdullah/6643dc706ee20c810f08222beda04e61 to your computer and use it in GitHub Desktop.
package com.alfianyusufabdullah.infofilm.presenter;
import android.support.annotation.NonNull;
import android.util.Log;
import com.alfianyusufabdullah.infofilm.App;
import com.alfianyusufabdullah.infofilm.BuildConfig;
import com.alfianyusufabdullah.infofilm.R;
import com.alfianyusufabdullah.infofilm.base.BasePresenter;
import com.alfianyusufabdullah.infofilm.model.ModelListMovieResponse;
import com.alfianyusufabdullah.infofilm.view.MovieView;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
/**
* Created by jonesrandom on 1/9/18.
*
* @site www.androidexample.web.id
* @github @alfianyusufabdullah
*/
public class SearchMoviePresenter extends BasePresenter<MovieView> {
private Call<ModelListMovieResponse> call;
public SearchMoviePresenter(MovieView view) {
super.attach(view);
}
public void search(String queryMovie) {
view.onProggress();
call = services.searchMoview(BuildConfig.API_KEY, BuildConfig.API_LANGUAGE, queryMovie);
call.enqueue(new Callback<ModelListMovieResponse>() {
@Override
public void onResponse(@NonNull Call<ModelListMovieResponse> call, @NonNull Response<ModelListMovieResponse> response) {
if (response.isSuccessful()) {
view.onSucess(response.body().getResults());
} else {
view.onFailed(App.getStringFromResources(R.string.request_data_error));
}
}
@Override
public void onFailure(@NonNull Call<ModelListMovieResponse> call, @NonNull Throwable t) {
if (view != null) {
view.onFailed(App.getStringFromResources(R.string.request_error));
Log.i(SearchMoviePresenter.class.getSimpleName(), "onFailure: " + t.getLocalizedMessage());
}
}
});
}
public void destroy() {
if (call != null && call.isExecuted()) {
call.cancel();
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment