| Index: chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
|
| diff --git a/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm b/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
|
| index 9986f0c47cfa1d215dad38e3bc1233bb1b158e0e..763f3614eab875325e14e3d89fe9427c351ad1dc 100644
|
| --- a/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
|
| +++ b/chrome/browser/ui/cocoa/chooser_content_view_cocoa.mm
|
| @@ -59,6 +59,7 @@ class ChooserContentViewController : public ChooserController::View {
|
| void OnOptionRemoved(size_t index) override;
|
| void OnAdapterEnabledChanged(bool enabled) override;
|
| void OnRefreshStateChanged(bool refreshing) override;
|
| + void OnOptionAvailableDuringRefresh() override;
|
|
|
| void UpdateTableView();
|
|
|
| @@ -137,16 +138,20 @@ void ChooserContentViewController::OnAdapterEnabledChanged(bool enabled) {
|
| }
|
|
|
| void ChooserContentViewController::OnRefreshStateChanged(bool refreshing) {
|
| - // No row is selected since the chooser is refreshing or just refreshed.
|
| - // This will also disable the OK button if it was enabled because
|
| - // of a previously selected row.
|
| - [table_view_ deselectAll:nil];
|
| - UpdateTableView();
|
| - // When refreshing, hide |table_view_|. When complete, show |table_view_|.
|
| - [table_view_ setHidden:refreshing ? YES : NO];
|
| + if (refreshing) {
|
| + // No row is selected since the chooser is refreshing.
|
| + // This will also disable the OK button if it was enabled because
|
| + // of a previously selected row.
|
| + [table_view_ deselectAll:nil];
|
| + UpdateTableView();
|
| + }
|
|
|
| - // When refreshing, show |spinner_|. When complete, hide |spinner_|.
|
| - [spinner_ setHidden:refreshing ? NO : YES];
|
| + // When refreshing and no option available yet, hide |table_view_| and show
|
| + // |spinner_|. Otherwise show |table_view_| and hide |spinner_|.
|
| + bool table_view_hidden =
|
| + refreshing && (chooser_controller_->NumOptions() == 0);
|
| + [table_view_ setHidden:table_view_hidden ? YES : NO];
|
| + [spinner_ setHidden:table_view_hidden ? NO : YES];
|
|
|
| // When refreshing, show |status_| and hide |rescan_button_|.
|
| // When complete, show |rescan_button_| and hide |status_|.
|
| @@ -154,6 +159,11 @@ void ChooserContentViewController::OnRefreshStateChanged(bool refreshing) {
|
| [rescan_button_ setHidden:refreshing ? YES : NO];
|
| }
|
|
|
| +void ChooserContentViewController::OnOptionAvailableDuringRefresh() {
|
| + [table_view_ setHidden:NO];
|
| + [spinner_ setHidden:YES];
|
| +}
|
| +
|
| void ChooserContentViewController::UpdateTableView() {
|
| [table_view_ setEnabled:chooser_controller_->NumOptions() > 0];
|
| [table_view_ reloadData];
|
|
|