1
0
mirror of https://github.com/moparisthebest/Yaaic synced 2024-11-25 18:32:15 -05:00

Clear message buffer if view has been build from history

This commit is contained in:
Sebastian Kaspari 2010-03-08 21:59:38 +01:00
parent ecfa10f483
commit 59b590a2ee
3 changed files with 33 additions and 12 deletions

View File

@ -54,6 +54,8 @@ public class MessageListAdapter extends BaseAdapter
for (Message message : channel.getHistory()) {
messages.add(message.renderTextView(context));
}
channel.clearBuffer();
}
/**

View File

@ -91,8 +91,24 @@ public class Channel
*
* @return
*/
public Message pollMessage()
public Message pollBufferedMessage()
{
return buffer.poll();
}
/**
* Does the channel have buffered messages?
*/
public boolean hasBufferedMessages()
{
return buffer.size() > 0;
}
/**
* Clear the message buffer
*/
public void clearBuffer()
{
buffer.clear();
}
}

View File

@ -218,18 +218,21 @@ public class ServerActivity extends Activity implements ServiceConnection, Chann
public void onChannelMessage(String target)
{
Log.d(TAG, "Message for target " + target);
Channel channel = server.getChannel(target);
Message message = server.getChannel(target).pollMessage();
MessageListView view = (MessageListView) deckAdapter.getItemByName(target);
if (view != null) {
MessageListAdapter adapter = view.getAdapter();
adapter.addMessage(message);
}
if (deckAdapter.isSwitched()) {
MessageListView switchedView = deckAdapter.getSwitchedView();
switchedView.getAdapter().addMessage(message);
while(channel.hasBufferedMessages()) {
Message message = channel.pollBufferedMessage();
MessageListView view = (MessageListView) deckAdapter.getItemByName(target);
if (view != null) {
MessageListAdapter adapter = view.getAdapter();
adapter.addMessage(message);
}
if (deckAdapter.isSwitched()) {
MessageListView switchedView = deckAdapter.getSwitchedView();
switchedView.getAdapter().addMessage(message);
}
}
}