/* Java 3 observable calls at once */ return Observable.zip( getApps, getInternalStorage(), getExternal(), new Function3() { @Override public StorageFilesAndDetails apply(AllAppsStorageData allAppsStorageData, StorageFiles internalStorageFiles, ExternalStorageFiles externalStorageFiles) { StorageFilesAndDetails storageFilesAndDetails; if(externalStorageFiles.isHasExternal()) { storageFilesAndDetails = new StorageFilesAndDetails(internalStorageFiles,externalStorageFiles,allAppsStorageData); } else { storageFilesAndDetails = new StorageFilesAndDetails(internalStorageFiles,allAppsStorageData); } return storageFilesAndDetails; } } );