#include "components/feed/core/v2/stream/info_card_tracker.h"
#include <algorithm>
#include "base/base64.h"
#include "base/strings/string_number_conversions.h"
#include "base/time/time.h"
#include "base/values.h"
#include "components/feed/core/common/pref_names.h"
#include "components/feed/core/v2/config.h"
#include "components/feed/core/v2/feedstore_util.h"
#include "components/feed/core/v2/proto_util.h"
#include "components/feed/feed_feature_list.h"
#include "components/prefs/pref_service.h"
namespace feed {
InfoCardTrackingState;
namespace {
std::string InfoCardTypeToString(int info_card_type) { … }
bool compareInfoCardTrackingState(const InfoCardTrackingState& i1,
const InfoCardTrackingState& i2) { … }
InfoCardTrackingState DecodeFromBase64SerializedString(
const std::string& base64_serialized_state) { … }
int64_t GetAdjustedViewTimestamp(int64_t view_timestamp,
int64_t server_timestamp,
int64_t timestamp_adjustment) { … }
}
InfoCardTracker::InfoCardTracker(PrefService* profile_prefs)
: … { … }
InfoCardTracker::~InfoCardTracker() = default;
std::vector<InfoCardTrackingState> InfoCardTracker::GetAllStates(
int64_t server_timestamp,
int64_t client_timestamp) const { … }
void InfoCardTracker::OnViewed(int info_card_type,
int minimum_view_interval_seconds) { … }
void InfoCardTracker::OnClicked(int info_card_type) { … }
void InfoCardTracker::OnDismissed(int info_card_type) { … }
void InfoCardTracker::ResetState(int info_card_type) { … }
InfoCardTrackingState InfoCardTracker::GetState(int info_card_type) const { … }
void InfoCardTracker::SetState(int info_card_type,
const InfoCardTrackingState& state) { … }
}