package co.smartreceipts.android.imports;
import android.content.Context;
import android.support.annotation.NonNull;
import com.google.common.base.Preconditions;
import co.smartreceipts.android.model.Trip;
import co.smartreceipts.android.persistence.PersistenceManager;
import co.smartreceipts.android.settings.UserPreferenceManager;
import wb.android.storage.StorageManager;
public class FileImportProcessorFactory {
private final Context context;
private final Trip trip;
private final StorageManager storageManager;
private final UserPreferenceManager preferenceManager;
public FileImportProcessorFactory(@NonNull Context context, @NonNull Trip trip, @NonNull PersistenceManager persistenceManager) {
this(context, trip, persistenceManager.getStorageManager(), persistenceManager.getPreferenceManager());
}
public FileImportProcessorFactory(@NonNull Context context, @NonNull Trip trip, @NonNull StorageManager storageManager,
@NonNull UserPreferenceManager preferenceManager) {
this.context = Preconditions.checkNotNull(context.getApplicationContext());
this.trip = Preconditions.checkNotNull(trip);
this.storageManager = Preconditions.checkNotNull(storageManager);
this.preferenceManager = Preconditions.checkNotNull(preferenceManager);
}
@NonNull
public FileImportProcessor get(int requestCode) {
if (RequestCodes.PHOTO_REQUESTS.contains(requestCode)) {
return new ImageImportProcessor(trip, storageManager, preferenceManager, context);
} else if (RequestCodes.PDF_REQUESTS.contains(requestCode)) {
return new GenericFileImportProcessor(trip, storageManager, context);
} else {
return new AutoFailImportProcessor();
}
}
}