test conversations loading

This commit is contained in:
2021-09-10 19:59:45 +03:00
parent 9a9bde97cb
commit 9e8d9247dc
36 changed files with 373 additions and 175 deletions
@@ -12,9 +12,9 @@ import com.meloda.fast.database.storage.ChatsStorage
import com.meloda.fast.database.storage.GroupsStorage
import com.meloda.fast.database.storage.MessagesStorage
import com.meloda.fast.database.storage.UsersStorage
import com.meloda.fast.api.model.VKConversation
import com.meloda.fast.api.model.VKMessage
import com.meloda.fast.api.model.VKUser
import com.meloda.fast.api.model.oldVKConversation
import com.meloda.fast.api.model.oldVKMessage
import com.meloda.fast.api.model.oldVKUser
import java.util.*
object CacheStorage {
@@ -74,22 +74,22 @@ object CacheStorage {
for (value in values) {
when (tableName) {
TABLE_USERS -> {
usersStorage.cacheValue(contentValues, value as VKUser)
usersStorage.cacheValue(contentValues, value as oldVKUser)
break
}
TABLE_FRIENDS -> {
usersStorage.cacheValue(
contentValues,
value as VKUser,
value as oldVKUser,
Bundle().apply { putBoolean("toFriends", true) })
break
}
TABLE_MESSAGES -> {
messagesStorage.cacheValue(contentValues, value as VKMessage)
messagesStorage.cacheValue(contentValues, value as oldVKMessage)
break
}
TABLE_CHATS -> {
chatsStorage.cacheValue(contentValues, value as VKConversation)
chatsStorage.cacheValue(contentValues, value as oldVKConversation)
break
}
}
@@ -25,18 +25,18 @@ import com.meloda.fast.database.DatabaseKeys.TYPE
import com.meloda.fast.database.DatabaseKeys.UNREAD_COUNT
import com.meloda.fast.database.DatabaseUtils.TABLE_CHATS
import com.meloda.fast.database.base.Storage
import com.meloda.fast.api.model.VKConversation
import com.meloda.fast.api.model.oldVKConversation
import com.meloda.fast.api.VKUtil
import org.json.JSONObject
@WorkerThread
class ChatsStorage : Storage<VKConversation>() {
class ChatsStorage : Storage<oldVKConversation>() {
override val tag = "ChatsStorage"
override fun getAllValues(): ArrayList<VKConversation> {
override fun getAllValues(): ArrayList<oldVKConversation> {
val cursor = CacheStorage.selectCursor(TABLE_CHATS)
val conversations = ArrayList<VKConversation>()
val conversations = ArrayList<oldVKConversation>()
while (cursor.moveToNext()) conversations.add(parseValue(cursor))
@@ -46,7 +46,7 @@ class ChatsStorage : Storage<VKConversation>() {
}
@WorkerThread
override fun insertValues(values: ArrayList<VKConversation>, params: Bundle?) {
override fun insertValues(values: ArrayList<oldVKConversation>, params: Bundle?) {
if (values.isEmpty()) return
database.beginTransaction()
@@ -68,7 +68,7 @@ class ChatsStorage : Storage<VKConversation>() {
}
@WorkerThread
override fun cacheValue(values: ContentValues, value: VKConversation, params: Bundle?) {
override fun cacheValue(values: ContentValues, value: oldVKConversation, params: Bundle?) {
values.put(CONVERSATION_ID, value.id)
values.put(IS_ALLOWED, value.isAllowed)
values.put(NOT_ALLOWED_REASON, value.notAllowedReason.value)
@@ -99,12 +99,12 @@ class ChatsStorage : Storage<VKConversation>() {
}
@WorkerThread
override fun parseValue(cursor: Cursor): VKConversation {
val conversation = VKConversation()
override fun parseValue(cursor: Cursor): oldVKConversation {
val conversation = oldVKConversation()
conversation.id = CacheStorage.getInt(cursor, CONVERSATION_ID)
conversation.isAllowed = CacheStorage.getInt(cursor, IS_ALLOWED) == 1
conversation.notAllowedReason = VKConversation.Reason.fromInt(
conversation.notAllowedReason = oldVKConversation.Reason.fromInt(
CacheStorage.getInt(cursor, NOT_ALLOWED_REASON)
)
conversation.inReadMessageId = CacheStorage.getInt(cursor, IN_READ_MESSAGE_ID)
@@ -23,22 +23,22 @@ import com.meloda.fast.database.DatabaseKeys.TEXT
import com.meloda.fast.database.DatabaseUtils.TABLE_MESSAGES
import com.meloda.fast.database.base.Storage
import com.meloda.fast.util.Utils
import com.meloda.fast.api.model.VKMessage
import com.meloda.fast.api.model.oldVKMessage
import com.meloda.fast.api.model.VKMessageAction
import com.meloda.fast.api.model.VKModel
import java.util.stream.Collectors
@WorkerThread
@Suppress("UNCHECKED_CAST")
class MessagesStorage : Storage<VKMessage>() {
class MessagesStorage : Storage<oldVKMessage>() {
override val tag = "MessagesStorage"
@WorkerThread
fun getMessagesHistory(peerId: Int): ArrayList<VKMessage> {
fun getMessagesHistory(peerId: Int): ArrayList<oldVKMessage> {
val cursor = CacheStorage.selectCursor(TABLE_MESSAGES, PEER_ID, peerId)
val messages = ArrayList<VKMessage>(cursor.count)
val messages = ArrayList<oldVKMessage>(cursor.count)
while (cursor.moveToNext()) messages.add(parseValue(cursor))
cursor.close()
@@ -47,7 +47,7 @@ class MessagesStorage : Storage<VKMessage>() {
}
@WorkerThread
fun getMessageById(messageId: Int): VKMessage? {
fun getMessageById(messageId: Int): oldVKMessage? {
val cursor = CacheStorage.selectCursor(TABLE_MESSAGES, MESSAGE_ID, messageId)
if (cursor.moveToFirst()) {
@@ -60,9 +60,9 @@ class MessagesStorage : Storage<VKMessage>() {
return null
}
override fun getAllValues(): ArrayList<VKMessage> {
override fun getAllValues(): ArrayList<oldVKMessage> {
val cursor = selectCursor(TABLE_MESSAGES)
val messages = ArrayList<VKMessage>()
val messages = ArrayList<oldVKMessage>()
while (cursor.moveToNext()) messages.add(parseValue(cursor))
@@ -72,7 +72,7 @@ class MessagesStorage : Storage<VKMessage>() {
}
@WorkerThread
override fun insertValues(values: ArrayList<VKMessage>, params: Bundle?) {
override fun insertValues(values: ArrayList<oldVKMessage>, params: Bundle?) {
if (values.isEmpty()) return
database.beginTransaction()
@@ -94,7 +94,7 @@ class MessagesStorage : Storage<VKMessage>() {
}
@WorkerThread
override fun cacheValue(values: ContentValues, value: VKMessage, params: Bundle?) {
override fun cacheValue(values: ContentValues, value: oldVKMessage, params: Bundle?) {
values.put(MESSAGE_ID, value.id)
values.put(DATE, value.date)
values.put(PEER_ID, value.peerId)
@@ -131,8 +131,8 @@ class MessagesStorage : Storage<VKMessage>() {
}
@WorkerThread
override fun parseValue(cursor: Cursor): VKMessage {
val message = VKMessage()
override fun parseValue(cursor: Cursor): oldVKMessage {
val message = oldVKMessage()
message.id = CacheStorage.getInt(cursor, MESSAGE_ID)
message.date = CacheStorage.getInt(cursor, DATE)
@@ -162,7 +162,7 @@ class MessagesStorage : Storage<VKMessage>() {
val ids = arrayListOf<Int>()
for (s in split) ids.add(s.toInt())
val fwdMessages = arrayListOf<VKMessage>()
val fwdMessages = arrayListOf<oldVKMessage>()
ids.forEach {
val fwdMessage = getMessageById(it)
@@ -7,7 +7,7 @@ import android.util.Log
import androidx.annotation.WorkerThread
import com.meloda.fast.api.UserConfig
import com.meloda.fast.api.VKUtil
import com.meloda.fast.api.model.VKUser
import com.meloda.fast.api.model.oldVKUser
import com.meloda.fast.database.CacheStorage
import com.meloda.fast.database.DatabaseKeys.DEACTIVATED
import com.meloda.fast.database.DatabaseKeys.FIRST_NAME
@@ -29,15 +29,15 @@ import com.meloda.fast.database.base.Storage
import org.json.JSONObject
@WorkerThread
class UsersStorage : Storage<VKUser>() {
class UsersStorage : Storage<oldVKUser>() {
override val tag = "UsersStorage"
@WorkerThread
fun getUsers(ids: IntArray): ArrayList<VKUser> {
fun getUsers(ids: IntArray): ArrayList<oldVKUser> {
val cursor = CacheStorage.selectCursor(TABLE_USERS, USER_ID, ids)
val users = ArrayList<VKUser>(cursor.count)
val users = ArrayList<oldVKUser>(cursor.count)
while (cursor.moveToNext()) users.add(parseValue(cursor))
cursor.close()
@@ -45,14 +45,14 @@ class UsersStorage : Storage<VKUser>() {
}
@WorkerThread
fun getUser(userId: Int): VKUser? {
fun getUser(userId: Int): oldVKUser? {
val user = getUsers(intArrayOf(userId))
return if (user.isNotEmpty()) user[0] else null
}
@WorkerThread
fun getFriends(userId: Int, onlyOnline: Boolean = false): ArrayList<VKUser> {
fun getFriends(userId: Int, onlyOnline: Boolean = false): ArrayList<oldVKUser> {
val cursor = QueryBuilder.query()
.select("*")
.from(TABLE_FRIENDS)
@@ -61,7 +61,7 @@ class UsersStorage : Storage<VKUser>() {
.where("friends.${USER_ID} = $userId")
.asCursor(database)
val users = ArrayList<VKUser>(cursor.count)
val users = ArrayList<oldVKUser>(cursor.count)
while (cursor.moveToNext()) {
val userOnline = CacheStorage.getInt(cursor, IS_ONLINE) == 1
@@ -76,9 +76,9 @@ class UsersStorage : Storage<VKUser>() {
return users
}
override fun getAllValues(): ArrayList<VKUser> {
override fun getAllValues(): ArrayList<oldVKUser> {
val cursor = CacheStorage.selectCursor(TABLE_USERS)
val users = ArrayList<VKUser>()
val users = ArrayList<oldVKUser>()
while (cursor.moveToNext()) users.add(parseValue(cursor))
@@ -88,7 +88,7 @@ class UsersStorage : Storage<VKUser>() {
}
@WorkerThread
override fun insertValues(values: ArrayList<VKUser>, params: Bundle?) {
override fun insertValues(values: ArrayList<oldVKUser>, params: Bundle?) {
if (values.isEmpty()) return
val toFriends = params?.getBoolean("toFriends") ?: false
@@ -112,7 +112,7 @@ class UsersStorage : Storage<VKUser>() {
}
@WorkerThread
override fun cacheValue(values: ContentValues, value: VKUser, params: Bundle?) {
override fun cacheValue(values: ContentValues, value: oldVKUser, params: Bundle?) {
val toFriends = params?.getBoolean("toFriends") ?: false
if (toFriends) {
@@ -144,8 +144,8 @@ class UsersStorage : Storage<VKUser>() {
}
@WorkerThread
override fun parseValue(cursor: Cursor): VKUser {
val user = VKUser()
override fun parseValue(cursor: Cursor): oldVKUser {
val user = oldVKUser()
user.userId = CacheStorage.getInt(cursor, USER_ID)
user.firstName = CacheStorage.getString(cursor, FIRST_NAME)