mirror of
https://github.com/android10/Android-CleanArchitecture.git
synced 2025-08-26 15:21:51 +08:00
Lambda-nize data layer.
This commit is contained in:
@ -24,7 +24,6 @@ import java.io.File;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import rx.Observable;
|
||||
import rx.Subscriber;
|
||||
|
||||
/**
|
||||
* {@link UserCache} implementation.
|
||||
@ -65,8 +64,7 @@ public class UserCacheImpl implements UserCache {
|
||||
}
|
||||
|
||||
@Override public Observable<UserEntity> get(final int userId) {
|
||||
return Observable.create(new Observable.OnSubscribe<UserEntity>() {
|
||||
@Override public void call(Subscriber<? super UserEntity> subscriber) {
|
||||
return Observable.create(subscriber -> {
|
||||
File userEntityFile = UserCacheImpl.this.buildFile(userId);
|
||||
String fileContent = UserCacheImpl.this.fileManager.readFileContent(userEntityFile);
|
||||
UserEntity userEntity = UserCacheImpl.this.serializer.deserialize(fileContent);
|
||||
@ -77,7 +75,6 @@ public class UserCacheImpl implements UserCache {
|
||||
} else {
|
||||
subscriber.onError(new UserNotFoundException());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,6 @@ import com.fernandocejas.frodo.annotation.RxLogObservable;
|
||||
import java.net.MalformedURLException;
|
||||
import java.util.List;
|
||||
import rx.Observable;
|
||||
import rx.Subscriber;
|
||||
|
||||
/**
|
||||
* {@link RestApi} implementation for retrieving data from the network.
|
||||
@ -51,9 +50,7 @@ public class RestApiImpl implements RestApi {
|
||||
|
||||
@RxLogObservable
|
||||
@Override public Observable<List<UserEntity>> userEntityList() {
|
||||
return Observable.create(new Observable.OnSubscribe<List<UserEntity>>() {
|
||||
@Override public void call(Subscriber<? super List<UserEntity>> subscriber) {
|
||||
|
||||
return Observable.create(subscriber -> {
|
||||
if (isThereInternetConnection()) {
|
||||
try {
|
||||
String responseUserEntities = getUserEntitiesFromApi();
|
||||
@ -70,15 +67,12 @@ public class RestApiImpl implements RestApi {
|
||||
} else {
|
||||
subscriber.onError(new NetworkConnectionException());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@RxLogObservable
|
||||
@Override public Observable<UserEntity> userEntityById(final int userId) {
|
||||
return Observable.create(new Observable.OnSubscribe<UserEntity>() {
|
||||
@Override public void call(Subscriber<? super UserEntity> subscriber) {
|
||||
|
||||
return Observable.create(subscriber -> {
|
||||
if (isThereInternetConnection()) {
|
||||
try {
|
||||
String responseUserDetails = getUserDetailsFromApi(userId);
|
||||
@ -94,7 +88,6 @@ public class RestApiImpl implements RestApi {
|
||||
} else {
|
||||
subscriber.onError(new NetworkConnectionException());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -30,8 +30,7 @@ public class CloudUserDataStore implements UserDataStore {
|
||||
private final RestApi restApi;
|
||||
private final UserCache userCache;
|
||||
|
||||
private final Action1<UserEntity> saveToCacheAction =
|
||||
userEntity -> {
|
||||
private final Action1<UserEntity> saveToCacheAction = userEntity -> {
|
||||
if (userEntity != null) {
|
||||
CloudUserDataStore.this.userCache.put(userEntity);
|
||||
}
|
||||
@ -53,7 +52,6 @@ public class CloudUserDataStore implements UserDataStore {
|
||||
}
|
||||
|
||||
@Override public Observable<UserEntity> userEntityDetails(final int userId) {
|
||||
return this.restApi.userEntityById(userId)
|
||||
.doOnNext(saveToCacheAction);
|
||||
return this.restApi.userEntityById(userId).doOnNext(saveToCacheAction);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user