Merge pull request #3515 from vector-im/feature/bma/fix_crash_theme
Feature/bma/fix crash theme
This commit is contained in:
commit
cb57b1496f
@ -18,8 +18,6 @@ package im.vector.app.features.crypto.verification.epoxy
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ImageView
|
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.airbnb.epoxy.EpoxyAttribute
|
import com.airbnb.epoxy.EpoxyAttribute
|
||||||
@ -27,6 +25,7 @@ import com.airbnb.epoxy.EpoxyModelClass
|
|||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
|
import im.vector.app.core.epoxy.VectorEpoxyHolder
|
||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
|
import im.vector.app.core.epoxy.VectorEpoxyModel
|
||||||
|
import im.vector.app.databinding.ItemEmojiVerifBinding
|
||||||
import me.gujun.android.span.Span
|
import me.gujun.android.span.Span
|
||||||
import me.gujun.android.span.image
|
import me.gujun.android.span.image
|
||||||
import me.gujun.android.span.span
|
import me.gujun.android.span.span
|
||||||
@ -68,16 +67,18 @@ abstract class BottomSheetVerificationEmojisItem : VectorEpoxyModel<BottomSheetV
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun bindEmojiView(view: ViewGroup, rep: EmojiRepresentation) {
|
private fun bindEmojiView(view: ViewGroup, rep: EmojiRepresentation) {
|
||||||
rep.drawableRes?.let {
|
val views = ItemEmojiVerifBinding.bind(view)
|
||||||
view.findViewById<TextView>(R.id.item_emoji_tv).isVisible = false
|
val drawableRes = rep.drawableRes
|
||||||
view.findViewById<ImageView>(R.id.item_emoji_image).isVisible = true
|
if (drawableRes != null) {
|
||||||
view.findViewById<ImageView>(R.id.item_emoji_image).setImageDrawable(ContextCompat.getDrawable(view.context, it))
|
views.itemEmojiTv.isVisible = false
|
||||||
} ?: run {
|
views.itemEmojiImage.isVisible = true
|
||||||
view.findViewById<TextView>(R.id.item_emoji_tv).isVisible = true
|
views.itemEmojiImage.setImageDrawable(ContextCompat.getDrawable(view.context, drawableRes))
|
||||||
view.findViewById<ImageView>(R.id.item_emoji_image).isVisible = false
|
} else {
|
||||||
view.findViewById<TextView>(R.id.item_emoji_tv).text = rep.emoji
|
views.itemEmojiTv.isVisible = true
|
||||||
|
views.itemEmojiImage.isVisible = false
|
||||||
|
views.itemEmojiTv.text = rep.emoji
|
||||||
}
|
}
|
||||||
view.findViewById<TextView>(R.id.item_emoji_name_tv).setText(rep.nameResId)
|
views.itemEmojiNameTv.setText(rep.nameResId)
|
||||||
}
|
}
|
||||||
|
|
||||||
class Holder : VectorEpoxyHolder() {
|
class Holder : VectorEpoxyHolder() {
|
||||||
|
@ -69,7 +69,7 @@ abstract class CallTileTimelineItem : AbsBaseMessageItem<CallTileTimelineItem.Ho
|
|||||||
holder.acceptView.onClick {
|
holder.acceptView.onClick {
|
||||||
attributes.callback?.onTimelineItemAction(RoomDetailAction.AcceptCall(callId = attributes.callId))
|
attributes.callback?.onTimelineItemAction(RoomDetailAction.AcceptCall(callId = attributes.callId))
|
||||||
}
|
}
|
||||||
holder.rejectView.setLeftDrawable(R.drawable.ic_call_hangup, R.attr.colorError)
|
holder.rejectView.setLeftDrawable(R.drawable.ic_call_hangup, R.attr.colorOnPrimary)
|
||||||
holder.rejectView.onClick {
|
holder.rejectView.onClick {
|
||||||
attributes.callback?.onTimelineItemAction(RoomDetailAction.EndCall)
|
attributes.callback?.onTimelineItemAction(RoomDetailAction.EndCall)
|
||||||
}
|
}
|
||||||
@ -78,17 +78,17 @@ abstract class CallTileTimelineItem : AbsBaseMessageItem<CallTileTimelineItem.Ho
|
|||||||
CallKind.CONFERENCE -> {
|
CallKind.CONFERENCE -> {
|
||||||
holder.rejectView.setText(R.string.ignore)
|
holder.rejectView.setText(R.string.ignore)
|
||||||
holder.acceptView.setText(R.string.join)
|
holder.acceptView.setText(R.string.join)
|
||||||
holder.acceptView.setLeftDrawable(R.drawable.ic_call_audio_small, R.attr.colorPrimary)
|
holder.acceptView.setLeftDrawable(R.drawable.ic_call_audio_small, R.attr.colorOnPrimary)
|
||||||
}
|
}
|
||||||
CallKind.AUDIO -> {
|
CallKind.AUDIO -> {
|
||||||
holder.rejectView.setText(R.string.call_notification_reject)
|
holder.rejectView.setText(R.string.call_notification_reject)
|
||||||
holder.acceptView.setText(R.string.call_notification_answer)
|
holder.acceptView.setText(R.string.call_notification_answer)
|
||||||
holder.acceptView.setLeftDrawable(R.drawable.ic_call_audio_small, R.attr.colorPrimary)
|
holder.acceptView.setLeftDrawable(R.drawable.ic_call_audio_small, R.attr.colorOnPrimary)
|
||||||
}
|
}
|
||||||
CallKind.VIDEO -> {
|
CallKind.VIDEO -> {
|
||||||
holder.rejectView.setText(R.string.call_notification_reject)
|
holder.rejectView.setText(R.string.call_notification_reject)
|
||||||
holder.acceptView.setText(R.string.call_notification_answer)
|
holder.acceptView.setText(R.string.call_notification_answer)
|
||||||
holder.acceptView.setLeftDrawable(R.drawable.ic_call_video_small, R.attr.colorPrimary)
|
holder.acceptView.setLeftDrawable(R.drawable.ic_call_video_small, R.attr.colorOnPrimary)
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
Timber.w("Shouldn't be in that state")
|
Timber.w("Shouldn't be in that state")
|
||||||
|
@ -18,11 +18,10 @@ package im.vector.app.features.popup
|
|||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.ImageView
|
|
||||||
import android.widget.TextView
|
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.extensions.setLeftDrawable
|
import im.vector.app.core.extensions.setLeftDrawable
|
||||||
import im.vector.app.core.glide.GlideApp
|
import im.vector.app.core.glide.GlideApp
|
||||||
|
import im.vector.app.databinding.AlerterIncomingCallLayoutBinding
|
||||||
import im.vector.app.features.home.AvatarRenderer
|
import im.vector.app.features.home.AvatarRenderer
|
||||||
import org.matrix.android.sdk.api.util.MatrixItem
|
import org.matrix.android.sdk.api.util.MatrixItem
|
||||||
|
|
||||||
@ -40,30 +39,24 @@ class IncomingCallAlert(uid: String,
|
|||||||
private val avatarRenderer: AvatarRenderer,
|
private val avatarRenderer: AvatarRenderer,
|
||||||
private val isVideoCall: Boolean,
|
private val isVideoCall: Boolean,
|
||||||
private val onAccept: () -> Unit,
|
private val onAccept: () -> Unit,
|
||||||
private val onReject: () -> Unit)
|
private val onReject: () -> Unit) : VectorAlert.ViewBinder {
|
||||||
: VectorAlert.ViewBinder {
|
|
||||||
|
|
||||||
override fun bind(view: View) {
|
override fun bind(view: View) {
|
||||||
val (callKindText, callKindIcon) = if (isVideoCall) {
|
val views = AlerterIncomingCallLayoutBinding.bind(view)
|
||||||
Pair(R.string.action_video_call, R.drawable.ic_call_video_small)
|
val (callKindText, callKindIcon, callKindActionIcon) = if (isVideoCall) {
|
||||||
|
Triple(R.string.action_video_call, R.drawable.ic_call_video_small, R.drawable.ic_call_answer_video)
|
||||||
} else {
|
} else {
|
||||||
Pair(R.string.action_voice_call, R.drawable.ic_call_audio_small)
|
Triple(R.string.action_voice_call, R.drawable.ic_call_audio_small, R.drawable.ic_call_answer)
|
||||||
}
|
}
|
||||||
view.findViewById<TextView>(R.id.incomingCallKindView).apply {
|
views.incomingCallKindView.setText(callKindText)
|
||||||
setText(callKindText)
|
views.incomingCallKindView.setLeftDrawable(callKindIcon)
|
||||||
setLeftDrawable(callKindIcon)
|
views.incomingCallNameView.text = matrixItem?.getBestName()
|
||||||
}
|
matrixItem?.let { avatarRenderer.render(it, views.incomingCallAvatar, GlideApp.with(view.context.applicationContext)) }
|
||||||
view.findViewById<TextView>(R.id.incomingCallNameView).text = matrixItem?.getBestName()
|
views.incomingCallAcceptView.setOnClickListener {
|
||||||
view.findViewById<ImageView>(R.id.incomingCallAvatar)?.let { imageView ->
|
|
||||||
matrixItem?.let { avatarRenderer.render(it, imageView, GlideApp.with(view.context.applicationContext)) }
|
|
||||||
}
|
|
||||||
view.findViewById<ImageView>(R.id.incomingCallAcceptView).apply {
|
|
||||||
setOnClickListener {
|
|
||||||
onAccept()
|
onAccept()
|
||||||
}
|
}
|
||||||
setImageResource(callKindIcon)
|
views.incomingCallAcceptView.setImageResource(callKindActionIcon)
|
||||||
}
|
views.incomingCallRejectView.setOnClickListener {
|
||||||
view.findViewById<ImageView>(R.id.incomingCallRejectView).setOnClickListener {
|
|
||||||
onReject()
|
onReject()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,10 +18,10 @@ package im.vector.app.features.popup
|
|||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.ImageView
|
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.glide.GlideApp
|
import im.vector.app.core.glide.GlideApp
|
||||||
|
import im.vector.app.databinding.AlerterVerificationLayoutBinding
|
||||||
import im.vector.app.features.home.AvatarRenderer
|
import im.vector.app.features.home.AvatarRenderer
|
||||||
import org.matrix.android.sdk.api.util.MatrixItem
|
import org.matrix.android.sdk.api.util.MatrixItem
|
||||||
|
|
||||||
@ -33,19 +33,15 @@ class VerificationVectorAlert(uid: String,
|
|||||||
* Alert are displayed by default, but let this lambda return false to prevent displaying
|
* Alert are displayed by default, but let this lambda return false to prevent displaying
|
||||||
*/
|
*/
|
||||||
override val shouldBeDisplayedIn: ((Activity) -> Boolean) = { true }
|
override val shouldBeDisplayedIn: ((Activity) -> Boolean) = { true }
|
||||||
) : DefaultVectorAlert(
|
) : DefaultVectorAlert(uid, title, description, iconId, shouldBeDisplayedIn) {
|
||||||
uid, title, description, iconId, shouldBeDisplayedIn
|
|
||||||
) {
|
|
||||||
override val layoutRes = R.layout.alerter_verification_layout
|
override val layoutRes = R.layout.alerter_verification_layout
|
||||||
|
|
||||||
class ViewBinder(private val matrixItem: MatrixItem?,
|
class ViewBinder(private val matrixItem: MatrixItem?,
|
||||||
private val avatarRenderer: AvatarRenderer)
|
private val avatarRenderer: AvatarRenderer) : VectorAlert.ViewBinder {
|
||||||
: VectorAlert.ViewBinder {
|
|
||||||
|
|
||||||
override fun bind(view: View) {
|
override fun bind(view: View) {
|
||||||
view.findViewById<ImageView>(R.id.ivUserAvatar)?.let { imageView ->
|
val views = AlerterVerificationLayoutBinding.bind(view)
|
||||||
matrixItem?.let { avatarRenderer.render(it, imageView, GlideApp.with(view.context.applicationContext)) }
|
matrixItem?.let { avatarRenderer.render(it, views.ivUserAvatar, GlideApp.with(view.context.applicationContext)) }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,13 +18,10 @@ package im.vector.app.features.settings.troubleshoot
|
|||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.Button
|
|
||||||
import android.widget.ImageView
|
|
||||||
import android.widget.ProgressBar
|
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
|
import im.vector.app.databinding.ItemNotificationTroubleshootBinding
|
||||||
import im.vector.app.features.themes.ThemeUtils
|
import im.vector.app.features.themes.ThemeUtils
|
||||||
|
|
||||||
class NotificationTroubleshootRecyclerViewAdapter(val tests: ArrayList<TroubleshootTest>)
|
class NotificationTroubleshootRecyclerViewAdapter(val tests: ArrayList<TroubleshootTest>)
|
||||||
@ -46,71 +43,67 @@ class NotificationTroubleshootRecyclerViewAdapter(val tests: ArrayList<Troublesh
|
|||||||
override fun getItemCount(): Int = tests.size
|
override fun getItemCount(): Int = tests.size
|
||||||
|
|
||||||
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||||
private val troubleshootProgressBar = itemView.findViewById<ProgressBar>(R.id.troubleshootProgressBar)
|
private val views = ItemNotificationTroubleshootBinding.bind(itemView)
|
||||||
private val troubleshootTestTitle = itemView.findViewById<TextView>(R.id.troubleshootTestTitle)
|
|
||||||
private val troubleshootTestDescription = itemView.findViewById<TextView>(R.id.troubleshootTestDescription)
|
|
||||||
private val troubleshootStatusIcon = itemView.findViewById<ImageView>(R.id.troubleshootStatusIcon)
|
|
||||||
private val troubleshootTestButton = itemView.findViewById<Button>(R.id.troubleshootTestButton)
|
|
||||||
|
|
||||||
fun bind(test: TroubleshootTest) {
|
fun bind(test: TroubleshootTest) {
|
||||||
val context = itemView.context
|
val context = itemView.context
|
||||||
troubleshootTestTitle.setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_primary))
|
views.troubleshootTestTitle.setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_primary))
|
||||||
troubleshootTestDescription.setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_secondary))
|
views.troubleshootTestDescription.setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_secondary))
|
||||||
|
|
||||||
when (test.status) {
|
when (test.status) {
|
||||||
TroubleshootTest.TestStatus.NOT_STARTED -> {
|
TroubleshootTest.TestStatus.NOT_STARTED -> {
|
||||||
troubleshootTestTitle.setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_secondary))
|
views.troubleshootTestTitle.setTextColor(ThemeUtils.getColor(context, R.attr.vctr_content_secondary))
|
||||||
|
|
||||||
troubleshootProgressBar.visibility = View.INVISIBLE
|
views.troubleshootProgressBar.visibility = View.INVISIBLE
|
||||||
troubleshootStatusIcon.visibility = View.VISIBLE
|
views.troubleshootStatusIcon.visibility = View.VISIBLE
|
||||||
troubleshootStatusIcon.setImageResource(R.drawable.unit_test)
|
views.troubleshootStatusIcon.setImageResource(R.drawable.unit_test)
|
||||||
}
|
}
|
||||||
TroubleshootTest.TestStatus.WAITING_FOR_USER -> {
|
TroubleshootTest.TestStatus.WAITING_FOR_USER -> {
|
||||||
troubleshootProgressBar.visibility = View.INVISIBLE
|
views.troubleshootProgressBar.visibility = View.INVISIBLE
|
||||||
troubleshootStatusIcon.visibility = View.VISIBLE
|
views.troubleshootStatusIcon.visibility = View.VISIBLE
|
||||||
val infoColor = ContextCompat.getColor(context, R.color.vector_info_color)
|
val infoColor = ContextCompat.getColor(context, R.color.vector_info_color)
|
||||||
val drawable = ContextCompat.getDrawable(itemView.context, R.drawable.ic_notification_privacy_warning)?.apply {
|
val drawable = ContextCompat.getDrawable(itemView.context, R.drawable.ic_notification_privacy_warning)?.apply {
|
||||||
ThemeUtils.tintDrawableWithColor(this, infoColor)
|
ThemeUtils.tintDrawableWithColor(this, infoColor)
|
||||||
}
|
}
|
||||||
troubleshootStatusIcon.setImageDrawable(drawable)
|
views.troubleshootStatusIcon.setImageDrawable(drawable)
|
||||||
troubleshootTestDescription.setTextColor(infoColor)
|
views.troubleshootTestDescription.setTextColor(infoColor)
|
||||||
}
|
}
|
||||||
TroubleshootTest.TestStatus.RUNNING -> {
|
TroubleshootTest.TestStatus.RUNNING -> {
|
||||||
troubleshootProgressBar.visibility = View.VISIBLE
|
views.troubleshootProgressBar.visibility = View.VISIBLE
|
||||||
troubleshootStatusIcon.visibility = View.INVISIBLE
|
views.troubleshootStatusIcon.visibility = View.INVISIBLE
|
||||||
}
|
}
|
||||||
TroubleshootTest.TestStatus.FAILED -> {
|
TroubleshootTest.TestStatus.FAILED -> {
|
||||||
troubleshootProgressBar.visibility = View.INVISIBLE
|
views.troubleshootProgressBar.visibility = View.INVISIBLE
|
||||||
troubleshootStatusIcon.visibility = View.VISIBLE
|
views.troubleshootStatusIcon.visibility = View.VISIBLE
|
||||||
troubleshootStatusIcon.setImageResource(R.drawable.unit_test_ko)
|
views.troubleshootStatusIcon.setImageResource(R.drawable.unit_test_ko)
|
||||||
troubleshootStatusIcon.imageTintList = null
|
views.troubleshootStatusIcon.imageTintList = null
|
||||||
troubleshootTestDescription.setTextColor(ThemeUtils.getColor(context, R.attr.colorError))
|
views.troubleshootTestDescription.setTextColor(ThemeUtils.getColor(context, R.attr.colorError))
|
||||||
}
|
}
|
||||||
TroubleshootTest.TestStatus.SUCCESS -> {
|
TroubleshootTest.TestStatus.SUCCESS -> {
|
||||||
troubleshootProgressBar.visibility = View.INVISIBLE
|
views.troubleshootProgressBar.visibility = View.INVISIBLE
|
||||||
troubleshootStatusIcon.visibility = View.VISIBLE
|
views.troubleshootStatusIcon.visibility = View.VISIBLE
|
||||||
troubleshootStatusIcon.setImageResource(R.drawable.unit_test_ok)
|
views.troubleshootStatusIcon.setImageResource(R.drawable.unit_test_ok)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val quickFix = test.quickFix
|
val quickFix = test.quickFix
|
||||||
if (quickFix != null) {
|
if (quickFix != null) {
|
||||||
troubleshootTestButton.setText(test.quickFix!!.title)
|
views.troubleshootTestButton.setText(test.quickFix!!.title)
|
||||||
troubleshootTestButton.setOnClickListener {
|
views.troubleshootTestButton.setOnClickListener {
|
||||||
test.quickFix!!.doFix()
|
test.quickFix!!.doFix()
|
||||||
}
|
}
|
||||||
troubleshootTestButton.visibility = View.VISIBLE
|
views.troubleshootTestButton.visibility = View.VISIBLE
|
||||||
} else {
|
} else {
|
||||||
troubleshootTestButton.visibility = View.GONE
|
views.troubleshootTestButton.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
troubleshootTestTitle.setText(test.titleResId)
|
views.troubleshootTestTitle.setText(test.titleResId)
|
||||||
val description = test.description
|
val description = test.description
|
||||||
if (description == null) {
|
if (description == null) {
|
||||||
troubleshootTestDescription.visibility = View.GONE
|
views.troubleshootTestDescription.visibility = View.GONE
|
||||||
} else {
|
} else {
|
||||||
troubleshootTestDescription.visibility = View.VISIBLE
|
views.troubleshootTestDescription.visibility = View.VISIBLE
|
||||||
troubleshootTestDescription.text = description
|
views.troubleshootTestDescription.text = description
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,9 @@ import android.content.Intent
|
|||||||
import android.webkit.WebChromeClient
|
import android.webkit.WebChromeClient
|
||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import androidx.annotation.CallSuper
|
import androidx.annotation.CallSuper
|
||||||
import im.vector.app.R
|
|
||||||
import im.vector.app.core.di.ScreenComponent
|
import im.vector.app.core.di.ScreenComponent
|
||||||
import im.vector.app.core.platform.VectorBaseActivity
|
import im.vector.app.core.platform.VectorBaseActivity
|
||||||
import im.vector.app.databinding.ActivityVectorWebViewBinding
|
import im.vector.app.databinding.ActivityVectorWebViewBinding
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.session.Session
|
import org.matrix.android.sdk.api.session.Session
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@ -48,7 +46,7 @@ class VectorWebViewActivity : VectorBaseActivity<ActivityVectorWebViewBinding>()
|
|||||||
|
|
||||||
override fun initUiAndData() {
|
override fun initUiAndData() {
|
||||||
configureToolbar(views.webviewToolbar)
|
configureToolbar(views.webviewToolbar)
|
||||||
waitingView = findViewById(R.id.simple_webview_loader)
|
waitingView = views.simpleWebviewLoader
|
||||||
|
|
||||||
views.simpleWebview.settings.apply {
|
views.simpleWebview.settings.apply {
|
||||||
// Enable Javascript
|
// Enable Javascript
|
||||||
|
12
vector/src/main/res/drawable/ic_call_answer_video.xml
Normal file
12
vector/src/main/res/drawable/ic_call_answer_video.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="25dp"
|
||||||
|
android:height="25dp"
|
||||||
|
android:viewportWidth="25"
|
||||||
|
android:viewportHeight="25">
|
||||||
|
<path
|
||||||
|
android:pathData="M0.5,7.5C0.5,5.8432 1.8432,4.5 3.5,4.5H14.5C16.1569,4.5 17.5,5.8432 17.5,7.5V17.5C17.5,19.1569 16.1569,20.5 14.5,20.5H3.5C1.8432,20.5 0.5,19.1569 0.5,17.5V7.5Z"
|
||||||
|
android:fillColor="#FFFFFF"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M19.5,9.5L22.8753,6.7998C23.5301,6.2759 24.5,6.7421 24.5,7.5806V17.4194C24.5,18.2579 23.5301,18.7241 22.8753,18.2002L19.5,15.5V9.5Z"
|
||||||
|
android:fillColor="#FFFFFF"/>
|
||||||
|
</vector>
|
@ -51,6 +51,7 @@
|
|||||||
app:layout_constraintEnd_toStartOf="@+id/incomingCallRejectView"
|
app:layout_constraintEnd_toStartOf="@+id/incomingCallRejectView"
|
||||||
app:layout_constraintStart_toStartOf="@id/incomingCallNameView"
|
app:layout_constraintStart_toStartOf="@id/incomingCallNameView"
|
||||||
app:layout_constraintTop_toBottomOf="@id/incomingCallNameView"
|
app:layout_constraintTop_toBottomOf="@id/incomingCallNameView"
|
||||||
|
tools:drawableStart="@drawable/ic_call_audio_small"
|
||||||
tools:text="@string/action_voice_call" />
|
tools:text="@string/action_voice_call" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
@ -64,10 +65,12 @@
|
|||||||
android:contentDescription="@string/call_notification_answer"
|
android:contentDescription="@string/call_notification_answer"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
android:src="@drawable/ic_call_answer"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:tint="?colorOnPrimary"
|
||||||
|
tools:ignore="MissingPrefix"
|
||||||
|
tools:src="@drawable/ic_call_answer" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/incomingCallRejectView"
|
android:id="@+id/incomingCallRejectView"
|
||||||
@ -83,6 +86,8 @@
|
|||||||
android:src="@drawable/ic_call_hangup"
|
android:src="@drawable/ic_call_hangup"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@id/incomingCallAcceptView"
|
app:layout_constraintEnd_toStartOf="@id/incomingCallAcceptView"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:tint="?colorOnPrimary"
|
||||||
|
tools:ignore="MissingPrefix" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -5,8 +5,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
tools:background="@android:color/darker_gray"
|
tools:background="?colorPrimary"
|
||||||
tools:foreground="?android:attr/selectableItemBackground"
|
|
||||||
tools:style="@style/AlertStyle">
|
tools:style="@style/AlertStyle">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
@ -20,7 +19,8 @@
|
|||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:src="@sample/user_round_avatars" />
|
tools:src="@sample/user_round_avatars" />
|
||||||
|
|
||||||
<ImageView
|
<!-- Note: this is handled by the Alerter library, it has to be a AppCompatImageView -->
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/ivIcon"
|
android:id="@+id/ivIcon"
|
||||||
android:layout_width="24dp"
|
android:layout_width="24dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
@ -42,7 +42,8 @@
|
|||||||
app:layout_constraintStart_toEndOf="@id/ivUserAvatar"
|
app:layout_constraintStart_toEndOf="@id/ivUserAvatar"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<TextView
|
<!-- Note: this is handled by the Alerter library, it has to be a AppCompatTextView -->
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tvTitle"
|
android:id="@+id/tvTitle"
|
||||||
style="@style/Widget.Vector.TextView.Subtitle"
|
style="@style/Widget.Vector.TextView.Subtitle"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@ -56,7 +57,8 @@
|
|||||||
tools:text="Title"
|
tools:text="Title"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<TextView
|
<!-- Note: this is handled by the Alerter library, it has to be a AppCompatTextView -->
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tvText"
|
android:id="@+id/tvText"
|
||||||
style="@style/Widget.Vector.TextView.Body"
|
style="@style/Widget.Vector.TextView.Body"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:src="@drawable/ic_call_answer"
|
android:src="@drawable/ic_call_answer"
|
||||||
|
app:tint="?colorOnPrimary"
|
||||||
tools:ignore="MissingConstraints,MissingPrefix" />
|
tools:ignore="MissingConstraints,MissingPrefix" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
@ -38,6 +39,7 @@
|
|||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:src="@drawable/ic_call_hangup"
|
android:src="@drawable/ic_call_hangup"
|
||||||
|
app:tint="?colorOnPrimary"
|
||||||
tools:ignore="MissingConstraints,MissingPrefix" />
|
tools:ignore="MissingConstraints,MissingPrefix" />
|
||||||
|
|
||||||
<androidx.constraintlayout.helper.widget.Flow
|
<androidx.constraintlayout.helper.widget.Flow
|
||||||
@ -100,6 +102,7 @@
|
|||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
android:padding="12dp"
|
android:padding="12dp"
|
||||||
android:src="@drawable/ic_call_hangup"
|
android:src="@drawable/ic_call_hangup"
|
||||||
|
app:tint="?colorOnPrimary"
|
||||||
tools:ignore="MissingConstraints,MissingPrefix" />
|
tools:ignore="MissingConstraints,MissingPrefix" />
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
@ -5,6 +5,6 @@
|
|||||||
android:id="@+id/roomProfileShareAction"
|
android:id="@+id/roomProfileShareAction"
|
||||||
android:icon="@drawable/ic_material_share"
|
android:icon="@drawable/ic_material_share"
|
||||||
android:title="@string/share"
|
android:title="@string/share"
|
||||||
app:iconTint="?vctr_content_secondary"
|
app:iconTint="?colorSecondary"
|
||||||
app:showAsAction="ifRoom" />
|
app:showAsAction="ifRoom" />
|
||||||
</menu>
|
</menu>
|
Loading…
Reference in New Issue
Block a user