diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt index bfcf6bbab..be0c82643 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt @@ -224,7 +224,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe const val INVITE_CONTACTS = 124 //flag - const val IS_UNSEND_REQUESTS_ENABLED = false + const val IS_UNSEND_REQUESTS_ENABLED = true } // endregion diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/DeleteOptionsBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/DeleteOptionsBottomSheet.kt index 4d84f7c0f..6272a9c22 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/DeleteOptionsBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/DeleteOptionsBottomSheet.kt @@ -6,21 +6,38 @@ import android.view.View import android.view.ViewGroup import androidx.core.view.isVisible import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import kotlinx.android.synthetic.main.fragment_conversation_bottom_sheet.* +import dagger.hilt.android.AndroidEntryPoint import kotlinx.android.synthetic.main.fragment_delete_message_bottom_sheet.* import network.loki.messenger.R +import org.session.libsession.messaging.contacts.Contact import org.session.libsession.utilities.recipients.Recipient +import org.thoughtcrime.securesms.database.SessionContactDatabase import org.thoughtcrime.securesms.util.UiModeUtilities +import javax.inject.Inject -class DeleteOptionsBottomSheet: BottomSheetDialogFragment(), View.OnClickListener { +@AndroidEntryPoint +class DeleteOptionsBottomSheet : BottomSheetDialogFragment(), View.OnClickListener { + + @Inject + lateinit var contactDatabase: SessionContactDatabase lateinit var recipient: Recipient + val contact by lazy { + val senderId = recipient.address.serialize() + // this dialog won't show for open group contacts + contactDatabase.getContactWithSessionID(senderId) + ?.displayName(Contact.ContactContext.REGULAR) + } var onDeleteForMeTapped: (() -> Unit?)? = null var onDeleteForEveryoneTapped: (() -> Unit)? = null var onCancelTapped: (() -> Unit)? = null - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { return inflater.inflate(R.layout.fragment_delete_message_bottom_sheet, container, false) } @@ -34,10 +51,14 @@ class DeleteOptionsBottomSheet: BottomSheetDialogFragment(), View.OnClickListene override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - if (!this::recipient.isInitialized) { return dismiss() } - if (!recipient.isGroupRecipient) { - deleteForEveryoneTextView.text = resources.getString(R.string.delete_message_for_me_and_recipient, recipient.name) + if (!this::recipient.isInitialized) { + return dismiss() } + if (!recipient.isGroupRecipient && !contact.isNullOrEmpty()) { + deleteForEveryoneTextView.text = + resources.getString(R.string.delete_message_for_me_and_recipient, contact) + } + deleteForEveryoneTextView.isVisible = !recipient.isClosedGroupRecipient deleteForMeTextView.setOnClickListener(this) deleteForEveryoneTextView.setOnClickListener(this) cancelTextView.setOnClickListener(this) diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt index a99c26868..4f94df7ce 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/ReceivedMessageHandler.kt @@ -144,7 +144,8 @@ private fun handleConfigurationMessage(message: ConfigurationMessage) { } fun MessageReceiver.handleUnsendRequest(message: UnsendRequest) { - if (message.sender != message.author) { return } + val userPublicKey = MessagingModuleConfiguration.shared.storage.getUserPublicKey() + if (message.sender != message.author && (message.sender != userPublicKey && userPublicKey != null)) { return } val context = MessagingModuleConfiguration.shared.context val storage = MessagingModuleConfiguration.shared.storage val messageDataProvider = MessagingModuleConfiguration.shared.messageDataProvider