mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 03:29:28 +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 java.util.concurrent.ExecutionException
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.math.roundToInt
|
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")
|
@Suppress("TooManyFunctions")
|
||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@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)
|
updateRoomTimerHandler(MILLIS_250)
|
||||||
|
|
||||||
val urlForChatting =
|
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")
|
@Suppress("Detekt.TooGenericExceptionCaught")
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
@ -150,7 +150,7 @@ object CapabilitiesUtil {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
fun retentionOfSIP(spreedCapabilities: SpreedCapability): Int {
|
fun retentionOfSIPRoom(spreedCapabilities: SpreedCapability): Int {
|
||||||
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
||||||
val map = spreedCapabilities.config!!["conversations"]
|
val map = spreedCapabilities.config!!["conversations"]
|
||||||
if (map?.containsKey("retention-phone") == true) {
|
if (map?.containsKey("retention-phone") == true) {
|
||||||
@ -160,7 +160,7 @@ object CapabilitiesUtil {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
fun retentionOfInstantMeetings(spreedCapabilities: SpreedCapability): Int {
|
fun retentionOfInstantMeetingRoom(spreedCapabilities: SpreedCapability): Int {
|
||||||
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
if (spreedCapabilities.config?.containsKey("conversations") == true) {
|
||||||
val map = spreedCapabilities.config!!["conversations"]
|
val map = spreedCapabilities.config!!["conversations"]
|
||||||
if (map?.containsKey("retention-instant-meetings") == true) {
|
if (map?.containsKey("retention-instant-meetings") == true) {
|
||||||
|
Loading…
Reference in New Issue
Block a user