123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // Copyright 2020 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/app_restore/app_restore_info.h"
- #include "base/containers/contains.h"
- #include "base/no_destructor.h"
- #include "components/account_id/account_id.h"
- namespace app_restore {
- // static
- AppRestoreInfo* AppRestoreInfo::GetInstance() {
- static base::NoDestructor<AppRestoreInfo> app_restore_info;
- return app_restore_info.get();
- }
- AppRestoreInfo::AppRestoreInfo() = default;
- AppRestoreInfo::~AppRestoreInfo() = default;
- void AppRestoreInfo::AddObserver(Observer* observer) {
- observers_.AddObserver(observer);
- }
- void AppRestoreInfo::RemoveObserver(Observer* observer) {
- observers_.RemoveObserver(observer);
- }
- bool AppRestoreInfo::CanPerformRestore(const AccountId& account_id) {
- return base::Contains(restore_prefs_, account_id);
- }
- void AppRestoreInfo::SetRestorePref(const AccountId& account_id,
- bool could_restore) {
- if (could_restore == CanPerformRestore(account_id))
- return;
- if (could_restore)
- restore_prefs_.insert(account_id);
- else
- restore_prefs_.erase(account_id);
- for (auto& observer : observers_)
- observer.OnRestorePrefChanged(account_id, could_restore);
- }
- void AppRestoreInfo::OnAppLaunched(aura::Window* window) {
- for (auto& observer : observers_)
- observer.OnAppLaunched(window);
- }
- void AppRestoreInfo::OnWindowInitialized(aura::Window* window) {
- for (auto& observer : observers_)
- observer.OnWindowInitialized(window);
- }
- void AppRestoreInfo::OnWidgetInitialized(views::Widget* widget) {
- for (auto& observer : observers_)
- observer.OnWidgetInitialized(widget);
- }
- void AppRestoreInfo::OnParentWindowToValidContainer(aura::Window* window) {
- for (auto& observer : observers_)
- observer.OnParentWindowToValidContainer(window);
- }
- } // namespace app_restore
|