mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-21 09:38:27 +00:00
Add new call control message UI with timer icon above
This commit is contained in:
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…
x
Reference in New Issue
Block a user