mirror of
https://github.com/moparisthebest/Yaaic
synced 2024-11-22 17:02:21 -05:00
Synchronized all LinkedLists - see issue 2
This commit is contained in:
parent
54c968f302
commit
14ca3e0668
@ -20,7 +20,9 @@ along with Yaaic. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.yaaic.adapter;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.yaaic.model.Conversation;
|
||||
import org.yaaic.view.MessageListView;
|
||||
@ -40,10 +42,18 @@ public class DeckAdapter extends BaseAdapter
|
||||
{
|
||||
public static final String TAG = "Yaaic/DeckAdapter";
|
||||
|
||||
private LinkedList<Conversation> conversations = new LinkedList<Conversation>();
|
||||
private List<Conversation> conversations;
|
||||
private MessageListView currentView;
|
||||
private String currentChannel;
|
||||
|
||||
/**
|
||||
* Create a new DeckAdapter instance
|
||||
*/
|
||||
public DeckAdapter()
|
||||
{
|
||||
conversations = Collections.synchronizedList(new LinkedList<Conversation>());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get number of item
|
||||
*/
|
||||
|
@ -20,7 +20,9 @@ along with Yaaic. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.yaaic.adapter;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.yaaic.model.Conversation;
|
||||
import org.yaaic.model.Message;
|
||||
@ -38,7 +40,7 @@ import android.widget.TextView;
|
||||
*/
|
||||
public class MessageListAdapter extends BaseAdapter
|
||||
{
|
||||
private LinkedList<TextView> messages = new LinkedList<TextView>();
|
||||
private List<TextView> messages;
|
||||
private Context context;
|
||||
|
||||
/**
|
||||
@ -49,6 +51,7 @@ public class MessageListAdapter extends BaseAdapter
|
||||
*/
|
||||
public MessageListAdapter(Conversation conversation, Context context)
|
||||
{
|
||||
this.messages = Collections.synchronizedList(new LinkedList<TextView>());
|
||||
this.context = context;
|
||||
|
||||
// Render channel name as first message in channel
|
||||
|
@ -20,7 +20,9 @@ along with Yaaic. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.yaaic.model;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Base class for conversations
|
||||
@ -39,8 +41,8 @@ public abstract class Conversation
|
||||
|
||||
private static final int HISTORY_SIZE = 30;
|
||||
|
||||
private LinkedList<Message> buffer = new LinkedList<Message>();
|
||||
private LinkedList<Message> history = new LinkedList<Message>();
|
||||
private List<Message> buffer;
|
||||
private List<Message> history;
|
||||
private String name;
|
||||
|
||||
/**
|
||||
@ -57,6 +59,8 @@ public abstract class Conversation
|
||||
*/
|
||||
public Conversation(String name)
|
||||
{
|
||||
this.buffer = Collections.synchronizedList(new LinkedList<Message>());
|
||||
this.history = Collections.synchronizedList(new LinkedList<Message>());
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@ -73,11 +77,11 @@ public abstract class Conversation
|
||||
*/
|
||||
public void addMessage(Message message)
|
||||
{
|
||||
buffer.addFirst(message);
|
||||
history.addLast(message);
|
||||
buffer.add(0, message);
|
||||
history.add(message);
|
||||
|
||||
if (history.size() > HISTORY_SIZE) {
|
||||
history.removeFirst();
|
||||
history.remove(0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,7 +90,7 @@ public abstract class Conversation
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public LinkedList<Message> getHistory()
|
||||
public List<Message> getHistory()
|
||||
{
|
||||
return history;
|
||||
}
|
||||
@ -98,8 +102,8 @@ public abstract class Conversation
|
||||
*/
|
||||
public Message pollBufferedMessage()
|
||||
{
|
||||
Message message = buffer.getLast();
|
||||
buffer.removeLast();
|
||||
Message message = buffer.get(buffer.size() - 1);
|
||||
buffer.remove(buffer.size() - 1);
|
||||
return message;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user