package com.quran.labs.androidquran.model.translation;
import android.content.Context;
import com.quran.labs.androidquran.common.QuranText;
import com.quran.labs.androidquran.data.QuranDataProvider;
import com.quran.labs.androidquran.data.VerseRange;
import com.quran.labs.androidquran.database.DatabaseHandler;
import com.quran.labs.androidquran.di.ActivityScope;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.Single;
@ActivityScope
public class TranslationModel {
private Context appContext;
@Inject
TranslationModel(Context appContext) {
this.appContext = appContext;
}
public Single<List<QuranText>> getArabicFromDatabase(VerseRange verses) {
return getVersesFromDatabase(verses,
QuranDataProvider.QURAN_ARABIC_DATABASE, DatabaseHandler.TextType.ARABIC);
}
public Single<List<QuranText>> getTranslationFromDatabase(VerseRange verses, String db) {
return getVersesFromDatabase(verses, db, DatabaseHandler.TextType.TRANSLATION);
}
private Single<List<QuranText>> getVersesFromDatabase(VerseRange verses,
String database,
@DatabaseHandler.TextType int type) {
return Single.fromCallable(() -> {
DatabaseHandler databaseHandler = DatabaseHandler.getDatabaseHandler(appContext, database);
return databaseHandler.getVerses(verses, type);
});
}
}