blob: 866d623d5d81b6640bd63bbb706c4f886b57d669 [file] [log] [blame]
// Copyright 2015 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 "content/browser/bluetooth/first_device_bluetooth_chooser.h"
#include "base/logging.h"
namespace content {
FirstDeviceBluetoothChooser::FirstDeviceBluetoothChooser(
const EventHandler& event_handler)
: event_handler_(event_handler) {}
FirstDeviceBluetoothChooser::~FirstDeviceBluetoothChooser() {}
void FirstDeviceBluetoothChooser::SetAdapterPresence(AdapterPresence presence) {
switch (presence) {
case AdapterPresence::ABSENT:
case AdapterPresence::POWERED_OFF:
// Without a user-visible dialog, if the adapter is off, there's no way to
// ask the user to turn it on again, so we should cancel.
event_handler_.Run(Event::CANCELLED, "");
break;
case AdapterPresence::POWERED_ON:
break;
}
}
void FirstDeviceBluetoothChooser::ShowDiscoveryState(DiscoveryState state) {
switch (state) {
case DiscoveryState::FAILED_TO_START:
case DiscoveryState::IDLE:
// Without a user-visible dialog, if discovery finishes without finding a
// device, we'll never find one, so we should cancel.
VLOG(1) << "FirstDeviceBluetoothChooser found nothing before going idle.";
event_handler_.Run(Event::CANCELLED, "");
break;
case DiscoveryState::DISCOVERING:
break;
}
}
void FirstDeviceBluetoothChooser::AddDevice(const std::string& deviceId,
const base::string16& deviceName) {
event_handler_.Run(Event::SELECTED, deviceId);
}
} // namespace content