// Path: app/src/main/java/com/arellomobile/github/app/GithubApp.java
// public class GithubApp extends Application {
// 	private static AppComponent sAppComponent;
// 
// 	@Override
// 	public void onCreate() {
// 		super.onCreate();
// 
// 		sAppComponent = DaggerAppComponent.builder()
// 				.contextModule(new ContextModule(this))
// 				.build();
// 
// 	}
// 
// 	public static AppComponent getAppComponent() {
// 		return sAppComponent;
// 	}
// }
// 
// Path: app/src/main/java/com/arellomobile/github/mvp/common/RxUtils.java
// public class RxUtils {
// 	public static <T> Observable<T> wrapRetrofitCall(final Call<T> call) {
// 		return Observable.create(subscriber ->
// 		{
// 			final Response<T> execute;
// 			try {
// 				execute = call.execute();
// 			} catch (IOException e) {
// 				subscriber.onError(e);
// 				return;
// 			}
// 
// 			if (execute.isSuccess()) {
// 				subscriber.onNext(execute.body());
// 			} else {
// 				subscriber.onError(new GithubError(execute.errorBody()));
// 			}
// 		});
// 	}
// 
// 	public static <T> Observable<T> wrapAsync(Observable<T> observable) {
// 		return wrapAsync(observable, Schedulers.io());
// 	}
// 
// 	public static <T> Observable<T> wrapAsync(Observable<T> observable, Scheduler scheduler) {
// 		return observable
// 				.subscribeOn(scheduler)
// 				.observeOn(AndroidSchedulers.mainThread());
// 	}
// }
// 
// Path: app/src/main/java/com/arellomobile/github/mvp/views/RepositoryLikesView.java
// public interface RepositoryLikesView extends MvpView {
// 	@StateStrategyType(AddToEndSingleStrategy.class)
// 	void updateLikes(List<Integer> inProgress, List<Integer> likedIds);
// }


import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import com.arellomobile.github.app.GithubApp;
import com.arellomobile.github.mvp.common.RxUtils;
import com.arellomobile.github.mvp.views.RepositoryLikesView;
import com.arellomobile.mvp.InjectViewState;
import com.arellomobile.mvp.MvpPresenter;
import com.squareup.otto.Bus;
import javax.inject.Inject;
import rx.Observable;
package com.arellomobile.github.mvp.presenters;





/**
 * Date: 26.01.2016
 * Time: 16:32
 *
 * @author Yuri Shmakov
 */
@InjectViewState
public class RepositoryLikesPresenter extends MvpPresenter<RepositoryLikesView> {
	public static final String TAG = "RepositoryLikesPresenter";

	@Inject
	Bus mBus;

	private List<Integer> mInProgress = new ArrayList<>();
	private List<Integer> mLikedIds = new ArrayList<>();

	public RepositoryLikesPresenter() {
// Path: app/src/main/java/com/arellomobile/github/app/GithubApp.java
// public class GithubApp extends Application {
// 	private static AppComponent sAppComponent;
// 
// 	@Override
// 	public void onCreate() {
// 		super.onCreate();
// 
// 		sAppComponent = DaggerAppComponent.builder()
// 				.contextModule(new ContextModule(this))
// 				.build();
// 
// 	}
// 
// 	public static AppComponent getAppComponent() {
// 		return sAppComponent;
// 	}
// }
// 
// Path: app/src/main/java/com/arellomobile/github/mvp/common/RxUtils.java
// public class RxUtils {
// 	public static <T> Observable<T> wrapRetrofitCall(final Call<T> call) {
// 		return Observable.create(subscriber ->
// 		{
// 			final Response<T> execute;
// 			try {
// 				execute = call.execute();
// 			} catch (IOException e) {
// 				subscriber.onError(e);
// 				return;
// 			}
// 
// 			if (execute.isSuccess()) {
// 				subscriber.onNext(execute.body());
// 			} else {
// 				subscriber.onError(new GithubError(execute.errorBody()));
// 			}
// 		});
// 	}
// 
// 	public static <T> Observable<T> wrapAsync(Observable<T> observable) {
// 		return wrapAsync(observable, Schedulers.io());
// 	}
// 
// 	public static <T> Observable<T> wrapAsync(Observable<T> observable, Scheduler scheduler) {
// 		return observable
// 				.subscribeOn(scheduler)
// 				.observeOn(AndroidSchedulers.mainThread());
// 	}
// }
// 
// Path: app/src/main/java/com/arellomobile/github/mvp/views/RepositoryLikesView.java
// public interface RepositoryLikesView extends MvpView {
// 	@StateStrategyType(AddToEndSingleStrategy.class)
// 	void updateLikes(List<Integer> inProgress, List<Integer> likedIds);
// }


// Path: app/src/main/java/com/arellomobile/github/mvp/presenters/RepositoryLikesPresenter.java
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import com.arellomobile.github.app.GithubApp;
import com.arellomobile.github.mvp.common.RxUtils;
import com.arellomobile.github.mvp.views.RepositoryLikesView;
import com.arellomobile.mvp.InjectViewState;
import com.arellomobile.mvp.MvpPresenter;
import com.squareup.otto.Bus;
import javax.inject.Inject;
import rx.Observable;

package com.arellomobile.github.mvp.presenters;





/**
 * Date: 26.01.2016
 * Time: 16:32
 *
 * @author Yuri Shmakov
 */
@InjectViewState
public class RepositoryLikesPresenter extends MvpPresenter<RepositoryLikesView> {
	public static final String TAG = "RepositoryLikesPresenter";

	@Inject
	Bus mBus;

	private List<Integer> mInProgress = new ArrayList<>();
	private List<Integer> mLikedIds = new ArrayList<>();

	public RepositoryLikesPresenter() {
		GithubApp.getAppComponent().inject(this);