@ -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