@Override public void onPause() { super.onPause(); // Saving draft messenger().saveDraft(peer, messageEditText.getText().toString()); }
@Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if (pending_fileName != null) { outState.putString(STATE_FILE_NAME, pending_fileName); } }
@Override public void onBackPressed() { if (isMentionsVisible) { hideMentions(); } else if (emojiKeyboard.isShowing()) { emojiKeyboard.dismiss(); } else { super.onBackPressed(); } }
@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); }
@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); } }); } }
@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 = ""; } }