mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-18 19:19:33 +01:00
show warning dialog when call ends
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
7a4c98db01
commit
0104989eef
@ -229,6 +229,13 @@ import java.util.Locale
|
||||
import java.util.concurrent.ExecutionException
|
||||
import javax.inject.Inject
|
||||
import kotlin.math.roundToInt
|
||||
import androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
import com.nextcloud.talk.conversationinfo.viewmodel.ConversationInfoViewModel
|
||||
import com.nextcloud.talk.models.json.participants.Participant
|
||||
import com.nextcloud.talk.utils.CapabilitiesUtil.retentionOfEventRooms
|
||||
import com.nextcloud.talk.utils.CapabilitiesUtil.retentionOfInstantMeetingRoom
|
||||
import com.nextcloud.talk.utils.CapabilitiesUtil.retentionOfSIPRoom
|
||||
|
||||
@Suppress("TooManyFunctions")
|
||||
@AutoInjector(NextcloudTalkApplication::class)
|
||||
@ -664,6 +671,40 @@ class ChatActivity :
|
||||
}
|
||||
}
|
||||
|
||||
if (currentConversation?.objectType == ConversationEnums.ObjectType.EVENT) {
|
||||
val eventEndTimeStamp = currentConversation?.objectId?.split("#")[1]?.toLong()
|
||||
val currentTimeStamp = (System.currentTimeMillis() / 1000).toLong()
|
||||
val retentionPeriod = retentionOfEventRooms(spreedCapabilities)
|
||||
val isPastEvent = eventEndTimeStamp?.let { it < currentTimeStamp }
|
||||
if (isPastEvent == true && retentionPeriod != 0) {
|
||||
showConversationDeletionWarning(retentionPeriod)
|
||||
}
|
||||
}
|
||||
|
||||
if (currentConversation?.objectType == ConversationEnums.ObjectType.PHONE) {
|
||||
val retentionPeriod = retentionOfSIPRoom(spreedCapabilities)
|
||||
val systemMessage = currentConversation?.lastMessage?.systemMessageType
|
||||
if (retentionPeriod != 0 && (
|
||||
systemMessage == ChatMessage.SystemMessageType.CALL_ENDED ||
|
||||
systemMessage == ChatMessage.SystemMessageType.CALL_ENDED_EVERYONE
|
||||
)
|
||||
) {
|
||||
showConversationDeletionWarning(retentionPeriod)
|
||||
}
|
||||
}
|
||||
|
||||
if (currentConversation?.objectType == ConversationEnums.ObjectType.INSTANT_MEETING) {
|
||||
val retentionPeriod = retentionOfInstantMeetingRoom(spreedCapabilities)
|
||||
val systemMessage = currentConversation?.lastMessage?.systemMessageType
|
||||
if (retentionPeriod != 0 && (
|
||||
systemMessage == ChatMessage.SystemMessageType.CALL_ENDED ||
|
||||
systemMessage == ChatMessage.SystemMessageType.CALL_ENDED_EVERYONE
|
||||
)
|
||||
) {
|
||||
showConversationDeletionWarning(retentionPeriod)
|
||||
}
|
||||
}
|
||||
|
||||
updateRoomTimerHandler(MILLIS_250)
|
||||
|
||||
val urlForChatting =
|
||||
@ -1150,6 +1191,16 @@ class ChatActivity :
|
||||
}
|
||||
}
|
||||
|
||||
fun showConversationDeletionWarning(retentionPeriod: Int) {
|
||||
binding.conversationDeleteNotice.visibility = View.VISIBLE
|
||||
val deleteNoticeCard = findViewById<MaterialCardView>(R.id.conversation_delete_notice)
|
||||
val messageTextView = deleteNoticeCard.findViewById<TextView>(R.id.deletion_message)
|
||||
messageTextView.text = String.format(
|
||||
resources.getString(R.string.nc_conversation_auto_delete_notice),
|
||||
retentionPeriod
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("Detekt.TooGenericExceptionCaught")
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
@ -140,7 +140,7 @@ object CapabilitiesUtil {
|
||||
return false
|
||||
}
|
||||
|
||||
fun retentionOfEventRooms(spreedCapabilities: SpreedCapability): Int {
|
||||
fun retentionOfEventRooms(spreedCapabilities: SpreedCapability): Int {
|
||||
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
||||
val map = spreedCapabilities.config!!["conversations"]
|
||||
if (map?.containsKey("retention-event") == true) {
|
||||
@ -150,7 +150,7 @@ object CapabilitiesUtil {
|
||||
return 0
|
||||
}
|
||||
|
||||
fun retentionOfSIP(spreedCapabilities: SpreedCapability): Int {
|
||||
fun retentionOfSIPRoom(spreedCapabilities: SpreedCapability): Int {
|
||||
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
||||
val map = spreedCapabilities.config!!["conversations"]
|
||||
if (map?.containsKey("retention-phone") == true) {
|
||||
@ -160,7 +160,7 @@ object CapabilitiesUtil {
|
||||
return 0
|
||||
}
|
||||
|
||||
fun retentionOfInstantMeetings(spreedCapabilities: SpreedCapability): Int {
|
||||
fun retentionOfInstantMeetingRoom(spreedCapabilities: SpreedCapability): Int {
|
||||
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
||||
val map = spreedCapabilities.config!!["conversations"]
|
||||
if (map?.containsKey("retention-instant-meetings") == true) {
|
||||
|
Loading…
Reference in New Issue
Block a user