summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-01-29 10:38:45 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2020-01-29 10:38:45 +0000
commit3daccde5262d1949d5e604265d9fcf5a25e253b5 (patch)
tree7f3412a885f04e3e8c2e7c9371fbb21a8fc1d65d
parentd43771e5b74358a8f6ec840102737e9bb2a0093f (diff)
parentf751b9ec06563dc988f48c61a6dbd7e1070667ca (diff)
Merge "Extract TimeDetector/TimeZoneDetector interfaces" am: 17ac92f460 am: a9e81b53a9 am: f751b9ec06
Change-Id: Ic029c262cc34f8c0232cda3558a57f2fcaceb797
-rw-r--r--api/module-lib-current.txt4
-rw-r--r--core/java/android/app/SystemServiceRegistry.java6
-rw-r--r--core/java/android/app/timedetector/TimeDetector.java72
-rw-r--r--core/java/android/app/timedetector/TimeDetectorImpl.java77
-rw-r--r--core/java/android/app/timezonedetector/TimeZoneDetector.java57
-rw-r--r--core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java65
6 files changed, 175 insertions, 106 deletions
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt
index 6f4a27ecfb0b..4787e11098f3 100644
--- a/api/module-lib-current.txt
+++ b/api/module-lib-current.txt
@@ -19,7 +19,7 @@ package android.app.timedetector {
method @NonNull public android.app.timedetector.PhoneTimeSuggestion.Builder setUtcTime(@Nullable android.os.TimestampedValue<java.lang.Long>);
}
- public class TimeDetector {
+ public interface TimeDetector {
method @RequiresPermission("android.permission.SUGGEST_PHONE_TIME_AND_ZONE") public void suggestPhoneTime(@NonNull android.app.timedetector.PhoneTimeSuggestion);
}
@@ -59,7 +59,7 @@ package android.app.timezonedetector {
method @NonNull public android.app.timezonedetector.PhoneTimeZoneSuggestion.Builder setZoneId(@Nullable String);
}
- public class TimeZoneDetector {
+ public interface TimeZoneDetector {
method @RequiresPermission("android.permission.SUGGEST_PHONE_TIME_AND_ZONE") public void suggestPhoneTimeZone(@NonNull android.app.timezonedetector.PhoneTimeZoneSuggestion);
}
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index f170b5dfbc27..59c171923f2b 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -33,8 +33,10 @@ import android.app.role.RoleControllerManager;
import android.app.role.RoleManager;
import android.app.slice.SliceManager;
import android.app.timedetector.TimeDetector;
+import android.app.timedetector.TimeDetectorImpl;
import android.app.timezone.RulesManager;
import android.app.timezonedetector.TimeZoneDetector;
+import android.app.timezonedetector.TimeZoneDetectorImpl;
import android.app.trust.TrustManager;
import android.app.usage.IStorageStatsManager;
import android.app.usage.IUsageStatsManager;
@@ -1196,7 +1198,7 @@ public final class SystemServiceRegistry {
@Override
public TimeDetector createService(ContextImpl ctx)
throws ServiceNotFoundException {
- return new TimeDetector();
+ return new TimeDetectorImpl();
}});
registerService(Context.TIME_ZONE_DETECTOR_SERVICE, TimeZoneDetector.class,
@@ -1204,7 +1206,7 @@ public final class SystemServiceRegistry {
@Override
public TimeZoneDetector createService(ContextImpl ctx)
throws ServiceNotFoundException {
- return new TimeZoneDetector();
+ return new TimeZoneDetectorImpl();
}});
registerService(Context.PERMISSION_SERVICE, PermissionManager.class,
diff --git a/core/java/android/app/timedetector/TimeDetector.java b/core/java/android/app/timedetector/TimeDetector.java
index 7c29f017c02b..2412fb3994ed 100644
--- a/core/java/android/app/timedetector/TimeDetector.java
+++ b/core/java/android/app/timedetector/TimeDetector.java
@@ -21,31 +21,29 @@ import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.content.Context;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.ServiceManager.ServiceNotFoundException;
import android.os.SystemClock;
import android.os.TimestampedValue;
-import android.util.Log;
/**
* The interface through which system components can send signals to the TimeDetectorService.
*
- * <p>This class is marked non-final for mockito.
* @hide
*/
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@SystemService(Context.TIME_DETECTOR_SERVICE)
-public class TimeDetector {
- private static final String TAG = "timedetector.TimeDetector";
- private static final boolean DEBUG = false;
+public interface TimeDetector {
- private final ITimeDetectorService mITimeDetectorService;
-
- /** @hide */
- public TimeDetector() throws ServiceNotFoundException {
- mITimeDetectorService = ITimeDetectorService.Stub.asInterface(
- ServiceManager.getServiceOrThrow(Context.TIME_DETECTOR_SERVICE));
+ /**
+ * A shared utility method to create a {@link ManualTimeSuggestion}.
+ *
+ * @hide
+ */
+ static ManualTimeSuggestion createManualTimeSuggestion(long when, String why) {
+ TimestampedValue<Long> utcTime =
+ new TimestampedValue<>(SystemClock.elapsedRealtime(), when);
+ ManualTimeSuggestion manualTimeSuggestion = new ManualTimeSuggestion(utcTime);
+ manualTimeSuggestion.addDebugInfo(why);
+ return manualTimeSuggestion;
}
/**
@@ -54,16 +52,7 @@ public class TimeDetector {
* were determined more recently.
*/
@RequiresPermission(android.Manifest.permission.SUGGEST_PHONE_TIME_AND_ZONE)
- public void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion) {
- if (DEBUG) {
- Log.d(TAG, "suggestPhoneTime called: " + timeSuggestion);
- }
- try {
- mITimeDetectorService.suggestPhoneTime(timeSuggestion);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
+ void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion);
/**
* Suggests the user's manually entered current time to the detector.
@@ -71,29 +60,7 @@ public class TimeDetector {
* @hide
*/
@RequiresPermission(android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE)
- public void suggestManualTime(@NonNull ManualTimeSuggestion timeSuggestion) {
- if (DEBUG) {
- Log.d(TAG, "suggestManualTime called: " + timeSuggestion);
- }
- try {
- mITimeDetectorService.suggestManualTime(timeSuggestion);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
-
- /**
- * A shared utility method to create a {@link ManualTimeSuggestion}.
- *
- * @hide
- */
- public static ManualTimeSuggestion createManualTimeSuggestion(long when, String why) {
- TimestampedValue<Long> utcTime =
- new TimestampedValue<>(SystemClock.elapsedRealtime(), when);
- ManualTimeSuggestion manualTimeSuggestion = new ManualTimeSuggestion(utcTime);
- manualTimeSuggestion.addDebugInfo(why);
- return manualTimeSuggestion;
- }
+ void suggestManualTime(@NonNull ManualTimeSuggestion timeSuggestion);
/**
* Suggests the time according to a network time source like NTP.
@@ -101,14 +68,5 @@ public class TimeDetector {
* @hide
*/
@RequiresPermission(android.Manifest.permission.SET_TIME)
- public void suggestNetworkTime(NetworkTimeSuggestion timeSuggestion) {
- if (DEBUG) {
- Log.d(TAG, "suggestNetworkTime called: " + timeSuggestion);
- }
- try {
- mITimeDetectorService.suggestNetworkTime(timeSuggestion);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
+ void suggestNetworkTime(NetworkTimeSuggestion timeSuggestion);
}
diff --git a/core/java/android/app/timedetector/TimeDetectorImpl.java b/core/java/android/app/timedetector/TimeDetectorImpl.java
new file mode 100644
index 000000000000..1683817740c3
--- /dev/null
+++ b/core/java/android/app/timedetector/TimeDetectorImpl.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2020 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.timedetector;
+
+import android.annotation.NonNull;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.ServiceManager.ServiceNotFoundException;
+import android.util.Log;
+
+/**
+ * The real implementation of {@link TimeDetector}.
+ *
+ * @hide
+ */
+public final class TimeDetectorImpl implements TimeDetector {
+ private static final String TAG = "timedetector.TimeDetector";
+ private static final boolean DEBUG = false;
+
+ private final ITimeDetectorService mITimeDetectorService;
+
+ public TimeDetectorImpl() throws ServiceNotFoundException {
+ mITimeDetectorService = ITimeDetectorService.Stub.asInterface(
+ ServiceManager.getServiceOrThrow(Context.TIME_DETECTOR_SERVICE));
+ }
+
+ @Override
+ public void suggestPhoneTime(@NonNull PhoneTimeSuggestion timeSuggestion) {
+ if (DEBUG) {
+ Log.d(TAG, "suggestPhoneTime called: " + timeSuggestion);
+ }
+ try {
+ mITimeDetectorService.suggestPhoneTime(timeSuggestion);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ @Override
+ public void suggestManualTime(@NonNull ManualTimeSuggestion timeSuggestion) {
+ if (DEBUG) {
+ Log.d(TAG, "suggestManualTime called: " + timeSuggestion);
+ }
+ try {
+ mITimeDetectorService.suggestManualTime(timeSuggestion);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ @Override
+ public void suggestNetworkTime(NetworkTimeSuggestion timeSuggestion) {
+ if (DEBUG) {
+ Log.d(TAG, "suggestNetworkTime called: " + timeSuggestion);
+ }
+ try {
+ mITimeDetectorService.suggestNetworkTime(timeSuggestion);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+}
diff --git a/core/java/android/app/timezonedetector/TimeZoneDetector.java b/core/java/android/app/timezonedetector/TimeZoneDetector.java
index 5b5f311264e3..b4f608787d4a 100644
--- a/core/java/android/app/timezonedetector/TimeZoneDetector.java
+++ b/core/java/android/app/timezonedetector/TimeZoneDetector.java
@@ -21,29 +21,25 @@ import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
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.
*
- * <p>This class is non-final for mockito.
* @hide
*/
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@SystemService(Context.TIME_ZONE_DETECTOR_SERVICE)
-public class TimeZoneDetector {
- private static final String TAG = "timezonedetector.TimeZoneDetector";
- private static final boolean DEBUG = false;
+public interface TimeZoneDetector {
- private final ITimeZoneDetectorService mITimeZoneDetectorService;
-
- /** @hide */
- public TimeZoneDetector() throws ServiceNotFoundException {
- mITimeZoneDetectorService = ITimeZoneDetectorService.Stub.asInterface(
- ServiceManager.getServiceOrThrow(Context.TIME_ZONE_DETECTOR_SERVICE));
+ /**
+ * A shared utility method to create a {@link ManualTimeZoneSuggestion}.
+ *
+ * @hide
+ */
+ static ManualTimeZoneSuggestion createManualTimeZoneSuggestion(String tzId, String debugInfo) {
+ ManualTimeZoneSuggestion suggestion = new ManualTimeZoneSuggestion(tzId);
+ suggestion.addDebugInfo(debugInfo);
+ return suggestion;
}
/**
@@ -55,16 +51,7 @@ public class TimeZoneDetector {
*/
@SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
@RequiresPermission(android.Manifest.permission.SUGGEST_PHONE_TIME_AND_ZONE)
- public void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion) {
- if (DEBUG) {
- Log.d(TAG, "suggestPhoneTimeZone called: " + timeZoneSuggestion);
- }
- try {
- mITimeZoneDetectorService.suggestPhoneTimeZone(timeZoneSuggestion);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
+ void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion);
/**
* Suggests the current time zone, determined for the user's manually information, to the
@@ -73,25 +60,5 @@ public class TimeZoneDetector {
* @hide
*/
@RequiresPermission(android.Manifest.permission.SUGGEST_MANUAL_TIME_AND_ZONE)
- public void suggestManualTimeZone(@NonNull ManualTimeZoneSuggestion timeZoneSuggestion) {
- if (DEBUG) {
- Log.d(TAG, "suggestManualTimeZone called: " + timeZoneSuggestion);
- }
- try {
- mITimeZoneDetectorService.suggestManualTimeZone(timeZoneSuggestion);
- } catch (RemoteException e) {
- throw e.rethrowFromSystemServer();
- }
- }
-
- /**
- * A shared utility method to create a {@link ManualTimeZoneSuggestion}.
- *
- * @hide
- */
- public static ManualTimeZoneSuggestion createManualTimeZoneSuggestion(String tzId, String why) {
- ManualTimeZoneSuggestion suggestion = new ManualTimeZoneSuggestion(tzId);
- suggestion.addDebugInfo(why);
- return suggestion;
- }
+ void suggestManualTimeZone(@NonNull ManualTimeZoneSuggestion timeZoneSuggestion);
}
diff --git a/core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java b/core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java
new file mode 100644
index 000000000000..27b8374db172
--- /dev/null
+++ b/core/java/android/app/timezonedetector/TimeZoneDetectorImpl.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2020 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.NonNull;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.ServiceManager.ServiceNotFoundException;
+import android.util.Log;
+
+/**
+ * The real implementation of {@link TimeZoneDetector}.
+ *
+ * @hide
+ */
+public final class TimeZoneDetectorImpl implements TimeZoneDetector {
+ private static final String TAG = "timezonedetector.TimeZoneDetector";
+ private static final boolean DEBUG = false;
+
+ private final ITimeZoneDetectorService mITimeZoneDetectorService;
+
+ public TimeZoneDetectorImpl() throws ServiceNotFoundException {
+ mITimeZoneDetectorService = ITimeZoneDetectorService.Stub.asInterface(
+ ServiceManager.getServiceOrThrow(Context.TIME_ZONE_DETECTOR_SERVICE));
+ }
+
+ @Override
+ public void suggestPhoneTimeZone(@NonNull PhoneTimeZoneSuggestion timeZoneSuggestion) {
+ if (DEBUG) {
+ Log.d(TAG, "suggestPhoneTimeZone called: " + timeZoneSuggestion);
+ }
+ try {
+ mITimeZoneDetectorService.suggestPhoneTimeZone(timeZoneSuggestion);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+
+ @Override
+ public void suggestManualTimeZone(@NonNull ManualTimeZoneSuggestion timeZoneSuggestion) {
+ if (DEBUG) {
+ Log.d(TAG, "suggestManualTimeZone called: " + timeZoneSuggestion);
+ }
+ try {
+ mITimeZoneDetectorService.suggestManualTimeZone(timeZoneSuggestion);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
+}