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