Refactoring to ease cherry-pick
This change contains the parts of internal change I916cf878469280e6c9498baf2cf930e140c3a386 that affect GnssTimeUpdateService and its test. Pulling in these changes makes the following cherry-pick easier to apply and follow. The rest of I916cf8 will follow naturally as part of the usual publishing of changes. Bug: 236611620 Test: build / boot as part of the following cherry-pick Change-Id: I111189d10836906c67a8fedeb2c9ecee6ab83026 Merged-In: I916cf878469280e6c9498baf2cf930e140c3a386
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user