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
This commit is contained in:
Mustafa Acer
2021-03-24 07:38:38 +00:00
committed by Mustafa Emre Acer
parent f57e4c9bce
commit 5265da19f9
3 changed files with 12 additions and 2 deletions

View File

@@ -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<java.lang.String> getDebugInfo();
method public void writeToParcel(@NonNull android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.app.time.ExternalTimeSuggestion> 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);
}

View File

@@ -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<ExternalTimeSuggestion> 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<String> getDebugInfo() {

View File

@@ -262,7 +262,6 @@ public final class TimeManager {
* HAL. This time <em>may</em> 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) {