Merge "Revert "Minimum viable TimeZoneDetectorService""
This commit is contained in:
@@ -104,7 +104,6 @@ java_defaults {
|
||||
"core/java/android/app/timedetector/ITimeDetectorService.aidl",
|
||||
"core/java/android/app/timezone/ICallback.aidl",
|
||||
"core/java/android/app/timezone/IRulesManager.aidl",
|
||||
"core/java/android/app/timezonedetector/ITimeZoneDetectorService.aidl",
|
||||
"core/java/android/app/usage/ICacheQuotaService.aidl",
|
||||
"core/java/android/app/usage/IStorageStatsManager.aidl",
|
||||
"core/java/android/app/usage/IUsageStatsManager.aidl",
|
||||
|
||||
@@ -26,7 +26,6 @@ import android.app.job.JobScheduler;
|
||||
import android.app.slice.SliceManager;
|
||||
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;
|
||||
@@ -1060,13 +1059,6 @@ 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();
|
||||
}});
|
||||
registerService(Context.DYNAMIC_ANDROID_SERVICE, DynamicAndroidManager.class,
|
||||
new CachedServiceFetcher<DynamicAndroidManager>() {
|
||||
@Override
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/*
|
||||
* 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();
|
||||
}
|
||||
@@ -1,57 +0,0 @@
|
||||
/*
|
||||
* 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3087,7 +3087,6 @@ public abstract class Context {
|
||||
CROSS_PROFILE_APPS_SERVICE,
|
||||
//@hide: SYSTEM_UPDATE_SERVICE,
|
||||
//@hide: TIME_DETECTOR_SERVICE,
|
||||
//@hide: TIME_ZONE_DETECTOR_SERVICE,
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface ServiceName {}
|
||||
@@ -4288,15 +4287,6 @@ 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";
|
||||
|
||||
/**
|
||||
* Use with {@link #getSystemService(String)} to retrieve an
|
||||
* {@link android.telephony.ims.RcsManager}.
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
/*
|
||||
* 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 com.android.server.timezonedetector;
|
||||
|
||||
import com.android.internal.util.DumpUtils;
|
||||
import com.android.server.SystemService;
|
||||
import android.app.timezonedetector.ITimeZoneDetectorService;
|
||||
import android.content.Context;
|
||||
import android.util.Slog;
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub {
|
||||
private static final String TAG = "timezonedetector.TimeZoneDetectorService";
|
||||
|
||||
public static class Lifecycle extends SystemService {
|
||||
|
||||
public Lifecycle(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
TimeZoneDetectorService service = TimeZoneDetectorService.create(getContext());
|
||||
// Publish the binder service so it can be accessed from other (appropriately
|
||||
// permissioned) processes.
|
||||
publishBinderService(Context.TIME_ZONE_DETECTOR_SERVICE, service);
|
||||
}
|
||||
}
|
||||
|
||||
private final Context mContext;
|
||||
|
||||
private static TimeZoneDetectorService create(Context context) {
|
||||
return new TimeZoneDetectorService(context);
|
||||
}
|
||||
|
||||
public TimeZoneDetectorService(Context context) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stubbedCall() {
|
||||
// Empty call for initial tests.
|
||||
Slog.d(TAG, "stubbedCall() called");
|
||||
// TODO: Remove when there are real methods.
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
|
||||
if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
|
||||
// TODO: Implement when there is state.
|
||||
}
|
||||
}
|
||||
@@ -238,8 +238,6 @@ public final class SystemServer {
|
||||
"com.android.internal.car.CarServiceHelperService";
|
||||
private static final String TIME_DETECTOR_SERVICE_CLASS =
|
||||
"com.android.server.timedetector.TimeDetectorService$Lifecycle";
|
||||
private static final String TIME_ZONE_DETECTOR_SERVICE_CLASS =
|
||||
"com.android.server.timezonedetector.TimeZoneDetectorService$Lifecycle";
|
||||
|
||||
private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";
|
||||
|
||||
@@ -1316,14 +1314,6 @@ public final class SystemServer {
|
||||
reportWtf("starting StartTimeDetectorService service", e);
|
||||
}
|
||||
traceEnd();
|
||||
|
||||
traceBeginAndSlog("StartTimeZoneDetectorService");
|
||||
try {
|
||||
mSystemServiceManager.startService(TIME_ZONE_DETECTOR_SERVICE_CLASS);
|
||||
} catch (Throwable e) {
|
||||
reportWtf("starting StartTimeZoneDetectorService service", e);
|
||||
}
|
||||
traceEnd();
|
||||
}
|
||||
|
||||
if (!isWatch) {
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
/*
|
||||
* 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 com.android.server.timezonedetector;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
/**
|
||||
* Unit tests for the {@link TimeZoneDetectorService}.
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class TimeZoneDetectorServiceTest {
|
||||
|
||||
private TimeZoneDetectorService mTimeZoneDetectorService;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
final Context context = InstrumentationRegistry.getContext();
|
||||
mTimeZoneDetectorService = new TimeZoneDetectorService(context);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStubbedCall() {
|
||||
mTimeZoneDetectorService.stubbedCall();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user