2020-07-16 03:58:11 +02:00
|
|
|
package org.thoughtcrime.securesms.loki.dialogs
|
|
|
|
|
|
|
|
import android.os.Bundle
|
2020-08-19 02:06:26 +02:00
|
|
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
2020-07-16 03:58:11 +02:00
|
|
|
import android.view.LayoutInflater
|
|
|
|
import android.view.View
|
|
|
|
import android.view.ViewGroup
|
|
|
|
import kotlinx.android.synthetic.main.fragment_conversation_bottom_sheet.*
|
|
|
|
import network.loki.messenger.R
|
2021-05-18 08:03:47 +02:00
|
|
|
import org.session.libsession.utilities.recipients.Recipient
|
2020-07-16 03:58:11 +02:00
|
|
|
|
|
|
|
public class ConversationOptionsBottomSheet : BottomSheetDialogFragment() {
|
2020-08-26 14:19:45 +02:00
|
|
|
|
|
|
|
//FIXME AC: Supplying a recipient directly into the field from an activity
|
|
|
|
// is not the best idea. It doesn't survive configuration change.
|
|
|
|
// We should be dealing with IDs and all sorts of serializable data instead
|
|
|
|
// if we want to use dialog fragments properly.
|
2020-07-16 03:58:11 +02:00
|
|
|
lateinit var recipient: Recipient
|
2020-08-26 14:19:45 +02:00
|
|
|
|
2020-09-07 02:57:25 +02:00
|
|
|
var onViewDetailsTapped: (() -> Unit?)? = null
|
2020-08-21 07:06:39 +02:00
|
|
|
var onBlockTapped: (() -> Unit)? = null
|
|
|
|
var onUnblockTapped: (() -> Unit)? = null
|
2020-07-16 03:58:11 +02:00
|
|
|
var onDeleteTapped: (() -> Unit)? = null
|
|
|
|
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
2020-08-26 14:30:17 +02:00
|
|
|
return inflater.inflate(R.layout.fragment_conversation_bottom_sheet, container, false)
|
2020-07-16 03:58:11 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
|
|
super.onViewCreated(view, savedInstanceState)
|
2020-09-07 02:57:25 +02:00
|
|
|
if (!this::recipient.isInitialized) { return dismiss() }
|
2020-07-16 03:58:11 +02:00
|
|
|
if (!recipient.isGroupRecipient && !recipient.isLocalNumber) {
|
2020-09-07 02:57:25 +02:00
|
|
|
detailsTextView.visibility = View.VISIBLE
|
2020-08-21 07:06:39 +02:00
|
|
|
unblockTextView.visibility = if (recipient.isBlocked) View.VISIBLE else View.GONE
|
|
|
|
blockTextView.visibility = if (recipient.isBlocked) View.GONE else View.VISIBLE
|
2020-09-07 02:57:25 +02:00
|
|
|
detailsTextView.setOnClickListener { onViewDetailsTapped?.invoke() }
|
2020-08-21 07:06:39 +02:00
|
|
|
blockTextView.setOnClickListener { onBlockTapped?.invoke() }
|
|
|
|
unblockTextView.setOnClickListener { onUnblockTapped?.invoke() }
|
2020-09-07 02:57:25 +02:00
|
|
|
} else {
|
|
|
|
detailsTextView.visibility = View.GONE
|
2020-07-16 03:58:11 +02:00
|
|
|
}
|
|
|
|
deleteTextView.setOnClickListener { onDeleteTapped?.invoke() }
|
|
|
|
}
|
|
|
|
}
|