Index: ios/clean/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm |
diff --git a/ios/clean/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm b/ios/clean/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm |
index 9ee9700b5b41eb6a12677446277f2dbadc36421c..4edb8fcfea36ce0361bdacd6da8d10689dcfac6c 100644 |
--- a/ios/clean/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm |
+++ b/ios/clean/chrome/browser/ui/tab_grid/tab_grid_view_controller.mm |
@@ -105,7 +105,7 @@ const CGFloat kToolbarHeight = 64.0f; |
- (NSInteger)collectionView:(UICollectionView*)collectionView |
numberOfItemsInSection:(NSInteger)section { |
- NSInteger items = [self.dataSource numberOfTabsInTabGrid]; |
+ int items = [self.dataSource numberOfTabsInTabGrid]; |
// HACK: Do not make showing noTabsOverlay a side effect of the dataSource |
// callback. |
if (items) { |
@@ -124,7 +124,9 @@ const CGFloat kToolbarHeight = 64.0f; |
forIndexPath:indexPath]); |
cell.delegate = self; |
[cell setSessionType:TabSwitcherSessionType::REGULAR_SESSION]; |
- [cell setAppearanceForTabTitle:[self.dataSource titleAtIndex:indexPath.item] |
+ DCHECK_LE(indexPath.item, INT_MAX); |
+ int item = static_cast<int>(indexPath.item); |
+ [cell setAppearanceForTabTitle:[self.dataSource titleAtIndex:item] |
favicon:nil |
cellSize:CGSizeZero]; |
[cell setSelected:(indexPath.item == [self.dataSource indexOfActiveTab])]; |
@@ -162,15 +164,13 @@ const CGFloat kToolbarHeight = 64.0f; |
} |
- (void)createNewTab:(id)sender { |
- // PLACEHOLDER: The new WebStateList data structure will have implications |
- // on how new tabs are created. |
NSInteger index = [self.grid numberOfItemsInSection:0]; |
NSIndexPath* indexPath = [NSIndexPath indexPathForItem:index inSection:0]; |
auto updateBlock = ^{ |
// Unselect current selected item. |
- NSInteger selectedIndex = [self.dataSource indexOfActiveTab]; |
NSIndexPath* selectedIndexPath = |
- [NSIndexPath indexPathForItem:selectedIndex inSection:0]; |
+ [NSIndexPath indexPathForItem:[self.dataSource indexOfActiveTab] |
+ inSection:0]; |
[self.grid reloadItemsAtIndexPaths:@[ selectedIndexPath ]]; |
// Create and show new tab. |
@@ -189,10 +189,12 @@ const CGFloat kToolbarHeight = 64.0f; |
} |
- (void)cellPressed:(UICollectionViewCell*)cell { |
- NSInteger selectedIndex = [self.dataSource indexOfActiveTab]; |
+ int selectedIndex = [self.dataSource indexOfActiveTab]; |
NSIndexPath* newSelectedIndexPath = [self.grid indexPathForCell:cell]; |
[self.tabCommandHandler showTabAtIndexPath:newSelectedIndexPath]; |
- if (newSelectedIndexPath.item != selectedIndex) { |
+ if (selectedIndex == kTabGridDataSourceInvalidIndex) { |
+ [self.grid reloadItemsAtIndexPaths:@[ newSelectedIndexPath ]]; |
+ } else if (newSelectedIndexPath.item != selectedIndex) { |
NSIndexPath* selectedIndexPath = |
[NSIndexPath indexPathForItem:selectedIndex inSection:0]; |
[self.grid |