From f44d066e671419bd33d39d318a9d4a60a1e50a63 Mon Sep 17 00:00:00 2001 From: ThomasSession Date: Mon, 2 Sep 2024 14:07:19 +1000 Subject: [PATCH] Changed the missed call control message logic The control message is now clickable when the phone toggle is disabled or when the microphone permission is not given --- .../conversation/v2/ConversationAdapter.kt | 40 +-------- .../v2/messages/ControlMessageView.kt | 85 +++++++++++++++++- .../securesms/database/MmsSmsColumns.java | 7 +- .../securesms/database/SmsDatabase.java | 2 - .../database/model/DisplayRecord.java | 3 - .../database/model/MessageRecord.java | 2 - .../securesms/webrtc/CallMessageProcessor.kt | 37 ++------ .../drawable-hdpi/ic_info_outline_light.png | Bin 530 -> 0 bytes .../drawable-mdpi/ic_info_outline_light.png | Bin 362 -> 0 bytes .../drawable-xhdpi/ic_info_outline_light.png | Bin 691 -> 0 bytes .../drawable-xxhdpi/ic_info_outline_light.png | Bin 1090 -> 0 bytes .../main/res/drawable/ic_baseline_info_24.xml | 10 --- .../main/res/drawable/ic_incoming_call.xml | 4 +- app/src/main/res/drawable/ic_missed_call.xml | 4 +- .../main/res/drawable/ic_outgoing_call.xml | 4 +- .../main/res/layout/view_control_message.xml | 1 - app/src/main/res/values/themes.xml | 2 +- .../messaging/calls/CallMessageType.kt | 3 +- .../utilities/UpdateMessageBuilder.kt | 8 +- 19 files changed, 105 insertions(+), 107 deletions(-) delete mode 100644 app/src/main/res/drawable-hdpi/ic_info_outline_light.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_info_outline_light.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_info_outline_light.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_info_outline_light.png delete mode 100644 app/src/main/res/drawable/ic_baseline_info_24.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt index f1ed1177f0..8b468c3606 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationAdapter.kt @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.conversation.v2 +import android.Manifest import android.content.Context import android.content.Intent import android.database.Cursor @@ -33,7 +34,9 @@ import org.thoughtcrime.securesms.dependencies.DatabaseComponent import com.bumptech.glide.RequestManager import com.squareup.phrase.Phrase import org.session.libsession.utilities.StringSubstitutionConstants.APP_NAME_KEY +import org.session.libsession.utilities.TextSecurePreferences import org.thoughtcrime.securesms.MissingMicrophonePermissionDialog +import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.preferences.PrivacySettingsActivity import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.ui.getSubbedCharSequence @@ -172,43 +175,6 @@ class ConversationAdapter( is ControlMessageViewHolder -> { viewHolder.view.bind(message, messageBefore) - when { - // Click behaviour for first missed call control message - //todo this behaviour is different than iOS where the control message is always clickable when the call toggle is disabled in the privacy page - message.isCallLog && message.isFirstMissedCall -> { - viewHolder.view.setOnClickListener { - context.showSessionDialog { - val titleTxt = context.getSubbedString( - R.string.callsMissedCallFrom, - NAME_KEY to message.individualRecipient.name!! - ) - title(titleTxt) - - val bodyTxt = context.getSubbedCharSequence( - R.string.callsYouMissedCallPermissions, - NAME_KEY to message.individualRecipient.name!! - ) - text(bodyTxt) - - button(R.string.sessionSettings) { - Intent(context, PrivacySettingsActivity::class.java) - .let(context::startActivity) - } - cancelButton() - } - } - } - - // Click behaviour for missed calls due to missing permission - message.isCallLog && message.isMissedPermissionCall -> { - viewHolder.view.setOnClickListener { - MissingMicrophonePermissionDialog.show(context) - } - } - - // non clickable in other cases - else -> viewHolder.view.setOnClickListener(null) - } } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt index 315e24da5c..80092587b3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/ControlMessageView.kt @@ -1,6 +1,8 @@ package org.thoughtcrime.securesms.conversation.v2.messages +import android.Manifest import android.content.Context +import android.content.Intent import android.util.AttributeSet import android.util.Log import android.view.LayoutInflater @@ -11,7 +13,6 @@ import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.squareup.phrase.Phrase import dagger.hilt.android.AndroidEntryPoint -import javax.inject.Inject import network.loki.messenger.R import network.loki.messenger.databinding.ViewControlMessageBinding import network.loki.messenger.libsession_util.util.ExpiryMode @@ -19,11 +20,19 @@ import org.session.libsession.messaging.MessagingModuleConfiguration import org.session.libsession.messaging.messages.ExpirationConfiguration import org.session.libsession.utilities.StringSubstitutionConstants.NAME_KEY import org.session.libsession.utilities.TextSecurePreferences +import org.session.libsession.utilities.getColorFromAttr +import org.thoughtcrime.securesms.MissingMicrophonePermissionDialog import org.thoughtcrime.securesms.conversation.disappearingmessages.DisappearingMessages import org.thoughtcrime.securesms.conversation.disappearingmessages.expiryMode import org.thoughtcrime.securesms.database.model.MessageRecord import org.thoughtcrime.securesms.dependencies.DatabaseComponent +import org.thoughtcrime.securesms.permissions.Permissions +import org.thoughtcrime.securesms.preferences.PrivacySettingsActivity +import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.ui.getSubbedCharSequence +import org.thoughtcrime.securesms.ui.getSubbedString +import javax.inject.Inject + @AndroidEntryPoint class ControlMessageView : LinearLayout { @@ -32,6 +41,12 @@ class ControlMessageView : LinearLayout { private val binding = ViewControlMessageBinding.inflate(LayoutInflater.from(context), this, true) + private val infoDrawable by lazy { + val d = ResourcesCompat.getDrawable(resources, R.drawable.ic_info_outline_white_24dp, context.theme) + d?.setTint(context.getColorFromAttr(R.attr.message_received_text_color)) + d + } + constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet) : super(context, attrs) constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) @@ -98,17 +113,63 @@ class ControlMessageView : LinearLayout { val drawable = when { message.isIncomingCall -> R.drawable.ic_incoming_call message.isOutgoingCall -> R.drawable.ic_outgoing_call - message.isFirstMissedCall -> R.drawable.ic_info_outline_light else -> R.drawable.ic_missed_call } binding.textView.isVisible = false - binding.callTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(ResourcesCompat.getDrawable(resources, drawable, context.theme), null, null, null) + binding.callTextView.setCompoundDrawablesRelativeWithIntrinsicBounds( + ResourcesCompat.getDrawable(resources, drawable, context.theme), + null, null, null) binding.callTextView.text = messageBody if (message.expireStarted > 0 && message.expiresIn > 0) { binding.expirationTimerView.isVisible = true binding.expirationTimerView.setExpirationTime(message.expireStarted, message.expiresIn) } + + // remove clicks by default + setOnClickListener(null) + hideInfo() + + // handle click behaviour depending on criteria + if (message.isMissedCall || message.isFirstMissedCall) { + when { + // if we're currently missing the audio/microphone permission, + // show a dedicated permission dialog + !Permissions.hasAll(context, Manifest.permission.RECORD_AUDIO) -> { + showInfo() + setOnClickListener { + MissingMicrophonePermissionDialog.show(context) + } + } + + // when the call toggle is disabled in the privacy screen, + // show a dedicated privacy dialog + !TextSecurePreferences.isCallNotificationsEnabled(context) -> { + showInfo() + setOnClickListener { + context.showSessionDialog { + val titleTxt = context.getSubbedString( + R.string.callsMissedCallFrom, + NAME_KEY to message.individualRecipient.name!! + ) + title(titleTxt) + + val bodyTxt = context.getSubbedCharSequence( + R.string.callsYouMissedCallPermissions, + NAME_KEY to message.individualRecipient.name!! + ) + text(bodyTxt) + + button(R.string.sessionSettings) { + Intent(context, PrivacySettingsActivity::class.java) + .let(context::startActivity) + } + cancelButton() + } + } + } + } + } } } @@ -116,6 +177,24 @@ class ControlMessageView : LinearLayout { binding.callView.isVisible = message.isCallLog } + fun showInfo(){ + binding.callTextView.setCompoundDrawablesRelativeWithIntrinsicBounds( + binding.callTextView.compoundDrawablesRelative.first(), + null, + infoDrawable, + null + ) + } + + fun hideInfo(){ + binding.callTextView.setCompoundDrawablesRelativeWithIntrinsicBounds( + binding.callTextView.compoundDrawablesRelative.first(), + null, + null, + null + ) + } + fun recycle() { } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsColumns.java b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsColumns.java index f98a3b6d62..de5094fbd6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsColumns.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/MmsSmsColumns.java @@ -41,7 +41,6 @@ public interface MmsSmsColumns { protected static final long MISSED_CALL_TYPE = 3; protected static final long JOINED_TYPE = 4; protected static final long FIRST_MISSED_CALL_TYPE = 5; - protected static final long MISSED_PERMISSION_CALL_TYPE = 6; protected static final long BASE_INBOX_TYPE = 20; protected static final long BASE_OUTBOX_TYPE = 21; @@ -236,7 +235,7 @@ public interface MmsSmsColumns { public static boolean isCallLog(long type) { long baseType = type & BASE_TYPE_MASK; return baseType == INCOMING_CALL_TYPE || baseType == OUTGOING_CALL_TYPE || - baseType == MISSED_CALL_TYPE || baseType == FIRST_MISSED_CALL_TYPE || baseType == MISSED_PERMISSION_CALL_TYPE; + baseType == MISSED_CALL_TYPE || baseType == FIRST_MISSED_CALL_TYPE; } public static boolean isExpirationTimerUpdate(long type) { @@ -267,10 +266,6 @@ public interface MmsSmsColumns { return (type & BASE_TYPE_MASK) == MISSED_CALL_TYPE; } - public static boolean isMissedPermissionCall(long type) { - return (type & BASE_TYPE_MASK) == MISSED_PERMISSION_CALL_TYPE; - } - public static boolean isFirstMissedCall(long type) { return (type & BASE_TYPE_MASK) == FIRST_MISSED_CALL_TYPE; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java index 09f0d64340..f02498112f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/SmsDatabase.java @@ -501,8 +501,6 @@ public class SmsDatabase extends MessagingDatabase { return Types.MISSED_CALL_TYPE; case CALL_FIRST_MISSED: return Types.FIRST_MISSED_CALL_TYPE; - case CALL_MISSED_PERMISSION: - return Types.MISSED_PERMISSION_CALL_TYPE; default: return 0; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/DisplayRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/DisplayRecord.java index 13fc8c4042..639ea0db09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/DisplayRecord.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/DisplayRecord.java @@ -142,9 +142,6 @@ public abstract class DisplayRecord { public boolean isFirstMissedCall() { return SmsDatabase.Types.isFirstMissedCall(type); } - public boolean isMissedPermissionCall() { - return SmsDatabase.Types.isMissedPermissionCall(type); - } public boolean isDeleted() { return MmsSmsColumns.Types.isDeletedMessage(type); } public boolean isMessageRequestResponse() { return MmsSmsColumns.Types.isMessageRequestResponse(type); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java index c5bdc48675..a61b78b4b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java @@ -134,8 +134,6 @@ public abstract class MessageRecord extends DisplayRecord { callType = CallMessageType.CALL_OUTGOING; } else if (isMissedCall()) { callType = CallMessageType.CALL_MISSED; - } else if (isMissedPermissionCall()) { - callType = CallMessageType.CALL_MISSED_PERMISSION; } else { callType = CallMessageType.CALL_FIRST_MISSED; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt index e72a3000a5..c99c063d8c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallMessageProcessor.kt @@ -62,26 +62,15 @@ class CallMessageProcessor(private val context: Context, private val textSecureP if (!approvedContact && storage.getUserPublicKey() != sender) continue // if the user has not enabled voice/video calls - if (!textSecurePreferences.isCallNotificationsEnabled()) { - Log.d("Loki","Dropping call message if call notifications disabled") - if (nextMessage.type != PRE_OFFER) continue - val sentTimestamp = nextMessage.sentTimestamp ?: continue - if (textSecurePreferences.setShownCallNotification()) { - // first time call notification encountered - val notification = CallNotificationBuilder.getFirstCallNotification(context, sender) - context.getSystemService(NotificationManager::class.java).notify(CallNotificationBuilder.WEBRTC_NOTIFICATION, notification) - insertMissedCall(sender, sentTimestamp, isFirstCall = true) - } else { - insertMissedCall(sender, sentTimestamp) - } - continue - } // or if the user has not granted audio/microphone permissions - else if (!Permissions.hasAll(context, Manifest.permission.RECORD_AUDIO)) { + if ( + !textSecurePreferences.isCallNotificationsEnabled() || + !Permissions.hasAll(context, Manifest.permission.RECORD_AUDIO) + ) { + Log.d("Loki","Dropping call message if call notifications disabled") if (nextMessage.type != PRE_OFFER) continue val sentTimestamp = nextMessage.sentTimestamp ?: continue - Log.d("Loki", "Attempted to receive a call without audio permissions") - insertMissedPermissionCall(sender, sentTimestamp) + insertMissedCall(sender, sentTimestamp) continue } @@ -103,20 +92,10 @@ class CallMessageProcessor(private val context: Context, private val textSecureP } } - private fun insertMissedCall(sender: String, sentTimestamp: Long, isFirstCall: Boolean = false) { - val currentUserPublicKey = storage.getUserPublicKey() - if (sender == currentUserPublicKey) return // don't insert a "missed" due to call notifications disabled if it's our own sender - if (isFirstCall) { - storage.insertCallMessage(sender, CallMessageType.CALL_FIRST_MISSED, sentTimestamp) - } else { - storage.insertCallMessage(sender, CallMessageType.CALL_MISSED, sentTimestamp) - } - } - - private fun insertMissedPermissionCall(sender: String, sentTimestamp: Long) { + private fun insertMissedCall(sender: String, sentTimestamp: Long) { val currentUserPublicKey = storage.getUserPublicKey() if (sender == currentUserPublicKey) return // don't insert a "missed" due to call notifications disabled if it's our own sender - storage.insertCallMessage(sender, CallMessageType.CALL_MISSED_PERMISSION, sentTimestamp) + storage.insertCallMessage(sender, CallMessageType.CALL_MISSED, sentTimestamp) } private fun incomingHangup(callMessage: CallMessage) { diff --git a/app/src/main/res/drawable-hdpi/ic_info_outline_light.png b/app/src/main/res/drawable-hdpi/ic_info_outline_light.png deleted file mode 100644 index 765f2008a6d9e747b5affa3c837e1fd7dce534b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmV+t0`2{YP)ST{T(%%`0H{dmWe8+nlAACJ5aUJJ_Xxm|Q(On50I)6@oWjR~GPX%z zN|G`mFW^2uGK0PeB3J28a8aGRc`Q6lg-&skTUhrRHj)lPBNsGN5f~48i-j1 zh)XSuJHQ_tktEqFfF#-EHvDCDJ3-DXh3 zI6skKm!3yDMi#%XtcHr;5^rAdYcJm&91Hnw`vCd-CzSmo(Eb@aSl085{bvIB27u5O UN=Rag*8l(j07*qoM6N<$f)Ntv!Tkdg0003oNkl_eBSkP#V4#3n#lM>9S^@J}`<8B?KjR6J6$ju%~q%u$w@b3qr}Bz)-dFGdW=>nIrU zt+VfJ+Vt!DJ zgZ@YXer5YGCEVAM*oP_bI0slL0alv-QVqY>gFY z8HQzA!WO+P|93HE12b{%wJnaBEqRN)Y(rj5_<)6(iaV}?8JkbY)6@rtU*hsi!O#NW zCeo+FUwJCjJ^~d1kP%+9V8#~vf5e!YfN>h)6J=v$0r~!@34kZUa}pyZ@vU>vWRf%2 zcL5`HchDQOsk**v7`QH$DTOv^5!@!}Nm2-yMw=PoeV(4Ix&wY=p^YW7rj>p%@H1Y> zx+z%}FVyIeM}p0-#nNn+J8hfQEX{&1PQzcG2j8Fwe~TvgCRO;`bo!0T z@V9D1+N=&iyI%gVIP&!HL$Wvof<=Nnd&XZjd*q2@5jYVNEU`(EGG&TvvP6OiBSu_C Z{s2TP?r}|AcXj{(002ovPDHLkV1oNaI_LlZ diff --git a/app/src/main/res/drawable-xxhdpi/ic_info_outline_light.png b/app/src/main/res/drawable-xxhdpi/ic_info_outline_light.png deleted file mode 100644 index 03b5165eb0807cf524ff532cd7e2ab8d1efdff78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1090 zcmV-I1ikx-P)D6vscqAof9!lC@~WXed>rF#(JVtB6LCXo2F}O;}e+3^AJkTOL}dulj7~ua+N7 zOy+bt)Ar82G|uPze9pb!_RhJlbBTzEh=_<#NSqAQEV9Z5yOgOMSeacmSY?qZGQ>HQ z9OWX*6sh6(SdAhDF4Dsxp^Gv8;Tukq_U*uH?7-V7Hh;2<(}wMG85<)UVTLk}0^4VX zZZva=w>S#zEtk+nisv{X*uV6nfl0pLgk+zY413%^@a@DqR+wX)AqMCreqg-}FvK`> ztnl8~|9*JiLz0b#O|Nr}K^kLmf?3}(v%n|McsuI9hO}qO{J>3O zv_hO)eDsJ~CXGV=;Dg7qpg@dvh*6;CkyukGBEh!D1T=yQvh3H5zeOAc*!<^_wd1HF z;W4wk!lrEsb%)L@YO%OccPK5jKW)jNU&#>$xw>oGiS|;bOm*M6Kv-PhyJ)Y{PD*_# z!d1x;CON92%@?iz9*(eUgw1titLIx=_mo7S6#^rCgY!)IzNTBnFR??976Co%wExd{ zQx>W7ENBq`!_>s2Y10%}MF$>&HUaQN`2R%{Sd>IE>(wftkIyduH&_HFE1I7JtpZ?P zM92`Br{edIX%~K`^kbAjEQ>v=DK=Xh2}PIN zET*{O>d7VnNQz111g1D8CesAIoEPUj7N)SoUObC0GcK2B7({F}ui(plm&ui65=4!4{%StHBNv&@BXX*bqvJA=LCooH8n4Kzzhar_mv!0#1uG+Vn&=VN}3m^Ap)Um&?3S z0e4(c3Yr#kQh=_-oIH{Eh-FMb7Zq2O5ltH!DL~bRM$?v33edNuge8~T|E2_p%f-C5 zV-+bt@_RsFhDGytvU z+F}nFrG_l{m?8|Ok=?H`+TjIHQOQ}uqQ5LEIH$VkPtwO8PF-7NfOa^}nn&cSRKR)ebZg%(PWy{q7h93uqcywXzqy+(|Xuvw%Qxcojv?5FTl z;PU$#dAbOd5zz^C_Kpl1=f7-u>)a)aeb}GlZc?K1b4yZUlV8tqBO)RqA|jOW168Y73Ug8^VgLXD07*qo IM6N<$g0!~+rT_o{ diff --git a/app/src/main/res/drawable/ic_baseline_info_24.xml b/app/src/main/res/drawable/ic_baseline_info_24.xml deleted file mode 100644 index 17255b7ae3..0000000000 --- a/app/src/main/res/drawable/ic_baseline_info_24.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_incoming_call.xml b/app/src/main/res/drawable/ic_incoming_call.xml index f9149818c5..73905f175d 100644 --- a/app/src/main/res/drawable/ic_incoming_call.xml +++ b/app/src/main/res/drawable/ic_incoming_call.xml @@ -5,8 +5,8 @@ android:viewportHeight="20"> + android:fillColor="?message_received_text_color"/> + android:fillColor="?message_received_text_color"/> diff --git a/app/src/main/res/drawable/ic_missed_call.xml b/app/src/main/res/drawable/ic_missed_call.xml index e63537737b..a9f3d654a8 100644 --- a/app/src/main/res/drawable/ic_missed_call.xml +++ b/app/src/main/res/drawable/ic_missed_call.xml @@ -5,8 +5,8 @@ android:viewportHeight="20"> + android:fillColor="?danger"/> + android:fillColor="?danger"/> diff --git a/app/src/main/res/drawable/ic_outgoing_call.xml b/app/src/main/res/drawable/ic_outgoing_call.xml index 26024999ee..b6962afb83 100644 --- a/app/src/main/res/drawable/ic_outgoing_call.xml +++ b/app/src/main/res/drawable/ic_outgoing_call.xml @@ -5,8 +5,8 @@ android:viewportHeight="20"> + android:fillColor="?message_received_text_color"/> + android:fillColor="?message_received_text_color"/> diff --git a/app/src/main/res/layout/view_control_message.xml b/app/src/main/res/layout/view_control_message.xml index 45b4ad733c..5d79f1908a 100644 --- a/app/src/main/res/layout/view_control_message.xml +++ b/app/src/main/res/layout/view_control_message.xml @@ -65,7 +65,6 @@ tools:text="You missed a call" android:layout_width="match_parent" android:layout_height="match_parent" - app:drawableTint="?message_received_text_color" app:drawableStartCompat="@drawable/ic_missed_call" /> diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 8b4ee40e70..7f16ea30de 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -48,7 +48,7 @@ @drawable/ic_baseline_select_all_24 @drawable/ic_baseline_call_split_24 @drawable/ic_baseline_launch_24 - @drawable/ic_baseline_info_24 + @drawable/ic_info_outline_white_24dp @drawable/ic_outline_pin_24 @drawable/ic_outline_pin_off_24 @drawable/ic_outline_mark_chat_read_24 diff --git a/libsession/src/main/java/org/session/libsession/messaging/calls/CallMessageType.kt b/libsession/src/main/java/org/session/libsession/messaging/calls/CallMessageType.kt index 15e019fe7e..135f193253 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/calls/CallMessageType.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/calls/CallMessageType.kt @@ -4,6 +4,5 @@ enum class CallMessageType { CALL_MISSED, CALL_INCOMING, CALL_OUTGOING, - CALL_FIRST_MISSED, - CALL_MISSED_PERMISSION, + CALL_FIRST_MISSED } \ No newline at end of file diff --git a/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt b/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt index 6599cc3546..b4eb04969b 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt @@ -8,22 +8,21 @@ import org.session.libsession.messaging.calls.CallMessageType import org.session.libsession.messaging.calls.CallMessageType.CALL_FIRST_MISSED import org.session.libsession.messaging.calls.CallMessageType.CALL_INCOMING import org.session.libsession.messaging.calls.CallMessageType.CALL_MISSED -import org.session.libsession.messaging.calls.CallMessageType.CALL_MISSED_PERMISSION import org.session.libsession.messaging.calls.CallMessageType.CALL_OUTGOING import org.session.libsession.messaging.contacts.Contact import org.session.libsession.messaging.sending_receiving.data_extraction.DataExtractionNotificationInfoMessage import org.session.libsession.messaging.sending_receiving.data_extraction.DataExtractionNotificationInfoMessage.Kind.MEDIA_SAVED import org.session.libsession.messaging.sending_receiving.data_extraction.DataExtractionNotificationInfoMessage.Kind.SCREENSHOT import org.session.libsession.utilities.ExpirationUtil -import org.session.libsession.utilities.getExpirationTypeDisplayValue -import org.session.libsession.utilities.truncateIdForDisplay -import org.session.libsignal.utilities.Log import org.session.libsession.utilities.StringSubstitutionConstants.COUNT_KEY import org.session.libsession.utilities.StringSubstitutionConstants.DISAPPEARING_MESSAGES_TYPE_KEY import org.session.libsession.utilities.StringSubstitutionConstants.GROUP_NAME_KEY import org.session.libsession.utilities.StringSubstitutionConstants.NAME_KEY import org.session.libsession.utilities.StringSubstitutionConstants.OTHER_NAME_KEY import org.session.libsession.utilities.StringSubstitutionConstants.TIME_KEY +import org.session.libsession.utilities.getExpirationTypeDisplayValue +import org.session.libsession.utilities.truncateIdForDisplay +import org.session.libsignal.utilities.Log object UpdateMessageBuilder { const val TAG = "libsession" @@ -266,7 +265,6 @@ object UpdateMessageBuilder { CALL_INCOMING -> Phrase.from(context, R.string.callsCalledYou).put(NAME_KEY, senderName).format().toString() CALL_OUTGOING -> Phrase.from(context, R.string.callsYouCalled).put(NAME_KEY, senderName).format().toString() CALL_MISSED, CALL_FIRST_MISSED -> Phrase.from(context, R.string.callsMissedCallFrom).put(NAME_KEY, senderName).format().toString() - CALL_MISSED_PERMISSION -> Phrase.from(context, R.string.callsMissedCallFrom).put(NAME_KEY, senderName).format().toString() + "\n" + context.getString(R.string.permissionsMicrophoneDescription) } } }