Index: chrome/browser/chromeos/login/screens/update_screen.cc |
diff --git a/chrome/browser/chromeos/login/screens/update_screen.cc b/chrome/browser/chromeos/login/screens/update_screen.cc |
index 40c0cc534286c7729fca064708a2290e815518ce..0a119b5ad6b351ea8d144f1d78ab1bc0001b998f 100644 |
--- a/chrome/browser/chromeos/login/screens/update_screen.cc |
+++ b/chrome/browser/chromeos/login/screens/update_screen.cc |
@@ -22,6 +22,7 @@ |
#include "content/public/browser/browser_thread.h" |
using content::BrowserThread; |
+using pairing_chromeos::HostPairingController; |
namespace chromeos { |
@@ -93,7 +94,8 @@ UpdateScreen* UpdateScreen::Get(ScreenManager* manager) { |
UpdateScreen::UpdateScreen( |
ScreenObserver* screen_observer, |
- UpdateScreenActor* actor) |
+ UpdateScreenActor* actor, |
+ HostPairingController* remora_controller) |
: WizardScreen(screen_observer), |
state_(STATE_IDLE), |
reboot_check_delay_(0), |
@@ -103,6 +105,7 @@ UpdateScreen::UpdateScreen( |
is_shown_(false), |
ignore_idle_status_(true), |
actor_(actor), |
+ remora_controller_(remora_controller), |
is_first_detection_notification_(true), |
is_first_portal_notification_(true), |
weak_factory_(this) { |
@@ -138,6 +141,8 @@ void UpdateScreen::UpdateStatusChanged( |
case UpdateEngineClient::UPDATE_STATUS_CHECKING_FOR_UPDATE: |
// Do nothing in these cases, we don't want to notify the user of the |
// check unless there is an update. |
+ SetHostPairingControllerStatus( |
+ HostPairingController::UPDATE_STATUS_UPDATING); |
break; |
case UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE: |
MakeSureScreenIsShown(); |
@@ -200,6 +205,8 @@ void UpdateScreen::UpdateStatusChanged( |
if (HasCriticalUpdate()) { |
actor_->ShowCurtain(false); |
VLOG(1) << "Initiate reboot after update"; |
+ SetHostPairingControllerStatus( |
+ HostPairingController::UPDATE_STATUS_REBOOTING); |
DBusThreadManager::Get()->GetUpdateEngineClient()->RebootAfterUpdate(); |
reboot_timer_.Start(FROM_HERE, |
base::TimeDelta::FromSeconds(reboot_check_delay_), |
@@ -321,6 +328,8 @@ void UpdateScreen::PrepareToShow() { |
void UpdateScreen::ExitUpdate(UpdateScreen::ExitReason reason) { |
DBusThreadManager::Get()->GetUpdateEngineClient()->RemoveObserver(this); |
NetworkPortalDetector::Get()->RemoveObserver(this); |
+ SetHostPairingControllerStatus(HostPairingController::UPDATE_STATUS_UPDATED); |
+ |
switch (reason) { |
case REASON_UPDATE_CANCELED: |
@@ -526,4 +535,11 @@ void UpdateScreen::UpdateErrorMessage( |
} |
} |
+void UpdateScreen::SetHostPairingControllerStatus( |
+ HostPairingController::UpdateStatus update_status) { |
+ if (remora_controller_) { |
+ remora_controller_->OnUpdateStatusChanged(update_status); |
+ } |
+} |
+ |
} // namespace chromeos |