@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: 2019-2021 aTox contributors
// SPDX-FileCopyrightText: 2019-2022 aTox contributors
//
// SPDX-License-Identifier: GPL-3.0-only
@@ -7,15 +7,24 @@ package ltd.evilcorp.atox.ui.addcontact
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.asLiveData
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import ltd.evilcorp.atox.tox.ToxStarter
import ltd.evilcorp.core.repository.MessageRepository
import ltd.evilcorp.core.vo.Contact
import ltd.evilcorp.core.vo.Message
import ltd.evilcorp.core.vo.MessageType
import ltd.evilcorp.core.vo.Sender
import ltd.evilcorp.domain.feature.ContactManager
import ltd.evilcorp.domain.tox.Tox
import ltd.evilcorp.domain.tox.ToxID
import ltd.evilcorp.domain.tox.ToxSaveStatus
import java.util.Date
import javax.inject.Inject
class AddContactViewModel @Inject constructor(
private val scope: CoroutineScope,
private val messageRepository: MessageRepository,
private val contactManager: ContactManager,
private val tox: Tox,
private val toxStarter: ToxStarter,
@@ -26,5 +35,21 @@ class AddContactViewModel @Inject constructor(
fun isToxRunning() = tox.started
fun tryLoadTox(): Boolean = toxStarter.tryLoadTox(null) == ToxSaveStatus.Ok
fun addContact(toxId: ToxID, message: String) = contactManager.add(toxId, message)
private fun addToChatLog(publicKey: String, message: String) = scope.launch {
messageRepository.add(
Message(
publicKey,
message,
Sender.Sent,
MessageType.Normal,
0,
Date().time,
),
)
}
fun addContact(toxId: ToxID, message: String) {
contactManager.add(toxId, message)
addToChatLog(toxId.toPublicKey().string(), message)
}
}