showBoard method

void showBoard()

Implementation

void showBoard() {
  if (NavigatorInstance.navigatorKey.currentState == null) return;

  final apps = MicroBoard().getMicroBoardApps;

  final orphanHandlers = getOrphanHandlers();
  final widgetHandlers = getWidgetsHandlers();
  final webviewControllers = getWebviewControllers();

  var conflictingChannels = <String>[];

  for (var app in apps) {
    for (var handler in app.handlers) {
      conflictingChannels.addAll(handler.channels);
    }
  }

  for (var handler in orphanHandlers) {
    conflictingChannels.addAll(handler.channels);
  }

  for (var handler in widgetHandlers) {
    conflictingChannels.addAll(handler.channels);
  }

  conflictingChannels = conflictingChannels
      .where((filter) =>
          conflictingChannels.where((element) => element == filter).length >
          1)
      .toSet()
      .toList();

  NavigatorInstance.push(
    MaterialPageRoute(
      builder: (context) => MicroBoardPage(
        apps: apps,
        orphanHandlers: orphanHandlers,
        widgetHandlers: widgetHandlers,
        conflictingChannels: conflictingChannels,
        webviewControllers: webviewControllers,
      ),
    ),
  );
}