diff options
| author | Neil Fuller <nfuller@google.com> | 2021-01-06 23:03:48 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-01-06 23:03:48 +0000 |
| commit | 762c02655462933aa0c714a123a447b8d7753df8 (patch) | |
| tree | 68c912f1bd55a8855dcfc84c2fd52ad4b8ab5a14 /core/java/android | |
| parent | efff97ace1c17ac605edc058a7dc2d1afb707b1a (diff) | |
| parent | 616df78f9e60978629aea7ce6abdc672ba010432 (diff) | |
Merge "Add LocationTimeZoneProvider test infrastructure"
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/service/timezone/ITimeZoneProvider.aidl | 3 | ||||
| -rw-r--r-- | core/java/android/service/timezone/TimeZoneProviderService.java | 38 |
2 files changed, 30 insertions, 11 deletions
diff --git a/core/java/android/service/timezone/ITimeZoneProvider.aidl b/core/java/android/service/timezone/ITimeZoneProvider.aidl index 62fa15757857..793bcc6054a9 100644 --- a/core/java/android/service/timezone/ITimeZoneProvider.aidl +++ b/core/java/android/service/timezone/ITimeZoneProvider.aidl @@ -22,7 +22,6 @@ import android.service.timezone.ITimeZoneProviderManager; * @hide */ oneway interface ITimeZoneProvider { - void setTimeZoneProviderManager(in @nullable ITimeZoneProviderManager manager); - void startUpdates(in long initializationTimeoutMillis); + void startUpdates(in ITimeZoneProviderManager manager, in long initializationTimeoutMillis); void stopUpdates(); } diff --git a/core/java/android/service/timezone/TimeZoneProviderService.java b/core/java/android/service/timezone/TimeZoneProviderService.java index f2bf176620bd..d71a8300d9b8 100644 --- a/core/java/android/service/timezone/TimeZoneProviderService.java +++ b/core/java/android/service/timezone/TimeZoneProviderService.java @@ -112,7 +112,18 @@ public abstract class TimeZoneProviderService extends Service { private static final String TAG = "TimeZoneProviderService"; - private final Handler mHandler = BackgroundThread.getHandler(); + /** + * The test command result key indicating whether a command succeeded. Value type: boolean + * @hide + */ + public static final String TEST_COMMAND_RESULT_SUCCESS_KEY = "SUCCESS"; + + /** + * The test command result key for the error message present when {@link + * #TEST_COMMAND_RESULT_SUCCESS_KEY} is false. Value type: string + * @hide + */ + public static final String TEST_COMMAND_RESULT_ERROR_KEY = "ERROR"; /** * The Intent action that the primary location-derived time zone provider service must respond @@ -132,6 +143,8 @@ public abstract class TimeZoneProviderService extends Service { private final TimeZoneProviderServiceWrapper mWrapper = new TimeZoneProviderServiceWrapper(); + private final Handler mHandler = BackgroundThread.getHandler(); + /** Set by {@link #mHandler} thread. */ @Nullable private ITimeZoneProviderManager mManager; @@ -198,11 +211,22 @@ public abstract class TimeZoneProviderService extends Service { }); } + private void onStartUpdatesInternal(@NonNull ITimeZoneProviderManager manager, + @DurationMillisLong long initializationTimeoutMillis) { + mManager = manager; + onStartUpdates(initializationTimeoutMillis); + } + /** * Starts the provider sending updates. */ public abstract void onStartUpdates(@DurationMillisLong long initializationTimeoutMillis); + private void onStopUpdatesInternal() { + onStopUpdates(); + mManager = null; + } + /** * Stops the provider sending updates. */ @@ -210,18 +234,14 @@ public abstract class TimeZoneProviderService extends Service { private class TimeZoneProviderServiceWrapper extends ITimeZoneProvider.Stub { - @Override - public void setTimeZoneProviderManager(ITimeZoneProviderManager manager) { + public void startUpdates(@NonNull ITimeZoneProviderManager manager, + @DurationMillisLong long initializationTimeoutMillis) { Objects.requireNonNull(manager); - mHandler.post(() -> TimeZoneProviderService.this.mManager = manager); - } - - public void startUpdates(@DurationMillisLong long initializationTimeoutMillis) { - mHandler.post(() -> onStartUpdates(initializationTimeoutMillis)); + mHandler.post(() -> onStartUpdatesInternal(manager, initializationTimeoutMillis)); } public void stopUpdates() { - mHandler.post(TimeZoneProviderService.this::onStopUpdates); + mHandler.post(TimeZoneProviderService.this::onStopUpdatesInternal); } } } |
