mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Disable compose input when opening conversation with unregistered recipient.
This commit is contained in:
@@ -1047,6 +1047,7 @@ class ConversationFragment :
|
||||
inputReadyState.isActiveGroup == false -> disabledInputView.showAsNoLongerAMember()
|
||||
inputReadyState.isRequestingMember == true -> disabledInputView.showAsRequestingMember()
|
||||
inputReadyState.isAnnouncementGroup == true && inputReadyState.isAdmin == false -> disabledInputView.showAsAnnouncementGroupAdminsOnly()
|
||||
!inputReadyState.conversationRecipient.isGroup && !inputReadyState.conversationRecipient.isRegistered -> disabledInputView.showAsInviteToSignal(requireContext(), inputReadyState.conversationRecipient)
|
||||
else -> inputDisabled = false
|
||||
}
|
||||
|
||||
@@ -3487,6 +3488,15 @@ class ConversationFragment :
|
||||
GroupsV1MigrationInitiationBottomSheetDialogFragment.showForInitiation(childFragmentManager, recipient.id)
|
||||
}
|
||||
|
||||
override fun onInviteToSignal(recipient: Recipient) {
|
||||
InviteActions.inviteUserToSignal(
|
||||
context = requireContext(),
|
||||
recipient = recipient,
|
||||
appendInviteToComposer = null,
|
||||
launchIntent = this@ConversationFragment::startActivity
|
||||
)
|
||||
}
|
||||
|
||||
private fun Single<Result<Unit, GroupChangeFailureReason>>.subscribeWithShowProgress(logMessage: String): Disposable {
|
||||
return doOnSubscribe { binding.conversationDisabledInput.showBusy() }
|
||||
.doOnTerminate { binding.conversationDisabledInput.hideBusy() }
|
||||
|
||||
@@ -44,6 +44,7 @@ class DisabledInputView @JvmOverloads constructor(
|
||||
private var noLongerAMember: View? = null
|
||||
private var requestingGroup: View? = null
|
||||
private var announcementGroupOnly: TextView? = null
|
||||
private var inviteToSignal: View? = null
|
||||
|
||||
private var currentView: View? = null
|
||||
|
||||
@@ -125,6 +126,20 @@ class DisabledInputView @JvmOverloads constructor(
|
||||
)
|
||||
}
|
||||
|
||||
fun showAsInviteToSignal(context: Context, recipient: Recipient) {
|
||||
inviteToSignal = show(
|
||||
existingView = inviteToSignal,
|
||||
create = { inflater.inflate(R.layout.conversation_activity_sms_export_stub, this, false) },
|
||||
bind = {
|
||||
findViewById<TextView>(R.id.export_sms_message).text = context.getString(R.string.ConversationActivity__sms_messaging_is_no_longer_supported_in_signal_invite_s_to_to_signal_to_keep_the_conversation_here, recipient.getDisplayName(context))
|
||||
findViewById<MaterialButton>(R.id.export_sms_button).apply {
|
||||
setText(R.string.ConversationActivity__invite_to_signal)
|
||||
setOnClickListener { listener?.onInviteToSignal(recipient) }
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun setWallpaperEnabled(wallpaperEnabled: Boolean) {
|
||||
color = ContextCompat.getColor(context, if (wallpaperEnabled) R.color.wallpaper_bubble_color else R.color.signal_colorBackground)
|
||||
setBackgroundColor(color)
|
||||
@@ -193,5 +208,6 @@ class DisabledInputView @JvmOverloads constructor(
|
||||
fun onBlockClicked()
|
||||
fun onUnblockClicked()
|
||||
fun onGroupV1MigrationClicked()
|
||||
fun onInviteToSignal(recipient: Recipient)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user