summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorNeil Fuller <nfuller@google.com>2021-01-06 23:03:48 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2021-01-06 23:03:48 +0000
commit762c02655462933aa0c714a123a447b8d7753df8 (patch)
tree68c912f1bd55a8855dcfc84c2fd52ad4b8ab5a14 /core/java/android
parentefff97ace1c17ac605edc058a7dc2d1afb707b1a (diff)
parent616df78f9e60978629aea7ce6abdc672ba010432 (diff)
Merge "Add LocationTimeZoneProvider test infrastructure"
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/service/timezone/ITimeZoneProvider.aidl3
-rw-r--r--core/java/android/service/timezone/TimeZoneProviderService.java38
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);
}
}
}