@ -12,7 +12,10 @@ import android.view.ViewGroup
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
import android.widget.Toast
import androidx.core.view.isVisible
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import dagger.hilt.EntryPoint
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.android.synthetic.main.fragment_user_details_bottom_sheet.*
import network.loki.messenger.R
import org.session.libsession.messaging.MessagingModuleConfiguration
@ -20,20 +23,32 @@ import org.session.libsession.messaging.contacts.Contact
import org.session.libsession.utilities.Address
import org.session.libsession.utilities.recipients.Recipient
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
import org.thoughtcrime.securesms.database.ThreadDatabase
import org.thoughtcrime.securesms.dependencies.DatabaseComponent
import org.thoughtcrime.securesms.mms.GlideApp
import org.thoughtcrime.securesms.util.UiModeUtilities
import javax.inject.Inject
@AndroidEntryPoint
class UserDetailsBottomSheet : BottomSheetDialogFragment ( ) {
@Inject lateinit var threadDb : ThreadDatabase
companion object {
const val ARGUMENT _PUBLIC _KEY = " publicKey "
const val ARGUMENT _THREAD _ID = " threadId "
}
override fun onCreateView ( inflater : LayoutInflater , container : ViewGroup ? , savedInstanceState : Bundle ? ) : View ? {
return inflater . inflate ( R . layout . fragment _user _details _bottom _sheet , container , false )
}
override fun onViewCreated ( view : View , savedInstanceState : Bundle ? ) {
super . onViewCreated ( view , savedInstanceState )
val publicKey = arguments ?. getString ( " publicKey " ) ?: return dismiss ( )
val publicKey = arguments ?. getString ( ARGUMENT _PUBLIC _KEY ) ?: return dismiss ( )
val threadID = arguments ?. getLong ( ARGUMENT _THREAD _ID ) ?: return dismiss ( )
val recipient = Recipient . from ( requireContext ( ) , Address . fromSerialized ( publicKey ) , false )
val threadRecipient = threadDb . getRecipientForThreadId ( threadID ) ?: return dismiss ( )
profilePictureView . publicKey = publicKey
profilePictureView . glide = GlideApp . with ( this )
profilePictureView . isLarge = true
@ -65,6 +80,9 @@ class UserDetailsBottomSheet : BottomSheetDialogFragment() {
}
}
nameTextView . text = recipient . name ?: publicKey // Uses the Contact API internally
publicKeyTextView . isVisible = ! threadRecipient . isOpenGroupRecipient
messageButton . isVisible = ! threadRecipient . isOpenGroupRecipient
publicKeyTextView . text = publicKey
publicKeyTextView . setOnLongClickListener {
val clipboard = requireContext ( ) . getSystemService ( Context . CLIPBOARD _SERVICE ) as ClipboardManager