srctree

Robin Linden parent a86291c0 ff8a8f13
Add missing notification for incoming file transfers

inlinesplit
atox/src/main/kotlin/tox/EventListenerCallbacks.kt added: 15, removed: 2, total 13
@@ -1,5 +1,6 @@
package ltd.evilcorp.atox.tox
 
import android.content.Context
import android.util.Log
import im.tox.tox4j.core.enums.ToxFileControl
import java.util.Date
@@ -9,6 +10,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
import ltd.evilcorp.atox.R
import ltd.evilcorp.atox.ui.NotificationHelper
import ltd.evilcorp.core.repository.ContactRepository
import ltd.evilcorp.core.repository.FriendRequestRepository
@@ -35,6 +37,7 @@ private fun getDate() = Date().time
 
@Singleton
class EventListenerCallbacks @Inject constructor(
private val ctx: Context,
private val contactRepository: ContactRepository,
private val friendRequestRepository: FriendRequestRepository,
private val messageRepository: MessageRepository,
@@ -112,6 +115,15 @@ class EventListenerCallbacks @Inject constructor(
 
fileRecvHandler = { publicKey, fileNumber, kind, fileSize, filename ->
val name = if (kind == FileKind.Avatar.ordinal) publicKey else filename
if (kind == FileKind.Data.ordinal) {
contactRepository.setLastMessage(publicKey, getDate())
if (chatManager.activeChat != publicKey) {
val msg = ctx.getString(R.string.notification_file_transfer, name)
notificationHelper.showMessageNotification(contactByPublicKey(publicKey), msg)
contactRepository.setHasUnreadMessages(publicKey, true)
}
}
 
fileTransferManager.add(
FileTransfer(publicKey, fileNumber, kind, fileSize, name, outgoing = false)
)
 
atox/src/main/res/values/strings.xml added: 15, removed: 2, total 13
@@ -103,4 +103,5 @@
</string>
<string name="attach_file">Attach file</string>
<string name="delete">Delete</string>
<string name="notification_file_transfer">Incoming file transfer \"%1$s\"</string>
</resources>