Partially revert "Patch to make it compile against JUnit 4.10 and run on Android"

This partially reverts commit 6774bdc0447b72a618eab51772685010afd5647a.

Bug: 33613916
Test: make checkbuild
Change-Id: Iac008952ff1a0e6f89d8862e817a8b2480dcbb28
diff --git a/src/main/java/junitparams/JUnitParamsRunner.java b/src/main/java/junitparams/JUnitParamsRunner.java
index b77539c..fa37257 100644
--- a/src/main/java/junitparams/JUnitParamsRunner.java
+++ b/src/main/java/junitparams/JUnitParamsRunner.java
@@ -16,8 +16,6 @@
 import junitparams.internal.ParametrizedTestMethodsFilter;
 import junitparams.internal.TestMethod;
 
-import static org.junit.internal.runners.rules.RuleFieldValidator.RULE_VALIDATOR;
-
 /**
  * <h1>JUnitParams</h1><br>
  * <p>
@@ -404,8 +402,7 @@
 
     @Override
     protected void collectInitializationErrors(List<Throwable> errors) {
-        // TODO(JUnit4.10) - super.validateFields() is private in JUnit 4.10 - so inline method
-        RULE_VALIDATOR.validate(getTestClass(), errors);
+        super.validateFields(errors);
         for (Throwable throwable : errors)
             throwable.printStackTrace();
     }
diff --git a/src/main/java/junitparams/internal/InvokeParameterisedMethod.java b/src/main/java/junitparams/internal/InvokeParameterisedMethod.java
index ea4c98d..7d313c2 100644
--- a/src/main/java/junitparams/internal/InvokeParameterisedMethod.java
+++ b/src/main/java/junitparams/internal/InvokeParameterisedMethod.java
@@ -219,13 +219,7 @@
     }
 
     boolean matchesDescription(Description description) {
-        // TODO(JUnit4.10) - because JUnit 4.10 has no separation of display name and unique method
-        // id, we need to do some mangling of the name to get a match
-        String displayName = description.getDisplayName();
-
-        int endIndex = displayName.lastIndexOf("(", displayName.length() - 1);
-        String uniqueName = (endIndex == - 1) ? displayName : displayName.substring(0, endIndex);
-        return uniqueName.equals(uniqueMethodId);
+        return description.hashCode() == uniqueMethodId.hashCode();
     }
 
     @Override
diff --git a/src/main/java/junitparams/internal/TestMethod.java b/src/main/java/junitparams/internal/TestMethod.java
index 7eac3ae..6125803 100644
--- a/src/main/java/junitparams/internal/TestMethod.java
+++ b/src/main/java/junitparams/internal/TestMethod.java
@@ -103,13 +103,10 @@
             for (int i = 0; i < params.length; i++) {
                 Object paramSet = params[i];
                 String name = namingStrategy.getTestCaseName(i, paramSet);
-                // TODO(JUnit4.10) - Description.createTestDescription(Class, String, Serializable)
-                // is not available in JUnit 4.10. That means that it is not possible to
-                // differentiate between tests using a unique method id. Just use the name for now.
-                // There is a corresponding change in
-                // InvokeParameterisedMethod.matchesDescription(Description description).
+                String uniqueMethodId = Utils.uniqueMethodId(i, paramSet, name());
+
                 parametrised.addChild(
-                        Description.createTestDescription(testClass(), name)
+                        Description.createTestDescription(testClass().getName(), name, uniqueMethodId)
                 );
             }
             return parametrised;
diff --git a/src/test/java/junitparams/internal/TestMethodTest.java b/src/test/java/junitparams/internal/TestMethodTest.java
index cceccbc..2964781 100644
--- a/src/test/java/junitparams/internal/TestMethodTest.java
+++ b/src/test/java/junitparams/internal/TestMethodTest.java
@@ -93,9 +93,7 @@
     public void testVarargsCustomClass(Pair... pairs){
 		assertEquals(pairs[0].x, pairs[0].y);
 		assertEquals(pairs[1].x, pairs[1].y);
-		// TODO(JUnit4.10) - assertNotEquals not in JUnit 4.10
-		// assertNotEquals(pairs[2].x, pairs[2].y);
-		assertTrue(pairs[2].x != pairs[2].y);		
+		assertNotEquals(pairs[2].x, pairs[2].y);
     }
     
     protected Object[] parametersForTestVarargsCustomClass(){