Commit 79673301 authored by juncai's avatar juncai Committed by Commit bot

Change ChooserController::Observer to ChooserController::View

Based on the comment from:
https://codereview.chromium.org/2155743002/

This CL changes ChooserController::Observer to ChooserController::View
to better reflect its purpose, since ChooserController needs to update
its view when necessary.

BUG=629878

Review-Url: https://codereview.chromium.org/2163683005
Cr-Commit-Position: refs/heads/master@{#406696}
parent e7c28a23
......@@ -27,8 +27,8 @@ class ChooserController {
virtual ~ChooserController();
// Since the set of options can change while the UI is visible an
// implementation should register an observer.
class Observer {
// implementation should register a view to observe changes.
class View {
public:
// Called after the options list is initialized for the first time.
// OnOptionsInitialized should only be called once.
......@@ -53,7 +53,7 @@ class ChooserController {
virtual void OnRefreshStateChanged(bool refreshing) = 0;
protected:
virtual ~Observer() {}
virtual ~View() {}
};
// Returns the text to be displayed in the chooser title.
......@@ -94,15 +94,15 @@ class ChooserController {
// Open help center URL.
virtual void OpenHelpCenterUrl() const = 0;
// Only one observer may be registered at a time.
void set_observer(Observer* observer) { observer_ = observer; }
Observer* observer() const { return observer_; }
// Only one view may be registered at a time.
void set_view(View* view) { view_ = view; }
View* view() const { return view_; }
private:
content::RenderFrameHost* const owning_frame_;
const int title_string_id_origin_;
const int title_string_id_extension_;
Observer* observer_ = nullptr;
View* view_ = nullptr;
DISALLOW_COPY_AND_ASSIGN(ChooserController);
};
......
......@@ -38,8 +38,8 @@ base::string16 MockChooserController::GetStatus() const {
void MockChooserController::OptionAdded(const base::string16 option_name) {
option_names_.push_back(option_name);
if (observer())
observer()->OnOptionAdded(option_names_.size() - 1);
if (view())
view()->OnOptionAdded(option_names_.size() - 1);
}
void MockChooserController::OptionRemoved(const base::string16 option_name) {
......@@ -47,8 +47,8 @@ void MockChooserController::OptionRemoved(const base::string16 option_name) {
if (*it == option_name) {
size_t index = it - option_names_.begin();
option_names_.erase(it);
if (observer())
observer()->OnOptionRemoved(index);
if (view())
view()->OnOptionRemoved(index);
return;
}
}
......
......@@ -107,18 +107,20 @@ void BluetoothChooserController::OnAdapterPresenceChanged(
no_devices_text_ =
l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_ADAPTER_OFF);
status_text_ = base::string16();
if (observer())
observer()->OnAdapterEnabledChanged(
if (view()) {
view()->OnAdapterEnabledChanged(
false /* Bluetooth adapter is turned off */);
}
break;
case content::BluetoothChooser::AdapterPresence::POWERED_ON:
no_devices_text_ =
l10n_util::GetStringUTF16(IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT);
status_text_ =
l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN);
if (observer())
observer()->OnAdapterEnabledChanged(
if (view()) {
view()->OnAdapterEnabledChanged(
true /* Bluetooth adapter is turned on */);
}
break;
}
}
......@@ -129,17 +131,19 @@ void BluetoothChooserController::OnDiscoveryStateChanged(
case content::BluetoothChooser::DiscoveryState::DISCOVERING:
status_text_ =
l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING);
if (observer())
observer()->OnRefreshStateChanged(
if (view()) {
view()->OnRefreshStateChanged(
true /* Refreshing options is in progress */);
}
break;
case content::BluetoothChooser::DiscoveryState::IDLE:
case content::BluetoothChooser::DiscoveryState::FAILED_TO_START:
status_text_ =
l10n_util::GetStringUTF16(IDS_BLUETOOTH_DEVICE_CHOOSER_RE_SCAN);
if (observer())
observer()->OnRefreshStateChanged(
if (view()) {
view()->OnRefreshStateChanged(
false /* Refreshing options is complete */);
}
break;
}
}
......@@ -148,8 +152,8 @@ void BluetoothChooserController::AddDevice(const std::string& device_id,
const base::string16& device_name) {
device_names_and_ids_.push_back(std::make_pair(device_name, device_id));
++device_name_map_[device_name];
if (observer())
observer()->OnOptionAdded(device_names_and_ids_.size() - 1);
if (view())
view()->OnOptionAdded(device_names_and_ids_.size() - 1);
}
void BluetoothChooserController::RemoveDevice(const std::string& device_id) {
......@@ -161,8 +165,8 @@ void BluetoothChooserController::RemoveDevice(const std::string& device_id) {
if (--device_name_map_[it->first] == 0)
device_name_map_.erase(it->first);
device_names_and_ids_.erase(it);
if (observer())
observer()->OnOptionRemoved(index);
if (view())
view()->OnOptionRemoved(index);
return;
}
}
......
......@@ -40,13 +40,13 @@ const CGFloat kSeparatorHeight = 1.0f;
} // namespace
class TableViewController : public ChooserController::Observer {
class TableViewController : public ChooserController::View {
public:
TableViewController(ChooserController* chooser_controller,
NSTableView* table_view);
~TableViewController() override;
// ChooserController::Observer:
// ChooserController::View:
void OnOptionsInitialized() override;
void OnOptionAdded(size_t index) override;
void OnOptionRemoved(size_t index) override;
......@@ -67,11 +67,11 @@ TableViewController::TableViewController(ChooserController* chooser_controller,
: chooser_controller_(chooser_controller), table_view_(table_view) {
DCHECK(chooser_controller_);
DCHECK(table_view_);
chooser_controller_->set_observer(this);
chooser_controller_->set_view(this);
}
TableViewController::~TableViewController() {
chooser_controller_->set_observer(nullptr);
chooser_controller_->set_view(nullptr);
}
void TableViewController::OnOptionsInitialized() {
......
......@@ -26,7 +26,7 @@ ChooserContentView::ChooserContentView(
views::TableViewObserver* table_view_observer,
std::unique_ptr<ChooserController> chooser_controller)
: chooser_controller_(std::move(chooser_controller)) {
chooser_controller_->set_observer(this);
chooser_controller_->set_view(this);
std::vector<ui::TableColumn> table_columns;
table_columns.push_back(ui::TableColumn());
table_view_ =
......@@ -49,7 +49,7 @@ ChooserContentView::ChooserContentView(
}
ChooserContentView::~ChooserContentView() {
chooser_controller_->set_observer(nullptr);
chooser_controller_->set_view(nullptr);
table_view_->SetObserver(nullptr);
table_view_->SetModel(nullptr);
if (discovery_state_)
......
......@@ -27,7 +27,7 @@ class Throbber;
// Used for WebUSB/WebBluetooth device selection for Chrome and extensions.
class ChooserContentView : public views::View,
public ui::TableModel,
public ChooserController::Observer,
public ChooserController::View,
public views::LinkListener,
public views::StyledLabelListener {
public:
......@@ -43,7 +43,7 @@ class ChooserContentView : public views::View,
base::string16 GetText(int row, int column_id) override;
void SetObserver(ui::TableModelObserver* observer) override;
// ChooserController::Observer:
// ChooserController::View:
void OnOptionsInitialized() override;
void OnOptionAdded(size_t index) override;
void OnOptionRemoved(size_t index) override;
......
......@@ -149,8 +149,8 @@ void UsbChooserController::OnDeviceAdded(
const base::string16& device_name = device->product_string();
devices_.push_back(std::make_pair(device, device_name));
++device_name_map_[device_name];
if (observer())
observer()->OnOptionAdded(devices_.size() - 1);
if (view())
view()->OnOptionAdded(devices_.size() - 1);
}
}
......@@ -163,8 +163,8 @@ void UsbChooserController::OnDeviceRemoved(
if (--device_name_map_[it->second] == 0)
device_name_map_.erase(it->second);
devices_.erase(it);
if (observer())
observer()->OnOptionRemoved(index);
if (view())
view()->OnOptionRemoved(index);
return;
}
}
......@@ -181,8 +181,8 @@ void UsbChooserController::GotUsbDeviceList(
++device_name_map_[device_name];
}
}
if (observer())
observer()->OnOptionsInitialized();
if (view())
view()->OnOptionsInitialized();
}
bool UsbChooserController::DisplayDevice(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment