Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c2e01f7 authored by Neil Fuller's avatar Neil Fuller Committed by Android (Google) Code Review
Browse files

Merge "Fix "location_time_zone_detection_enabled"" into sc-dev

parents c53dc6dd ee2feb56
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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 {
+15 −13
Original line number Diff line number Diff line
@@ -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());
+9 −4
Original line number Diff line number Diff line
@@ -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