11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved.
21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be
31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file.
41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/pairing/shark_connection_listener.h"
61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/logging.h"
81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/threading/thread_restrictions.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/pairing/bluetooth_host_pairing_controller.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace pairing_chromeos {
121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciSharkConnectionListener::SharkConnectionListener(OnConnectedCallback callback)
141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    : callback_(callback) {
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  controller_.reset(new BluetoothHostPairingController());
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  controller_->AddObserver(this);
171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  controller_->StartPairing();
181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciSharkConnectionListener::~SharkConnectionListener() {
211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  if (controller_)
221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    controller_->RemoveObserver(this);
231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid SharkConnectionListener::PairingStageChanged(Stage new_stage) {
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  if (new_stage == HostPairingController::STAGE_WAITING_FOR_CODE_CONFIRMATION) {
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    controller_->RemoveObserver(this);
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    callback_.Run(controller_.Pass());
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    callback_.Reset();
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  }
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid SharkConnectionListener::ConfigureHost(
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    bool accepted_eula,
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const std::string& lang,
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const std::string& timezone,
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    bool send_reports,
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const std::string& keyboard_layout) {
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  NOTREACHED();
401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid SharkConnectionListener::EnrollHost(const std::string& auth_token) {
431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  NOTREACHED();
441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}
451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}  // namespace pairing_chromeos
47