Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: ash/common/system/toast/toast_manager.cc

Issue 2732813002: chromeos: Move files in //ash/common to //ash, part 1 (Closed)
Patch Set: rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/system/toast/toast_manager.h ('k') | ash/common/system/toast/toast_overlay.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/system/toast/toast_manager.cc
diff --git a/ash/common/system/toast/toast_manager.cc b/ash/common/system/toast/toast_manager.cc
deleted file mode 100644
index 37a9ea238f3ca54a38e3b07ed2f5642537e002fb..0000000000000000000000000000000000000000
--- a/ash/common/system/toast/toast_manager.cc
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright 2016 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 "ash/common/system/toast/toast_manager.h"
-
-#include <algorithm>
-
-#include "base/bind.h"
-#include "base/location.h"
-#include "base/threading/thread_task_runner_handle.h"
-
-namespace ash {
-
-namespace {
-
-// Minimum duration for a toast to be visible (in millisecond).
-const int32_t kMinimumDurationMs = 200;
-
-} // anonymous namespace
-
-ToastManager::ToastManager() : weak_ptr_factory_(this) {}
-
-ToastManager::~ToastManager() {}
-
-void ToastManager::Show(const ToastData& data) {
- const std::string& id = data.id;
- DCHECK(!id.empty());
-
- if (current_toast_id_ == id) {
- // TODO(yoshiki): Replaces the visible toast.
- return;
- }
-
- auto existing_toast =
- std::find_if(queue_.begin(), queue_.end(),
- [&id](const ToastData& data) { return data.id == id; });
-
- if (existing_toast == queue_.end()) {
- queue_.emplace_back(data);
- } else {
- *existing_toast = data;
- }
-
- if (queue_.size() == 1 && overlay_ == nullptr)
- ShowLatest();
-}
-
-void ToastManager::Cancel(const std::string& id) {
- if (id == current_toast_id_) {
- overlay_->Show(false);
- return;
- }
-
- auto cancelled_toast =
- std::find_if(queue_.begin(), queue_.end(),
- [&id](const ToastData& data) { return data.id == id; });
- if (cancelled_toast != queue_.end())
- queue_.erase(cancelled_toast);
-}
-
-void ToastManager::OnClosed() {
- overlay_.reset();
- current_toast_id_.clear();
-
- // Show the next toast if available.
- if (!queue_.empty())
- ShowLatest();
-}
-
-void ToastManager::ShowLatest() {
- DCHECK(!overlay_);
-
- const ToastData data = std::move(queue_.front());
- queue_.pop_front();
-
- current_toast_id_ = data.id;
- serial_++;
-
- overlay_.reset(new ToastOverlay(this, data.text, data.dismiss_text));
- overlay_->Show(true);
-
- if (data.duration_ms != ToastData::kInfiniteDuration) {
- int32_t duration_ms = std::max(data.duration_ms, kMinimumDurationMs);
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
- FROM_HERE, base::Bind(&ToastManager::OnDurationPassed,
- weak_ptr_factory_.GetWeakPtr(), serial_),
- base::TimeDelta::FromMilliseconds(duration_ms));
- }
-}
-
-void ToastManager::OnDurationPassed(int toast_number) {
- if (overlay_ && serial_ == toast_number)
- overlay_->Show(false);
-}
-
-} // namespace ash
« no previous file with comments | « ash/common/system/toast/toast_manager.h ('k') | ash/common/system/toast/toast_overlay.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698