The only way to check if an item is inside a CollectionViewModel, or to get its index path, is to know its section identifier. But the space in which we query this item is the item space: the item should be enough to uniquely identify a NSIndexPath.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b commit 61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b Author: gambard <gambard@chromium.org> Date: Wed May 03 14:36:48 2017 Allow CollectionViewModel/Controller queries without SectionIdentifier This CL replace the method to get the indexPath of an item knowing its section identifier in the CollectionViewModel by a method returning the indexPath of an item even if its section identifier is unknown. It adds a method to know if an item is present in a CollectionViewModel. It also replace the reconfigure method of CollectionViewController to allow reconfiguring without knowing the section identifier of the items. BUG= 703652 Review-Url: https://codereview.chromium.org/2761263003 Cr-Commit-Position: refs/heads/master@{#468964} [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/authentication/signed_in_accounts_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/authentication/signin_account_selector_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/autofill/card_unmask_prompt_view_bridge.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/collection_view/collection_view_controller.h [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/collection_view/collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/collection_view/collection_view_controller_unittest.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/collection_view/collection_view_model.h [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/collection_view/collection_view_model.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/collection_view/collection_view_model_unittest.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/content_suggestions/content_suggestions_collection_updater.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/history/history_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/payments/credit_card_edit_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/payments/payment_request_selector_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/payments/payment_request_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/reading_list/reading_list_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/accounts_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/autofill_credit_card_edit_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/autofill_profile_edit_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/bandwidth_management_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/block_popups_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/clear_browsing_data_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/content_settings_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/dataplan_usage_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/import_data_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/password_details_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/privacy_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/save_passwords_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/search_engine_settings_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/settings_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/sync_settings_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/time_range_selector_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/translate_collection_view_controller.mm [modify] https://crrev.com/61dc89e9c94a7d2874e05c1ac9b0a02cf6d3bb7b/ios/chrome/browser/ui/settings/voicesearch_collection_view_controller.mm
Comment 1 by eugene...@chromium.org
, Mar 22 2017