blob: fd48642b97a03afc9647b9aa2a7c8dab056cef11 [file] [log] [blame] [edit]
// Copyright 2015 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 "garnet/bin/ui/ime/app.h"
#include <algorithm>
#include <fuchsia/ui/input/cpp/fidl.h>
#include "garnet/bin/ui/ime/ime_impl.h"
#include "lib/app/cpp/connect.h"
#include "lib/fxl/logging.h"
#include "lib/ui/input/cpp/formatting.h"
namespace ime {
App::App(const fxl::CommandLine& command_line)
: application_context_(
component::ApplicationContext::CreateFromStartupInfo()) {
FXL_DCHECK(application_context_);
application_context_->outgoing().AddPublicService<fuchsia::ui::input::ImeService>(
[this](fidl::InterfaceRequest<fuchsia::ui::input::ImeService> request) {
ime_bindings_.AddBinding(this, std::move(request));
});
}
App::~App() {}
void App::GetInputMethodEditor(
fuchsia::ui::input::KeyboardType keyboard_type, fuchsia::ui::input::InputMethodAction action,
fuchsia::ui::input::TextInputState initial_state,
fidl::InterfaceHandle<fuchsia::ui::input::InputMethodEditorClient> client,
fidl::InterfaceRequest<fuchsia::ui::input::InputMethodEditor> editor_request) {
FXL_DCHECK(client);
FXL_DCHECK(editor_request.is_valid());
FXL_VLOG(1)
<< "GetInputMethodEditor: "
<< ", keyboard_type="
<< static_cast<std::underlying_type<fuchsia::ui::input::KeyboardType>::type>(
keyboard_type)
<< ", action="
<< static_cast<std::underlying_type<fuchsia::ui::input::InputMethodAction>::type>(
action)
<< ", initial_state=" << &initial_state;
std::unique_ptr<ImeImpl> ime_impl =
std::make_unique<ImeImpl>(keyboard_type, action, std::move(initial_state),
std::move(client), std::move(editor_request));
// FIXME(jpoichet) we're leaking
ime_.emplace(ime_.end(), std::move(ime_impl));
}
void App::OnImeDisconnected(ImeImpl* ime) {}
} // namespace ime