Lambda-nize data layer.

This commit is contained in:
Fernando Cejas
2015-11-24 22:29:09 +01:00
parent ea29affc21
commit 32a8833504
3 changed files with 43 additions and 55 deletions

View File

@ -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());
}
}
});
}

View File

@ -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());
}
}
});
}

View File

@ -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);
}
}