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

Commit e2b7cb3d authored by Almaz Mingaleev's avatar Almaz Mingaleev Committed by Android (Google) Code Review
Browse files

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

parents 38304db4 8533c0b3
Loading
Loading
Loading
Loading
+11 −0
Original line number Original line Diff line number Diff line
@@ -207,6 +207,17 @@ public final class TimeZoneCapabilities implements Parcelable {
            mUserHandle = Objects.requireNonNull(userHandle);
            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. */
        /** Sets the state for the automatic time zone detection enabled config. */
        public Builder setConfigureAutoDetectionEnabledCapability(@CapabilityState int value) {
        public Builder setConfigureAutoDetectionEnabledCapability(@CapabilityState int value) {
            this.mConfigureAutoDetectionEnabledCapability = value;
            this.mConfigureAutoDetectionEnabledCapability = value;
+58 −0
Original line number Original line 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.time.Capabilities.CAPABILITY_POSSESSED;
import static android.app.timezonedetector.ParcelableTestSupport.assertRoundTripParcelable;
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.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertNull;
@@ -157,4 +159,60 @@ public class TimeZoneCapabilitiesTest {


        assertNull(capabilities.tryApplyConfigChanges(oldConfiguration, configChange));
        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);
        }
    }
}
}