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

Commit 12ce0aa4 authored by Almaz Mingaleev's avatar Almaz Mingaleev Committed by Automerger Merge Worker
Browse files

Merge "Add copy builder to TimeZoneCapabilities." into sc-dev am: e2b7cb3d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14211634

Change-Id: I101ef2710fe0aa94b637040e9ec55ff64cb8c249
parents a7b4fdae e2b7cb3d
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -207,6 +207,17 @@ public final class TimeZoneCapabilities implements Parcelable {
            mUserHandle = Objects.requireNonNull(userHandle);
        }

        public Builder(@NonNull TimeZoneCapabilities capabilitiesToCopy) {
            Objects.requireNonNull(capabilitiesToCopy);
            mUserHandle = capabilitiesToCopy.mUserHandle;
            mConfigureAutoDetectionEnabledCapability =
                capabilitiesToCopy.mConfigureAutoDetectionEnabledCapability;
            mConfigureGeoDetectionEnabledCapability =
                capabilitiesToCopy.mConfigureGeoDetectionEnabledCapability;
            mSuggestManualTimeZoneCapability =
                capabilitiesToCopy.mSuggestManualTimeZoneCapability;
        }

        /** Sets the state for the automatic time zone detection enabled config. */
        public Builder setConfigureAutoDetectionEnabledCapability(@CapabilityState int value) {
            this.mConfigureAutoDetectionEnabledCapability = value;
+58 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import static android.app.time.Capabilities.CAPABILITY_NOT_ALLOWED;
import static android.app.time.Capabilities.CAPABILITY_POSSESSED;
import static android.app.timezonedetector.ParcelableTestSupport.assertRoundTripParcelable;

import static com.google.common.truth.Truth.assertThat;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
@@ -157,4 +159,60 @@ public class TimeZoneCapabilitiesTest {

        assertNull(capabilities.tryApplyConfigChanges(oldConfiguration, configChange));
    }

    @Test
    public void copyBuilder_copiesAllFields() {
        TimeZoneCapabilities capabilities = new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
                .setConfigureAutoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
                .setConfigureGeoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
                .setSuggestManualTimeZoneCapability(CAPABILITY_NOT_ALLOWED)
                .build();

        {
            TimeZoneCapabilities updatedCapabilities =
                    new TimeZoneCapabilities.Builder(capabilities)
                            .setConfigureAutoDetectionEnabledCapability(CAPABILITY_POSSESSED)
                            .build();
            TimeZoneCapabilities expectedCapabilities =
                    new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
                            .setConfigureAutoDetectionEnabledCapability(CAPABILITY_POSSESSED)
                            .setConfigureGeoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
                            .setSuggestManualTimeZoneCapability(CAPABILITY_NOT_ALLOWED)
                            .build();

            assertThat(updatedCapabilities).isEqualTo(expectedCapabilities);
        }

        {
            TimeZoneCapabilities updatedCapabilities =
                    new TimeZoneCapabilities.Builder(capabilities)
                            .setConfigureGeoDetectionEnabledCapability(CAPABILITY_POSSESSED)
                            .build();

            TimeZoneCapabilities expectedCapabilities =
                    new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
                            .setConfigureAutoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
                            .setConfigureGeoDetectionEnabledCapability(CAPABILITY_POSSESSED)
                            .setSuggestManualTimeZoneCapability(CAPABILITY_NOT_ALLOWED)
                            .build();

            assertThat(updatedCapabilities).isEqualTo(expectedCapabilities);
        }

        {
            TimeZoneCapabilities updatedCapabilities =
                    new TimeZoneCapabilities.Builder(capabilities)
                            .setSuggestManualTimeZoneCapability(CAPABILITY_POSSESSED)
                            .build();

            TimeZoneCapabilities expectedCapabilities =
                    new TimeZoneCapabilities.Builder(TEST_USER_HANDLE)
                            .setConfigureAutoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
                            .setConfigureGeoDetectionEnabledCapability(CAPABILITY_NOT_ALLOWED)
                            .setSuggestManualTimeZoneCapability(CAPABILITY_POSSESSED)
                            .build();

            assertThat(updatedCapabilities).isEqualTo(expectedCapabilities);
        }
    }
}