Add new call control message UI with timer icon above

pull/1313/head
Andrew 5 months ago
parent c7ffa61c55
commit f3bb2e5cfa

@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.conversation.v2.messages
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.core.content.res.ResourcesCompat import androidx.core.content.res.ResourcesCompat
@ -46,13 +45,12 @@ class ControlMessageView : LinearLayout {
binding.followSetting.isGone = true binding.followSetting.isGone = true
var messageBody: CharSequence = message.getDisplayBody(context) var messageBody: CharSequence = message.getDisplayBody(context)
binding.root.contentDescription = null binding.root.contentDescription = null
binding.textView.text = messageBody
when { when {
message.isExpirationTimerUpdate -> { message.isExpirationTimerUpdate -> {
binding.apply { binding.apply {
expirationTimerView.isVisible = true expirationTimerView.isVisible = true
Log.d(TAG, "bind() called, messageBody = $messageBody")
val threadRecipient = DatabaseComponent.get(context).threadDatabase().getRecipientForThreadId(message.threadId) val threadRecipient = DatabaseComponent.get(context).threadDatabase().getRecipientForThreadId(message.threadId)
if (threadRecipient?.isClosedGroupRecipient == true) { if (threadRecipient?.isClosedGroupRecipient == true) {
@ -61,7 +59,6 @@ class ControlMessageView : LinearLayout {
expirationTimerView.setExpirationTime(message.expireStarted, message.expiresIn) expirationTimerView.setExpirationTime(message.expireStarted, message.expiresIn)
} }
followSetting.isVisible = ExpirationConfiguration.isNewConfigEnabled followSetting.isVisible = ExpirationConfiguration.isNewConfigEnabled
&& !message.isOutgoing && !message.isOutgoing
&& message.expiryMode != (MessagingModuleConfiguration.shared.storage.getExpirationConfiguration(message.threadId)?.expiryMode ?: ExpiryMode.NONE) && message.expiryMode != (MessagingModuleConfiguration.shared.storage.getExpirationConfiguration(message.threadId)?.expiryMode ?: ExpiryMode.NONE)
@ -79,7 +76,7 @@ class ControlMessageView : LinearLayout {
} }
} }
message.isMessageRequestResponse -> { message.isMessageRequestResponse -> {
messageBody = context.getString(R.string.message_requests_accepted) binding.textView.text = context.getString(R.string.message_requests_accepted)
binding.root.contentDescription=context.getString(R.string.AccessibilityId_message_request_config_message) binding.root.contentDescription=context.getString(R.string.AccessibilityId_message_request_config_message)
} }
message.isCallLog -> { message.isCallLog -> {
@ -89,14 +86,19 @@ class ControlMessageView : LinearLayout {
message.isFirstMissedCall -> R.drawable.ic_info_outline_light message.isFirstMissedCall -> R.drawable.ic_info_outline_light
else -> R.drawable.ic_missed_call else -> R.drawable.ic_missed_call
} }
binding.iconImageView.apply { binding.textView.isVisible = false
setImageDrawable(ResourcesCompat.getDrawable(resources, drawable, context.theme)) binding.callTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, drawable, context.theme), null, null, null)
isVisible = true binding.callTextView.text = messageBody
if (message.expireStarted > 0 && message.expiresIn > 0) {
binding.expirationTimerView.isVisible = true
binding.expirationTimerView.setExpirationTime(message.expireStarted, message.expiresIn)
} }
} }
} }
binding.textView.text = messageBody binding.textView.isGone = message.isCallLog
binding.callView.isVisible = message.isCallLog
} }
fun recycle() { fun recycle() {

@ -50,6 +50,26 @@
android:textStyle="bold" android:textStyle="bold"
tools:text="@string/MessageRecord_you_disabled_disappearing_messages" /> tools:text="@string/MessageRecord_you_disabled_disappearing_messages" />
<LinearLayout
android:id="@+id/call_view"
style="@style/FakeChatViewMessageBubble.Incoming"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/call_text_view"
android:drawableTint="?message_received_text_color"
android:drawableStart="@drawable/ic_missed_call"
android:layout_weight="1"
android:textAlignment="center"
android:layout_gravity="center"
android:text="You missed a call"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</LinearLayout>
<TextView <TextView
android:id="@+id/followSetting" android:id="@+id/followSetting"
style="@style/Widget.Session.Button.Common.Borderless" style="@style/Widget.Session.Button.Common.Borderless"

Loading…
Cancel
Save