Merge "Fix metrics test flakiness" into tm-dev
This commit is contained in:
@@ -59,6 +59,8 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor {
|
||||
*/
|
||||
private static final Set<String> CONFIGURATION_INTERNAL_SERVER_FLAGS_KEYS_TO_WATCH = Set.of(
|
||||
ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_FEATURE_SUPPORTED,
|
||||
ServerFlags.KEY_PRIMARY_LTZP_MODE_OVERRIDE,
|
||||
ServerFlags.KEY_SECONDARY_LTZP_MODE_OVERRIDE,
|
||||
ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_RUN_IN_BACKGROUND_ENABLED,
|
||||
ServerFlags.KEY_ENHANCED_METRICS_COLLECTION_ENABLED,
|
||||
ServerFlags.KEY_LOCATION_TIME_ZONE_DETECTION_SETTING_ENABLED_DEFAULT,
|
||||
@@ -443,6 +445,9 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor {
|
||||
mTestPrimaryLocationTimeZoneProviderMode =
|
||||
mTestPrimaryLocationTimeZoneProviderPackageName == null
|
||||
? PROVIDER_MODE_DISABLED : PROVIDER_MODE_ENABLED;
|
||||
// Changing this state can affect the content of ConfigurationInternal, so listeners need to
|
||||
// be informed.
|
||||
mContext.getMainThreadHandler().post(this::handleConfigurationInternalChangeOnMainThread);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -469,6 +474,9 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor {
|
||||
mTestSecondaryLocationTimeZoneProviderMode =
|
||||
mTestSecondaryLocationTimeZoneProviderPackageName == null
|
||||
? PROVIDER_MODE_DISABLED : PROVIDER_MODE_ENABLED;
|
||||
// Changing this state can affect the content of ConfigurationInternal, so listeners need to
|
||||
// be informed.
|
||||
mContext.getMainThreadHandler().post(this::handleConfigurationInternalChangeOnMainThread);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -573,6 +581,10 @@ public final class ServiceConfigAccessorImpl implements ServiceConfigAccessor {
|
||||
mTestSecondaryLocationTimeZoneProviderPackageName = null;
|
||||
mTestSecondaryLocationTimeZoneProviderMode = null;
|
||||
mRecordStateChangesForTests = false;
|
||||
|
||||
// Changing LTZP config can affect the content of ConfigurationInternal, so listeners
|
||||
// need to be informed.
|
||||
mContext.getMainThreadHandler().post(this::handleConfigurationInternalChangeOnMainThread);
|
||||
}
|
||||
|
||||
private boolean isTelephonyFallbackSupported() {
|
||||
|
||||
@@ -336,13 +336,13 @@ public final class TimeZoneDetectorService extends ITimeZoneDetectorService.Stub
|
||||
boolean isTelephonyTimeZoneDetectionSupported() {
|
||||
enforceManageTimeZoneDetectorPermission();
|
||||
|
||||
return mServiceConfigAccessor.isTelephonyTimeZoneDetectionFeatureSupported();
|
||||
return mTimeZoneDetectorStrategy.isTelephonyTimeZoneDetectionSupported();
|
||||
}
|
||||
|
||||
boolean isGeoTimeZoneDetectionSupported() {
|
||||
enforceManageTimeZoneDetectorPermission();
|
||||
|
||||
return mServiceConfigAccessor.isGeoTimeZoneDetectionFeatureSupported();
|
||||
return mTimeZoneDetectorStrategy.isGeoTimeZoneDetectionSupported();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -124,4 +124,10 @@ public interface TimeZoneDetectorStrategy extends Dumpable {
|
||||
/** Generates a state snapshot for metrics. */
|
||||
@NonNull
|
||||
MetricsTimeZoneDetectorState generateMetricsState();
|
||||
|
||||
/** Returns {@code true} if the device supports telephony time zone detection. */
|
||||
boolean isTelephonyTimeZoneDetectionSupported();
|
||||
|
||||
/** Returns {@code true} if the device supports geolocation time zone detection. */
|
||||
boolean isGeoTimeZoneDetectionSupported();
|
||||
}
|
||||
|
||||
@@ -396,6 +396,20 @@ public final class TimeZoneDetectorStrategyImpl implements TimeZoneDetectorStrat
|
||||
getLatestGeolocationSuggestion());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTelephonyTimeZoneDetectionSupported() {
|
||||
synchronized (this) {
|
||||
return mCurrentConfigurationInternal.isTelephonyDetectionSupported();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGeoTimeZoneDetectionSupported() {
|
||||
synchronized (this) {
|
||||
return mCurrentConfigurationInternal.isGeoDetectionSupported();
|
||||
}
|
||||
}
|
||||
|
||||
private static int scoreTelephonySuggestion(@NonNull TelephonyTimeZoneSuggestion suggestion) {
|
||||
int score;
|
||||
if (suggestion.getZoneId() == null) {
|
||||
|
||||
@@ -60,6 +60,16 @@ class FakeTimeZoneDetectorStrategy implements TimeZoneDetectorStrategy {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isTelephonyTimeZoneDetectionSupported() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isGeoTimeZoneDetectionSupported() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dump(IndentingPrintWriter pw, String[] args) {
|
||||
mDumpCalled = true;
|
||||
|
||||
Reference in New Issue
Block a user