diff --git a/CHANGELOG.md b/CHANGELOG.md index d5778394845..81d75a72c04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# 124.0.1 + +This patch release fixes a bug in BottomNavigation. + +## Component changes + +### BottomNavigation + +* [Update hidden state logic to address a race condition occurring when showing/hiding the navigation bar multiple times before the animation ends.](https://github.com/material-components/material-components-ios/commit/4f12b7da7121408e46a4ffbe09204e7a5575eabb) (German Rodriguez) + +--- + # 124.0.0 In this release `MDCTextField` and its associated classes and protocols are deprecated. We also deleted the Pesto example application and cleaned up pre iOS 12 checks in the library. diff --git a/MaterialComponents.podspec b/MaterialComponents.podspec index 1170ab78915..0b752b8ce0e 100644 --- a/MaterialComponents.podspec +++ b/MaterialComponents.podspec @@ -2,7 +2,7 @@ load 'scripts/generated/icons.rb' Pod::Spec.new do |mdc| mdc.name = "MaterialComponents" - mdc.version = "124.0.0" + mdc.version = "124.0.1" mdc.authors = "The Material Components authors." mdc.summary = "A collection of stand-alone production-ready UI libraries focused on design details." mdc.homepage = "https://github.com/material-components/material-components-ios" @@ -106,7 +106,7 @@ Pod::Spec.new do |mdc| component.dependency "MDFInternationalization" component.dependency "MaterialComponents/Palettes" component.dependency "MaterialComponents/private/Application" - component.dependency "MotionAnimator", "~> 2.0" + component.dependency "MotionAnimator", "~> 4.0" component.test_spec 'UnitTests' do |unit_tests| unit_tests.source_files = [ diff --git a/MaterialComponentsEarlGreyTests.podspec b/MaterialComponentsEarlGreyTests.podspec index 9a35519120a..3d1c99a65d8 100644 --- a/MaterialComponentsEarlGreyTests.podspec +++ b/MaterialComponentsEarlGreyTests.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MaterialComponentsEarlGreyTests" - s.version = "124.0.0" + s.version = "124.0.1" s.authors = "The Material Components authors." s.summary = "This spec is an aggregate of all the Material Components EarlGrey tests." s.description = "This spec is made for use in the MDC Catalog." diff --git a/MaterialComponentsExamples.podspec b/MaterialComponentsExamples.podspec index c6db8be5920..8ea1db233c7 100644 --- a/MaterialComponentsExamples.podspec +++ b/MaterialComponentsExamples.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MaterialComponentsExamples" - s.version = "124.0.0" + s.version = "124.0.1" s.authors = "The Material Components authors." s.summary = "This spec is an aggregate of all the Material Components examples." s.description = "This spec is made for use in the MDC Catalog. Used in conjunction with CatalogByConvention we create our Material Catalog." diff --git a/MaterialComponentsSnapshotTests.podspec b/MaterialComponentsSnapshotTests.podspec index 870a6671de3..04b5ec6c15d 100644 --- a/MaterialComponentsSnapshotTests.podspec +++ b/MaterialComponentsSnapshotTests.podspec @@ -53,7 +53,7 @@ end Pod::Spec.new do |s| s.name = "MaterialComponentsSnapshotTests" - s.version = "124.0.0" + s.version = "124.0.1" s.authors = "The Material Components authors." s.summary = "This spec is an aggregate of all the Material Components snapshot tests." s.homepage = "https://github.com/material-components/material-components-ios" diff --git a/VERSION b/VERSION index f71621dd906..2c7399bd34e 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -124.0.0 +124.0.1 diff --git a/catalog/MDCCatalog/Info.plist b/catalog/MDCCatalog/Info.plist index 4a6c3d3a324..7110217ce7e 100644 --- a/catalog/MDCCatalog/Info.plist +++ b/catalog/MDCCatalog/Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 124.0.0 + 124.0.1 CFBundleSignature ???? CFBundleVersion - 124.0.0 + 124.0.1 LSRequiresIPhoneOS UIAppFonts diff --git a/catalog/MDCDragons/Info.plist b/catalog/MDCDragons/Info.plist index bed55bf159f..d1a660cd153 100644 --- a/catalog/MDCDragons/Info.plist +++ b/catalog/MDCDragons/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 124.0.0 + 124.0.1 CFBundleVersion - 124.0.0 + 124.0.1 LSRequiresIPhoneOS UILaunchStoryboardName diff --git a/catalog/MaterialCatalog/MaterialCatalog.podspec b/catalog/MaterialCatalog/MaterialCatalog.podspec index 0bc8213de45..11a9296b3f0 100644 --- a/catalog/MaterialCatalog/MaterialCatalog.podspec +++ b/catalog/MaterialCatalog/MaterialCatalog.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "MaterialCatalog" - s.version = "124.0.0" + s.version = "124.0.1" s.summary = "Helper Objective-C classes for the MDC catalog." s.description = "This spec is made for use in the MDC Catalog." s.homepage = "https://github.com/material-components/material-components-ios" diff --git a/components/BottomNavigation/src/MDCBottomNavigationBarController.m b/components/BottomNavigation/src/MDCBottomNavigationBarController.m index 78cf09dd9f4..da33c5e008f 100644 --- a/components/BottomNavigation/src/MDCBottomNavigationBarController.m +++ b/components/BottomNavigation/src/MDCBottomNavigationBarController.m @@ -266,19 +266,17 @@ - (void)setNavigationBarHidden:(BOOL)hidden animated:(BOOL)animated { self.navigationBarBottomAnchorConstraint.constant = hidden ? CGRectGetHeight(navigationBar.frame) : 0; - void (^completionBlock)(BOOL) = nil; - - if (hidden && animated) { - // For animated hides we deffer updating the nav-bar hidden state until the animation finishes. - completionBlock = ^(BOOL finished) { - if (finished) { - // Hide the view to avoid visual artifacts on rotations. - navigationBar.hidden = hidden; - } - }; - } else { - // Update `hidden` state immediately for unhide or non-animated transitions to ensure it gets - // applied in the same run loop. + void (^completionBlock)(BOOL) = ^(BOOL finished) { + // Update the end hidden state of the navigation bar if it was not interrupted (the end state + // matches the current state). Otherwise an already scheduled animation will take care of this. + if (finished && !hidden != !self.navigationBarItemsBottomAnchorConstraint.active) { + navigationBar.hidden = hidden; + } + }; + + // Immediatelly update the navigation bar's hidden state when it is going to become visible to be + // able to see the animation). + if (!hidden) { navigationBar.hidden = hidden; } diff --git a/components/LibraryInfo/src/MDCLibraryInfo.m b/components/LibraryInfo/src/MDCLibraryInfo.m index 64a893f9e91..99bbd379927 100644 --- a/components/LibraryInfo/src/MDCLibraryInfo.m +++ b/components/LibraryInfo/src/MDCLibraryInfo.m @@ -19,7 +19,7 @@ // This string is updated automatically as a part of the release process and should not be edited // manually. Do not rename this constant or change the formatting without updating the release // scripts. -static NSString* const kMDCLibraryInfoVersionString = @"124.0.0"; +static NSString* const kMDCLibraryInfoVersionString = @"124.0.1"; @implementation MDCLibraryInfo diff --git a/components/LibraryInfo/tests/unit/LibraryInfoTests.m b/components/LibraryInfo/tests/unit/LibraryInfoTests.m index 131660b3b7e..748dd4cc13b 100644 --- a/components/LibraryInfo/tests/unit/LibraryInfoTests.m +++ b/components/LibraryInfo/tests/unit/LibraryInfoTests.m @@ -26,7 +26,7 @@ - (void)testVersionFormat { // Given // This regex pattern does the following: - // Accept: "124.0.0", etc. + // Accept: "124.0.1", etc. // Reject: "0.0.0", "1.2", "1", "-1.2.3", "Hi, I'm a version 1.2.3", "1.2.3 is my version", etc. // // Note the major version must be >= 1 since "0.0.0" is used as the version when something goes diff --git a/demos/supplemental/RemoteImageServiceForMDCDemos.podspec b/demos/supplemental/RemoteImageServiceForMDCDemos.podspec index c4ddff963fb..3815555c8ff 100644 --- a/demos/supplemental/RemoteImageServiceForMDCDemos.podspec +++ b/demos/supplemental/RemoteImageServiceForMDCDemos.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "RemoteImageServiceForMDCDemos" - s.version = "124.0.0" + s.version = "124.0.1" s.summary = "A helper image class for the MDC demos." s.description = "This spec is made for use in the MDC demos. It gets images via url." s.homepage = "https://github.com/material-components/material-components-ios"