/**
   * Offer to send some dedicated intent data to an existing room
   *
   * @param fromActivity the caller activity
   * @param intent the intent param
   */
  public static void sendFilesTo(final Activity fromActivity, final Intent intent) {
    if (Matrix.getMXSessions(fromActivity).size() == 1) {
      sendFilesTo(fromActivity, intent, Matrix.getMXSession(fromActivity, null));
    } else if (fromActivity instanceof FragmentActivity) {
      FragmentManager fm = ((FragmentActivity) fromActivity).getSupportFragmentManager();

      AccountsSelectionDialogFragment fragment =
          (AccountsSelectionDialogFragment)
              fm.findFragmentByTag(MXCActionBarActivity.TAG_FRAGMENT_ACCOUNT_SELECTION_DIALOG);
      if (fragment != null) {
        fragment.dismissAllowingStateLoss();
      }

      fragment = AccountsSelectionDialogFragment.newInstance(Matrix.getMXSessions(fromActivity));

      fragment.setListener(
          new AccountsSelectionDialogFragment.AccountsListener() {
            @Override
            public void onSelected(final MXSession session) {
              fromActivity.runOnUiThread(
                  new Runnable() {
                    @Override
                    public void run() {
                      sendFilesTo(fromActivity, intent, session);
                    }
                  });
            }
          });

      fragment.show(fm, MXCActionBarActivity.TAG_FRAGMENT_ACCOUNT_SELECTION_DIALOG);
    }
  }