package com.hitherejoe.androidboilerplate.data;
import com.hitherejoe.androidboilerplate.data.local.PreferencesHelper;
import com.hitherejoe.androidboilerplate.data.model.Character;
import com.hitherejoe.androidboilerplate.data.remote.AndroidBoilerplateService;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import rx.Observable;
import rx.functions.Func1;
public class DataManager {
private final AndroidBoilerplateService mAndroidBoilerplateService;
private final PreferencesHelper mPreferencesHelper;
@Inject
public DataManager(AndroidBoilerplateService watchTowerService,
PreferencesHelper preferencesHelper) {
mAndroidBoilerplateService = watchTowerService;
mPreferencesHelper = preferencesHelper;
}
public PreferencesHelper getPreferencesHelper() {
return mPreferencesHelper;
}
public Observable<List<Character>> getCharacters(int[] ids) {
List<Integer> characterIds = new ArrayList<>(ids.length);
for (int id : ids) {
characterIds.add(id);
}
return Observable.from(characterIds).concatMap(new Func1<Integer, Observable<Character>>() {
@Override
public Observable<Character> call(Integer integer) {
return mAndroidBoilerplateService.getCharacter(integer);
}
}).toList();
}
}