diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java
index a3a008e0f752b433663a6e1d69c15063f10d552a..8055ed9a8bc25247868cc37f253850017c847260 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/drawer/BufferViewConfigAdapter.java
@@ -32,6 +32,7 @@ import com.bignerdranch.expandablerecyclerview.Adapter.ExpandableRecyclerAdapter
 import com.bignerdranch.expandablerecyclerview.Model.ParentListItem;
 
 import java.lang.ref.WeakReference;
+import java.util.Comparator;
 import java.util.Map;
 import java.util.WeakHashMap;
 
@@ -41,14 +42,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 AndroidObservableSortedList<NetworkItem> items;
+    private final ObservableSortedList<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);
@@ -69,7 +70,7 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi
         @Override
         public void notifyItemChanged(QNetwork network) {
             if (items.contains(itemMap.get(network)))
-                items.notifyItemChanged(items.indexOf(itemMap.get(network)));
+                items.notifyItemChanged(itemMap.get(network));
         }
     };
     private WeakReference<RecyclerView> recyclerView = new WeakReference<>(null);
@@ -77,7 +78,7 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi
     private OnBufferClickListener bufferClickListener;
     private ActionModeHandler actionModeHandler;
 
-    private BufferViewConfigAdapter(AppContext context, AndroidObservableSortedList<NetworkItem> items) {
+    private BufferViewConfigAdapter(AppContext context, ObservableSortedList<NetworkItem> items) {
         super(items);
         this.context = context;
         this.items = items;
@@ -135,46 +136,33 @@ public class BufferViewConfigAdapter extends ExpandableRecyclerAdapter<NetworkVi
     }
 
     public static BufferViewConfigAdapter of(AppContext context) {
-        final AndroidObservableSortedList<NetworkItem> networkItems = new AndroidObservableSortedList<>(NetworkItem.class, new AndroidObservableSortedList.ItemComparator<NetworkItem>() {
-            @Override
-            public int compare(NetworkItem o1, NetworkItem o2) {
-                assertNotNull(o1);
-                assertNotNull(o2);
-
-                QNetwork network1 = o1.getNetwork();
-                QNetwork network2 = o2.getNetwork();
-
-                if (network1 == null && network2 == null) {
+        final ObservableSortedList<NetworkItem> networkItems = new ObservableSortedList<>((Comparator<NetworkItem>) (o1, o2) -> {
+            assertNotNull(o1);
+            assertNotNull(o2);
+
+            QNetwork network1 = o1.getNetwork();
+            QNetwork network2 = o2.getNetwork();
+
+            if (network1 == null && network2 == null) {
+                return 0;
+            } else if (network1 == null) {
+                return 1;
+            } else if (network2 == null) {
+                return -1;
+            } else {
+                String name1 = network1.networkName();
+                String name2 = network2.networkName();
+
+                if (name1 == null && name2 == null) {
                     return 0;
-                } else if (network1 == null) {
+                } else if (name1 == null) {
                     return 1;
-                } else if (network2 == null) {
+                } else if (name2 == null) {
                     return -1;
                 } else {
-                    String name1 = network1.networkName();
-                    String name2 = network2.networkName();
-
-                    if (name1 == null && name2 == null) {
-                        return 0;
-                    } else if (name1 == null) {
-                        return 1;
-                    } else if (name2 == null) {
-                        return -1;
-                    } else {
-                        return name1.compareToIgnoreCase(name2);
-                    }
+                    return name1.compareToIgnoreCase(name2);
                 }
             }
-
-            @Override
-            public boolean areContentsTheSame(NetworkItem oldItem, NetworkItem newItem) {
-                return oldItem == newItem;
-            }
-
-            @Override
-            public boolean areItemsTheSame(NetworkItem item1, NetworkItem item2) {
-                return item1.getNetwork().networkId() == item2.getNetwork().networkId();
-            }
         });
         return new BufferViewConfigAdapter(context, networkItems);
     }