@Override
 public void onResume() {
   super.onResume();
   listener.registerChat(this);
   updateChat();
   restoreInputState();
 }
  @Override
  public void onPause() {
    super.onPause();

    ChatStateManager.getInstance().onPaused(account, user);

    saveInputState();
    listener.unregisterChat(this);
  }
  private void sendMessage() {
    String text = inputView.getText().toString().trim();

    if (text.isEmpty()) {
      return;
    }

    clearInputText();

    sendMessage(text);

    listener.onMessageSent();

    if (SettingsManager.chatsHideKeyboard() == SettingsManager.ChatsHideKeyboard.always
        || (getActivity().getResources().getBoolean(R.bool.landscape)
            && SettingsManager.chatsHideKeyboard()
                == SettingsManager.ChatsHideKeyboard.landscape)) {
      ChatViewer.hideKeyboard(getActivity());
    }
  }
 private void closeChat(String account, String user) {
   MessageManager.getInstance().closeChat(account, user);
   NotificationManager.getInstance().removeMessageNotification(account, user);
   listener.onCloseChat();
 }