| Index: components/ntp_snippets/breaking_news/breaking_news_suggestions_provider.cc
|
| diff --git a/components/ntp_snippets/breaking_news/breaking_news_suggestions_provider.cc b/components/ntp_snippets/breaking_news/breaking_news_suggestions_provider.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b3cc4988f4d1a0cd533ccef482ed15d7e27c291a
|
| --- /dev/null
|
| +++ b/components/ntp_snippets/breaking_news/breaking_news_suggestions_provider.cc
|
| @@ -0,0 +1,88 @@
|
| +// Copyright 2017 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "components/ntp_snippets/breaking_news/breaking_news_suggestions_provider.h"
|
| +
|
| +#include "base/bind.h"
|
| +#include "components/ntp_snippets/breaking_news/content_suggestions_gcm_app_handler.h"
|
| +#include "components/ntp_snippets/category.h"
|
| +#include "components/ntp_snippets/pref_names.h"
|
| +#include "components/strings/grit/components_strings.h"
|
| +
|
| +namespace ntp_snippets {
|
| +
|
| +BreakingNewsSuggestionsProvider::BreakingNewsSuggestionsProvider(
|
| + ContentSuggestionsProvider::Observer* observer,
|
| + std::unique_ptr<ContentSuggestionsGCMAppHandler> gcm_app_handler)
|
| + : ContentSuggestionsProvider(observer),
|
| + gcm_app_handler_(std::move(gcm_app_handler)),
|
| + provided_category_(
|
| + Category::FromKnownCategory(KnownCategories::BREAKING_NEWS)),
|
| + category_status_(CategoryStatus::INITIALIZING) {}
|
| +
|
| +BreakingNewsSuggestionsProvider::~BreakingNewsSuggestionsProvider() {
|
| + gcm_app_handler_->StopListening();
|
| +}
|
| +
|
| +void BreakingNewsSuggestionsProvider::Start() {
|
| + // Unretained because |this| owns |gcm_app_handler_|.
|
| + gcm_app_handler_->StartListening(
|
| + base::Bind(&BreakingNewsSuggestionsProvider::OnNewContentSuggestion,
|
| + base::Unretained(this)));
|
| +}
|
| +
|
| +void BreakingNewsSuggestionsProvider::OnNewContentSuggestion(
|
| + const base::Value& content) {}
|
| +
|
| +////////////////////////////////////////////////////////////////////////////////
|
| +// Private methods
|
| +
|
| +CategoryStatus BreakingNewsSuggestionsProvider::GetCategoryStatus(
|
| + Category category) {
|
| + DCHECK_EQ(category, provided_category_);
|
| + return category_status_;
|
| +}
|
| +
|
| +CategoryInfo BreakingNewsSuggestionsProvider::GetCategoryInfo(
|
| + Category category) {
|
| + // TODO(mamir): needs to be corrected, just a placeholer
|
| + return CategoryInfo(base::string16(),
|
| + ContentSuggestionsCardLayout::MINIMAL_CARD,
|
| + ContentSuggestionsAdditionalAction::VIEW_ALL,
|
| + /*show_if_empty=*/false, base::string16());
|
| +}
|
| +
|
| +void BreakingNewsSuggestionsProvider::DismissSuggestion(
|
| + const ContentSuggestion::ID& suggestion_id) {}
|
| +
|
| +void BreakingNewsSuggestionsProvider::FetchSuggestionImage(
|
| + const ContentSuggestion::ID& suggestion_id,
|
| + const ImageFetchedCallback& callback) {}
|
| +
|
| +void BreakingNewsSuggestionsProvider::Fetch(
|
| + const Category& category,
|
| + const std::set<std::string>& known_suggestion_ids,
|
| + const FetchDoneCallback& callback) {}
|
| +
|
| +void BreakingNewsSuggestionsProvider::ClearHistory(
|
| + base::Time begin,
|
| + base::Time end,
|
| + const base::Callback<bool(const GURL& url)>& filter) {
|
| + // TODO(mamir): clear the provider.
|
| +}
|
| +
|
| +void BreakingNewsSuggestionsProvider::ClearCachedSuggestions(
|
| + Category category) {
|
| + DCHECK_EQ(category, provided_category_);
|
| + // TODO(mamir): clear the cached suggestions.
|
| +}
|
| +
|
| +void BreakingNewsSuggestionsProvider::GetDismissedSuggestionsForDebugging(
|
| + Category category,
|
| + const DismissedSuggestionsCallback& callback) {}
|
| +
|
| +void BreakingNewsSuggestionsProvider::ClearDismissedSuggestionsForDebugging(
|
| + Category category) {}
|
| +
|
| +} // namespace ntp_snippets
|
|
|