private void acceptHogsOrBugs(SimpleHogBug[] input, ArrayList<SimpleHogBug> result) {
    if (input == null) return;
    for (SimpleHogBug item : input) {
      if (item == null) continue;
      double benefit = 100.0 / item.getExpectedValueWithout() - 100.0 / item.getExpectedValue();
      // TODO other filter conditions?
      // Limit max number of items?
      String appName = item.getAppName();
      if (appName == null) appName = a.getString(R.string.unknown);

      // don't show (skip) special/system apps
      // (DISABLED FOR DEBUGGING. TODO: ENABLE IT AFTER DEBUGGING, and check whether this has any
      // problem)
      //			if (SpecialAppCases.isSpecialApp(appName))
      if (appName.equals(Constants.CARAT_PACKAGE_NAME) || appName.equals(Constants.CARAT_OLD))
        continue;
      if (SamplingLibrary.isHidden(a.getApplicationContext(), appName)) continue;

      if (addFakeItem && appName.equals(FAKE_ITEM)) result.add(item);
      // Filter out if benefit is too small
      if (SamplingLibrary.isRunning(a.getApplicationContext(), appName) && benefit > 60) {
        result.add(item);
      }
    }
  }