|
|
|
@ -13,6 +13,7 @@ import androidx.recyclerview.widget.ItemTouchHelper |
|
|
|
|
import com.google.android.material.snackbar.Snackbar |
|
|
|
|
import io.legado.app.R |
|
|
|
|
import io.legado.app.base.VMBaseActivity |
|
|
|
|
import io.legado.app.constant.AppLog |
|
|
|
|
import io.legado.app.constant.AppPattern |
|
|
|
|
import io.legado.app.constant.EventBus |
|
|
|
|
import io.legado.app.data.appDb |
|
|
|
@ -207,27 +208,31 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV |
|
|
|
|
private fun upBookSource(searchKey: String? = null) { |
|
|
|
|
sourceFlowJob?.cancel() |
|
|
|
|
sourceFlowJob = launch { |
|
|
|
|
when { |
|
|
|
|
searchKey.isNullOrEmpty() -> { |
|
|
|
|
appDb.bookSourceDao.flowAll() |
|
|
|
|
} |
|
|
|
|
searchKey == getString(R.string.enabled) -> { |
|
|
|
|
appDb.bookSourceDao.flowEnabled() |
|
|
|
|
} |
|
|
|
|
searchKey == getString(R.string.disabled) -> { |
|
|
|
|
appDb.bookSourceDao.flowDisabled() |
|
|
|
|
} |
|
|
|
|
searchKey == getString(R.string.need_login) -> { |
|
|
|
|
appDb.bookSourceDao.flowLogin() |
|
|
|
|
} |
|
|
|
|
searchKey.startsWith("group:") -> { |
|
|
|
|
val key = searchKey.substringAfter("group:") |
|
|
|
|
appDb.bookSourceDao.flowGroupSearch("%$key%") |
|
|
|
|
} |
|
|
|
|
else -> { |
|
|
|
|
appDb.bookSourceDao.flowSearch("%$searchKey%") |
|
|
|
|
runCatching { |
|
|
|
|
when { |
|
|
|
|
searchKey.isNullOrEmpty() -> { |
|
|
|
|
appDb.bookSourceDao.flowAll() |
|
|
|
|
} |
|
|
|
|
searchKey == getString(R.string.enabled) -> { |
|
|
|
|
appDb.bookSourceDao.flowEnabled() |
|
|
|
|
} |
|
|
|
|
searchKey == getString(R.string.disabled) -> { |
|
|
|
|
appDb.bookSourceDao.flowDisabled() |
|
|
|
|
} |
|
|
|
|
searchKey == getString(R.string.need_login) -> { |
|
|
|
|
appDb.bookSourceDao.flowLogin() |
|
|
|
|
} |
|
|
|
|
searchKey.startsWith("group:") -> { |
|
|
|
|
val key = searchKey.substringAfter("group:") |
|
|
|
|
appDb.bookSourceDao.flowGroupSearch("%$key%") |
|
|
|
|
} |
|
|
|
|
else -> { |
|
|
|
|
appDb.bookSourceDao.flowSearch("%$searchKey%") |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}.collect { data -> |
|
|
|
|
}.onFailure { |
|
|
|
|
AppLog.put("更新书源出错", it) |
|
|
|
|
}.getOrNull()?.collect { data -> |
|
|
|
|
val sourceList = |
|
|
|
|
if (sortAscending) when (sort) { |
|
|
|
|
Sort.Weight -> data.sortedBy { it.weight } |
|
|
|
|