code: @Override
  	public void onComposingViewCreated(MessageComposerHolder composer, final EditText composerEditText, final ApptentiveImageGridView attachments) {
  		this.composer = composer;
  		this.composerEditText = composerEditText;
  
  		ConversationProxy conversation = getConversation();
  		assertNotNull(conversation);
  		if (conversation == null) {
  			return;
  		}
  
  		// Restore composing text editing state, such as cursor position, after rotation
  		if (composingViewSavedState != null) {
  			if (this.composerEditText != null) {
  				this.composerEditText.onRestoreInstanceState(composingViewSavedState);
  			}
  			composingViewSavedState = null;
  			// Stored pending composing text has been restored from the saved state, so it's not needed here anymore
  			conversation.setMessageCenterPendingMessage(null);
  		}
  		// Restore composing text
  		else if (!StringUtils.isNullOrEmpty(conversation.getMessageCenterPendingMessage())) {
  			String messageText = conversation.getMessageCenterPendingMessage();
  			if (messageText != null && this.composerEditText != null) {
  				this.composerEditText.setText(messageText);
  			}
  			// Stored pending composing text has been restored, remove it from the persistent storage
  			conversation.setMessageCenterPendingMessage(null);
  		}
  
  		setAttachmentsInComposer(pendingAttachments);
  
  		messageCenterRecyclerView.setPadding(0, 0, 0, 0);
  
  		if (composerEditText != null) {
  			composerEditText.requestFocus();
  			if (forceShowKeyboard) {
  				composerEditText.post(new Runnable() { // TODO: replace with DispatchQueue
  					@Override
  					public void run() {
  						if (forceShowKeyboard) {
  							forceShowKeyboard = false;
  							Util.showSoftKeyboard(hostingActivityRef.get(), composerEditText);
  						}
  					}
  				});
  			}
  		}
  		hideFab();
  		composer.setSendButtonState();
  	}
docs: /* Guarded