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

Side by Side Diff: chrome/browser/android/vr_shell/ui_elements/transience_manager.cc

Issue 2955023002: VR: Factor transient timing out of UiSceneManager. (Closed)
Patch Set: Rebase again onto ExclusivePresentationToast class/file rename. Created 3 years, 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/android/vr_shell/ui_elements/transience_manager.h"
6
7 namespace vr_shell {
8
9 TransienceManager::TransienceManager(UiElement* element,
10 const base::TimeDelta& timeout)
11 : element_(element), timeout_(timeout) {
12 element_->set_visible(false);
13 }
14
15 void TransienceManager::SetEnabled(bool enabled) {
16 if (enabled_ == enabled)
17 return;
18 enabled_ = enabled;
19 if (enabled) {
20 element_->set_visible(true);
21 StartTimer();
22 } else {
23 element_->set_visible(false);
24 visibility_timer_.Stop();
25 }
26 }
27
28 void TransienceManager::KickVisibilityIfEnabled() {
29 if (enabled_) {
30 element_->set_visible(true);
31 StartTimer();
32 }
33 }
34
35 void TransienceManager::EndVisibilityIfEnabled() {
36 if (enabled_) {
37 element_->set_visible(false);
38 visibility_timer_.Stop();
39 }
40 }
41
42 void TransienceManager::StartTimer() {
43 visibility_timer_.Start(
44 FROM_HERE, timeout_,
45 base::Bind(&TransienceManager::OnTimeout, base::Unretained(this)));
46 }
47
48 void TransienceManager::OnTimeout() {
49 element_->set_visible(false);
50 }
51
52 } // namespace vr_shell
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698