| // Copyright 2018 The Fuchsia 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 "src/modular/lib/testing/session_shell_impl.h" | |
| #include <lib/async/cpp/task.h> | |
| #include <lib/async/default.h> | |
| namespace modular_testing { | |
| SessionShellImpl::SessionShellImpl() = default; | |
| SessionShellImpl::~SessionShellImpl() = default; | |
| fidl::InterfaceRequestHandler<fuchsia::modular::SessionShell> SessionShellImpl::GetHandler() { | |
| return bindings_.GetHandler(this); | |
| } | |
| // |SessionShell| | |
| void SessionShellImpl::AttachView(fuchsia::modular::ViewIdentifier view_id, | |
| fuchsia::ui::views::ViewHolderToken /*view_holder_token*/) { | |
| on_attach_view_(std::move(view_id)); | |
| } | |
| // |SessionShell| | |
| void SessionShellImpl::AttachView2(fuchsia::modular::ViewIdentifier view_id, | |
| fuchsia::ui::views::ViewHolderToken view_holder_token) { | |
| AttachView(std::move(view_id), std::move(view_holder_token)); | |
| } | |
| // |SessionShell| | |
| void SessionShellImpl::DetachView(fuchsia::modular::ViewIdentifier view_id, | |
| fit::function<void()> done) { | |
| on_detach_view_(std::move(view_id)); | |
| // Used to simulate a sluggish shell that hits the timeout. | |
| async::PostDelayedTask(async_get_default_dispatcher(), std::move(done), detach_delay_); | |
| } | |
| } // namespace modular_testing |