Skip to content

Commit

Permalink
Fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
Revertron committed Jan 12, 2023
1 parent e03332e commit 5a9dfd1
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ class NotificationManager(val context: Context): StorageListener {

override fun onMessageReceived(id: Long, contactId: Long): Boolean {
val message = App.app.storage.getMessage(id)
if (message?.message == null) {
if (message?.data == null) {
return false
}
val mes = synchronized(messages) {
var text = String(message.message)
var text = message.getText()
text = if (text.length > 50) {
text.substring(0, 50)
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ class ConnectionHandler(
} else if (peerStatus == Status.Challenge2Answered && ok.id == 0L) {
// Now we, as client node, are authorized
peerStatus = Status.Auth2Done
} else if (ok.id > 0) {
} else if (ok.id != 0L) {
//TODO Check that we really sent this ok.id to this user ;)
listener.onMessageDelivered(peer!!, ok.id, true)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,9 @@ fun writeMessage(dos: DataOutputStream, message: Message, stream: Int = 0, type:
writeHeader(dos, stream, type, size)

dos.writeLong(message.guid)
dos.writeLong(message.replyTo)
dos.writeLong(message.sendTime)
dos.writeLong(message.editTime)
dos.writeLong(message.replyTo)
dos.writeInt(message.type)
dos.writeInt(message.data.size)
dos.write(message.data)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -253,10 +253,11 @@ class MimirServer(
val publicKey = Hex.toHexString(contact)
for (m in unsentMessages) {
val message = storage.getMessage(m)
if (message?.message != null) {
if (message?.data != null) {
synchronized(connections) {
val connection = connections[publicKey]
connection?.sendMessage(message.guid, message.replyTo, message.time, message.edit, message.type, message.message)
Log.i(TAG, "Sending message ${message.guid} with id ${message.id}")
connection?.sendMessage(message.guid, message.replyTo, message.time, message.edit, message.type, message.data)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ class SqlStorage(context: Context): SQLiteOpenHelper(context, DATABASE_NAME, nul
val time: Long,
val edit: Long,
val type: Int,
val message: ByteArray?
val data: ByteArray?
) {
fun getText(): String {
return if (message != null) {
String(message)
return if (data != null) {
String(data)
} else {
"<Empty>"
}
Expand Down Expand Up @@ -335,12 +335,13 @@ class SqlStorage(context: Context): SQLiteOpenHelper(context, DATABASE_NAME, nul
put("delivered", delivered)
}
if (this.writableDatabase.update("messages", values, "guid = ? AND contact = ?", arrayOf("$guid", "$contact")) > 0) {
Log.i(TAG, "Message $guid delivered = $delivered")
}
for (listener in listeners) {
listener.onMessageDelivered(guid, delivered)
val id = getMessageIdByGuid(guid)
Log.i(TAG, "Message $id - $guid delivered = $delivered")
for (listener in listeners) {
listener.onMessageDelivered(id, delivered)
}
notificationManager.onMessageDelivered(id, delivered)
}
notificationManager.onMessageDelivered(guid, delivered)
}

fun setMessageRead(contactId: Long, id: Long, read: Boolean) {
Expand Down Expand Up @@ -471,26 +472,15 @@ class SqlStorage(context: Context): SQLiteOpenHelper(context, DATABASE_NAME, nul
return null
}

fun getMessageByGuid(guid: Long): Message? {
val columns = arrayOf("contact", "id", "replyTo", "incoming", "delivered", "read", "time", "edit", "type", "message")
val cursor = readableDatabase.query("messages", columns, "guid = ?", arrayOf("$guid"), null, null, null, "1")
if (cursor.moveToNext()) {
val contactId = cursor.getLong(0)
val id = cursor.getLong(1)
val replyTo = cursor.getLong(2)
val incoming = cursor.getInt(3) != 0
val delivered = cursor.getInt(4) != 0
val read = cursor.getInt(5) != 0
val time = cursor.getLong(6)
val edit = cursor.getLong(7)
val type = cursor.getInt(8)
val message = cursor.getBlobOrNull(9)
//Log.i(TAG, "$guid: $guid")
cursor.close()
return Message(id, contactId, guid, replyTo, incoming, delivered, read, time, edit, type, message)
fun getMessageIdByGuid(guid: Long): Long {
val db = this.readableDatabase
val statement = db.compileStatement("SELECT id FROM messages WHERE guid=? LIMIT 1")
statement.bindLong(1, guid)
return try {
statement.simpleQueryForLong()
} catch (e: SQLiteDoneException) {
-1
}
cursor.close()
return null
}

fun getContactId(pubkey: ByteArray): Long {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class MessageAdapter(
} else {
holder.name.visibility = View.GONE
}
holder.message.text = String(message.message!!)
holder.message.text = message.getText()
holder.time.text = formatTime(message.time)
holder.itemView.tag = message.id
holder.sent.tag = message.delivered
Expand Down

0 comments on commit 5a9dfd1

Please sign in to comment.