Exclude `@Ignore`d tests for accurate test count

Bug: 30268664
Test: cts-tradefed run cts -m CtsMediaBitstreamsTestCases -collect-tests-only
Change-Id: I8ab65f8829524956f49fa0df766a7acf9fd1baec
diff --git a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java
index 1631357..f8e5576 100644
--- a/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java
+++ b/hostsidetests/media/bitstreams/src/android/media/cts/bitstreams/DeviceJUnit4ClassRunnerWithParameters.java
@@ -25,15 +25,14 @@
 import com.android.tradefed.testtype.IDeviceTest;
 import com.android.tradefed.testtype.ISetOptionReceiver;
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
+import org.junit.Ignore;
 import org.junit.runner.Description;
 import org.junit.runner.Runner;
 import org.junit.runners.model.FrameworkMethod;
 import org.junit.runners.model.InitializationError;
-import org.junit.runners.model.TestClass;
 import org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters;
 import org.junit.runners.parameterized.ParametersRunnerFactory;
 import org.junit.runners.parameterized.TestWithParameters;
@@ -53,8 +52,6 @@
     private ITestDevice mDevice;
     private IBuildInfo mBuildInfo;
     private IAbi mAbi;
-    private Collection<FrameworkMethod> mFilteredChildren;
-    private Object mChildrenLock = new Object();
 
     public DeviceJUnit4ClassRunnerWithParameters(TestWithParameters test) throws InitializationError {
         super(test);
@@ -81,26 +78,28 @@
         return mDevice;
     }
 
+
     @Override
     public Description getDescription() {
-        Description description = Description.createSuiteDescription(getTestClass().getJavaClass());
-        for (FrameworkMethod child : getFilteredChildren()) {
-            description.addChild(describeChild(child));
+        Description desc = Description.createSuiteDescription(getTestClass().getJavaClass());
+        for (FrameworkMethod method : getChildren()) {
+            desc.addChild(describeChild(method));
         }
-        return description;
+        return desc;
     }
 
-    private Collection<FrameworkMethod> getFilteredChildren() {
-        if (mFilteredChildren == null) {
-            synchronized (mChildrenLock) {
-                if (mFilteredChildren == null) {
-                    mFilteredChildren = Collections.unmodifiableCollection(getChildren());
-                }
+    @Override
+    protected List<FrameworkMethod> getChildren() {
+        List<FrameworkMethod> methods = super.getChildren();
+        List<FrameworkMethod> filteredMethods = new ArrayList<>();
+        for (FrameworkMethod method : methods) {
+            Description desc = describeChild(method);
+            if (desc.getAnnotation(Ignore.class) == null) {
+                filteredMethods.add(method);
             }
         }
-        return mFilteredChildren;
+        return filteredMethods;
     }
-
     /**
      * We override createTest in order to set the device.
      */