Refactoring to ease cherry-pick am: 9ad97fbb35

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2217304

Change-Id: I19daac41591b21306cea465d5985307832cadd43
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Neil Fuller
2022-09-14 15:53:06 +00:00
committed by Automerger Merge Worker
2 changed files with 26 additions and 34 deletions

View File

@@ -42,6 +42,7 @@ import com.android.server.SystemService;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.time.Duration;
import java.util.Objects;
/**
* Monitors the GNSS time.
@@ -66,7 +67,15 @@ public final class GnssTimeUpdateService extends Binder {
@Override
public void onStart() {
mService = new GnssTimeUpdateService(getContext());
Context context = getContext().createAttributionContext(ATTRIBUTION_TAG);
AlarmManager alarmManager = context.getSystemService(AlarmManager.class);
LocationManager locationManager = context.getSystemService(LocationManager.class);
LocationManagerInternal locationManagerInternal =
LocalServices.getService(LocationManagerInternal.class);
TimeDetector timeDetector = context.getSystemService(TimeDetector.class);
mService = new GnssTimeUpdateService(context, alarmManager, locationManager,
locationManagerInternal, timeDetector);
publishBinderService("gnss_time_update_service", mService);
}
@@ -98,12 +107,15 @@ public final class GnssTimeUpdateService extends Binder {
@Nullable private TimestampedValue<Long> mLastSuggestedGnssTime;
@VisibleForTesting
GnssTimeUpdateService(@NonNull Context context) {
mContext = context.createAttributionContext(ATTRIBUTION_TAG);
mTimeDetector = mContext.getSystemService(TimeDetector.class);
mLocationManager = mContext.getSystemService(LocationManager.class);
mAlarmManager = mContext.getSystemService(AlarmManager.class);
mLocationManagerInternal = LocalServices.getService(LocationManagerInternal.class);
GnssTimeUpdateService(@NonNull Context context, @NonNull AlarmManager alarmManager,
@NonNull LocationManager locationManager,
@NonNull LocationManagerInternal locationManagerInternal,
@NonNull TimeDetector timeDetector) {
mContext = Objects.requireNonNull(context);
mAlarmManager = Objects.requireNonNull(alarmManager);
mLocationManager = Objects.requireNonNull(locationManager);
mLocationManagerInternal = Objects.requireNonNull(locationManagerInternal);
mTimeDetector = Objects.requireNonNull(timeDetector);
}
/**

View File

@@ -19,7 +19,6 @@ package com.android.server.timedetector;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyLong;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -59,7 +58,7 @@ public final class GnssTimeUpdateServiceTest {
@Mock private TimeDetector mMockTimeDetector;
@Mock private AlarmManager mMockAlarmManager;
@Mock private LocationManager mMockLocationManager;
@Mock private LocationManagerInternal mLocationManagerInternal;
@Mock private LocationManagerInternal mMockLocationManagerInternal;
private GnssTimeUpdateService mGnssTimeUpdateService;
@@ -67,31 +66,12 @@ public final class GnssTimeUpdateServiceTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
when(mMockContext.createAttributionContext(anyString()))
.thenReturn(mMockContext);
when(mMockContext.getSystemServiceName(TimeDetector.class))
.thenReturn((TimeDetector.class).getSimpleName());
when(mMockContext.getSystemService(TimeDetector.class))
.thenReturn(mMockTimeDetector);
when(mMockContext.getSystemServiceName(LocationManager.class))
.thenReturn((LocationManager.class).getSimpleName());
when(mMockContext.getSystemService(LocationManager.class))
.thenReturn(mMockLocationManager);
when(mMockContext.getSystemServiceName(AlarmManager.class))
.thenReturn((AlarmManager.class).getSimpleName());
when(mMockContext.getSystemService(AlarmManager.class))
.thenReturn(mMockAlarmManager);
when(mMockLocationManager.hasProvider(LocationManager.GPS_PROVIDER))
.thenReturn(true);
.thenReturn(true);
LocalServices.addService(LocationManagerInternal.class, mLocationManagerInternal);
mGnssTimeUpdateService =
new GnssTimeUpdateService(mMockContext);
mGnssTimeUpdateService = new GnssTimeUpdateService(
mMockContext, mMockAlarmManager, mMockLocationManager, mMockLocationManagerInternal,
mMockTimeDetector);
}
@After
@@ -105,7 +85,7 @@ public final class GnssTimeUpdateServiceTest {
ELAPSED_REALTIME_MS, GNSS_TIME);
GnssTimeSuggestion timeSuggestion = new GnssTimeSuggestion(timeSignal);
LocationTime locationTime = new LocationTime(GNSS_TIME, ELAPSED_REALTIME_NS);
doReturn(locationTime).when(mLocationManagerInternal).getGnssTimeMillis();
doReturn(locationTime).when(mMockLocationManagerInternal).getGnssTimeMillis();
mGnssTimeUpdateService.requestGnssTimeUpdates();
@@ -135,7 +115,7 @@ public final class GnssTimeUpdateServiceTest {
@Test
public void testLocationListenerOnLocationChanged_nullLocationTime_doesNotSuggestGnssTime() {
doReturn(null).when(mLocationManagerInternal).getGnssTimeMillis();
doReturn(null).when(mMockLocationManagerInternal).getGnssTimeMillis();
mGnssTimeUpdateService.requestGnssTimeUpdates();