Fixed conflict

This commit is contained in:
Gouri Panda 2022-12-24 21:51:31 +05:30 committed by Kelson
parent f285aee227
commit 80ed18ed4c
8 changed files with 24 additions and 19 deletions

View File

@ -15,7 +15,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.kiwix.kiwixmobile.core.data.local
import android.content.Context
@ -27,7 +26,6 @@ import io.objectbox.Box
import kotlinx.coroutines.flow.toList
import kotlinx.coroutines.runBlocking
import org.junit.After
import org.junit.Assert.*
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.junit.runner.RunWith

View File

@ -18,7 +18,6 @@
package org.kiwix.kiwixmobile.core.dao
import android.util.Log
import androidx.room.Dao
import androidx.room.Query
import io.objectbox.Box
@ -64,8 +63,8 @@ abstract class NewRecentSearchRoomDao {
}
}
@Query("INSERT INTO RecentSearchRoomEntity(searchTerm, zimId) VALUES (:title , :id)")
abstract fun saveSearch(title: String, id: String)
@Query("INSERT INTO RecentSearchRoomEntity(searchTerm, zimId) VALUES (:title , :zimId)")
abstract fun saveSearch(title: String, zimId: String)
@Query("DELETE FROM RecentSearchRoomEntity WHERE searchTerm=:searchTerm")
abstract fun deleteSearchString(searchTerm: String)
@ -77,9 +76,10 @@ abstract class NewRecentSearchRoomDao {
box: Box<RecentSearchEntity>
) {
val searchRoomEntityList = box.all
searchRoomEntityList.forEach {
searchRoomEntityList.forEachIndexed { _, recentSearchEntity ->
CoroutineScope(Dispatchers.IO).launch {
saveSearch(it.searchTerm, it.zimId)
saveSearch(recentSearchEntity.searchTerm, recentSearchEntity.zimId)
// Todo Should we remove object store data now?
}
}
}

View File

@ -28,7 +28,7 @@ import org.kiwix.kiwixmobile.core.dao.NewRecentSearchRoomDao
import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchRoomEntity
@Suppress("UnnecessaryAbstractClass")
@Database(entities = [RecentSearchRoomEntity::class], version = 19)
@Database(entities = [RecentSearchRoomEntity::class], version = 1)
abstract class KiwixRoomDatabase : RoomDatabase() {
abstract fun newRecentSearchRoomDao(): NewRecentSearchRoomDao

View File

@ -87,5 +87,5 @@ open class DatabaseModule {
@Singleton
@Provides
fun provideYourDao(db: KiwixRoomDatabase) = db.newRecentSearchRoomDao()
fun provideNewRecentSearchRoomDao(db: KiwixRoomDatabase) = db.newRecentSearchRoomDao()
}

View File

@ -19,15 +19,21 @@
package org.kiwix.kiwixmobile.core.search.viewmodel.effects
import androidx.appcompat.app.AppCompatActivity
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.dao.NewRecentSearchRoomDao
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
data class DeleteRecentSearch(
private val searchListItem: SearchListItem,
private val recentSearchDao: NewRecentSearchRoomDao
private val recentSearchDao: NewRecentSearchRoomDao,
private val viewModelScope: CoroutineScope
) : SideEffect<Unit> {
override fun invokeWith(activity: AppCompatActivity) {
recentSearchDao.deleteSearchString(searchListItem.value)
viewModelScope.launch(Dispatchers.IO) {
recentSearchDao.deleteSearchString(searchListItem.value)
}
}
}

View File

@ -29,11 +29,11 @@ import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
data class SaveSearchToRecents(
private val recentSearchDao: NewRecentSearchRoomDao,
private val searchListItem: SearchListItem,
private val id: String?,
private val zimId: String?,
private val viewModelScope: CoroutineScope
) : SideEffect<Unit> {
override fun invokeWith(activity: AppCompatActivity) {
id?.let {
zimId?.let {
viewModelScope.launch(Dispatchers.IO) {
recentSearchDao.saveSearch(searchListItem.value, it)
}

View File

@ -19,6 +19,7 @@
package org.kiwix.kiwixmobile.core.search.viewmodel
import android.os.Bundle
import androidx.lifecycle.viewModelScope
import io.mockk.clearAllMocks
import io.mockk.coEvery
import io.mockk.every
@ -46,7 +47,7 @@ import org.junit.jupiter.api.Test
import org.kiwix.kiwixmobile.core.R
import org.kiwix.kiwixmobile.core.R.string
import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.dao.NewRecentSearchDao
import org.kiwix.kiwixmobile.core.dao.NewRecentSearchRoomDao
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem.RecentSearchListItem
@ -77,7 +78,7 @@ import org.kiwix.kiwixmobile.core.search.viewmodel.effects.StartSpeechInput
@OptIn(ExperimentalCoroutinesApi::class)
internal class SearchViewModelTest {
private val recentSearchDao: NewRecentSearchDao = mockk()
private val recentSearchDao: NewRecentSearchRoomDao = mockk()
private val zimReaderContainer: ZimReaderContainer = mockk()
private val searchResultGenerator: SearchResultGenerator = mockk()
private val zimFileReader: ZimFileReader = mockk()
@ -155,7 +156,7 @@ internal class SearchViewModelTest {
val searchListItem = RecentSearchListItem("")
actionResultsInEffects(
OnItemClick(searchListItem),
SaveSearchToRecents(recentSearchDao, searchListItem, "id"),
SaveSearchToRecents(recentSearchDao, searchListItem, "id", viewModel.viewModelScope),
OpenSearchItem(searchListItem, false)
)
}
@ -165,7 +166,7 @@ internal class SearchViewModelTest {
val searchListItem = RecentSearchListItem("")
actionResultsInEffects(
OnOpenInNewTabClick(searchListItem),
SaveSearchToRecents(recentSearchDao, searchListItem, "id"),
SaveSearchToRecents(recentSearchDao, searchListItem, "id", viewModel.viewModelScope),
OpenSearchItem(searchListItem, true)
)
}
@ -189,7 +190,7 @@ internal class SearchViewModelTest {
val searchListItem = RecentSearchListItem("")
actionResultsInEffects(
ConfirmedDelete(searchListItem),
DeleteRecentSearch(searchListItem, recentSearchDao),
DeleteRecentSearch(searchListItem, recentSearchDao, viewModel.viewModelScope),
ShowToast(R.string.delete_specific_search_toast)
)
}

View File

@ -1,4 +1,4 @@
package org.kiwix.kiwixmobile.core.search.viewmodel.effects// /*
package org.kiwix.kiwixmobile.core.search.viewmodel.effects /*
// * Kiwix Android
// * Copyright (c) 2020 Kiwix <android.kiwix.org>
// * This program is free software: you can redistribute it and/or modify