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); } } }