[Magnifier-46] Add builder for magnifier objects
The CL adds a builder class that enables creating Magnifier objects with
custom properties. The defaults of the builder remain the predefined
values of the magnifier in P.
Bug: 72211470
Test: manual testing
Test: atest CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: I066082fb17cfb8c483c49b7011abfa9dca9de77a
diff --git a/core/java/com/android/internal/util/Preconditions.java b/core/java/com/android/internal/util/Preconditions.java
index 91c76af..2c6a0e0 100644
--- a/core/java/com/android/internal/util/Preconditions.java
+++ b/core/java/com/android/internal/util/Preconditions.java
@@ -192,7 +192,7 @@
}
/**
- * Ensures that that the argument numeric value is non-negative.
+ * Ensures that that the argument numeric value is non-negative (greater than or equal to 0).
*
* @param value a numeric int value
* @param errorMessage the exception message to use if the check fails
@@ -209,7 +209,7 @@
}
/**
- * Ensures that that the argument numeric value is non-negative.
+ * Ensures that that the argument numeric value is non-negative (greater than or equal to 0).
*
* @param value a numeric int value
*
@@ -225,7 +225,7 @@
}
/**
- * Ensures that that the argument numeric value is non-negative.
+ * Ensures that that the argument numeric value is non-negative (greater than or equal to 0).
*
* @param value a numeric long value
* @return the validated numeric value
@@ -240,7 +240,7 @@
}
/**
- * Ensures that that the argument numeric value is non-negative.
+ * Ensures that that the argument numeric value is non-negative (greater than or equal to 0).
*
* @param value a numeric long value
* @param errorMessage the exception message to use if the check fails
@@ -256,7 +256,7 @@
}
/**
- * Ensures that that the argument numeric value is positive.
+ * Ensures that that the argument numeric value is positive (greater than 0).
*
* @param value a numeric int value
* @param errorMessage the exception message to use if the check fails
@@ -272,6 +272,36 @@
}
/**
+ * Ensures that the argument floating point value is non-negative (greater than or equal to 0).
+ * @param value a floating point value
+ * @param errorMessage the exteption message to use if the check fails
+ * @return the validated numeric value
+ * @throws IllegalArgumentException if {@code value} was negative
+ */
+ public static float checkArgumentNonNegative(final float value, final String errorMessage) {
+ if (value < 0) {
+ throw new IllegalArgumentException(errorMessage);
+ }
+
+ return value;
+ }
+
+ /**
+ * Ensures that the argument floating point value is positive (greater than 0).
+ * @param value a floating point value
+ * @param errorMessage the exteption message to use if the check fails
+ * @return the validated numeric value
+ * @throws IllegalArgumentException if {@code value} was not positive
+ */
+ public static float checkArgumentPositive(final float value, final String errorMessage) {
+ if (value <= 0) {
+ throw new IllegalArgumentException(errorMessage);
+ }
+
+ return value;
+ }
+
+ /**
* Ensures that the argument floating point value is a finite number.
*
* <p>A finite number is defined to be both representable (that is, not NaN) and