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.FileDescriptor;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Monitors the GNSS time.
|
* Monitors the GNSS time.
|
||||||
@@ -66,7 +67,15 @@ public final class GnssTimeUpdateService extends Binder {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
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);
|
publishBinderService("gnss_time_update_service", mService);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,12 +107,15 @@ public final class GnssTimeUpdateService extends Binder {
|
|||||||
@Nullable private TimestampedValue<Long> mLastSuggestedGnssTime;
|
@Nullable private TimestampedValue<Long> mLastSuggestedGnssTime;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
GnssTimeUpdateService(@NonNull Context context) {
|
GnssTimeUpdateService(@NonNull Context context, @NonNull AlarmManager alarmManager,
|
||||||
mContext = context.createAttributionContext(ATTRIBUTION_TAG);
|
@NonNull LocationManager locationManager,
|
||||||
mTimeDetector = mContext.getSystemService(TimeDetector.class);
|
@NonNull LocationManagerInternal locationManagerInternal,
|
||||||
mLocationManager = mContext.getSystemService(LocationManager.class);
|
@NonNull TimeDetector timeDetector) {
|
||||||
mAlarmManager = mContext.getSystemService(AlarmManager.class);
|
mContext = Objects.requireNonNull(context);
|
||||||
mLocationManagerInternal = LocalServices.getService(LocationManagerInternal.class);
|
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.ArgumentMatchers.eq;
|
||||||
import static org.mockito.Mockito.any;
|
import static org.mockito.Mockito.any;
|
||||||
import static org.mockito.Mockito.anyLong;
|
import static org.mockito.Mockito.anyLong;
|
||||||
import static org.mockito.Mockito.anyString;
|
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
@@ -59,7 +58,7 @@ public final class GnssTimeUpdateServiceTest {
|
|||||||
@Mock private TimeDetector mMockTimeDetector;
|
@Mock private TimeDetector mMockTimeDetector;
|
||||||
@Mock private AlarmManager mMockAlarmManager;
|
@Mock private AlarmManager mMockAlarmManager;
|
||||||
@Mock private LocationManager mMockLocationManager;
|
@Mock private LocationManager mMockLocationManager;
|
||||||
@Mock private LocationManagerInternal mLocationManagerInternal;
|
@Mock private LocationManagerInternal mMockLocationManagerInternal;
|
||||||
|
|
||||||
private GnssTimeUpdateService mGnssTimeUpdateService;
|
private GnssTimeUpdateService mGnssTimeUpdateService;
|
||||||
|
|
||||||
@@ -67,31 +66,12 @@ public final class GnssTimeUpdateServiceTest {
|
|||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
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))
|
when(mMockLocationManager.hasProvider(LocationManager.GPS_PROVIDER))
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
|
|
||||||
LocalServices.addService(LocationManagerInternal.class, mLocationManagerInternal);
|
mGnssTimeUpdateService = new GnssTimeUpdateService(
|
||||||
|
mMockContext, mMockAlarmManager, mMockLocationManager, mMockLocationManagerInternal,
|
||||||
mGnssTimeUpdateService =
|
mMockTimeDetector);
|
||||||
new GnssTimeUpdateService(mMockContext);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@@ -105,7 +85,7 @@ public final class GnssTimeUpdateServiceTest {
|
|||||||
ELAPSED_REALTIME_MS, GNSS_TIME);
|
ELAPSED_REALTIME_MS, GNSS_TIME);
|
||||||
GnssTimeSuggestion timeSuggestion = new GnssTimeSuggestion(timeSignal);
|
GnssTimeSuggestion timeSuggestion = new GnssTimeSuggestion(timeSignal);
|
||||||
LocationTime locationTime = new LocationTime(GNSS_TIME, ELAPSED_REALTIME_NS);
|
LocationTime locationTime = new LocationTime(GNSS_TIME, ELAPSED_REALTIME_NS);
|
||||||
doReturn(locationTime).when(mLocationManagerInternal).getGnssTimeMillis();
|
doReturn(locationTime).when(mMockLocationManagerInternal).getGnssTimeMillis();
|
||||||
|
|
||||||
mGnssTimeUpdateService.requestGnssTimeUpdates();
|
mGnssTimeUpdateService.requestGnssTimeUpdates();
|
||||||
|
|
||||||
@@ -135,7 +115,7 @@ public final class GnssTimeUpdateServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testLocationListenerOnLocationChanged_nullLocationTime_doesNotSuggestGnssTime() {
|
public void testLocationListenerOnLocationChanged_nullLocationTime_doesNotSuggestGnssTime() {
|
||||||
doReturn(null).when(mLocationManagerInternal).getGnssTimeMillis();
|
doReturn(null).when(mMockLocationManagerInternal).getGnssTimeMillis();
|
||||||
|
|
||||||
mGnssTimeUpdateService.requestGnssTimeUpdates();
|
mGnssTimeUpdateService.requestGnssTimeUpdates();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user