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

Fixed a bug where items occurred twice in the buffer list

parent d6395edc
No related branches found
No related tags found
No related merge requests found
......@@ -99,7 +99,7 @@ public class MainActivity extends BoundActivity {
* This object encapsulates the current status of the activity – opened bufferview, for example
*/
Status status = new Status();
BufferViewConfigItem currentConfig;
private AccountManager manager;
@Override
......@@ -209,16 +209,19 @@ public class MainActivity extends BoundActivity {
status.bufferViewConfigId = bufferViewConfigId;
accountHeader.setActiveProfile(bufferViewConfigId, false);
if (bufferViewConfigId == -1) {
drawerLeft.removeAllItems();
} else {
drawerLeft.removeAllItems();
drawerLeft.removeAllItems();
if (currentConfig != null)
currentConfig.remove();
currentConfig = null;
if (bufferViewConfigId != -1) {
QBufferViewManager bufferViewManager = client.bufferViewManager();
assertNotNull(bufferViewManager);
QBufferViewConfig viewConfig = bufferViewManager.bufferViewConfig(bufferViewConfigId);
assertNotNull(viewConfig);
new BufferViewConfigItem(drawerLeft, viewConfig, context);
currentConfig = new BufferViewConfigItem(drawerLeft, viewConfig, context);
}
}
......
......@@ -35,6 +35,7 @@ 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.observables.callbacks.DrawerItemCallback;
import de.kuschku.util.observables.callbacks.GeneralCallback;
import de.kuschku.util.observables.callbacks.wrappers.AdapterUICallbackWrapper;
import de.kuschku.util.observables.lists.ObservableComparableSortedList;
......@@ -52,14 +53,18 @@ public class BufferViewConfigItem implements DrawerItemCallback {
@NonNull
private final AppContext context;
GeneralCallback rebuildNetworkList = this::rebuildNetworkList;
AdapterUICallbackWrapper callbackWrapper;
public BufferViewConfigItem(@NonNull Drawer drawer, @NonNull QBufferViewConfig config, @NonNull AppContext context) {
this.drawer = drawer;
this.config = config;
this.context = context;
manager = new BufferItemManager(context);
config.addObserver(this::rebuildNetworkList);
config.addObserver(rebuildNetworkList);
assertNotNull(drawer.getItemAdapter());
networks.addCallback(new AdapterUICallbackWrapper(drawer.getItemAdapter()));
callbackWrapper = new AdapterUICallbackWrapper(drawer.getItemAdapter());
networks.addCallback(callbackWrapper);
rebuildNetworkList();
}
......@@ -126,4 +131,9 @@ public class BufferViewConfigItem implements DrawerItemCallback {
drawer.getAdapter().notifyAdapterSubItemsChanged(position);
}
}
public void remove() {
config.deleteObserver(rebuildNetworkList);
networks.removeCallback(callbackWrapper);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment