Skip to content
Snippets Groups Projects
Commit 59b32b7b authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixed several bugs

parent 99250ae2
Branches
Tags
No related merge requests found
Showing
with 70 additions and 110 deletions
......@@ -30,12 +30,12 @@ import java.util.List;
import java.util.Map;
import de.kuschku.libquassel.syncables.types.interfaces.QIdentity;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
public class IdentityManager {
@NonNull
private final Map<Integer, QIdentity> identities = new HashMap<>();
private final ObservableSortedList<QIdentity> identityList = new ObservableSortedList<>(QIdentity.class, new ObservableSortedList.ItemComparator<QIdentity>() {
private final AndroidObservableSortedList<QIdentity> identityList = new AndroidObservableSortedList<>(QIdentity.class, new AndroidObservableSortedList.ItemComparator<QIdentity>() {
@Override
public int compare(QIdentity o1, QIdentity o2) {
if (o1 == null && o2 == null)
......@@ -78,7 +78,7 @@ public class IdentityManager {
}
}
public ObservableSortedList<QIdentity> identities() {
public AndroidObservableSortedList<QIdentity> identities() {
return identityList;
}
}
......@@ -33,7 +33,7 @@ import de.kuschku.libquassel.events.ConnectionChangeEvent;
import de.kuschku.libquassel.syncables.types.impl.Network;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewConfig;
import de.kuschku.libquassel.syncables.types.interfaces.QNetwork;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
import static de.kuschku.util.AndroidAssert.assertNotNull;
......@@ -41,7 +41,7 @@ public class NetworkManager extends Observable {
@NonNull
private final Map<Integer, QNetwork> networks = new HashMap<>();
@NonNull
private final ObservableSortedList<QNetwork> list = new ObservableSortedList<QNetwork>(QNetwork.class, new ObservableSortedList.ItemComparator<QNetwork>() {
private final AndroidObservableSortedList<QNetwork> list = new AndroidObservableSortedList<QNetwork>(QNetwork.class, new AndroidObservableSortedList.ItemComparator<QNetwork>() {
@Override
public int compare(QNetwork o1, QNetwork o2) {
assertNotNull(o1);
......@@ -132,7 +132,7 @@ public class NetworkManager extends Observable {
}
@NonNull
public ObservableSortedList<QNetwork> networks() {
public AndroidObservableSortedList<QNetwork> networks() {
return list;
}
}
......@@ -38,7 +38,7 @@ import de.kuschku.libquassel.primitives.types.BufferInfo;
import de.kuschku.libquassel.syncables.types.interfaces.QNetwork;
import de.kuschku.util.observables.callbacks.ElementCallback;
import de.kuschku.util.observables.callbacks.UICallback;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableComparableSortedList;
import static de.kuschku.util.AndroidAssert.assertNotNull;
......@@ -47,9 +47,9 @@ public class BacklogFilter implements UICallback {
private final Client client;
private final int bufferId;
@NonNull
private final ObservableComparableSortedList<Message> unfiltered;
private final AndroidObservableComparableSortedList<Message> unfiltered;
@NonNull
private final ObservableComparableSortedList<Message> filtered;
private final AndroidObservableComparableSortedList<Message> filtered;
private final EventBus bus = new EventBus();
ElementCallback<Message.Type> typeCallback = new ElementCallback<Message.Type>() {
......@@ -72,7 +72,7 @@ public class BacklogFilter implements UICallback {
private CharSequence searchQuery;
private Message markerlineMessage;
public BacklogFilter(@NonNull Client client, int bufferId, @NonNull ObservableComparableSortedList<Message> unfiltered, @NonNull ObservableComparableSortedList<Message> filtered) {
public BacklogFilter(@NonNull Client client, int bufferId, @NonNull AndroidObservableComparableSortedList<Message> unfiltered, @NonNull AndroidObservableComparableSortedList<Message> filtered) {
this.client = client;
this.bufferId = bufferId;
this.unfiltered = unfiltered;
......
......@@ -30,14 +30,14 @@ import java.util.Set;
import de.kuschku.libquassel.client.Client;
import de.kuschku.libquassel.localtypes.BacklogFilter;
import de.kuschku.libquassel.message.Message;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableComparableSortedList;
public interface BacklogStorage {
@NonNull
ObservableComparableSortedList<Message> getUnfiltered(@IntRange(from = 0) int bufferid);
AndroidObservableComparableSortedList<Message> getUnfiltered(@IntRange(from = 0) int bufferid);
@NonNull
ObservableComparableSortedList<Message> getFiltered(@IntRange(from = 0) int bufferid);
AndroidObservableComparableSortedList<Message> getFiltered(@IntRange(from = 0) int bufferid);
@NonNull
BacklogFilter getFilter(@IntRange(from = 0) int bufferid);
......
......@@ -39,15 +39,15 @@ import de.kuschku.libquassel.localtypes.BacklogFilter;
import de.kuschku.libquassel.localtypes.orm.ConnectedDatabase;
import de.kuschku.libquassel.message.Message;
import de.kuschku.libquassel.message.Message_Table;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableComparableSortedList;
import static de.kuschku.util.AndroidAssert.assertNotNull;
public class HybridBacklogStorage implements BacklogStorage {
@NonNull
private final SparseArray<ObservableComparableSortedList<Message>> backlogs = new SparseArray<>();
private final SparseArray<AndroidObservableComparableSortedList<Message>> backlogs = new SparseArray<>();
@NonNull
private final SparseArray<ObservableComparableSortedList<Message>> filteredBacklogs = new SparseArray<>();
private final SparseArray<AndroidObservableComparableSortedList<Message>> filteredBacklogs = new SparseArray<>();
@NonNull
private final SparseArray<BacklogFilter> filters = new SparseArray<>();
@NonNull
......@@ -59,14 +59,14 @@ public class HybridBacklogStorage implements BacklogStorage {
@NonNull
@Override
public ObservableComparableSortedList<Message> getUnfiltered(@IntRange(from = -1) int bufferid) {
public AndroidObservableComparableSortedList<Message> getUnfiltered(@IntRange(from = -1) int bufferid) {
ensureExisting(bufferid);
return backlogs.get(bufferid);
}
@NonNull
@Override
public ObservableComparableSortedList<Message> getFiltered(@IntRange(from = -1) int bufferid) {
public AndroidObservableComparableSortedList<Message> getFiltered(@IntRange(from = -1) int bufferid) {
ensureExisting(bufferid);
return filteredBacklogs.get(bufferid);
}
......@@ -222,8 +222,8 @@ public class HybridBacklogStorage implements BacklogStorage {
private void ensureExisting(@IntRange(from = -1) int bufferId) {
assertNotNull(client);
if (backlogs.get(bufferId) == null) {
ObservableComparableSortedList<Message> messages = new ObservableComparableSortedList<>(Message.class, true);
ObservableComparableSortedList<Message> filteredMessages = new ObservableComparableSortedList<>(Message.class, true);
AndroidObservableComparableSortedList<Message> messages = new AndroidObservableComparableSortedList<>(Message.class, true);
AndroidObservableComparableSortedList<Message> filteredMessages = new AndroidObservableComparableSortedList<>(Message.class, true);
BacklogFilter backlogFilter = new BacklogFilter(client, bufferId, messages, filteredMessages);
if (client.bufferSyncer() != null) {
backlogFilter.setMarkerlineMessage(client.bufferSyncer().markerLine(bufferId));
......
......@@ -46,7 +46,7 @@ import de.kuschku.libquassel.syncables.types.interfaces.QAliasManager;
import de.kuschku.libquassel.syncables.types.interfaces.QIrcUser;
import de.kuschku.libquassel.syncables.types.interfaces.QNetwork;
import de.kuschku.util.backports.Objects;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
public class AliasManager extends AAliasManager {
@NonNull
......@@ -63,7 +63,7 @@ public class AliasManager extends AAliasManager {
};
private Map<String, Alias> map = new HashMap<>();
private ObservableSortedList<Alias> aliases = new ObservableSortedList<>(Alias.class, new ObservableSortedList.ItemComparator<Alias>() {
private AndroidObservableSortedList<Alias> aliases = new AndroidObservableSortedList<>(Alias.class, new AndroidObservableSortedList.ItemComparator<Alias>() {
@Override
public int compare(Alias o1, Alias o2) {
return o1.name.compareTo(o2.name);
......@@ -163,12 +163,12 @@ public class AliasManager extends AAliasManager {
}
@Override
public ObservableSortedList<Alias> aliases() {
public AndroidObservableSortedList<Alias> aliases() {
return aliases;
}
@Override
public ObservableSortedList<Alias> defaults() {
public AndroidObservableSortedList<Alias> defaults() {
map.clear();
aliases.clear();
for (Alias alias : DEFAULTS) {
......
......@@ -44,7 +44,7 @@ import de.kuschku.libquassel.message.Message_Table;
import de.kuschku.libquassel.primitives.types.QVariant;
import de.kuschku.libquassel.syncables.types.abstracts.ABacklogManager;
import de.kuschku.libquassel.syncables.types.interfaces.QBacklogManager;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableComparableSortedList;
import static de.kuschku.util.AndroidAssert.assertNotNull;
......@@ -157,13 +157,13 @@ public class BacklogManager extends ABacklogManager {
@NonNull
@Override
public ObservableComparableSortedList<Message> unfiltered(int id) {
public AndroidObservableComparableSortedList<Message> unfiltered(int id) {
return storage.getUnfiltered(id);
}
@NonNull
@Override
public ObservableComparableSortedList<Message> filtered(int id) {
public AndroidObservableComparableSortedList<Message> filtered(int id) {
return storage.getFiltered(id);
}
......
......@@ -37,10 +37,10 @@ import de.kuschku.libquassel.syncables.types.abstracts.ABufferSyncer;
import de.kuschku.libquassel.syncables.types.interfaces.QBacklogManager;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferSyncer;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewConfig;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
import de.kuschku.util.observables.lists.ObservableElement;
import de.kuschku.util.observables.lists.ObservableSet;
import de.kuschku.util.observables.lists.ObservableSortedList;
import static de.kuschku.util.AndroidAssert.assertNotNull;
......@@ -91,7 +91,7 @@ public class BufferSyncer extends ABufferSyncer {
lastSeenMsgs.put(buffer, msgId);
}
setActivity(buffer, 0);
ObservableComparableSortedList<Message> filtered = backlogManager.filtered(buffer);
AndroidObservableComparableSortedList<Message> filtered = backlogManager.filtered(buffer);
for (Message m : filtered) {
addActivity(m);
}
......@@ -185,7 +185,7 @@ public class BufferSyncer extends ABufferSyncer {
public void _markBufferAsRead(int buffer) {
assertNotNull(client);
ObservableSortedList<Message> messages = client.backlogStorage().getUnfiltered(buffer);
AndroidObservableSortedList<Message> messages = client.backlogStorage().getUnfiltered(buffer);
Message lastMessage = messages.last();
if (messages.isEmpty() || lastMessage == null) {
_setLastSeenMsg(buffer, -1);
......
......@@ -36,13 +36,13 @@ import de.kuschku.libquassel.syncables.types.abstracts.ABufferViewManager;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewConfig;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewManager;
import de.kuschku.util.observables.callbacks.GeneralCallback;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
public class BufferViewManager extends ABufferViewManager {
@NonNull
final
Set<Integer> cachedIds = new HashSet<>();
final ObservableSortedList<QBufferViewConfig> list = new ObservableSortedList<>(QBufferViewConfig.class, new ObservableSortedList.ItemComparator<QBufferViewConfig>() {
final AndroidObservableSortedList<QBufferViewConfig> list = new AndroidObservableSortedList<>(QBufferViewConfig.class, new AndroidObservableSortedList.ItemComparator<QBufferViewConfig>() {
@Override
public int compare(QBufferViewConfig o1, QBufferViewConfig o2) {
return o1.bufferViewName().compareToIgnoreCase(o2.bufferViewName());
......@@ -67,7 +67,7 @@ public class BufferViewManager extends ABufferViewManager {
@NonNull
@Override
public ObservableSortedList<QBufferViewConfig> bufferViewConfigs() {
public AndroidObservableSortedList<QBufferViewConfig> bufferViewConfigs() {
return list;
}
......
......@@ -37,14 +37,14 @@ import de.kuschku.libquassel.primitives.types.QVariant;
import de.kuschku.libquassel.syncables.serializers.IgnoreListManagerSerializer;
import de.kuschku.libquassel.syncables.types.abstracts.AIgnoreListManager;
import de.kuschku.libquassel.syncables.types.interfaces.QIgnoreListManager;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
import de.kuschku.util.regex.SmartRegEx;
import static de.kuschku.util.AndroidAssert.assertEquals;
public class IgnoreListManager extends AIgnoreListManager {
@NonNull
private final ObservableSortedList<IgnoreListItem> ignoreList = new ObservableSortedList<>(IgnoreListItem.class, new ObservableSortedList.ItemComparator<IgnoreListItem>() {
private final AndroidObservableSortedList<IgnoreListItem> ignoreList = new AndroidObservableSortedList<>(IgnoreListItem.class, new AndroidObservableSortedList.ItemComparator<IgnoreListItem>() {
@Override
public int compare(IgnoreListItem o1, IgnoreListItem o2) {
return o1.ignoreRule.rule().compareTo(o2.ignoreRule.rule());
......@@ -184,7 +184,7 @@ public class IgnoreListManager extends AIgnoreListManager {
}
@Override
public ObservableSortedList<? extends IgnoreListItem> ignoreList() {
public AndroidObservableSortedList<? extends IgnoreListItem> ignoreList() {
return ignoreList;
}
......
......@@ -30,7 +30,7 @@ import de.kuschku.libquassel.objects.types.Command;
import de.kuschku.libquassel.primitives.types.BufferInfo;
import de.kuschku.libquassel.primitives.types.QVariant;
import de.kuschku.libquassel.syncables.Synced;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
public interface QAliasManager extends QObservable<QAliasManager> {
boolean contains(final String name);
......@@ -39,9 +39,9 @@ public interface QAliasManager extends QObservable<QAliasManager> {
int count();
ObservableSortedList<Alias> aliases();
AndroidObservableSortedList<Alias> aliases();
ObservableSortedList<Alias> defaults();
AndroidObservableSortedList<Alias> defaults();
// TODO: specify later on
@NonNull
......
......@@ -29,7 +29,7 @@ import java.util.Set;
import de.kuschku.libquassel.localtypes.BacklogFilter;
import de.kuschku.libquassel.message.Message;
import de.kuschku.libquassel.syncables.Synced;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableComparableSortedList;
public interface QBacklogManager extends QSyncableObject<QBacklogManager> {
void requestMoreBacklog(int bufferId, int amount);
......@@ -60,10 +60,10 @@ public interface QBacklogManager extends QSyncableObject<QBacklogManager> {
BacklogFilter filter(int id);
@NonNull
ObservableComparableSortedList<Message> unfiltered(int id);
AndroidObservableComparableSortedList<Message> unfiltered(int id);
@NonNull
ObservableComparableSortedList<Message> filtered(int id);
AndroidObservableComparableSortedList<Message> filtered(int id);
void setOpen(int bufferId);
......
......@@ -27,11 +27,11 @@ import java.util.List;
import java.util.Map;
import de.kuschku.libquassel.syncables.Synced;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
public interface QBufferViewManager extends QSyncableObject<QBufferViewManager> {
@NonNull
ObservableSortedList<QBufferViewConfig> bufferViewConfigs();
AndroidObservableSortedList<QBufferViewConfig> bufferViewConfigs();
QBufferViewConfig bufferViewConfig(int bufferViewId);
......
......@@ -29,7 +29,7 @@ import de.kuschku.libquassel.message.Message;
import de.kuschku.libquassel.primitives.types.QVariant;
import de.kuschku.libquassel.syncables.Synced;
import de.kuschku.libquassel.syncables.types.impl.IgnoreListManager;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
public interface QIgnoreListManager extends QObservable<QIgnoreListManager> {
@Synced
......@@ -64,7 +64,7 @@ public interface QIgnoreListManager extends QObservable<QIgnoreListManager> {
void requestUpdate();
ObservableSortedList<? extends IgnoreListManager.IgnoreListItem> ignoreList();
AndroidObservableSortedList<? extends IgnoreListManager.IgnoreListItem> ignoreList();
void _toggleIgnoreRule(IgnoreListManager.IgnoreListItem ignoreRule, boolean active);
......
......@@ -34,8 +34,8 @@ import de.kuschku.quasseldroid_ng.ui.theme.AppContext;
import de.kuschku.util.observables.AutoScroller;
import de.kuschku.util.observables.callbacks.UICallback;
import de.kuschku.util.observables.callbacks.wrappers.AdapterUICallbackWrapper;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
import de.kuschku.util.observables.lists.IObservableList;
import de.kuschku.util.observables.lists.ObservableSortedList;
import static de.kuschku.util.AndroidAssert.assertNotNull;
......@@ -59,7 +59,7 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageViewHolder> {
this.callback = new AdapterUICallbackWrapper(this, scroller);
}
public void setMessageList(@Nullable ObservableSortedList<Message> messageList) {
public void setMessageList(@Nullable AndroidObservableSortedList<Message> messageList) {
if (this.messageList != null)
this.messageList.removeCallback(callback);
this.messageList = messageList;
......
......@@ -41,14 +41,14 @@ import de.kuschku.libquassel.syncables.types.interfaces.QNetwork;
import de.kuschku.quasseldroid_ng.ui.theme.AppContext;
import de.kuschku.util.observables.callbacks.ElementCallback;
import de.kuschku.util.observables.callbacks.UICallback;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
import de.kuschku.util.observables.lists.ObservableElement;
import de.kuschku.util.observables.lists.ObservableSortedList;
import static de.kuschku.util.AndroidAssert.assertNotNull;
public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkViewHolder, BufferViewHolder> implements OnBufferClickListener, OnBufferLongClickListener {
private final AppContext context;
private final ObservableSortedList<NetworkItem> items;
private final AndroidObservableSortedList<NetworkItem> items;
private final Map<QNetwork, NetworkItem> itemMap = new WeakHashMap<>();
private final Map<Integer, BufferViewHolder> bufferViewHolderMap = new WeakHashMap<>();
private final ObservableElement<Boolean> showAll = new ObservableElement<>(false);
......@@ -77,7 +77,7 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi
private OnBufferClickListener bufferClickListener;
private ActionModeHandler actionModeHandler;
private BufferViewConfigAdapter(AppContext context, ObservableSortedList<NetworkItem> items) {
private BufferViewConfigAdapter(AppContext context, AndroidObservableSortedList<NetworkItem> items) {
super(items);
this.context = context;
this.items = items;
......@@ -135,7 +135,7 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi
}
public static BufferViewConfigAdapter of(AppContext context) {
final ObservableSortedList<NetworkItem> networkItems = new ObservableSortedList<>(NetworkItem.class, new ObservableSortedList.ItemComparator<NetworkItem>() {
final AndroidObservableSortedList<NetworkItem> networkItems = new AndroidObservableSortedList<>(NetworkItem.class, new AndroidObservableSortedList.ItemComparator<NetworkItem>() {
@Override
public int compare(NetworkItem o1, NetworkItem o2) {
assertNotNull(o1);
......
......@@ -23,7 +23,7 @@ package de.kuschku.quasseldroid_ng.ui.chat.drawer;
import com.bignerdranch.expandablerecyclerview.Model.ParentListItem;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import de.kuschku.libquassel.localtypes.buffers.Buffer;
......@@ -31,6 +31,7 @@ import de.kuschku.libquassel.primitives.types.BufferInfo;
import de.kuschku.libquassel.syncables.types.interfaces.QBufferViewConfig;
import de.kuschku.libquassel.syncables.types.interfaces.QNetwork;
import de.kuschku.quasseldroid_ng.ui.theme.AppContext;
import de.kuschku.util.irc.IrcCaseMappers;
import de.kuschku.util.observables.callbacks.ElementCallback;
import de.kuschku.util.observables.callbacks.UICallback;
import de.kuschku.util.observables.lists.ObservableSet;
......@@ -40,12 +41,12 @@ public class NetworkItem implements ParentListItem {
private final AppContext context;
private final QBufferViewConfig config;
private final QNetwork network;
private final List<Buffer> bufferList = new ArrayList<>();
private final ObservableSortedList<Buffer> buffers = new ObservableSortedList<>(Buffer.class, new ObservableSortedList.ItemComparator<Buffer>() {
private final ObservableSortedList<Buffer> buffers = new ObservableSortedList<>(new Comparator<Buffer>() {
@Override
public int compare(Buffer o1, Buffer o2) {
if (o1.getInfo().type == o2.getInfo().type) {
return network.caseMapper().toLowerCase(o1.getName()).compareTo(network.caseMapper().toLowerCase(o2.getName()));
IrcCaseMappers.IrcCaseMapper ircCaseMapper = network.caseMapper();
return ircCaseMapper.toLowerCase(o1.getName()).compareTo(ircCaseMapper.toLowerCase(o2.getName()));
} else {
if (o1.getInfo().type == BufferInfo.Type.STATUS)
return -1;
......@@ -63,16 +64,6 @@ public class NetworkItem implements ParentListItem {
return -1;
}
}
@Override
public boolean areContentsTheSame(Buffer oldItem, Buffer newItem) {
return oldItem == newItem;
}
@Override
public boolean areItemsTheSame(Buffer item1, Buffer item2) {
return item1.getInfo().id == item2.getInfo().id;
}
});
private final ElementCallback<Integer> callback = new ElementCallback<Integer>() {
@Override
......@@ -80,7 +71,6 @@ public class NetworkItem implements ParentListItem {
Buffer buffer = context.client().bufferManager().buffer(element);
if (buffer != null && buffer.getInfo().networkId == network.networkId()) {
buffers.add(buffer);
bufferList.add(buffers.indexOf(buffer), buffer);
}
}
......@@ -88,8 +78,7 @@ public class NetworkItem implements ParentListItem {
public void notifyItemRemoved(Integer element) {
Buffer buffer = context.client().bufferManager().buffer(element);
if (buffer != null && buffer.getInfo().networkId == network.networkId()) {
buffers.remove(bufferList.indexOf(buffer));
bufferList.remove(buffer);
buffers.remove(buffer);
}
}
......@@ -160,16 +149,8 @@ public class NetworkItem implements ParentListItem {
@Override
public void notifyItemChanged(Integer element) {
Buffer buffer = NetworkItem.this.context.client().bufferManager().buffer(element);
if (buffer != null && buffer.getInfo().networkId == NetworkItem.this.network.networkId() && bufferList.contains(buffer)) {
int position = buffers.indexOf(buffer);
if (position == -1) {
buffers.remove(bufferList.indexOf(buffer));
bufferList.remove(buffer);
buffers.add(buffer);
bufferList.add(buffers.indexOf(buffer), buffer);
} else {
buffers.notifyItemChanged(position);
}
if (buffer != null && buffer.getInfo().networkId == NetworkItem.this.network.networkId() && buffers.contains(buffer)) {
buffers.notifyItemChanged(buffer);
}
}
});
......@@ -179,14 +160,12 @@ public class NetworkItem implements ParentListItem {
if (this.backingSet != null)
this.backingSet.removeCallback(callback);
buffers.clear();
bufferList.clear();
backingSet.addCallback(callback);
for (int id : backingSet) {
Buffer buffer = context.client().bufferManager().buffer(id);
if (buffer != null && buffer.getInfo().networkId == network.networkId()) {
buffers.add(buffer);
bufferList.add(buffers.indexOf(buffer), buffer);
}
}
this.backingSet = backingSet;
......
......@@ -49,7 +49,7 @@ import de.kuschku.quasseldroid_ng.service.ClientBackgroundThread;
import de.kuschku.quasseldroid_ng.ui.chat.chatview.MessageAdapter;
import de.kuschku.quasseldroid_ng.ui.chat.util.SlidingPanelHandler;
import de.kuschku.util.observables.AutoScroller;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableComparableSortedList;
import de.kuschku.util.servicebound.BoundFragment;
import static de.kuschku.util.AndroidAssert.assertNotNull;
......@@ -124,7 +124,7 @@ public class ChatFragment extends BoundFragment {
if (client != null && client.connectionStatus() == ConnectionChangeEvent.Status.CONNECTED) {
QBacklogManager backlogManager = client.backlogManager();
int id = backlogManager.open();
ObservableComparableSortedList<Message> messageList = backlogManager.filtered(id);
AndroidObservableComparableSortedList<Message> messageList = backlogManager.filtered(id);
messageAdapter.setMessageList(messageList);
}
}
......
......@@ -28,8 +28,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import java.util.Comparator;
import butterknife.Bind;
import butterknife.ButterKnife;
......@@ -38,7 +37,6 @@ import de.kuschku.libquassel.syncables.types.interfaces.QIrcUser;
import de.kuschku.quasseldroid_ng.R;
import de.kuschku.quasseldroid_ng.ui.theme.AppContext;
import de.kuschku.util.CompatibilityUtils;
import de.kuschku.util.backports.Objects;
import de.kuschku.util.observables.callbacks.ElementCallback;
import de.kuschku.util.observables.callbacks.wrappers.AdapterUICallbackWrapper;
import de.kuschku.util.observables.lists.ObservableSortedList;
......@@ -49,8 +47,7 @@ public class NickListAdapter extends RecyclerView.Adapter<NickListAdapter.NickVi
private final AppContext context;
QIrcChannel channel;
List<QIrcUser> list = new ArrayList<>();
ObservableSortedList<QIrcUser> users = new ObservableSortedList<>(QIrcUser.class, new ObservableSortedList.ItemComparator<QIrcUser>() {
ObservableSortedList<QIrcUser> users = new ObservableSortedList<>(new Comparator<QIrcUser>() {
@Override
public int compare(QIrcUser o1, QIrcUser o2) {
if (channel.userModes(o1).equals(channel.userModes(o2))) {
......@@ -59,23 +56,12 @@ public class NickListAdapter extends RecyclerView.Adapter<NickListAdapter.NickVi
return channel.network().lowestModeIndex(channel.userModes(o1)) - channel.network().lowestModeIndex(channel.userModes(o2));
}
}
@Override
public boolean areContentsTheSame(QIrcUser oldItem, QIrcUser newItem) {
return Objects.equals(oldItem.userModes(), newItem.userModes()) && Objects.equals(oldItem.realName(), newItem.realName());
}
@Override
public boolean areItemsTheSame(QIrcUser item1, QIrcUser item2) {
return Objects.equals(item1.nick(), item2.nick());
}
});
private ElementCallback<String> callback = new ElementCallback<String>() {
@Override
public void notifyItemInserted(String element) {
QIrcUser qIrcUser = channel.network().ircUser(element);
users.add(qIrcUser);
list.add(users.indexOf(qIrcUser), qIrcUser);
}
@Override
......@@ -84,18 +70,15 @@ public class NickListAdapter extends RecyclerView.Adapter<NickListAdapter.NickVi
QIrcUser user = users.get(i);
if (user.nick().equals(element)) {
users.remove(i);
list.remove(user);
}
}
}
@Override
public void notifyItemChanged(String element) {
QIrcUser object = channel.network().ircUser(element);
if (object != null) {
users.notifyItemChanged(list.indexOf(object));
list.remove(object);
list.add(users.indexOf(object), object);
QIrcUser user = channel.network().ircUser(element);
if (user != null) {
users.notifyItemChanged(user);
}
}
};
......@@ -110,13 +93,11 @@ public class NickListAdapter extends RecyclerView.Adapter<NickListAdapter.NickVi
this.channel.users().removeCallback(callback);
this.channel = channel;
this.users.clear();
this.list.clear();
if (this.channel != null) {
for (String nick : channel.users()) {
QIrcUser ircUser = channel.network().ircUser(nick);
if (ircUser != null) {
users.add(ircUser);
list.add(users.indexOf(ircUser), ircUser);
}
}
this.channel.users().addCallback(callback);
......
......@@ -39,11 +39,11 @@ import de.kuschku.libquassel.syncables.types.interfaces.QIdentity;
import de.kuschku.quasseldroid_ng.R;
import de.kuschku.util.observables.callbacks.GeneralCallback;
import de.kuschku.util.observables.callbacks.UICallback;
import de.kuschku.util.observables.lists.ObservableSortedList;
import de.kuschku.util.observables.lists.AndroidObservableSortedList;
public class IdentitySpinnerAdapter implements ThemedSpinnerAdapter, GeneralCallback {
private final Set<DataSetObserver> observers = new HashSet<>();
private ObservableSortedList<QIdentity> identities;
private AndroidObservableSortedList<QIdentity> identities;
@Nullable
private Resources.Theme theme;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment