diff options
| -rw-r--r-- | core/java/android/app/time/TimeZoneCapabilities.java | 11 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/app/time/TimeZoneCapabilitiesTest.java | 58 |
2 files changed, 69 insertions, 0 deletions
diff --git a/core/java/android/app/time/TimeZoneCapabilities.java b/core/java/android/app/time/TimeZoneCapabilities.java index 433b4200eece..895a8e491f8d 100644 --- a/core/java/android/app/time/TimeZoneCapabilities.java +++ b/core/java/android/app/time/TimeZoneCapabilities.java @@ -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; diff --git a/core/tests/coretests/src/android/app/time/TimeZoneCapabilitiesTest.java b/core/tests/coretests/src/android/app/time/TimeZoneCapabilitiesTest.java index dd93997b00c5..008272830335 100644 --- a/core/tests/coretests/src/android/app/time/TimeZoneCapabilitiesTest.java +++ b/core/tests/coretests/src/android/app/time/TimeZoneCapabilitiesTest.java @@ -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); + } + } } |