blob: 9715dd4ccc39514af3690fd5d8265681d0b5ecfd [file] [log] [blame]
// Copyright 2018 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 "chrome/browser/badging/badge_manager.h"
#include "base/logging.h"
#include "base/optional.h"
namespace badging {
BadgeManager::BadgeManager() = default;
BadgeManager::~BadgeManager() = default;
void BadgeManager::UpdateBadge(const extensions::ExtensionId& extension_id,
base::Optional<int> contents) {
auto it = badged_apps_.find(extension_id);
if (it != badged_apps_.end() && it->second == contents)
return;
badged_apps_[extension_id] = contents;
if (!delegate_)
return;
delegate_->OnBadgeSet(extension_id, contents);
}
void BadgeManager::ClearBadge(const extensions::ExtensionId& extension_id) {
auto removed = badged_apps_.erase(extension_id);
if (!removed || !delegate_)
return;
delegate_->OnBadgeCleared(extension_id);
}
void BadgeManager::SetDelegate(BadgeManagerDelegate* badge_manager_delegate) {
DCHECK(!delegate_);
delegate_ = badge_manager_delegate;
}
} // namespace badging