Merge "Fix "location_time_zone_detection_enabled"" into sc-dev
This commit is contained in:
@@ -148,11 +148,12 @@ public final class ConfigurationInternal {
|
||||
builder.setConfigureAutoDetectionEnabledCapability(configureAutoDetectionEnabledCapability);
|
||||
|
||||
boolean deviceHasLocationTimeZoneDetection = isGeoDetectionSupported();
|
||||
// Note: allowConfigDateTime does not restrict the ability to change location time zone
|
||||
// detection enabled. This is intentional as it has user privacy implications and so it
|
||||
// makes sense to leave this under a user's control.
|
||||
final int configureGeolocationDetectionEnabledCapability;
|
||||
if (!deviceHasLocationTimeZoneDetection) {
|
||||
configureGeolocationDetectionEnabledCapability = CAPABILITY_NOT_SUPPORTED;
|
||||
} else if (!allowConfigDateTime) {
|
||||
configureGeolocationDetectionEnabledCapability = CAPABILITY_NOT_ALLOWED;
|
||||
} else if (!mAutoDetectionEnabled || !isLocationEnabled()) {
|
||||
configureGeolocationDetectionEnabledCapability = CAPABILITY_NOT_APPLICABLE;
|
||||
} else {
|
||||
|
||||
@@ -67,10 +67,10 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_APPLICABLE,
|
||||
capabilities.getSuggestManualTimeZoneCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertTrue(configuration.isAutoDetectionEnabled());
|
||||
@@ -92,10 +92,10 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_APPLICABLE,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getSuggestManualTimeZoneCapability());
|
||||
assertEquals(CAPABILITY_NOT_APPLICABLE,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertFalse(configuration.isAutoDetectionEnabled());
|
||||
@@ -129,10 +129,11 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_NOT_ALLOWED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_ALLOWED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_ALLOWED,
|
||||
capabilities.getSuggestManualTimeZoneCapability());
|
||||
// This has user privacy implications so it is not restricted in the same way as others.
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertTrue(configuration.isAutoDetectionEnabled());
|
||||
@@ -154,10 +155,11 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_NOT_ALLOWED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_ALLOWED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_ALLOWED,
|
||||
capabilities.getSuggestManualTimeZoneCapability());
|
||||
// This has user privacy implications so it is not restricted in the same way as others.
|
||||
assertEquals(CAPABILITY_NOT_APPLICABLE,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertFalse(configuration.isAutoDetectionEnabled());
|
||||
@@ -191,9 +193,9 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_NOT_SUPPORTED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED, capabilities.getSuggestManualTimeZoneCapability());
|
||||
assertEquals(CAPABILITY_NOT_SUPPORTED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED, capabilities.getSuggestManualTimeZoneCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertTrue(configuration.isAutoDetectionEnabled());
|
||||
@@ -214,9 +216,9 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_NOT_SUPPORTED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED, capabilities.getSuggestManualTimeZoneCapability());
|
||||
assertEquals(CAPABILITY_NOT_SUPPORTED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED, capabilities.getSuggestManualTimeZoneCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertFalse(configuration.isAutoDetectionEnabled());
|
||||
@@ -253,10 +255,10 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_SUPPORTED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_NOT_APPLICABLE,
|
||||
capabilities.getSuggestManualTimeZoneCapability());
|
||||
assertEquals(CAPABILITY_NOT_SUPPORTED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertTrue(configuration.isAutoDetectionEnabled());
|
||||
@@ -277,9 +279,9 @@ public class ConfigurationInternalTest {
|
||||
TimeZoneCapabilities capabilities = capabilitiesAndConfig.getCapabilities();
|
||||
assertEquals(CAPABILITY_POSSESSED,
|
||||
capabilities.getConfigureAutoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED, capabilities.getSuggestManualTimeZoneCapability());
|
||||
assertEquals(CAPABILITY_NOT_SUPPORTED,
|
||||
capabilities.getConfigureGeoDetectionEnabledCapability());
|
||||
assertEquals(CAPABILITY_POSSESSED, capabilities.getSuggestManualTimeZoneCapability());
|
||||
|
||||
TimeZoneConfiguration configuration = capabilitiesAndConfig.getConfiguration();
|
||||
assertFalse(configuration.isAutoDetectionEnabled());
|
||||
|
||||
@@ -237,12 +237,17 @@ public class TimeZoneDetectorStrategyImplTest {
|
||||
// The settings should not have been changed: user shouldn't have the capabilities.
|
||||
script.verifyConfigurationNotChanged();
|
||||
|
||||
// Try to update the configuration to enable geolocation time zone detection.
|
||||
// Try to update the configuration to enable geolocation time zone detection: this should
|
||||
// succeed, the geolocation time zone detection setting is not covered by the restriction).
|
||||
script.simulateUpdateConfiguration(
|
||||
USER_ID, CONFIG_GEO_DETECTION_ENABLED, false /* expectedResult */);
|
||||
USER_ID, CONFIG_GEO_DETECTION_DISABLED, true /* expectedResult */);
|
||||
|
||||
// The settings should not have been changed: user shouldn't have the capabilities.
|
||||
script.verifyConfigurationNotChanged();
|
||||
// The settings should have been changed.
|
||||
ConfigurationInternal expectedConfig = new ConfigurationInternal.Builder(
|
||||
CONFIG_INT_USER_RESTRICTED_AUTO_ENABLED)
|
||||
.setGeoDetectionEnabled(false)
|
||||
.build();
|
||||
script.verifyConfigurationChangedAndReset(expectedConfig);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user