2021-08-13 07:30:26 +02:00
|
|
|
package org.thoughtcrime.securesms.conversation.v2
|
|
|
|
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.view.LayoutInflater
|
|
|
|
import android.view.View
|
|
|
|
import android.view.ViewGroup
|
2021-10-27 08:26:44 +02:00
|
|
|
import androidx.core.view.isVisible
|
2021-08-13 07:30:26 +02:00
|
|
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
2021-10-19 02:12:48 +02:00
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
2021-08-13 07:30:26 +02:00
|
|
|
import network.loki.messenger.R
|
2022-01-14 06:56:15 +01:00
|
|
|
import network.loki.messenger.databinding.FragmentDeleteMessageBottomSheetBinding
|
2021-10-19 02:12:48 +02:00
|
|
|
import org.session.libsession.messaging.contacts.Contact
|
2021-08-13 07:30:26 +02:00
|
|
|
import org.session.libsession.utilities.recipients.Recipient
|
2021-10-19 02:12:48 +02:00
|
|
|
import org.thoughtcrime.securesms.database.SessionContactDatabase
|
2021-08-13 07:30:26 +02:00
|
|
|
import org.thoughtcrime.securesms.util.UiModeUtilities
|
2021-10-19 02:12:48 +02:00
|
|
|
import javax.inject.Inject
|
2021-08-13 07:30:26 +02:00
|
|
|
|
2021-10-19 02:12:48 +02:00
|
|
|
@AndroidEntryPoint
|
|
|
|
class DeleteOptionsBottomSheet : BottomSheetDialogFragment(), View.OnClickListener {
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
lateinit var contactDatabase: SessionContactDatabase
|
2021-08-13 07:30:26 +02:00
|
|
|
|
|
|
|
lateinit var recipient: Recipient
|
2022-01-14 06:56:15 +01:00
|
|
|
private lateinit var binding: FragmentDeleteMessageBottomSheetBinding
|
2021-10-19 02:12:48 +02:00
|
|
|
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)
|
|
|
|
}
|
2021-08-13 07:30:26 +02:00
|
|
|
|
|
|
|
var onDeleteForMeTapped: (() -> Unit?)? = null
|
|
|
|
var onDeleteForEveryoneTapped: (() -> Unit)? = null
|
|
|
|
var onCancelTapped: (() -> Unit)? = null
|
|
|
|
|
2021-10-19 02:12:48 +02:00
|
|
|
override fun onCreateView(
|
|
|
|
inflater: LayoutInflater,
|
|
|
|
container: ViewGroup?,
|
|
|
|
savedInstanceState: Bundle?
|
2022-01-14 06:56:15 +01:00
|
|
|
): View {
|
|
|
|
binding = FragmentDeleteMessageBottomSheetBinding.inflate(inflater, container, false)
|
|
|
|
return binding.root
|
2021-08-13 07:30:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onClick(v: View?) {
|
|
|
|
when (v) {
|
2022-01-14 06:56:15 +01:00
|
|
|
binding.deleteForMeTextView -> onDeleteForMeTapped?.invoke()
|
|
|
|
binding.deleteForEveryoneTextView -> onDeleteForEveryoneTapped?.invoke()
|
|
|
|
binding.cancelTextView -> onCancelTapped?.invoke()
|
2021-08-13 07:30:26 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
|
|
super.onViewCreated(view, savedInstanceState)
|
2021-10-19 02:12:48 +02:00
|
|
|
if (!this::recipient.isInitialized) {
|
|
|
|
return dismiss()
|
|
|
|
}
|
|
|
|
if (!recipient.isGroupRecipient && !contact.isNullOrEmpty()) {
|
2022-01-14 06:56:15 +01:00
|
|
|
binding.deleteForEveryoneTextView.text =
|
2021-10-19 02:12:48 +02:00
|
|
|
resources.getString(R.string.delete_message_for_me_and_recipient, contact)
|
2021-08-13 07:30:26 +02:00
|
|
|
}
|
2022-01-14 06:56:15 +01:00
|
|
|
binding.deleteForEveryoneTextView.isVisible = !recipient.isClosedGroupRecipient
|
|
|
|
binding.deleteForMeTextView.setOnClickListener(this)
|
|
|
|
binding.deleteForEveryoneTextView.setOnClickListener(this)
|
|
|
|
binding.cancelTextView.setOnClickListener(this)
|
2021-08-13 07:30:26 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onStart() {
|
|
|
|
super.onStart()
|
|
|
|
val window = dialog?.window ?: return
|
|
|
|
val isLightMode = UiModeUtilities.isDayUiMode(requireContext())
|
|
|
|
window.setDimAmount(if (isLightMode) 0.1f else 0.75f)
|
|
|
|
}
|
|
|
|
}
|