diff options
| author | Neil Fuller <nfuller@google.com> | 2018-06-19 12:53:47 +0100 |
|---|---|---|
| committer | Neil Fuller <nfuller@google.com> | 2018-06-21 09:30:34 +0000 |
| commit | cccc48d0fe07349e1804dd7803db604d37a6d450 (patch) | |
| tree | 5074de619835716126f01e71c1e5f55dd5559cdd /core/java | |
| parent | 3b0eba44994cf35b743a09cba351427a1f700c5f (diff) | |
Minimum viable TimeZoneDetectorService
This is a do-nothing TimeZoneDetectorService that can be
populated in following commits. A temporary method has been
added so the service has one method.
Unit tests can be run with:
atest FrameworksServicesTests:TimeZoneDetectorServiceTest
Test: build / boot
Test: See above
Merged-In: I565fb5dd2f18b7aac2e5779d346bfe69e9da02af
Change-Id: I565fb5dd2f18b7aac2e5779d346bfe69e9da02af
Diffstat (limited to 'core/java')
4 files changed, 109 insertions, 0 deletions
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java index aa1738dc1d97..26ea06854b89 100644 --- a/core/java/android/app/SystemServiceRegistry.java +++ b/core/java/android/app/SystemServiceRegistry.java @@ -24,6 +24,7 @@ import android.app.job.IJobScheduler; import android.app.job.JobScheduler; import android.app.timedetector.TimeDetector; import android.app.timezone.RulesManager; +import android.app.timezonedetector.TimeZoneDetector; import android.app.trust.TrustManager; import android.app.usage.IStorageStatsManager; import android.app.usage.IUsageStatsManager; @@ -914,6 +915,13 @@ final class SystemServiceRegistry { throws ServiceNotFoundException { return new TimeDetector(); }}); + registerService(Context.TIME_ZONE_DETECTOR_SERVICE, TimeZoneDetector.class, + new CachedServiceFetcher<TimeZoneDetector>() { + @Override + public TimeZoneDetector createService(ContextImpl ctx) + throws ServiceNotFoundException { + return new TimeZoneDetector(); + }}); } /** diff --git a/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl b/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl new file mode 100644 index 000000000000..ef2cbab137dc --- /dev/null +++ b/core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.app.timezonedetector; + +/** + * System private API to comunicate with time zone detector service. + * + * <p>Used by parts of the Android system with signals associated with the device's time zone to + * provide information to the Time Zone Detector Service. + * + * <p>Use the {@link android.app.timezonedetector.TimeZoneDetector} class rather than going through + * this Binder interface directly. See {@link android.app.timezonedetector.TimeZoneDetectorService} + * for more complete documentation. + * + * + * {@hide} + */ +interface ITimeZoneDetectorService { + void stubbedCall(); +} diff --git a/core/java/android/app/timezonedetector/TimeZoneDetector.java b/core/java/android/app/timezonedetector/TimeZoneDetector.java new file mode 100644 index 000000000000..be3c7649a486 --- /dev/null +++ b/core/java/android/app/timezonedetector/TimeZoneDetector.java @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.app.timezonedetector; + +import android.annotation.SystemService; +import android.content.Context; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.os.ServiceManager.ServiceNotFoundException; +import android.util.Log; + +/** + * The interface through which system components can send signals to the TimeZoneDetectorService. + * @hide + */ +@SystemService(Context.TIME_ZONE_DETECTOR_SERVICE) +public final class TimeZoneDetector { + + private static final String TAG = "timezonedetector.TimeZoneDetector"; + private static final boolean DEBUG = false; + + private final ITimeZoneDetectorService mITimeZoneDetectorService; + + public TimeZoneDetector() throws ServiceNotFoundException { + mITimeZoneDetectorService = ITimeZoneDetectorService.Stub.asInterface( + ServiceManager.getServiceOrThrow(Context.TIME_ZONE_DETECTOR_SERVICE)); + + } + /** + * Does nothing. + * TODO: Remove this when the service implementation is built out. + */ + public void stubbedCall() { + if (DEBUG) { + Log.d(TAG, "stubbedCall called"); + } + try { + mITimeZoneDetectorService.stubbedCall(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } +} diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index da3e7cb2f815..9c4767212c6c 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -3021,6 +3021,7 @@ public abstract class Context { //@hide: INCIDENT_SERVICE, COMPANION_DEVICE_SERVICE, //@hide: TIME_DETECTOR_SERVICE, + //@hide: TIME_ZONE_DETECTOR_SERVICE, }) @Retention(RetentionPolicy.SOURCE) public @interface ServiceName {} @@ -4107,6 +4108,15 @@ public abstract class Context { public static final String TIME_DETECTOR_SERVICE = "time_detector"; /** + * Use with {@link #getSystemService(String)} to retrieve an + * {@link android.app.timezonedetector.ITimeZoneDetectorService}. + * @hide + * + * @see #getSystemService(String) + */ + public static final String TIME_ZONE_DETECTOR_SERVICE = "time_zone_detector"; + + /** * Determine whether the given permission is allowed for a particular * process and user ID running in the system. * |
