Skip to content
This repository was archived by the owner on Oct 27, 2024. It is now read-only.

Migration from RxJava 1 to RxJava 2 #5

Merged
merged 1 commit into from
Nov 30, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ android {

packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/rxjava.properties'
}

compileOptions {
Expand All @@ -52,8 +54,8 @@ dependencies {
compile 'com.android.support:multidex:1.0.1'

// Rx
compile 'io.reactivex:rxandroid:1.0.1'
compile 'io.reactivex:rxjava:1.1.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.0'
compile 'io.reactivex.rxjava2:rxandroid:2.0.0'

// Network
compile 'com.squareup.okhttp3:okhttp:3.4.1'
Expand All @@ -72,7 +74,7 @@ dependencies {
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.moshi:moshi:1.1.0'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
compile 'com.squareup.retrofit2:converter-moshi:2.1.0'
compile "com.squareup.okhttp3:okhttp:3.4.1"
compile "com.squareup.okhttp3:logging-interceptor:3.4.1"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.esoxjem.movieguide.details;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Path;
import rx.Observable;

/**
* @author Ashwini Kumar.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package com.esoxjem.movieguide.details;

import android.support.annotation.NonNull;

import com.esoxjem.movieguide.favorites.IFavoritesInteractor;
import com.esoxjem.movieguide.listing.Movie;
import com.esoxjem.movieguide.util.RxUtils;

import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;

/**
* @author arun
Expand All @@ -18,14 +15,14 @@ public class MovieDetailsPresenter implements IMovieDetailsPresenter
{
private IMovieDetailsView view;
private IFavoritesInteractor favoritesInteractor;
private Subscription trailersSubscription;
private Subscription reviewSubscription;
private IMovieDetailsEndpoint movieDetailsEndpoint;
private CompositeDisposable compositeDisposable;

public MovieDetailsPresenter(IMovieDetailsEndpoint movieDetailsEndpoint, IFavoritesInteractor favoritesInteractor)
{
this.movieDetailsEndpoint = movieDetailsEndpoint;
this.favoritesInteractor = favoritesInteractor;
compositeDisposable = new CompositeDisposable();
}

@Override
Expand All @@ -38,7 +35,7 @@ public void setView(IMovieDetailsView view)
public void destroy()
{
view = null;
RxUtils.unsubscribe(trailersSubscription, reviewSubscription);
compositeDisposable.clear();
}

@Override
Expand All @@ -58,59 +55,65 @@ private boolean isViewAttached()
@Override
public void showTrailers(Movie movie)
{
trailersSubscription = movieDetailsEndpoint.getMovieTrailers(movie.getId())
compositeDisposable.add(movieDetailsEndpoint.getMovieTrailers(movie.getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<VideoViewModel>()
.subscribeWith(new DisposableObserver<VideoViewModel>()
{
@Override
public void onCompleted()
public void onNext(VideoViewModel videoViewModel)
{
if (isViewAttached())
{
view.showTrailers(videoViewModel.getVideos());
}
}

@Override
public void onError(Throwable e)
{

}

@Override
public void onNext(@NonNull VideoViewModel videoViewModel)
public void onComplete()
{
if (isViewAttached())
{
view.showTrailers(videoViewModel.getVideos());
}

}
});
}));
}


@Override
public void showReviews(Movie movie)
{
reviewSubscription = movieDetailsEndpoint.getMovieReviews(movie.getId())
compositeDisposable.add(movieDetailsEndpoint.getMovieReviews(movie.getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<ReviewViewModel>()
.subscribeWith(new DisposableObserver<ReviewViewModel>()
{
@Override
public void onCompleted()
public void onNext(ReviewViewModel reviewViewModel)
{
if (isViewAttached())
{
view.showReviews(reviewViewModel.getReviews());
}
}

@Override
public void onError(Throwable e)
{

}

@Override
public void onNext(@NonNull ReviewViewModel reviewViewModel)
public void onComplete()
{
if (isViewAttached())
{
view.showReviews(reviewViewModel.getReviews());
}

}
});
}));

}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.esoxjem.movieguide.listing;

import io.reactivex.Observable;
import retrofit2.http.GET;
import rx.Observable;

/**
* @author Ashwini Kumar.
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,19 @@
import com.esoxjem.movieguide.favorites.IFavoritesInteractor;
import com.esoxjem.movieguide.sorting.SortType;
import com.esoxjem.movieguide.sorting.SortingOptionStore;
import com.esoxjem.movieguide.util.RxUtils;

import rx.Subscriber;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.observers.DisposableObserver;
import io.reactivex.schedulers.Schedulers;

/**
* @author arun
*/
public class MoviesListingPresenter implements IMoviesListingPresenter
{
private IMoviesListingView view;
private Subscription popularMoviesSubscription;
private Subscription highestRatedMoviesSubscription;
private CompositeDisposable compositeDisposable;
private IMovieListingEndpoint movieListingEndpoint;
private SortingOptionStore sortingOptionStore;
private IFavoritesInteractor favoritesInteractor;
Expand All @@ -27,6 +25,7 @@ public MoviesListingPresenter(IMovieListingEndpoint movieListingEndpoint, Sortin
this.movieListingEndpoint = movieListingEndpoint;
this.sortingOptionStore = sortingOptionStore;
this.favoritesInteractor = favoritesInteractor;
compositeDisposable = new CompositeDisposable();
}

@Override
Expand All @@ -39,7 +38,7 @@ public void setView(IMoviesListingView view)
public void destroy()
{
view = null;
RxUtils.unsubscribe(popularMoviesSubscription, highestRatedMoviesSubscription);
compositeDisposable.clear();
}

@Override
Expand All @@ -60,19 +59,19 @@ public void displayMovies()

private void loadPopularMovies()
{
popularMoviesSubscription = movieListingEndpoint.fetchPopularMovies()
compositeDisposable.add(movieListingEndpoint.fetchPopularMovies()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(() -> {
.doOnSubscribe(disposable -> {
if (isViewAttached())
{
view.loadingStarted();
}
})
.subscribe(new Subscriber<MovieViewModel>()
.subscribeWith(new DisposableObserver<MovieViewModel>()
{
@Override
public void onCompleted()
public void onComplete()
{

}
Expand All @@ -88,24 +87,24 @@ public void onNext(MovieViewModel movieViewModel)
{
view.showMovies(movieViewModel.getMovies());
}
});
}));
}

private void loadHighestRatedMovies()
{
highestRatedMoviesSubscription = movieListingEndpoint.fetchHighestRatedMovies()
compositeDisposable.add(movieListingEndpoint.fetchHighestRatedMovies()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(() -> {
.doOnSubscribe(disposable -> {
if (isViewAttached())
{
view.loadingStarted();
}
})
.subscribe(new Subscriber<MovieViewModel>()
.subscribeWith(new DisposableObserver<MovieViewModel>()
{
@Override
public void onCompleted()
public void onComplete()
{

}
Expand All @@ -121,7 +120,7 @@ public void onNext(MovieViewModel movieViewModel)
{
view.showMovies(movieViewModel.getMovies());
}
});
}));
}

private void loadFavouriteMovies()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.franmontiel.persistentcookiejar.PersistentCookieJar;
import com.franmontiel.persistentcookiejar.cache.SetCookieCache;
import com.franmontiel.persistentcookiejar.persistence.SharedPrefsCookiePersistor;
import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;

import java.io.File;
import java.net.CookieHandler;
Expand All @@ -16,14 +17,13 @@

import dagger.Module;
import dagger.Provides;
import io.reactivex.schedulers.Schedulers;
import okhttp3.Cache;
import okhttp3.CookieJar;
import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.moshi.MoshiConverterFactory;
import rx.schedulers.Schedulers;

/**
* @author Ashwini Kumar.
Expand Down Expand Up @@ -90,14 +90,14 @@ Cache provideCache(Context context)

@Provides
@Singleton
RxJavaCallAdapterFactory provideRxJavaCallAdapterFactory()
RxJava2CallAdapterFactory provideRxJavaCallAdapterFactory()
{
return RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io());
return RxJava2CallAdapterFactory.createWithScheduler(Schedulers.io());
}

@Provides
@Singleton
Retrofit provideRetrofit(OkHttpClient okHttpClient, RxJavaCallAdapterFactory rxAdapter)
Retrofit provideRetrofit(OkHttpClient okHttpClient, RxJava2CallAdapterFactory rxAdapter)
{
return new Retrofit.Builder()
.baseUrl(BASE_URL)
Expand Down
46 changes: 0 additions & 46 deletions app/src/main/java/com/esoxjem/movieguide/util/RxUtils.java

This file was deleted.