migrated some ArrayLists to CopyOnWriteArrayLists
This commit is contained in:
parent
29f089c954
commit
2e080401b1
|
@ -1,7 +1,6 @@
|
||||||
package eu.siacs.conversations.entities;
|
package eu.siacs.conversations.entities;
|
||||||
|
|
||||||
import java.security.interfaces.DSAPublicKey;
|
import java.security.interfaces.DSAPublicKey;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
@ -68,7 +67,7 @@ public class Account extends AbstractEntity{
|
||||||
|
|
||||||
private Roster roster = null;
|
private Roster roster = null;
|
||||||
|
|
||||||
private List<Bookmark> bookmarks = new ArrayList<Bookmark>();
|
private List<Bookmark> bookmarks = new CopyOnWriteArrayList<Bookmark>();
|
||||||
|
|
||||||
public List<Conversation> pendingConferenceJoins = new CopyOnWriteArrayList<Conversation>();
|
public List<Conversation> pendingConferenceJoins = new CopyOnWriteArrayList<Conversation>();
|
||||||
public List<Conversation> pendingConferenceLeaves = new CopyOnWriteArrayList<Conversation>();
|
public List<Conversation> pendingConferenceLeaves = new CopyOnWriteArrayList<Conversation>();
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package eu.siacs.conversations.entities;
|
package eu.siacs.conversations.entities;
|
||||||
|
|
||||||
import java.security.interfaces.DSAPublicKey;
|
import java.security.interfaces.DSAPublicKey;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
import net.java.otr4j.OtrException;
|
import net.java.otr4j.OtrException;
|
||||||
import net.java.otr4j.crypto.OtrCryptoEngineImpl;
|
import net.java.otr4j.crypto.OtrCryptoEngineImpl;
|
||||||
|
@ -43,7 +43,7 @@ public class Conversation extends AbstractEntity {
|
||||||
|
|
||||||
private String nextPresence;
|
private String nextPresence;
|
||||||
|
|
||||||
private transient List<Message> messages = null;
|
private transient CopyOnWriteArrayList<Message> messages = null;
|
||||||
private transient Account account = null;
|
private transient Account account = null;
|
||||||
|
|
||||||
private transient SessionImpl otrSession;
|
private transient SessionImpl otrSession;
|
||||||
|
@ -85,8 +85,9 @@ public class Conversation extends AbstractEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Message> getMessages() {
|
public List<Message> getMessages() {
|
||||||
if (messages == null)
|
if (messages == null) {
|
||||||
this.messages = new ArrayList<Message>(); // prevent null pointer
|
this.messages = new CopyOnWriteArrayList<Message>(); // prevent null pointer
|
||||||
|
}
|
||||||
|
|
||||||
// populate with Conversation (this)
|
// populate with Conversation (this)
|
||||||
|
|
||||||
|
@ -133,7 +134,7 @@ public class Conversation extends AbstractEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMessages(List<Message> msgs) {
|
public void setMessages(CopyOnWriteArrayList<Message> msgs) {
|
||||||
this.messages = msgs;
|
this.messages = msgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package eu.siacs.conversations.entities;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
import eu.siacs.conversations.crypto.PgpEngine;
|
import eu.siacs.conversations.crypto.PgpEngine;
|
||||||
import eu.siacs.conversations.xml.Element;
|
import eu.siacs.conversations.xml.Element;
|
||||||
|
@ -81,7 +82,7 @@ public class MucOptions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private Account account;
|
private Account account;
|
||||||
private ArrayList<User> users = new ArrayList<User>();
|
private List<User> users = new CopyOnWriteArrayList<User>();
|
||||||
private Conversation conversation;
|
private Conversation conversation;
|
||||||
private boolean isOnline = false;
|
private boolean isOnline = false;
|
||||||
private int error = ERROR_ROOM_NOT_FOUND;
|
private int error = ERROR_ROOM_NOT_FOUND;
|
||||||
|
|
|
@ -129,12 +129,12 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Message> getMessages(Conversation conversations, int limit) {
|
public CopyOnWriteArrayList<Message> getMessages(Conversation conversations, int limit) {
|
||||||
return getMessages(conversations, limit,-1);
|
return getMessages(conversations, limit,-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Message> getMessages(Conversation conversation, int limit, long timestamp) {
|
public CopyOnWriteArrayList<Message> getMessages(Conversation conversation, int limit, long timestamp) {
|
||||||
List<Message> list = new CopyOnWriteArrayList<Message>();
|
CopyOnWriteArrayList<Message> list = new CopyOnWriteArrayList<Message>();
|
||||||
SQLiteDatabase db = this.getReadableDatabase();
|
SQLiteDatabase db = this.getReadableDatabase();
|
||||||
Cursor cursor;
|
Cursor cursor;
|
||||||
if (timestamp==-1) {
|
if (timestamp==-1) {
|
||||||
|
|
|
@ -668,7 +668,7 @@ public class XmppConnectionService extends Service {
|
||||||
@Override
|
@Override
|
||||||
public void onIqPacketReceived(Account account, IqPacket packet) {
|
public void onIqPacketReceived(Account account, IqPacket packet) {
|
||||||
Element query = packet.query();
|
Element query = packet.query();
|
||||||
List<Bookmark> bookmarks = new ArrayList<Bookmark>();
|
List<Bookmark> bookmarks = new CopyOnWriteArrayList<Bookmark>();
|
||||||
Element storage = query.findChild("storage", "storage:bookmarks");
|
Element storage = query.findChild("storage", "storage:bookmarks");
|
||||||
if (storage!=null) {
|
if (storage!=null) {
|
||||||
for(Element item : storage.getChildren()) {
|
for(Element item : storage.getChildren()) {
|
||||||
|
|
|
@ -7,14 +7,8 @@ import java.math.BigInteger;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.security.KeyManagementException;
|
import java.security.KeyManagementException;
|
||||||
import java.security.KeyStore;
|
|
||||||
import java.security.KeyStoreException;
|
|
||||||
import java.security.MessageDigest;
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
import java.security.cert.CertPathValidatorException;
|
|
||||||
import java.security.cert.CertificateException;
|
|
||||||
import java.security.cert.X509Certificate;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Hashtable;
|
import java.util.Hashtable;
|
||||||
|
@ -25,16 +19,13 @@ import javax.net.ssl.HostnameVerifier;
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
import javax.net.ssl.SSLSocket;
|
import javax.net.ssl.SSLSocket;
|
||||||
import javax.net.ssl.SSLSocketFactory;
|
import javax.net.ssl.SSLSocketFactory;
|
||||||
import javax.net.ssl.TrustManager;
|
|
||||||
import javax.net.ssl.TrustManagerFactory;
|
|
||||||
import javax.net.ssl.X509TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
||||||
|
|
||||||
import org.bouncycastle.pqc.math.linearalgebra.GoppaCode.MaMaPe;
|
|
||||||
import org.xmlpull.v1.XmlPullParserException;
|
import org.xmlpull.v1.XmlPullParserException;
|
||||||
|
|
||||||
import de.duenndns.ssl.MemorizingTrustManager;
|
import de.duenndns.ssl.MemorizingTrustManager;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
|
|
Loading…
Reference in New Issue