Rename package to org.fossify.messages
This commit is contained in:
parent
d71db351ca
commit
e2f83f49da
106 changed files with 417 additions and 418 deletions
|
|
@ -0,0 +1,11 @@
|
|||
package org.fossify.messages.interfaces
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import org.fossify.messages.models.Attachment
|
||||
|
||||
@Dao
|
||||
interface AttachmentsDao {
|
||||
@Query("SELECT * FROM attachments")
|
||||
fun getAll(): List<Attachment>
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package org.fossify.messages.interfaces
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import org.fossify.messages.models.Conversation
|
||||
import org.fossify.messages.models.ConversationWithSnippetOverride
|
||||
|
||||
@Dao
|
||||
interface ConversationsDao {
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
fun insertOrUpdate(conversation: Conversation): Long
|
||||
|
||||
@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE archived = 0")
|
||||
fun getNonArchivedWithLatestSnippet(): List<ConversationWithSnippetOverride>
|
||||
|
||||
fun getNonArchived(): List<Conversation> {
|
||||
return getNonArchivedWithLatestSnippet().map { it.toConversation() }
|
||||
}
|
||||
|
||||
@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE archived = 1")
|
||||
fun getAllArchivedWithLatestSnippet(): List<ConversationWithSnippetOverride>
|
||||
|
||||
fun getAllArchived(): List<Conversation> {
|
||||
return getAllArchivedWithLatestSnippet().map { it.toConversation() }
|
||||
}
|
||||
|
||||
@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE (SELECT COUNT(*) FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND messages.thread_id = conversations.thread_id) > 0")
|
||||
fun getAllWithMessagesInRecycleBinWithLatestSnippet(): List<ConversationWithSnippetOverride>
|
||||
|
||||
fun getAllWithMessagesInRecycleBin(): List<Conversation> {
|
||||
return getAllWithMessagesInRecycleBinWithLatestSnippet().map { it.toConversation() }
|
||||
}
|
||||
|
||||
@Query("SELECT * FROM conversations WHERE thread_id = :threadId")
|
||||
fun getConversationWithThreadId(threadId: Long): Conversation?
|
||||
|
||||
@Query("SELECT * FROM conversations WHERE read = 0")
|
||||
fun getUnreadConversations(): List<Conversation>
|
||||
|
||||
@Query("SELECT * FROM conversations WHERE title LIKE :text")
|
||||
fun getConversationsWithText(text: String): List<Conversation>
|
||||
|
||||
@Query("UPDATE conversations SET read = 1 WHERE thread_id = :threadId")
|
||||
fun markRead(threadId: Long)
|
||||
|
||||
@Query("UPDATE conversations SET read = 0 WHERE thread_id = :threadId")
|
||||
fun markUnread(threadId: Long)
|
||||
|
||||
@Query("UPDATE conversations SET archived = 1 WHERE thread_id = :threadId")
|
||||
fun moveToArchive(threadId: Long)
|
||||
|
||||
@Query("UPDATE conversations SET archived = 0 WHERE thread_id = :threadId")
|
||||
fun unarchive(threadId: Long)
|
||||
|
||||
@Query("DELETE FROM conversations WHERE thread_id = :threadId")
|
||||
fun deleteThreadId(threadId: Long)
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package org.fossify.messages.interfaces
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Query
|
||||
import org.fossify.messages.models.MessageAttachment
|
||||
|
||||
@Dao
|
||||
interface MessageAttachmentsDao {
|
||||
@Query("SELECT * FROM message_attachments")
|
||||
fun getAll(): List<MessageAttachment>
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
package org.fossify.messages.interfaces
|
||||
|
||||
import androidx.room.*
|
||||
import org.fossify.messages.models.Message
|
||||
import org.fossify.messages.models.RecycleBinMessage
|
||||
|
||||
@Dao
|
||||
interface MessagesDao {
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
fun insertOrUpdate(message: Message)
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
fun insertRecycleBinEntry(recycleBinMessage: RecycleBinMessage)
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.IGNORE)
|
||||
fun insertOrIgnore(message: Message): Long
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
fun insertMessages(vararg message: Message)
|
||||
|
||||
@Query("SELECT * FROM messages")
|
||||
fun getAll(): List<Message>
|
||||
|
||||
@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL")
|
||||
fun getAllRecycleBinMessages(): List<Message>
|
||||
|
||||
@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND recycle_bin_messages.deleted_ts < :timestamp")
|
||||
fun getOldRecycleBinMessages(timestamp: Long): List<Message>
|
||||
|
||||
@Query("SELECT * FROM messages WHERE thread_id = :threadId")
|
||||
fun getThreadMessages(threadId: Long): List<Message>
|
||||
|
||||
@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND thread_id = :threadId")
|
||||
fun getNonRecycledThreadMessages(threadId: Long): List<Message>
|
||||
|
||||
@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND thread_id = :threadId")
|
||||
fun getThreadMessagesFromRecycleBin(threadId: Long): List<Message>
|
||||
|
||||
@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND thread_id = :threadId AND is_scheduled = 1")
|
||||
fun getScheduledThreadMessages(threadId: Long): List<Message>
|
||||
|
||||
@Query("SELECT * FROM messages WHERE thread_id = :threadId AND id = :messageId AND is_scheduled = 1")
|
||||
fun getScheduledMessageWithId(threadId: Long, messageId: Long): Message
|
||||
|
||||
@Query("SELECT COUNT(*) FROM recycle_bin_messages")
|
||||
fun getArchivedCount(): Int
|
||||
|
||||
@Query("SELECT * FROM messages WHERE body LIKE :text")
|
||||
fun getMessagesWithText(text: String): List<Message>
|
||||
|
||||
@Query("UPDATE messages SET read = 1 WHERE id = :id")
|
||||
fun markRead(id: Long)
|
||||
|
||||
@Query("UPDATE messages SET read = 1 WHERE thread_id = :threadId")
|
||||
fun markThreadRead(threadId: Long)
|
||||
|
||||
@Query("UPDATE messages SET type = :type WHERE id = :id")
|
||||
fun updateType(id: Long, type: Int): Int
|
||||
|
||||
@Query("UPDATE messages SET status = :status WHERE id = :id")
|
||||
fun updateStatus(id: Long, status: Int): Int
|
||||
|
||||
@Transaction
|
||||
fun delete(id: Long) {
|
||||
deleteFromMessages(id)
|
||||
deleteFromRecycleBin(id)
|
||||
}
|
||||
|
||||
@Query("DELETE FROM messages WHERE id = :id")
|
||||
fun deleteFromMessages(id: Long)
|
||||
|
||||
@Query("DELETE FROM recycle_bin_messages WHERE id = :id")
|
||||
fun deleteFromRecycleBin(id: Long)
|
||||
|
||||
@Transaction
|
||||
fun deleteThreadMessages(threadId: Long) {
|
||||
deleteThreadMessagesFromRecycleBin(threadId)
|
||||
deleteAllThreadMessages(threadId)
|
||||
}
|
||||
|
||||
@Query("DELETE FROM messages WHERE thread_id = :threadId")
|
||||
fun deleteAllThreadMessages(threadId: Long)
|
||||
|
||||
@Query("DELETE FROM recycle_bin_messages WHERE id IN (SELECT id FROM messages WHERE thread_id = :threadId)")
|
||||
fun deleteThreadMessagesFromRecycleBin(threadId: Long)
|
||||
|
||||
@Query("DELETE FROM messages")
|
||||
fun deleteAll()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue