diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java index c6ffe580753fe..5926db3713dbd 100644 --- a/core/java/android/text/format/Time.java +++ b/core/java/android/text/format/Time.java @@ -281,10 +281,29 @@ public class Time { } /** - * return a negative number if a is less than b, a positive number if a is - * greater than b, and 0 if they are equal. + * Compare two {@code Time} objects and return a negative number if {@code + * a} is less than {@code b}, a positive number if {@code a} is greater than + * {@code b}, or 0 if they are equal. + * + * @param a first {@code Time} instance to compare + * @param b second {@code Time} instance to compare + * @throws NullPointerException if either argument is {@code null} + * @throws IllegalArgumentException if {@link #allDay} is true but {@code + * hour}, {@code minute}, and {@code second} are not 0. + * @return a negative result if {@code a} is earlier, a positive result if + * {@code a} is earlier, or 0 if they are equal. */ - native public static int compare(Time a, Time b); + public static int compare(Time a, Time b) { + if (a == null) { + throw new NullPointerException("a == null"); + } else if (b == null) { + throw new NullPointerException("b == null"); + } + + return nativeCompare(a, b); + } + + private static native int nativeCompare(Time a, Time b); /** * Print the current value given the format string provided. See man diff --git a/core/jni/android_text_format_Time.cpp b/core/jni/android_text_format_Time.cpp index c152aa8351af3..69c6021e22e85 100644 --- a/core/jni/android_text_format_Time.cpp +++ b/core/jni/android_text_format_Time.cpp @@ -641,7 +641,7 @@ static JNINativeMethod gMethods[] = { /* name, signature, funcPtr */ { "normalize", "(Z)J", (void*)android_text_format_Time_normalize }, { "switchTimezone", "(Ljava/lang/String;)V", (void*)android_text_format_Time_switchTimezone }, - { "compare", "(Landroid/text/format/Time;Landroid/text/format/Time;)I", (void*)android_text_format_Time_compare }, + { "nativeCompare", "(Landroid/text/format/Time;Landroid/text/format/Time;)I", (void*)android_text_format_Time_compare }, { "format1", "(Ljava/lang/String;)Ljava/lang/String;", (void*)android_text_format_Time_format }, { "format2445", "()Ljava/lang/String;", (void*)android_text_format_Time_format2445 }, { "toString", "()Ljava/lang/String;", (void*)android_text_format_Time_toString },