Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 4f2515c

Browse files
Merge pull request #201 from android10/rxjava2-migration
Rxjava2 migration
2 parents ca067b1 + 729ec11 commit 4f2515c

File tree

24 files changed

+129
-111
lines changed

24 files changed

+129
-111
lines changed

‎buildsystem/dependencies.gradle

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ ext {
1515
daggerVersion = '2.8'
1616
butterKnifeVersion = '7.0.1'
1717
recyclerViewVersion = '21.0.3'
18-
rxJavaVersion = '1.0.14'
19-
rxAndroidVersion = '1.0.1'
18+
rxJavaVersion = '2.0.2'
19+
rxAndroidVersion = '2.0.1'
2020
javaxAnnotationVersion = '1.0'
2121
javaxInjectVersion = '1'
2222
gsonVersion = '2.3'
@@ -41,8 +41,8 @@ ext {
4141
dagger: "com.google.dagger:dagger:${daggerVersion}",
4242
butterKnife: "com.jakewharton:butterknife:${butterKnifeVersion}",
4343
recyclerView: "com.android.support:recyclerview-v7:${recyclerViewVersion}",
44-
rxJava: "io.reactivex:rxjava:${rxJavaVersion}",
45-
rxAndroid: "io.reactivex:rxandroid:${rxAndroidVersion}",
44+
rxJava: "io.reactivex.rxjava2:rxjava:${rxJavaVersion}",
45+
rxAndroid: "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
4646
javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}"
4747
]
4848

@@ -57,7 +57,7 @@ ext {
5757
domainDependencies = [
5858
javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}",
5959
javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}",
60-
rxJava: "io.reactivex:rxjava:${rxJavaVersion}",
60+
rxJava: "io.reactivex.rxjava2:rxjava:${rxJavaVersion}",
6161
arrow: "com.fernandocejas:arrow:${arrowVersion}"
6262
]
6363

@@ -72,8 +72,8 @@ ext {
7272
dagger: "com.google.dagger:dagger:${daggerVersion}",
7373
okHttp: "com.squareup.okhttp:okhttp:${okHttpVersion}",
7474
gson: "com.google.code.gson:gson:${gsonVersion}",
75-
rxJava: "io.reactivex:rxjava:${rxJavaVersion}",
76-
rxAndroid: "io.reactivex:rxandroid:${rxAndroidVersion}",
75+
rxJava: "io.reactivex.rxjava2:rxjava:${rxJavaVersion}",
76+
rxAndroid: "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}",
7777
javaxAnnotation: "javax.annotation:jsr250-api:${javaxAnnotationVersion}",
7878
javaxInject: "javax.inject:javax.inject:${javaxInjectVersion}",
7979
androidAnnotations: "com.android.support:support-annotations:${androidAnnotationsVersion}"

‎data/src/main/java/com/fernandocejas/android10/sample/data/cache/UserCache.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
package com.fernandocejas.android10.sample.data.cache;
1717

1818
import com.fernandocejas.android10.sample.data.entity.UserEntity;
19-
import rx.Observable;
19+
import io.reactivex.Observable;
2020

2121
/**
2222
* An interface representing a user Cache.
2323
*/
2424
public interface UserCache {
2525
/**
26-
* Gets an {@link rx.Observable} which will emit a {@link UserEntity}.
26+
* Gets an {@link Observable} which will emit a {@link UserEntity}.
2727
*
2828
* @param userId The user id to retrieve data.
2929
*/

‎data/src/main/java/com/fernandocejas/android10/sample/data/cache/UserCacheImpl.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import com.fernandocejas.android10.sample.data.entity.UserEntity;
2121
import com.fernandocejas.android10.sample.data.exception.UserNotFoundException;
2222
import com.fernandocejas.android10.sample.domain.executor.ThreadExecutor;
23+
import io.reactivex.Observable;
2324
import java.io.File;
2425
import javax.inject.Inject;
2526
import javax.inject.Singleton;
26-
import rx.Observable;
2727

2828
/**
2929
* {@link UserCache} implementation.
@@ -63,17 +63,17 @@ public class UserCacheImpl implements UserCache {
6363
}
6464

6565
@Override public Observable<UserEntity> get(final int userId) {
66-
return Observable.create(subscriber -> {
66+
return Observable.create(emitter -> {
6767
final File userEntityFile = UserCacheImpl.this.buildFile(userId);
6868
final String fileContent = UserCacheImpl.this.fileManager.readFileContent(userEntityFile);
6969
final UserEntity userEntity =
7070
UserCacheImpl.this.serializer.deserialize(fileContent, UserEntity.class);
7171

7272
if (userEntity != null) {
73-
subscriber.onNext(userEntity);
74-
subscriber.onCompleted();
73+
emitter.onNext(userEntity);
74+
emitter.onComplete();
7575
} else {
76-
subscriber.onError(new UserNotFoundException());
76+
emitter.onError(new UserNotFoundException());
7777
}
7878
});
7979
}

‎data/src/main/java/com/fernandocejas/android10/sample/data/net/RestApi.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
package com.fernandocejas.android10.sample.data.net;
1717

1818
import com.fernandocejas.android10.sample.data.entity.UserEntity;
19+
import io.reactivex.Observable;
1920
import java.util.List;
20-
import rx.Observable;
2121

2222
/**
2323
* RestApi for retrieving data from the network.
@@ -32,12 +32,12 @@ public interface RestApi {
3232
String API_URL_GET_USER_DETAILS = API_BASE_URL + "user_";
3333

3434
/**
35-
* Retrieves an {@link rx.Observable} which will emit a List of {@link UserEntity}.
35+
* Retrieves an {@link Observable} which will emit a List of {@link UserEntity}.
3636
*/
3737
Observable<List<UserEntity>> userEntityList();
3838

3939
/**
40-
* Retrieves an {@link rx.Observable} which will emit a {@link UserEntity}.
40+
* Retrieves an {@link Observable} which will emit a {@link UserEntity}.
4141
*
4242
* @param userId The user id used to get user data.
4343
*/

‎data/src/main/java/com/fernandocejas/android10/sample/data/net/RestApiImpl.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
import com.fernandocejas.android10.sample.data.entity.UserEntity;
2222
import com.fernandocejas.android10.sample.data.entity.mapper.UserEntityJsonMapper;
2323
import com.fernandocejas.android10.sample.data.exception.NetworkConnectionException;
24+
import io.reactivex.Observable;
2425
import java.net.MalformedURLException;
2526
import java.util.List;
26-
import rx.Observable;
2727

2828
/**
2929
* {@link RestApi} implementation for retrieving data from the network.
@@ -48,42 +48,42 @@ public RestApiImpl(Context context, UserEntityJsonMapper userEntityJsonMapper) {
4848
}
4949

5050
@Override public Observable<List<UserEntity>> userEntityList() {
51-
return Observable.create(subscriber -> {
51+
return Observable.create(emitter -> {
5252
if (isThereInternetConnection()) {
5353
try {
5454
String responseUserEntities = getUserEntitiesFromApi();
5555
if (responseUserEntities != null) {
56-
subscriber.onNext(userEntityJsonMapper.transformUserEntityCollection(
56+
emitter.onNext(userEntityJsonMapper.transformUserEntityCollection(
5757
responseUserEntities));
58-
subscriber.onCompleted();
58+
emitter.onComplete();
5959
} else {
60-
subscriber.onError(new NetworkConnectionException());
60+
emitter.onError(new NetworkConnectionException());
6161
}
6262
} catch (Exception e) {
63-
subscriber.onError(new NetworkConnectionException(e.getCause()));
63+
emitter.onError(new NetworkConnectionException(e.getCause()));
6464
}
6565
} else {
66-
subscriber.onError(new NetworkConnectionException());
66+
emitter.onError(new NetworkConnectionException());
6767
}
6868
});
6969
}
7070

7171
@Override public Observable<UserEntity> userEntityById(final int userId) {
72-
return Observable.create(subscriber -> {
72+
return Observable.create(emitter -> {
7373
if (isThereInternetConnection()) {
7474
try {
7575
String responseUserDetails = getUserDetailsFromApi(userId);
7676
if (responseUserDetails != null) {
77-
subscriber.onNext(userEntityJsonMapper.transformUserEntity(responseUserDetails));
78-
subscriber.onCompleted();
77+
emitter.onNext(userEntityJsonMapper.transformUserEntity(responseUserDetails));
78+
emitter.onComplete();
7979
} else {
80-
subscriber.onError(new NetworkConnectionException());
80+
emitter.onError(new NetworkConnectionException());
8181
}
8282
} catch (Exception e) {
83-
subscriber.onError(new NetworkConnectionException(e.getCause()));
83+
emitter.onError(new NetworkConnectionException(e.getCause()));
8484
}
8585
} else {
86-
subscriber.onError(new NetworkConnectionException());
86+
emitter.onError(new NetworkConnectionException());
8787
}
8888
});
8989
}

‎data/src/main/java/com/fernandocejas/android10/sample/data/repository/UserDataRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import com.fernandocejas.android10.sample.data.repository.datasource.UserDataStoreFactory;
2121
import com.fernandocejas.android10.sample.domain.User;
2222
import com.fernandocejas.android10.sample.domain.repository.UserRepository;
23+
import io.reactivex.Observable;
2324
import java.util.List;
2425
import javax.inject.Inject;
2526
import javax.inject.Singleton;
26-
import rx.Observable;
2727

2828
/**
2929
* {@link UserRepository} for retrieving user data.

‎data/src/main/java/com/fernandocejas/android10/sample/data/repository/datasource/CloudUserDataStore.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@
1818
import com.fernandocejas.android10.sample.data.cache.UserCache;
1919
import com.fernandocejas.android10.sample.data.entity.UserEntity;
2020
import com.fernandocejas.android10.sample.data.net.RestApi;
21+
import io.reactivex.Observable;
2122
import java.util.List;
22-
import rx.Observable;
23-
import rx.functions.Action1;
2423

2524
/**
2625
* {@link UserDataStore} implementation based on connections to the api (Cloud).
@@ -30,12 +29,6 @@ class CloudUserDataStore implements UserDataStore {
3029
private final RestApi restApi;
3130
private final UserCache userCache;
3231

33-
private final Action1<UserEntity> saveToCacheAction = userEntity -> {
34-
if (userEntity != null) {
35-
CloudUserDataStore.this.userCache.put(userEntity);
36-
}
37-
};
38-
3932
/**
4033
* Construct a {@link UserDataStore} based on connections to the api (Cloud).
4134
*
@@ -52,6 +45,6 @@ class CloudUserDataStore implements UserDataStore {
5245
}
5346

5447
@Override public Observable<UserEntity> userEntityDetails(final int userId) {
55-
return this.restApi.userEntityById(userId).doOnNext(saveToCacheAction);
48+
return this.restApi.userEntityById(userId).doOnNext(CloudUserDataStore.this.userCache::put);
5649
}
5750
}

‎data/src/main/java/com/fernandocejas/android10/sample/data/repository/datasource/DiskUserDataStore.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
import com.fernandocejas.android10.sample.data.cache.UserCache;
1919
import com.fernandocejas.android10.sample.data.entity.UserEntity;
20+
import io.reactivex.Observable;
2021
import java.util.List;
21-
import rx.Observable;
2222

2323
/**
2424
* {@link UserDataStore} implementation based on file system data store.

‎data/src/main/java/com/fernandocejas/android10/sample/data/repository/datasource/UserDataStore.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@
1616
package com.fernandocejas.android10.sample.data.repository.datasource;
1717

1818
import com.fernandocejas.android10.sample.data.entity.UserEntity;
19+
import io.reactivex.Observable;
1920
import java.util.List;
20-
import rx.Observable;
2121

2222
/**
2323
* Interface that represents a data store from where data is retrieved.
2424
*/
2525
public interface UserDataStore {
2626
/**
27-
* Get an {@link rx.Observable} which will emit a List of {@link UserEntity}.
27+
* Get an {@link Observable} which will emit a List of {@link UserEntity}.
2828
*/
2929
Observable<List<UserEntity>> userEntityList();
3030

3131
/**
32-
* Get an {@link rx.Observable} which will emit a {@link UserEntity} by its id.
32+
* Get an {@link Observable} which will emit a {@link UserEntity} by its id.
3333
*
3434
* @param userId The id to retrieve user data.
3535
*/

‎data/src/test/java/com/fernandocejas/android10/sample/data/repository/UserDataRepositoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.fernandocejas.android10.sample.data.repository.datasource.UserDataStore;
2121
import com.fernandocejas.android10.sample.data.repository.datasource.UserDataStoreFactory;
2222
import com.fernandocejas.android10.sample.domain.User;
23+
import io.reactivex.Observable;
2324
import java.util.ArrayList;
2425
import java.util.List;
2526
import org.junit.Before;
@@ -29,7 +30,6 @@
2930
import org.junit.runner.RunWith;
3031
import org.mockito.Mock;
3132
import org.mockito.runners.MockitoJUnitRunner;
32-
import rx.Observable;
3333

3434
import static org.mockito.BDDMockito.given;
3535
import static org.mockito.Matchers.anyInt;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /