blob: 66487fc64067d4dc99d487fcc3055abe99f0582c [file] [log] [blame]
// Copyright 2017 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 "chrome/browser/chooser_controller/fake_bluetooth_chooser_controller.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
FakeBluetoothChooserController::FakeBluetoothChooserController(
std::vector<FakeDevice> devices)
: ChooserController(nullptr, 0, 0), devices_(std::move(devices)) {
set_title_for_testing(
l10n_util::GetStringFUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_PROMPT_ORIGIN,
base::ASCIIToUTF16("example.com")));
}
FakeBluetoothChooserController::~FakeBluetoothChooserController() {}
bool FakeBluetoothChooserController::ShouldShowIconBeforeText() const {
return true;
}
bool FakeBluetoothChooserController::ShouldShowReScanButton() const {
return true;
}
base::string16 FakeBluetoothChooserController::GetNoOptionsText() const {
return l10n_util::GetStringUTF16(
IDS_BLUETOOTH_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT);
}
base::string16 FakeBluetoothChooserController::GetOkButtonLabel() const {
return l10n_util::GetStringUTF16(
IDS_BLUETOOTH_DEVICE_CHOOSER_PAIR_BUTTON_TEXT);
}
size_t FakeBluetoothChooserController::NumOptions() const {
return devices_.size();
}
int FakeBluetoothChooserController::GetSignalStrengthLevel(size_t index) const {
return devices_.at(index).signal_strength;
}
base::string16 FakeBluetoothChooserController::GetOption(size_t index) const {
return base::ASCIIToUTF16(devices_.at(index).name);
}
bool FakeBluetoothChooserController::IsConnected(size_t index) const {
return devices_.at(index).connected;
}
bool FakeBluetoothChooserController::IsPaired(size_t index) const {
return devices_.at(index).paired;
}
base::string16 FakeBluetoothChooserController::GetStatus() const {
switch (status_) {
case BluetoothStatus::UNAVAILABLE:
return base::string16();
case BluetoothStatus::IDLE:
return l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN);
case BluetoothStatus::SCANNING:
return l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING);
}
NOTREACHED();
return base::string16();
}
void FakeBluetoothChooserController::SetBluetoothStatus(
BluetoothStatus status) {
status_ = status;
const bool available = status != BluetoothStatus::UNAVAILABLE;
view()->OnAdapterEnabledChanged(available);
if (available)
view()->OnRefreshStateChanged(status_ == BluetoothStatus::SCANNING);
}
void FakeBluetoothChooserController::AddDevice(FakeDevice device) {
devices_.push_back(device);
view()->OnOptionAdded(devices_.size() - 1);
}
void FakeBluetoothChooserController::RemoveDevice(size_t index) {
DCHECK_GT(devices_.size(), index);
devices_.erase(devices_.begin() + index);
view()->OnOptionRemoved(index);
}
void FakeBluetoothChooserController::UpdateDevice(size_t index,
FakeDevice new_device) {
DCHECK_GT(devices_.size(), index);
devices_[index] = new_device;
view()->OnOptionUpdated(index);
}