package com.zegoggles.smssync.service;
import android.database.Cursor;
import com.zegoggles.smssync.contacts.ContactGroupIds;
import com.zegoggles.smssync.mail.DataType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.EnumSet;
public class BulkFetcher {
private BackupItemsFetcher itemsFetcher;
public BulkFetcher(BackupItemsFetcher itemsFetcher) {
this.itemsFetcher = itemsFetcher;
}
public @NotNull BackupCursors fetch(final @NotNull EnumSet<DataType> types,
final @Nullable ContactGroupIds groups,
final int maxItems) {
int max = maxItems;
BackupCursors cursors = new BackupCursors();
for (DataType type : types) {
Cursor cursor = itemsFetcher.getItemsForDataType(type, groups, max);
cursors.add(type, cursor);
if (max > 0) {
max = Math.max(max - cursor.getCount(), 0);
}
if (max == 0) break;
}
return cursors;
}
}