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

Side by Side Diff: components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.cc

Issue 2520843002: [NTP] Cleanup: add brackets in components/ntp_snippets. [1/2] (Closed)
Patch Set: Created 4 years, 1 month 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 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider. h" 5 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider. h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 offline_page_model_->AddObserver(this); 67 offline_page_model_->AddObserver(this);
68 FetchRecentTabs(); 68 FetchRecentTabs();
69 } 69 }
70 70
71 RecentTabSuggestionsProvider::~RecentTabSuggestionsProvider() { 71 RecentTabSuggestionsProvider::~RecentTabSuggestionsProvider() {
72 offline_page_model_->RemoveObserver(this); 72 offline_page_model_->RemoveObserver(this);
73 } 73 }
74 74
75 CategoryStatus RecentTabSuggestionsProvider::GetCategoryStatus( 75 CategoryStatus RecentTabSuggestionsProvider::GetCategoryStatus(
76 Category category) { 76 Category category) {
77 if (category == provided_category_) 77 if (category == provided_category_) {
78 return category_status_; 78 return category_status_;
79 }
79 NOTREACHED() << "Unknown category " << category.id(); 80 NOTREACHED() << "Unknown category " << category.id();
80 return CategoryStatus::NOT_PROVIDED; 81 return CategoryStatus::NOT_PROVIDED;
81 } 82 }
82 83
83 CategoryInfo RecentTabSuggestionsProvider::GetCategoryInfo(Category category) { 84 CategoryInfo RecentTabSuggestionsProvider::GetCategoryInfo(Category category) {
84 DCHECK_EQ(provided_category_, category); 85 DCHECK_EQ(provided_category_, category);
85 return CategoryInfo( 86 return CategoryInfo(
86 l10n_util::GetStringUTF16(IDS_NTP_RECENT_TAB_SUGGESTIONS_SECTION_HEADER), 87 l10n_util::GetStringUTF16(IDS_NTP_RECENT_TAB_SUGGESTIONS_SECTION_HEADER),
87 ContentSuggestionsCardLayout::MINIMAL_CARD, 88 ContentSuggestionsCardLayout::MINIMAL_CARD,
88 /*has_more_action=*/false, 89 /*has_more_action=*/false,
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 //////////////////////////////////////////////////////////////////////////////// 167 ////////////////////////////////////////////////////////////////////////////////
167 // Private methods 168 // Private methods
168 169
169 void RecentTabSuggestionsProvider:: 170 void RecentTabSuggestionsProvider::
170 GetPagesMatchingQueryCallbackForGetDismissedSuggestions( 171 GetPagesMatchingQueryCallbackForGetDismissedSuggestions(
171 const DismissedSuggestionsCallback& callback, 172 const DismissedSuggestionsCallback& callback,
172 const std::vector<OfflinePageItem>& offline_pages) const { 173 const std::vector<OfflinePageItem>& offline_pages) const {
173 std::set<std::string> dismissed_ids = ReadDismissedIDsFromPrefs(); 174 std::set<std::string> dismissed_ids = ReadDismissedIDsFromPrefs();
174 std::vector<ContentSuggestion> suggestions; 175 std::vector<ContentSuggestion> suggestions;
175 for (const OfflinePageItem& item : offline_pages) { 176 for (const OfflinePageItem& item : offline_pages) {
176 if (!dismissed_ids.count(base::IntToString(item.offline_id))) 177 if (!dismissed_ids.count(base::IntToString(item.offline_id))) {
177 continue; 178 continue;
179 }
178 180
179 suggestions.push_back(ConvertOfflinePage(item)); 181 suggestions.push_back(ConvertOfflinePage(item));
180 } 182 }
181 callback.Run(std::move(suggestions)); 183 callback.Run(std::move(suggestions));
182 } 184 }
183 185
184 void RecentTabSuggestionsProvider::OfflinePageModelLoaded( 186 void RecentTabSuggestionsProvider::OfflinePageModelLoaded(
185 offline_pages::OfflinePageModel* model) {} 187 offline_pages::OfflinePageModel* model) {}
186 188
187 void RecentTabSuggestionsProvider::OfflinePageModelChanged( 189 void RecentTabSuggestionsProvider::OfflinePageModelChanged(
188 offline_pages::OfflinePageModel* model) { 190 offline_pages::OfflinePageModel* model) {
189 DCHECK_EQ(offline_page_model_, model); 191 DCHECK_EQ(offline_page_model_, model);
190 FetchRecentTabs(); 192 FetchRecentTabs();
191 } 193 }
192 194
193 void RecentTabSuggestionsProvider:: 195 void RecentTabSuggestionsProvider::
194 GetPagesMatchingQueryCallbackForFetchRecentTabs( 196 GetPagesMatchingQueryCallbackForFetchRecentTabs(
195 const std::vector<OfflinePageItem>& offline_pages) { 197 const std::vector<OfflinePageItem>& offline_pages) {
196 NotifyStatusChanged(CategoryStatus::AVAILABLE); 198 NotifyStatusChanged(CategoryStatus::AVAILABLE);
197 std::set<std::string> old_dismissed_ids = ReadDismissedIDsFromPrefs(); 199 std::set<std::string> old_dismissed_ids = ReadDismissedIDsFromPrefs();
198 std::set<std::string> new_dismissed_ids; 200 std::set<std::string> new_dismissed_ids;
199 std::vector<const OfflinePageItem*> recent_tab_items; 201 std::vector<const OfflinePageItem*> recent_tab_items;
200 for (const OfflinePageItem& item : offline_pages) { 202 for (const OfflinePageItem& item : offline_pages) {
201 std::string offline_page_id = base::IntToString(item.offline_id); 203 std::string offline_page_id = base::IntToString(item.offline_id);
202 if (old_dismissed_ids.count(offline_page_id)) 204 if (old_dismissed_ids.count(offline_page_id)) {
203 new_dismissed_ids.insert(offline_page_id); 205 new_dismissed_ids.insert(offline_page_id);
204 else 206 } else {
205 recent_tab_items.push_back(&item); 207 recent_tab_items.push_back(&item);
208 }
206 } 209 }
207 210
208 observer()->OnNewSuggestions( 211 observer()->OnNewSuggestions(
209 this, provided_category_, 212 this, provided_category_,
210 GetMostRecentlyVisited(std::move(recent_tab_items))); 213 GetMostRecentlyVisited(std::move(recent_tab_items)));
211 if (new_dismissed_ids.size() != old_dismissed_ids.size()) 214 if (new_dismissed_ids.size() != old_dismissed_ids.size()) {
212 StoreDismissedIDsToPrefs(new_dismissed_ids); 215 StoreDismissedIDsToPrefs(new_dismissed_ids);
216 }
213 } 217 }
214 218
215 void RecentTabSuggestionsProvider::OfflinePageDeleted( 219 void RecentTabSuggestionsProvider::OfflinePageDeleted(
216 int64_t offline_id, 220 int64_t offline_id,
217 const ClientId& client_id) { 221 const ClientId& client_id) {
218 // Because we never switch to NOT_PROVIDED dynamically, there can be no open 222 // Because we never switch to NOT_PROVIDED dynamically, there can be no open
219 // UI containing an invalidated suggestion unless the status is something 223 // UI containing an invalidated suggestion unless the status is something
220 // other than NOT_PROVIDED, so only notify invalidation in that case. 224 // other than NOT_PROVIDED, so only notify invalidation in that case.
221 if (category_status_ != CategoryStatus::NOT_PROVIDED) 225 if (category_status_ != CategoryStatus::NOT_PROVIDED) {
222 InvalidateSuggestion(offline_id); 226 InvalidateSuggestion(offline_id);
227 }
223 } 228 }
224 229
225 void RecentTabSuggestionsProvider::FetchRecentTabs() { 230 void RecentTabSuggestionsProvider::FetchRecentTabs() {
226 offline_page_model_->GetPagesMatchingQuery( 231 offline_page_model_->GetPagesMatchingQuery(
227 BuildRecentTabsQuery(offline_page_model_), 232 BuildRecentTabsQuery(offline_page_model_),
228 base::Bind(&RecentTabSuggestionsProvider:: 233 base::Bind(&RecentTabSuggestionsProvider::
229 GetPagesMatchingQueryCallbackForFetchRecentTabs, 234 GetPagesMatchingQueryCallbackForFetchRecentTabs,
230 weak_ptr_factory_.GetWeakPtr())); 235 weak_ptr_factory_.GetWeakPtr()));
231 } 236 }
232 237
233 void RecentTabSuggestionsProvider::NotifyStatusChanged( 238 void RecentTabSuggestionsProvider::NotifyStatusChanged(
234 CategoryStatus new_status) { 239 CategoryStatus new_status) {
235 DCHECK_NE(CategoryStatus::NOT_PROVIDED, category_status_); 240 DCHECK_NE(CategoryStatus::NOT_PROVIDED, category_status_);
236 if (category_status_ == new_status) 241 if (category_status_ == new_status) {
237 return; 242 return;
243 }
238 category_status_ = new_status; 244 category_status_ = new_status;
239 observer()->OnCategoryStatusChanged(this, provided_category_, new_status); 245 observer()->OnCategoryStatusChanged(this, provided_category_, new_status);
240 } 246 }
241 247
242 ContentSuggestion RecentTabSuggestionsProvider::ConvertOfflinePage( 248 ContentSuggestion RecentTabSuggestionsProvider::ConvertOfflinePage(
243 const OfflinePageItem& offline_page) const { 249 const OfflinePageItem& offline_page) const {
244 // TODO(vitaliii): Make sure the URL is opened in the existing tab. 250 // TODO(vitaliii): Make sure the URL is opened in the existing tab.
245 ContentSuggestion suggestion(provided_category_, 251 ContentSuggestion suggestion(provided_category_,
246 base::IntToString(offline_page.offline_id), 252 base::IntToString(offline_page.offline_id),
247 offline_page.url); 253 offline_page.url);
(...skipping 15 matching lines...) Expand all
263 } 269 }
264 270
265 std::vector<ContentSuggestion> 271 std::vector<ContentSuggestion>
266 RecentTabSuggestionsProvider::GetMostRecentlyVisited( 272 RecentTabSuggestionsProvider::GetMostRecentlyVisited(
267 std::vector<const OfflinePageItem*> offline_page_items) const { 273 std::vector<const OfflinePageItem*> offline_page_items) const {
268 std::sort(offline_page_items.begin(), offline_page_items.end(), 274 std::sort(offline_page_items.begin(), offline_page_items.end(),
269 OrderOfflinePagesByMostRecentlyVisitedFirst()); 275 OrderOfflinePagesByMostRecentlyVisitedFirst());
270 std::vector<ContentSuggestion> suggestions; 276 std::vector<ContentSuggestion> suggestions;
271 for (const OfflinePageItem* offline_page_item : offline_page_items) { 277 for (const OfflinePageItem* offline_page_item : offline_page_items) {
272 suggestions.push_back(ConvertOfflinePage(*offline_page_item)); 278 suggestions.push_back(ConvertOfflinePage(*offline_page_item));
273 if (suggestions.size() == kMaxSuggestionsCount) 279 if (suggestions.size() == kMaxSuggestionsCount) {
274 break; 280 break;
281 }
275 } 282 }
276 return suggestions; 283 return suggestions;
277 } 284 }
278 285
279 void RecentTabSuggestionsProvider::InvalidateSuggestion(int64_t offline_id) { 286 void RecentTabSuggestionsProvider::InvalidateSuggestion(int64_t offline_id) {
280 std::string offline_page_id = base::IntToString(offline_id); 287 std::string offline_page_id = base::IntToString(offline_id);
281 observer()->OnSuggestionInvalidated( 288 observer()->OnSuggestionInvalidated(
282 this, ContentSuggestion::ID(provided_category_, offline_page_id)); 289 this, ContentSuggestion::ID(provided_category_, offline_page_id));
283 290
284 std::set<std::string> dismissed_ids = ReadDismissedIDsFromPrefs(); 291 std::set<std::string> dismissed_ids = ReadDismissedIDsFromPrefs();
(...skipping 11 matching lines...) Expand all
296 } 303 }
297 304
298 void RecentTabSuggestionsProvider::StoreDismissedIDsToPrefs( 305 void RecentTabSuggestionsProvider::StoreDismissedIDsToPrefs(
299 const std::set<std::string>& dismissed_ids) { 306 const std::set<std::string>& dismissed_ids) {
300 prefs::StoreDismissedIDsToPrefs(pref_service_, 307 prefs::StoreDismissedIDsToPrefs(pref_service_,
301 prefs::kDismissedRecentOfflineTabSuggestions, 308 prefs::kDismissedRecentOfflineTabSuggestions,
302 dismissed_ids); 309 dismissed_ids);
303 } 310 }
304 311
305 } // namespace ntp_snippets 312 } // namespace ntp_snippets
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698