| OLD | NEW |
| 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/physical_web_pages/physical_web_page_suggestio
ns_provider.h" | 5 #include "components/ntp_snippets/physical_web_pages/physical_web_page_suggestio
ns_provider.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 default; | 38 default; |
| 39 | 39 |
| 40 void PhysicalWebPageSuggestionsProvider::OnDisplayableUrlsChanged( | 40 void PhysicalWebPageSuggestionsProvider::OnDisplayableUrlsChanged( |
| 41 const std::vector<UrlInfo>& urls) { | 41 const std::vector<UrlInfo>& urls) { |
| 42 NotifyStatusChanged(CategoryStatus::AVAILABLE); | 42 NotifyStatusChanged(CategoryStatus::AVAILABLE); |
| 43 std::vector<ContentSuggestion> suggestions; | 43 std::vector<ContentSuggestion> suggestions; |
| 44 | 44 |
| 45 for (const UrlInfo& url_info : urls) { | 45 for (const UrlInfo& url_info : urls) { |
| 46 if (suggestions.size() >= kMaxSuggestionsCount) break; | 46 if (suggestions.size() >= kMaxSuggestionsCount) break; |
| 47 | 47 |
| 48 ContentSuggestion suggestion( | 48 ContentSuggestion suggestion(provided_category_, url_info.site_url.spec(), |
| 49 MakeUniqueID(provided_category_, url_info.site_url.spec()), | 49 url_info.site_url); |
| 50 url_info.site_url); | |
| 51 | 50 |
| 52 suggestion.set_title(base::UTF8ToUTF16(url_info.title)); | 51 suggestion.set_title(base::UTF8ToUTF16(url_info.title)); |
| 53 suggestion.set_snippet_text(base::UTF8ToUTF16(url_info.description)); | 52 suggestion.set_snippet_text(base::UTF8ToUTF16(url_info.description)); |
| 54 suggestion.set_publish_date(url_info.scan_time); | 53 suggestion.set_publish_date(url_info.scan_time); |
| 55 suggestion.set_publisher_name(base::UTF8ToUTF16(url_info.site_url.host())); | 54 suggestion.set_publisher_name(base::UTF8ToUTF16(url_info.site_url.host())); |
| 56 suggestions.push_back(std::move(suggestion)); | 55 suggestions.push_back(std::move(suggestion)); |
| 57 } | 56 } |
| 58 | 57 |
| 59 observer()->OnNewSuggestions(this, provided_category_, | 58 observer()->OnNewSuggestions(this, provided_category_, |
| 60 std::move(suggestions)); | 59 std::move(suggestions)); |
| 61 } | 60 } |
| 62 | 61 |
| 63 CategoryStatus PhysicalWebPageSuggestionsProvider::GetCategoryStatus( | 62 CategoryStatus PhysicalWebPageSuggestionsProvider::GetCategoryStatus( |
| 64 Category category) { | 63 Category category) { |
| 65 return category_status_; | 64 return category_status_; |
| 66 } | 65 } |
| 67 | 66 |
| 68 CategoryInfo PhysicalWebPageSuggestionsProvider::GetCategoryInfo( | 67 CategoryInfo PhysicalWebPageSuggestionsProvider::GetCategoryInfo( |
| 69 Category category) { | 68 Category category) { |
| 70 // TODO(vitaliii): Use a proper string once it's been agreed on. | 69 // TODO(vitaliii): Use a proper string once it's been agreed on. |
| 71 return CategoryInfo(base::ASCIIToUTF16("Physical web pages"), | 70 return CategoryInfo(base::ASCIIToUTF16("Physical web pages"), |
| 72 ContentSuggestionsCardLayout::MINIMAL_CARD, | 71 ContentSuggestionsCardLayout::MINIMAL_CARD, |
| 73 /* has_more_button */ true, | 72 /* has_more_button */ true, |
| 74 /* show_if_empty */ false); | 73 /* show_if_empty */ false); |
| 75 } | 74 } |
| 76 | 75 |
| 77 void PhysicalWebPageSuggestionsProvider::DismissSuggestion( | 76 void PhysicalWebPageSuggestionsProvider::DismissSuggestion( |
| 78 const std::string& suggestion_id) { | 77 const ContentSuggestion::ID& suggestion_id) { |
| 79 // TODO(vitaliii): Implement this and then | 78 // TODO(vitaliii): Implement this and then |
| 80 // ClearDismissedSuggestionsForDebugging. | 79 // ClearDismissedSuggestionsForDebugging. |
| 81 } | 80 } |
| 82 | 81 |
| 83 void PhysicalWebPageSuggestionsProvider::FetchSuggestionImage( | 82 void PhysicalWebPageSuggestionsProvider::FetchSuggestionImage( |
| 84 const std::string& suggestion_id, const ImageFetchedCallback& callback) { | 83 const ContentSuggestion::ID& suggestion_id, |
| 84 const ImageFetchedCallback& callback) { |
| 85 // TODO(vitaliii): Implement. | 85 // TODO(vitaliii): Implement. |
| 86 base::ThreadTaskRunnerHandle::Get()->PostTask( | 86 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 87 FROM_HERE, base::Bind(callback, gfx::Image())); | 87 FROM_HERE, base::Bind(callback, gfx::Image())); |
| 88 } | 88 } |
| 89 | 89 |
| 90 void PhysicalWebPageSuggestionsProvider::ClearHistory( | 90 void PhysicalWebPageSuggestionsProvider::ClearHistory( |
| 91 base::Time begin, | 91 base::Time begin, |
| 92 base::Time end, | 92 base::Time end, |
| 93 const base::Callback<bool(const GURL& url)>& filter) { | 93 const base::Callback<bool(const GURL& url)>& filter) { |
| 94 ClearDismissedSuggestionsForDebugging(provided_category_); | 94 ClearDismissedSuggestionsForDebugging(provided_category_); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 116 | 116 |
| 117 // Updates the |category_status_| and notifies the |observer_|, if necessary. | 117 // Updates the |category_status_| and notifies the |observer_|, if necessary. |
| 118 void PhysicalWebPageSuggestionsProvider::NotifyStatusChanged( | 118 void PhysicalWebPageSuggestionsProvider::NotifyStatusChanged( |
| 119 CategoryStatus new_status) { | 119 CategoryStatus new_status) { |
| 120 if (category_status_ == new_status) return; | 120 if (category_status_ == new_status) return; |
| 121 category_status_ = new_status; | 121 category_status_ = new_status; |
| 122 observer()->OnCategoryStatusChanged(this, provided_category_, new_status); | 122 observer()->OnCategoryStatusChanged(this, provided_category_, new_status); |
| 123 } | 123 } |
| 124 | 124 |
| 125 } // namespace ntp_snippets | 125 } // namespace ntp_snippets |
| OLD | NEW |