mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-22 12:03:09 -04:00
Conflict fix
This commit is contained in:
parent
c56af0ca85
commit
a48c185d2c
@ -21,8 +21,11 @@ package org.kiwix.kiwixmobile.core.dao
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import io.objectbox.Box
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.launch
|
||||
import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchEntity
|
||||
import org.kiwix.kiwixmobile.core.dao.entities.RecentSearchRoomEntity
|
||||
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
|
||||
@ -31,20 +34,37 @@ import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
|
||||
abstract class NewRecentSearchRoomDao {
|
||||
|
||||
@Query(
|
||||
"SELECT * FROM RecentSearchRoomEntity WHERE id LIKE :zimId ORDER BY" +
|
||||
"SELECT * FROM RecentSearchRoomEntity WHERE zimId LIKE :zimId ORDER BY" +
|
||||
" RecentSearchRoomEntity.id DESC"
|
||||
)
|
||||
abstract fun search(zimId: String?): Flow<List<RecentSearchRoomEntity>>
|
||||
|
||||
fun recentSearches(zimId: String?): Flow<List<SearchListItem.RecentSearchListItem>> {
|
||||
return search(zimId = zimId).map { searchEntities ->
|
||||
searchEntities.distinctBy(RecentSearchRoomEntity::searchTerm).take(NUM_RECENT_RESULTS)
|
||||
.map { searchEntity -> SearchListItem.RecentSearchListItem(searchEntity.searchTerm) }
|
||||
@Query(
|
||||
"SELECT * FROM RecentSearchRoomEntity"
|
||||
)
|
||||
abstract fun fullSearch(): Flow<List<RecentSearchRoomEntity>>
|
||||
|
||||
fun recentSearches(zimId: String? = ""): Flow<List<SearchListItem.RecentSearchListItem>> {
|
||||
return if (zimId != "") {
|
||||
search(zimId).map { searchEntities ->
|
||||
searchEntities.distinctBy(RecentSearchRoomEntity::searchTerm).take(NUM_RECENT_RESULTS)
|
||||
.map { searchEntity -> SearchListItem.RecentSearchListItem(searchEntity.searchTerm) }
|
||||
}
|
||||
} else {
|
||||
return fullSearch().map { searchEntities ->
|
||||
searchEntities.distinctBy(RecentSearchRoomEntity::searchTerm)
|
||||
.take(NUM_RECENT_RESULTS)
|
||||
.map { searchEntity ->
|
||||
org.kiwix.kiwixmobile.core.search.adapter.SearchListItem.RecentSearchListItem(
|
||||
searchEntity.searchTerm
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Query("INSERT INTO RecentSearchRoomEntity(searchTerm, zimId) VALUES (:title , :id)")
|
||||
abstract fun saveSearch(title: String, id: Long)
|
||||
abstract fun saveSearch(title: String, id: String)
|
||||
|
||||
@Query("DELETE FROM RecentSearchRoomEntity WHERE searchTerm=:searchTerm")
|
||||
abstract fun deleteSearchString(searchTerm: String)
|
||||
@ -57,7 +77,9 @@ abstract class NewRecentSearchRoomDao {
|
||||
) {
|
||||
val searchRoomEntityList = box.all
|
||||
searchRoomEntityList.forEach {
|
||||
saveSearch(it.searchTerm, it.id)
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
saveSearch(it.searchTerm, it.id.toString())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -27,7 +27,6 @@ import org.kiwix.kiwixmobile.core.dao.NewBookDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewBookmarksDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewLanguagesDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewNoteDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewRecentSearchDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewRecentSearchRoomDao
|
||||
import org.kiwix.kiwixmobile.core.di.qualifiers.IO
|
||||
import org.kiwix.kiwixmobile.core.di.qualifiers.MainThread
|
||||
|
@ -23,14 +23,12 @@ import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import android.os.storage.StorageManager
|
||||
import androidx.room.Room
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import io.reactivex.Scheduler
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.schedulers.Schedulers
|
||||
import org.kiwix.kiwixmobile.core.NightModeConfig
|
||||
import org.kiwix.kiwixmobile.core.data.local.KiwixRoomDatabase
|
||||
import org.kiwix.kiwixmobile.core.di.qualifiers.Computation
|
||||
import org.kiwix.kiwixmobile.core.di.qualifiers.IO
|
||||
import org.kiwix.kiwixmobile.core.di.qualifiers.MainThread
|
||||
@ -99,6 +97,4 @@ class ApplicationModule {
|
||||
@Singleton
|
||||
fun provideConnectivityManager(context: Context): ConnectivityManager =
|
||||
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
|
||||
|
||||
}
|
||||
|
@ -83,7 +83,7 @@ open class DatabaseModule {
|
||||
KiwixRoomDatabase.getInstance(
|
||||
context = context,
|
||||
boxStore
|
||||
)// The reason we can construct a database for the repo
|
||||
) // The reason we can construct a database for the repo
|
||||
|
||||
@Singleton
|
||||
@Provides
|
||||
|
@ -33,7 +33,6 @@ import kotlinx.coroutines.flow.receiveAsFlow
|
||||
import kotlinx.coroutines.launch
|
||||
import org.kiwix.kiwixmobile.core.R
|
||||
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.ZimReaderContainer
|
||||
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
|
||||
@ -155,7 +154,8 @@ class SearchViewModel @Inject constructor(
|
||||
SaveSearchToRecents(
|
||||
recentSearchDao,
|
||||
searchListItem,
|
||||
zimReaderContainer.id
|
||||
zimReaderContainer.id,
|
||||
viewModelScope
|
||||
)
|
||||
).isSuccess
|
||||
_effects.trySendBlocking(OpenSearchItem(searchListItem, openInNewTab))
|
||||
|
@ -20,7 +20,6 @@ package org.kiwix.kiwixmobile.core.search.viewmodel.effects
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
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.search.adapter.SearchListItem
|
||||
|
||||
|
@ -19,17 +19,24 @@
|
||||
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.NewRecentSearchDao
|
||||
import org.kiwix.kiwixmobile.core.dao.NewRecentSearchRoomDao
|
||||
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 id: String?,
|
||||
private val viewModelScope: CoroutineScope
|
||||
) : SideEffect<Unit> {
|
||||
override fun invokeWith(activity: AppCompatActivity) {
|
||||
id?.let { recentSearchDao.saveSearch(searchListItem.value, it.toLong()) }
|
||||
id?.let {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
recentSearchDao.saveSearch(searchListItem.value, it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user