Setup database migrations for scheduled messages
This commit is contained in:
parent
7624174cad
commit
16ea540d48
|
@ -17,7 +17,7 @@ import com.simplemobiletools.smsmessenger.models.Conversation
|
||||||
import com.simplemobiletools.smsmessenger.models.Message
|
import com.simplemobiletools.smsmessenger.models.Message
|
||||||
import com.simplemobiletools.smsmessenger.models.MessageAttachment
|
import com.simplemobiletools.smsmessenger.models.MessageAttachment
|
||||||
|
|
||||||
@Database(entities = [Conversation::class, Attachment::class, MessageAttachment::class, Message::class], version = 4)
|
@Database(entities = [Conversation::class, Attachment::class, MessageAttachment::class, Message::class], version = 5)
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(Converters::class)
|
||||||
abstract class MessagesDatabase : RoomDatabase() {
|
abstract class MessagesDatabase : RoomDatabase() {
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ abstract class MessagesDatabase : RoomDatabase() {
|
||||||
.addMigrations(MIGRATION_1_2)
|
.addMigrations(MIGRATION_1_2)
|
||||||
.addMigrations(MIGRATION_2_3)
|
.addMigrations(MIGRATION_2_3)
|
||||||
.addMigrations(MIGRATION_3_4)
|
.addMigrations(MIGRATION_3_4)
|
||||||
|
.addMigrations(MIGRATION_4_5)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,5 +86,13 @@ abstract class MessagesDatabase : RoomDatabase() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val MIGRATION_4_5 = object : Migration(4, 5) {
|
||||||
|
override fun migrate(database: SupportSQLiteDatabase) {
|
||||||
|
database.apply {
|
||||||
|
execSQL("ALTER TABLE messages ADD COLUMN is_scheduled INTEGER NOT NULL DEFAULT 0")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,12 @@ interface MessagesDao {
|
||||||
@Query("SELECT * FROM messages WHERE thread_id = :threadId")
|
@Query("SELECT * FROM messages WHERE thread_id = :threadId")
|
||||||
fun getThreadMessages(threadId: Long): List<Message>
|
fun getThreadMessages(threadId: Long): List<Message>
|
||||||
|
|
||||||
|
@Query("SELECT * FROM messages WHERE thread_id = :threadId AND is_scheduled")
|
||||||
|
fun getScheduledThreadMessages(threadId: Long): List<Message>
|
||||||
|
|
||||||
|
@Query("SELECT * FROM messages WHERE thread_id = :threadId AND id = :messageId AND is_scheduled")
|
||||||
|
fun getScheduledMessageWithId(threadId: Long, messageId: Long): Message
|
||||||
|
|
||||||
@Query("SELECT * FROM messages WHERE body LIKE :text")
|
@Query("SELECT * FROM messages WHERE body LIKE :text")
|
||||||
fun getMessagesWithText(text: String): List<Message>
|
fun getMessagesWithText(text: String): List<Message>
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,11 @@ data class Message(
|
||||||
@ColumnInfo(name = "attachment") val attachment: MessageAttachment?,
|
@ColumnInfo(name = "attachment") val attachment: MessageAttachment?,
|
||||||
@ColumnInfo(name = "sender_name") var senderName: String,
|
@ColumnInfo(name = "sender_name") var senderName: String,
|
||||||
@ColumnInfo(name = "sender_photo_uri") val senderPhotoUri: String,
|
@ColumnInfo(name = "sender_photo_uri") val senderPhotoUri: String,
|
||||||
@ColumnInfo(name = "subscription_id") var subscriptionId: Int) : ThreadItem() {
|
@ColumnInfo(name = "subscription_id") var subscriptionId: Int,
|
||||||
|
@ColumnInfo(name = "is_scheduled") var isScheduled: Boolean = false
|
||||||
|
) : ThreadItem() {
|
||||||
|
|
||||||
fun isReceivedMessage() = type == Telephony.Sms.MESSAGE_TYPE_INBOX
|
fun isReceivedMessage() = type == Telephony.Sms.MESSAGE_TYPE_INBOX
|
||||||
|
|
||||||
|
fun millis() = date * 1000L
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue