diff --git a/app/src/main/java/com/quran/labs/androidquran/presenter/data/QuranDataPresenter.kt b/app/src/main/java/com/quran/labs/androidquran/presenter/data/QuranDataPresenter.kt index 320f09590b..5d87b27034 100644 --- a/app/src/main/java/com/quran/labs/androidquran/presenter/data/QuranDataPresenter.kt +++ b/app/src/main/java/com/quran/labs/androidquran/presenter/data/QuranDataPresenter.kt @@ -69,6 +69,7 @@ class QuranDataPresenter @Inject internal constructor( .andThen(actuallyCheckPages(pages)) .flatMap { Single.fromCallable { localDataUpgrade.processData(it) } } .map { checkPatchStatus(it) } + .flatMap { Single.fromCallable { localDataUpgrade.processPatch(it) } } .doOnSuccess { if (!it.havePages()) { try { diff --git a/app/src/main/java/com/quran/labs/androidquran/util/QuranFileUtils.kt b/app/src/main/java/com/quran/labs/androidquran/util/QuranFileUtils.kt index 95bd9c80fd..00ed015c9c 100644 --- a/app/src/main/java/com/quran/labs/androidquran/util/QuranFileUtils.kt +++ b/app/src/main/java/com/quran/labs/androidquran/util/QuranFileUtils.kt @@ -239,6 +239,18 @@ class QuranFileUtils @Inject constructor( copyFromAssets(assetsPath, filename, actualDestination) } + @WorkerThread + override fun removeOldArabicDatabase(): Boolean { + val databaseQuranArabicDatabase = File( + getQuranDatabaseDirectory(appContext), + QuranDataProvider.QURAN_ARABIC_DATABASE + ) + + return if (databaseQuranArabicDatabase.exists()) { + databaseQuranArabicDatabase.delete() + } else true + } + @WorkerThread private fun copyFromAssets(assetsPath: String, filename: String, destination: String) { val assets = appContext.assets diff --git a/common/data/src/main/java/com/quran/data/core/QuranFileManager.kt b/common/data/src/main/java/com/quran/data/core/QuranFileManager.kt index 6bfaa9f9ee..1704af9fd8 100644 --- a/common/data/src/main/java/com/quran/data/core/QuranFileManager.kt +++ b/common/data/src/main/java/com/quran/data/core/QuranFileManager.kt @@ -9,6 +9,9 @@ interface QuranFileManager { @WorkerThread fun copyFromAssetsRelative(assetsPath: String, filename: String, destination: String) + @WorkerThread + fun removeOldArabicDatabase(): Boolean + @WorkerThread fun hasArabicSearchDatabase(): Boolean diff --git a/common/upgrade/src/main/java/com/quran/common/upgrade/LocalDataUpgrade.kt b/common/upgrade/src/main/java/com/quran/common/upgrade/LocalDataUpgrade.kt index 2cae84397b..93d053e86b 100644 --- a/common/upgrade/src/main/java/com/quran/common/upgrade/LocalDataUpgrade.kt +++ b/common/upgrade/src/main/java/com/quran/common/upgrade/LocalDataUpgrade.kt @@ -7,7 +7,10 @@ import com.quran.data.model.QuranDataStatus * Interface for handling data upgrades (pages, databases, etc) between * upgrades of versions of Quran for Android. */ -fun interface LocalDataUpgrade { +interface LocalDataUpgrade { @WorkerThread - fun processData(quranDataStatus: QuranDataStatus): QuranDataStatus + fun processData(quranDataStatus: QuranDataStatus): QuranDataStatus { return quranDataStatus } + + @WorkerThread + fun processPatch(quranDataStatus: QuranDataStatus): QuranDataStatus { return quranDataStatus } } diff --git a/pages/madani/src/main/java/com/quran/data/page/provider/QuranPageModule.kt b/pages/madani/src/main/java/com/quran/data/page/provider/QuranPageModule.kt index 8f48e0242f..af5011d2a3 100644 --- a/pages/madani/src/main/java/com/quran/data/page/provider/QuranPageModule.kt +++ b/pages/madani/src/main/java/com/quran/data/page/provider/QuranPageModule.kt @@ -34,7 +34,7 @@ object QuranPageModule { @JvmStatic @Provides - fun provideLocalDataUpgrade(): LocalDataUpgrade = LocalDataUpgrade { it } + fun provideLocalDataUpgrade(): LocalDataUpgrade = object : LocalDataUpgrade { } @JvmStatic @Provides