Example #1
0
  @Override
  public void onPause() {
    super.onPause();

    // Saving draft
    messenger().saveDraft(peer, messageEditText.getText().toString());
  }
Example #2
0
  @Override
  protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

    if (pending_fileName != null) {
      outState.putString(STATE_FILE_NAME, pending_fileName);
    }
  }
Example #3
0
 @Override
 public void onBackPressed() {
   if (isMentionsVisible) {
     hideMentions();
   } else if (emojiKeyboard.isShowing()) {
     emojiKeyboard.dismiss();
   } else {
     super.onBackPressed();
   }
 }
Example #4
0
  @Override
  public void onCreate(Bundle saveInstance) {
    // Reading peer of chat
    peer = Peer.fromUniqueId(getIntent().getExtras().getLong(EXTRA_CHAT_PEER));

    if (saveInstance == null) {
      // Set compose state for auto-showing menu
      isCompose = getIntent().getExtras().getBoolean(EXTRA_CHAT_COMPOSE, false);
    } else {
      // Activity restore
      pending_fileName = saveInstance.getString(STATE_FILE_NAME, null);
    }

    super.onCreate(saveInstance);

    messageEditText.addTextChangedListener(new TextWatcherImp());

    // Mentions
    mentionsList = (ListView) findViewById(R.id.mentionsList);

    // Quote
    quoteContainer = (FrameLayout) findViewById(R.id.quoteContainer);
    quoteText = (TextView) findViewById(R.id.quote_text);
    findViewById(R.id.ib_close_quote)
        .setOnClickListener(
            new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                goneView(quoteContainer);
                quoteText.setText("");
                currentQuote = "";
              }
            });

    // Sharing
    sendUri = getIntent().getStringExtra("send_uri");
    sendUriMultiple = getIntent().getStringArrayListExtra("send_uri_multiple");
    shareUser = getIntent().getIntExtra("share_user", 0);

    // Forwarding
    forwardText = getIntent().getStringExtra("forward_text");
    forwardTextRaw = getIntent().getStringExtra("forward_text_raw");
    sendText = getIntent().getStringExtra("send_text");
    forwardDocDescriptor = getIntent().getStringExtra("forward_doc_descriptor");
    forwardDocIsDoc = getIntent().getBooleanExtra("forward_doc_is_doc", true);
  }
Example #5
0
  @Override
  protected void onPerformBind() {
    super.onPerformBind();

    // Performing all required Data Binding here

    if (peer.getPeerType() == PeerType.PRIVATE) {

      // Loading user
      final UserVM user = users().get(peer.getPeerId());
      if (user == null) {
        finish();
        return;
      }

      // Binding User Avatar to Toolbar
      bind(barAvatar, user.getId(), user.getAvatar(), user.getName());

      // Binding User name to Toolbar
      bind(barTitle, user.getName());

      // Binding User presence to Toolbar
      bind(barSubtitle, barSubtitleContainer, user);

      // Binding User typing to Toolbar
      bindPrivateTyping(
          barTyping, barTypingContainer, barSubtitle, messenger().getTyping(user.getId()));

      // Hide removedFromGroup panel as we are not in group
      removedFromGroup.setVisibility(View.GONE);

    } else if (peer.getPeerType() == PeerType.GROUP) {

      // Loading group
      GroupVM group = groups().get(peer.getPeerId());
      if (group == null) {
        finish();
        return;
      }

      // Binding Group avatar to Toolbar
      bind(barAvatar, group.getId(), group.getAvatar(), group.getName());

      // Binding Group title to Toolbar
      bind(barTitle, group.getName());

      // Subtitle is always visible for Groups
      barSubtitleContainer.setVisibility(View.VISIBLE);

      // Binding group members
      bind(barSubtitle, barSubtitleContainer, group);

      // Binding group typing
      bindGroupTyping(
          barTyping, barTypingContainer, barSubtitle, messenger().getGroupTyping(group.getId()));

      // Binding membership flag to removedFromGroup panel
      bind(
          messenger().getGroups().get(peer.getPeerId()).isMember(),
          new ValueChangedListener<Boolean>() {
            @Override
            public void onChanged(Boolean val, Value<Boolean> Value) {
              removedFromGroup.setVisibility(val ? View.GONE : View.VISIBLE);
            }
          });
    }
  }
Example #6
0
  @Override
  public void onResume() {
    super.onResume();

    // Force keyboard open if activity started with Compose flag
    if (isCompose) {
      messageEditText.requestFocus();
      keyboardUtils.setImeVisibility(messageEditText, true);
    }
    isCompose = false;

    // Loading drafts
    isTypingDisabled = true;
    String text = messenger().loadDraft(peer);
    if (text != null) {
      // Using only links parsing to avoid non-mentions formatting
      Spannable spantext = AndroidMarkdown.processOnlyLinks(text);
      spantext = emoji().processEmojiCompatMutable(spantext, SmileProcessor.CONFIGURATION_BUBBLES);
      messageEditText.setText(spantext);
    } else {
      messageEditText.setText("");
    }
    messageEditText.setSelection(messageEditText.getText().length());
    isTypingDisabled = false;

    // TODO: Remove from ChatActivity
    // Performing actions

    if (sendUri != null && !sendUri.isEmpty()) {
      execute(messenger().sendUri(peer, Uri.parse(sendUri)));
      sendUri = "";
    }

    if (sendUriMultiple != null && sendUriMultiple.size() > 0) {
      for (String sendUri : sendUriMultiple) {
        execute(messenger().sendUri(peer, Uri.parse(sendUri)));
      }
      sendUriMultiple.clear();
    }

    if (sendText != null && !sendText.isEmpty()) {
      messageEditText.setText(sendText);
      sendText = "";
    }

    if (shareUser != 0) {
      String userName = users().get(shareUser).getName().get();
      String mentionTitle = "@".concat(userName);
      ArrayList<Integer> mention = new ArrayList<Integer>();
      mention.add(shareUser);
      messenger()
          .sendMessage(
              peer,
              mentionTitle,
              "["
                  .concat(mentionTitle)
                  .concat("](people://".concat(Integer.toString(shareUser)).concat(")")),
              mention);
      shareUser = 0;
    }

    if (forwardTextRaw != null && !forwardTextRaw.isEmpty()) {
      addQuote(forwardText, forwardTextRaw);
      forwardText = "";
      forwardTextRaw = "";
    }

    if (forwardDocDescriptor != null && !forwardDocDescriptor.isEmpty()) {
      if (forwardDocIsDoc) {
        messenger().sendDocument(peer, forwardDocDescriptor);
      } else {
        execute(messenger().sendUri(peer, Uri.fromFile(new File(forwardDocDescriptor))));
      }
      forwardDocDescriptor = "";
    }
  }