Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(401)

Side by Side Diff: ios/chrome/browser/ui/collection_view/collection_view_model.mm

Issue 2761263003: Allow CollectionViewModel/Controller queries without SectionIdentifier (Closed)
Patch Set: Cleanup Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h" 5 #import "ios/chrome/browser/ui/collection_view/collection_view_model.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h" 8 #import "ios/chrome/browser/ui/collection_view/cells/collection_view_item.h"
9 9
10 #if !defined(__has_feature) || !__has_feature(objc_arc) 10 #if !defined(__has_feature) || !__has_feature(objc_arc)
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 } 249 }
250 250
251 #pragma mark Query index paths from items 251 #pragma mark Query index paths from items
252 252
253 - (BOOL)hasItem:(CollectionViewItem*)item 253 - (BOOL)hasItem:(CollectionViewItem*)item
254 inSectionWithIdentifier:(NSInteger)sectionIdentifier { 254 inSectionWithIdentifier:(NSInteger)sectionIdentifier {
255 return [[self itemsInSectionWithIdentifier:sectionIdentifier] 255 return [[self itemsInSectionWithIdentifier:sectionIdentifier]
256 indexOfObject:item] != NSNotFound; 256 indexOfObject:item] != NSNotFound;
257 } 257 }
258 258
259 - (NSIndexPath*)indexPathForItem:(CollectionViewItem*)item 259 - (BOOL)hasItem:(CollectionViewItem*)item {
260 inSectionWithIdentifier:(NSInteger)sectionIdentifier { 260 for (NSNumber* section in _sectionIdentifiers) {
261 NSArray* itemsInSection = 261 if ([self hasItem:item inSectionWithIdentifier:[section integerValue]])
262 [self itemsInSectionWithIdentifier:sectionIdentifier]; 262 return YES;
263 }
264 return NO;
265 }
263 266
264 NSInteger section = [self sectionForSectionIdentifier:sectionIdentifier]; 267 - (NSIndexPath*)indexPathForItem:(CollectionViewItem*)item {
265 NSInteger itemIndex = [itemsInSection indexOfObject:item]; 268 for (NSUInteger section = 0; section < _sections.count; section++) {
266 DCHECK_NE(NSNotFound, itemIndex); 269 NSInteger itemIndex = [_sections[section] indexOfObject:item];
267 return [NSIndexPath indexPathForItem:itemIndex inSection:section]; 270 if (itemIndex != NSNotFound) {
271 return [NSIndexPath indexPathForItem:itemIndex inSection:section];
272 }
273 }
274 NOTREACHED();
275 return nil;
268 } 276 }
269 277
270 #pragma mark UICollectionView data sourcing 278 #pragma mark UICollectionView data sourcing
271 279
272 - (NSInteger)numberOfSections { 280 - (NSInteger)numberOfSections {
273 return [_sections count]; 281 return [_sections count];
274 } 282 }
275 283
276 - (NSInteger)numberOfItemsInSection:(NSInteger)section { 284 - (NSInteger)numberOfItemsInSection:(NSInteger)section {
277 DCHECK_LT(static_cast<NSUInteger>(section), [_sections count]); 285 DCHECK_LT(static_cast<NSUInteger>(section), [_sections count]);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 } 330 }
323 if (sectionItem.type == item.type) { 331 if (sectionItem.type == item.type) {
324 indexInItemType++; 332 indexInItemType++;
325 } 333 }
326 } 334 }
327 DCHECK(found); 335 DCHECK(found);
328 return indexInItemType; 336 return indexInItemType;
329 } 337 }
330 338
331 @end 339 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698