Esempio n. 1
0
  public void setBuffer(int bufferId) {
    Log.d(TAG, "Setting buffer and chat is visible: " + getUserVisibleHint());
    this.bufferId = bufferId;
    if (adapter != null && networks != null) {
      if (adapter.buffer != null && bufferId != adapter.buffer.getInfo().id) {
        updateMarkerLine();
      }
      adapter.clearBuffer();
      Buffer buffer = networks.getBufferById(bufferId);
      if (buffer != null) {
        adapter.setBuffer(buffer, networks);
        nickCompletionHelper = new NickCompletionHelper(buffer.getUsers().getUniqueUsers());
        autoCompleteButton.setEnabled(true);
        inputField.setEnabled(true);
        if (getUserVisibleHint() == true) buffer.setDisplayed(true);
        BusProvider.getInstance()
            .post(new ManageChannelEvent(buffer.getInfo().id, ChannelAction.HIGHLIGHTS_READ));

        // Move list to correct position
        if (adapter.buffer.getTopMessageShown() == 0) {
          backlogList.setSelection(adapter.getCount() - 1);
        } else {
          adapter.setListTopMessage(adapter.buffer.getTopMessageShown());
        }
      } else {
        resetFragment();
      }
    }
  }
Esempio n. 2
0
 private void updateMarkerLine() {
   BusProvider.getInstance()
       .post(
           new ManageMessageEvent(
               adapter.getBufferId(),
               adapter.buffer.getLastSeenMessage(),
               MessageAction.MARKER_LINE));
 }
Esempio n. 3
0
 private void resetFragment() {
   adapter.clearBuffer();
   topicView.setText("");
   topicViewFull.setText("");
   autoCompleteButton.setEnabled(false);
   inputField.setText("");
   inputField.setEnabled(false);
   nickCompletionHelper = null;
 }
Esempio n. 4
0
 @Override
 public void onStop() {
   Log.d(TAG, "Stopping fragment");
   super.onStop();
   if (Quasseldroid.status == ConnectionChangedEvent.Status.Connected && getUserVisibleHint())
     updateRead();
   adapter.clearBuffer();
   BusProvider.getInstance().unregister(this);
   setUserVisibleHint(false);
 }
Esempio n. 5
0
  private void updateRead() {
    Log.d(TAG, "Updating buffer read, chat is visible: " + getUserVisibleHint());
    if (adapter.buffer != null) {

      // Don't save position if list is at bottom
      if (backlogList.getLastVisiblePosition() == adapter.getCount() - 1) {
        adapter.buffer.setTopMessageShown(0);
      } else {
        adapter.buffer.setTopMessageShown(adapter.getListTopMessageId());
      }
      if (adapter.buffer.getUnfilteredSize() != 0) {
        BusProvider.getInstance()
            .post(new ManageChannelEvent(adapter.getBufferId(), ChannelAction.MARK_AS_READ));
        BusProvider.getInstance()
            .post(
                new ManageMessageEvent(
                    adapter.getBufferId(),
                    adapter.buffer.getUnfilteredBacklogEntry(adapter.buffer.getUnfilteredSize() - 1)
                        .messageId,
                    MessageAction.LAST_SEEN));
      }
    }
  }