Skip to content

Commit 610c257

Browse files
Nobodymaterial-automation
Nobody
authored andcommitted
copied item properties when using setItems
PiperOrigin-RevId: 705965889
1 parent 610c997 commit 610c257

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

components/BottomNavigation/src/MDCBottomNavigationBar.m

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -824,14 +824,9 @@ - (void)updateBarItems {
824824
itemView.selectionIndicatorColor = self.selectionIndicatorColor;
825825
itemView.selectionIndicatorSize = self.selectionIndicatorSize;
826826
[self configureTitleStateForItemView:itemView];
827-
[self configureItemView:itemView withItem:self.barItems[i].item];
828-
// TODO(b/378528228): Consolidate this inside configureItemView once clients are fully migrated
829-
// to setBarItems.
830-
itemView.badgeAppearance = self.itemBadgeAppearance;
831-
if (self.barItems[i].badgeAppearance != nil) {
832-
MDCBadgeAppearance *_Nonnull nonnullAppearance = self.barItems[i].badgeAppearance;
833-
itemView.badgeAppearance = nonnullAppearance;
834-
}
827+
[self configureItemView:itemView
828+
withItem:self.barItems[i].item
829+
appearance:self.barItems[i].badgeAppearance];
835830

836831
[itemView.button addTarget:self
837832
action:@selector(didTouchUpInsidebarItemButton:)
@@ -913,12 +908,9 @@ - (void)setItems:(NSArray<UITabBarItem *> *)items {
913908
itemView.selected = NO;
914909
itemView.displayTitleInVerticalLayout = self.displayItemTitlesInVerticalLayout;
915910
itemView.enableVerticalLayout = self.enableVerticalLayout;
916-
itemView.badgeAppearance = _itemBadgeAppearance;
917911

918-
itemView.selectionIndicatorColor = self.selectionIndicatorColor;
919-
itemView.selectionIndicatorSize = self.selectionIndicatorSize;
920912
[self configureTitleStateForItemView:itemView];
921-
[self configureItemView:itemView withItem:items[i]];
913+
[self configureItemView:itemView withItem:items[i] appearance:self.itemBadgeAppearance];
922914

923915
[itemView.button addTarget:self
924916
action:@selector(didTouchUpInsideButton:)

components/BottomNavigation/src/private/MDCBottomNavigationBar+ItemView.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#import "MDCBottomNavigationBar.h"
1616
#import "MDCBottomNavigationItemView.h"
1717

18+
NS_ASSUME_NONNULL_BEGIN
19+
1820
/**
1921
This category extracts logic for item view configuration out of the primary MDCBottomNavigationBar
2022
implementation.
@@ -28,6 +30,10 @@
2830
@param itemView The MDCBottomNavigationItemView instance to be configured.
2931
@param item The item used to configure the itemView.
3032
*/
31-
- (void)configureItemView:(MDCBottomNavigationItemView *)itemView withItem:(UITabBarItem *)item;
33+
- (void)configureItemView:(MDCBottomNavigationItemView *)itemView
34+
withItem:(UITabBarItem *)item
35+
appearance:(nullable MDCBadgeAppearance *)appearance;
3236

3337
@end
38+
39+
NS_ASSUME_NONNULL_END

components/BottomNavigation/src/private/MDCBottomNavigationBar+ItemView.m

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,23 @@ @implementation MDCBottomNavigationBar (ItemViewConfiguration)
2525

2626
#pragma mark - Public
2727

28-
- (void)configureItemView:(MDCBottomNavigationItemView *)itemView withItem:(UITabBarItem *)item {
28+
- (void)configureItemView:(MDCBottomNavigationItemView *)itemView
29+
withItem:(UITabBarItem *)item
30+
appearance:(nullable MDCBadgeAppearance *)appearance {
2931
[self configure:itemView withItem:item];
3032
[self configureAppearanceForItemView:itemView];
3133
[self configurePointerInteractionForItemView:itemView];
34+
if (appearance != nil) {
35+
MDCBadgeAppearance *_Nonnull nonnullAppearance = appearance;
36+
itemView.badgeAppearance = nonnullAppearance;
37+
}
3238
}
3339

3440
#pragma mark - Private
3541

3642
- (void)configureAppearanceForItemView:(MDCBottomNavigationItemView *)itemView {
3743
itemView.badgeAppearance = self.itemBadgeAppearance;
44+
itemView.badgeHorizontalOffset = self.itemBadgeHorizontalOffset;
3845
itemView.selectionIndicatorSize = self.selectionIndicatorSize;
3946
itemView.showsSelectionIndicator = self.showsSelectionIndicator;
4047

@@ -48,10 +55,8 @@ - (void)configureColorsForItemView:(MDCBottomNavigationItemView *)itemView {
4855
// depends on the value of rippleColor.
4956
itemView.rippleColor = self.rippleColor;
5057
itemView.selectedItemTintColor = self.selectedItemTintColor;
51-
5258
itemView.unselectedItemTintColor = self.unselectedItemTintColor;
5359
itemView.selectedItemTitleColor = self.selectedItemTitleColor;
54-
5560
itemView.selectionIndicatorColor = self.selectionIndicatorColor;
5661
}
5762

0 commit comments

Comments
 (0)