修复: 部分 Android 4.4 系统(随身WiFi)不支持 `instr()` 函数的问题
This commit is contained in:
parent
e736bd2c2a
commit
0d26a0de70
|
@ -41,8 +41,10 @@ interface FrpcDao {
|
|||
fun getAutorun(): List<Frpc>
|
||||
|
||||
//使用 ORDER BY 子句和 instr() 函数按照列表中 uid 的顺序返回结果
|
||||
@Query("SELECT * FROM Frpc WHERE uid IN (:uids) ORDER BY instr(:instr, uid)")
|
||||
fun getByUids(uids: List<String>, instr: String): List<Frpc>
|
||||
//@Query("SELECT * FROM Frpc WHERE uid IN (:uids) ORDER BY instr(:instr, uid)")
|
||||
//fun getByUids(uids: List<String>, instr: String): List<Frpc>
|
||||
@Query("SELECT * FROM Frpc WHERE uid IN (:uids)")
|
||||
fun getByUids(uids: List<String>): List<Frpc>
|
||||
|
||||
@Query("SELECT * FROM Frpc ORDER BY time DESC")
|
||||
fun pagingSource(): PagingSource<Int, Frpc>
|
||||
|
|
|
@ -42,8 +42,10 @@ interface SenderDao {
|
|||
fun getOne(id: Long): Sender
|
||||
|
||||
//使用 ORDER BY 子句和 instr() 函数按照列表中 ID 的顺序返回结果
|
||||
@Query("SELECT * FROM Sender WHERE id IN (:ids) ORDER BY instr(:instr, id)")
|
||||
fun getByIds(ids: List<Long>, instr: String): List<Sender>
|
||||
//@Query("SELECT * FROM Sender WHERE id IN (:ids) ORDER BY instr(:instr, id)")
|
||||
//fun getByIds(ids: List<Long>, instr: String): List<Sender>
|
||||
@Query("SELECT * FROM Sender WHERE id IN (:ids)")
|
||||
fun getByIds(ids: List<Long>): List<Sender>
|
||||
|
||||
@Query("SELECT count(*) FROM Sender where type=:type and status=:status")
|
||||
fun count(type: String, status: Int): Single<Int>
|
||||
|
|
|
@ -31,6 +31,11 @@ class FrpcRepository(private val frpcDao: FrpcDao) {
|
|||
|
||||
fun getAutorun(): List<Frpc> = frpcDao.getAutorun()
|
||||
|
||||
fun getByUids(uids: List<String>, instr: String): List<Frpc> = frpcDao.getByUids(uids, instr)
|
||||
fun getByUids(uids: List<String>, instr: String): List<Frpc> {
|
||||
val frpcs = frpcDao.getByUids(uids)
|
||||
// 将结果按照 instr() 的顺序进行排序
|
||||
frpcs.sortedBy { instr.indexOf(it.uid) }
|
||||
return frpcs
|
||||
}
|
||||
|
||||
}
|
|
@ -30,7 +30,12 @@ class SenderRepository(private val senderDao: SenderDao) {
|
|||
|
||||
fun getOne(id: Long) = senderDao.getOne(id)
|
||||
|
||||
fun getByIds(ids: List<Long>, instr: String) = senderDao.getByIds(ids, instr)
|
||||
fun getByIds(ids: List<Long>, instr: String): List<Sender> {
|
||||
val senders = senderDao.getByIds(ids)
|
||||
// 将结果按照 instr() 的顺序进行排序
|
||||
senders.sortedBy { instr.indexOf(it.id.toString()) }
|
||||
return senders
|
||||
}
|
||||
|
||||
fun getAllNonCache(): List<Sender> {
|
||||
val query = SimpleSQLiteQuery("SELECT * FROM Sender ORDER BY id ASC")
|
||||
|
|
Loading…
Reference in New Issue