blob: 54860d6f3b7588b2324d7109de1a52643d9a52af [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/check_op.h"
#include "base/notreached.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);
}
std::pair<base::string16, base::string16>
FakeBluetoothChooserController::GetThrobberLabelAndTooltip() const {
return {
l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING_LABEL),
l10n_util::GetStringUTF16(
IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING_LABEL_TOOLTIP)};
}
bool FakeBluetoothChooserController::TableViewAlwaysDisabled() const {
return table_view_always_disabled_;
}
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;
}
void FakeBluetoothChooserController::SetBluetoothStatus(
BluetoothStatus status) {
const bool available = status != BluetoothStatus::UNAVAILABLE;
view()->OnAdapterEnabledChanged(available);
if (available)
view()->OnRefreshStateChanged(status == BluetoothStatus::SCANNING);
}
void FakeBluetoothChooserController::SetBluetoothPermission(
bool has_permission) {
view()->OnAdapterAuthorizationChanged(has_permission);
}
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);
}