From 5265da19f90c480f0fe2b2ee1ee15a7a6e03bb0c Mon Sep 17 00:00:00 2001 From: Mustafa Acer Date: Wed, 24 Mar 2021 07:38:38 +0000 Subject: Expose TimeManager.suggestExternalTime() This CL exposes an API that allows system clock time suggestions from an external clock / time source to be made. The nature of "external" could be highly form-factor specific. Example, times obtained via the VHAL for Android Auto OS. Bug: 157504928 Bug: 177079827 Test: atest android.app.time CTS-Coverage-Bug: 182275086 Change-Id: I3527e3827a03c1df73fdc1e00c815ad5971a92ca --- core/api/system-current.txt | 10 ++++++++++ core/java/android/app/time/ExternalTimeSuggestion.java | 3 ++- core/java/android/app/time/TimeManager.java | 1 - 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/core/api/system-current.txt b/core/api/system-current.txt index e5814005f31c..97a2cf7f0497 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -1709,10 +1709,20 @@ package android.app.time { field public static final int CAPABILITY_POSSESSED = 40; // 0x28 } + public final class ExternalTimeSuggestion implements android.os.Parcelable { + ctor public ExternalTimeSuggestion(long, long); + method public void addDebugInfo(@NonNull java.lang.String...); + method public int describeContents(); + method @NonNull public java.util.List getDebugInfo(); + method public void writeToParcel(@NonNull android.os.Parcel, int); + field @NonNull public static final android.os.Parcelable.Creator CREATOR; + } + public final class TimeManager { method @RequiresPermission(android.Manifest.permission.MANAGE_TIME_AND_ZONE_DETECTION) public void addTimeZoneDetectorListener(@NonNull java.util.concurrent.Executor, @NonNull android.app.time.TimeManager.TimeZoneDetectorListener); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_TIME_AND_ZONE_DETECTION) public android.app.time.TimeZoneCapabilitiesAndConfig getTimeZoneCapabilitiesAndConfig(); method @RequiresPermission(android.Manifest.permission.MANAGE_TIME_AND_ZONE_DETECTION) public void removeTimeZoneDetectorListener(@NonNull android.app.time.TimeManager.TimeZoneDetectorListener); + method @RequiresPermission(android.Manifest.permission.SUGGEST_EXTERNAL_TIME) public void suggestExternalTime(@NonNull android.app.time.ExternalTimeSuggestion); method @RequiresPermission(android.Manifest.permission.MANAGE_TIME_AND_ZONE_DETECTION) public boolean updateTimeZoneConfiguration(@NonNull android.app.time.TimeZoneConfiguration); } diff --git a/core/java/android/app/time/ExternalTimeSuggestion.java b/core/java/android/app/time/ExternalTimeSuggestion.java index 61defb588170..8e281c07c45d 100644 --- a/core/java/android/app/time/ExternalTimeSuggestion.java +++ b/core/java/android/app/time/ExternalTimeSuggestion.java @@ -20,6 +20,7 @@ import android.annotation.CurrentTimeMillisLong; import android.annotation.ElapsedRealtimeLong; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; import android.os.TimestampedValue; @@ -67,6 +68,7 @@ import java.util.Objects; * * @hide */ +@SystemApi public final class ExternalTimeSuggestion implements Parcelable { public static final @NonNull Creator CREATOR = @@ -129,7 +131,6 @@ public final class ExternalTimeSuggestion implements Parcelable { /** * Returns information that can be useful for debugging / logging. See {@link #addDebugInfo}. - * {@hide} */ @NonNull public List getDebugInfo() { diff --git a/core/java/android/app/time/TimeManager.java b/core/java/android/app/time/TimeManager.java index c71badb0d484..d6acb8cd1076 100644 --- a/core/java/android/app/time/TimeManager.java +++ b/core/java/android/app/time/TimeManager.java @@ -262,7 +262,6 @@ public final class TimeManager { * HAL. This time may be used to set the device system clock, depending on the device * configuration and user settings. This method call is processed asynchronously. * See {@link ExternalTimeSuggestion} for more details. - * {@hide} */ @RequiresPermission(android.Manifest.permission.SUGGEST_EXTERNAL_TIME) public void suggestExternalTime(@NonNull ExternalTimeSuggestion timeSuggestion) { -- cgit v1.2.3-59-g8ed1b