@Override
  public AnAction @NotNull [] getChildren(@Nullable AnActionEvent event) {
    if (event == null) return AnAction.EMPTY_ARRAY;

    DataContext context = event.getDataContext();

    List<AnAction> result = new ArrayList<>();
    List<AnAction> appActions = new ArrayList<>();
    List<AnAction> pluginActions = new ArrayList<>();

    for (ActionProvider provider : ActionProvider.EP_NAME.getExtensionList()) {
      try {
        for (UpdateAction action : provider.getUpdateActions(context)) {
          Presentation presentation = action.getTemplatePresentation();
          if (action.isIdeUpdate()) {
            presentation.setIcon(AllIcons.Ide.Notification.IdeUpdate);
            appActions.add(action);
          }
          else {
            presentation.setIcon(AllIcons.Ide.Notification.PluginUpdate);
            pluginActions.add(action);
          }
          action.markAsRead();
        }
      }
      catch (Exception e) {
        LOG.error(e);
      }
    }

    result.addAll(appActions);
    result.addAll(pluginActions);

    if (result.isEmpty()) {
      resetActionIcon();
    }
    ContainerUtil.addIfNotNull(result, ActionManager.getInstance().getAction("UpdateEntryPointGroup"));
    result.add(Separator.getInstance());
    ContainerUtil.addIfNotNull(result, ActionManager.getInstance().getAction("SettingsEntryPointGroup"));

    if (ExperimentalUI.isNewUI()) {
      for (ActionProvider provider : ActionProvider.EP_NAME.getExtensionList()) {
        try {
          result.addAll(provider.getLastActions(context));
        }
        catch (Exception e) {
          LOG.error(e);
        }
      }
    }
    return result.toArray(AnAction.EMPTY_ARRAY);
  }
@Override
  public AnAction @NotNull [] getChildren(@Nullable AnActionEvent event)