Index: components/proximity_auth/proximity_auth_system.h |
diff --git a/components/proximity_auth/proximity_auth_system.h b/components/proximity_auth/proximity_auth_system.h |
index 644d65dfe129c10647037fcbc775d79efedce2ea..a8911b3f3079943992f88dca04bf7bb895c3f812 100644 |
--- a/components/proximity_auth/proximity_auth_system.h |
+++ b/components/proximity_auth/proximity_auth_system.h |
@@ -8,23 +8,74 @@ |
#include <vector> |
#include "base/macros.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "components/proximity_auth/remote_device.h" |
+#include "components/proximity_auth/remote_device_life_cycle.h" |
+#include "components/proximity_auth/screenlock_bridge.h" |
namespace proximity_auth { |
+class ProximityAuthClient; |
+class RemoteDeviceLifeCycle; |
+class UnlockManager; |
+ |
// This is the main entry point to start Proximity Auth, the underlying system |
-// for the Easy Unlock and Easy Sign-in features. Given a list of registered |
-// remote devices (i.e. phones), this object will handle the connection, |
-// authentication, and protocol for all the devices. |
-class ProximityAuthSystem { |
+// for the Smart Lock feature. Given a registered remote device (i.e. a phone), |
+// this object will handle the connection, authentication, and protocol for the |
+// device. |
+class ProximityAuthSystem : public RemoteDeviceLifeCycle::Observer, |
+ public ScreenlockBridge::Observer { |
public: |
- ProximityAuthSystem(const std::vector<RemoteDevice>& remote_devices); |
- virtual ~ProximityAuthSystem(); |
+ ProximityAuthSystem(RemoteDevice remote_device, |
+ ProximityAuthClient* proximity_auth_client); |
+ ~ProximityAuthSystem() override; |
+ |
+ // Starts the system to begin connecting and authenticating the remote device. |
+ void Start(); |
+ |
+ // Called when the user clicks the user pod and attempts to unlock/sign-in. |
+ void OnAuthAttempted(const std::string& user_id); |
- const std::vector<RemoteDevice>& GetRemoteDevices(); |
+ // Called when the system suspends. |
+ void OnSuspend(); |
+ |
+ // Called when the system wakes up from a suspended state. |
+ void OnSuspendDone(); |
private: |
- std::vector<RemoteDevice> remote_devices_; |
+ // RemoteDeviceLifeCycle::Observer: |
+ void OnLifeCycleStateChanged(RemoteDeviceLifeCycle::State old_state, |
+ RemoteDeviceLifeCycle::State new_state) override; |
+ |
+ // ScreenlockBridge::Observer: |
+ void OnScreenDidLock( |
+ ScreenlockBridge::LockHandler::ScreenType screen_type) override; |
+ void OnScreenDidUnlock( |
+ ScreenlockBridge::LockHandler::ScreenType screen_type) override; |
+ void OnFocusedUserChanged(const std::string& user_id) override; |
+ |
+ // Resumes |remote_device_life_cycle_| after device wakes up and waits a |
+ // timeout. |
+ void ResumeAfterWakeUpTimeout(); |
+ |
+ // The remote device to connect to. |
+ RemoteDevice remote_device_; |
+ |
+ // Delegate for Chrome dependent functionality. |
+ ProximityAuthClient* proximity_auth_client_; |
+ |
+ // Responsible for the life cycle of connecting and authenticating to |
+ // |remote_device_|. |
+ scoped_ptr<RemoteDeviceLifeCycle> remote_device_life_cycle_; |
+ |
+ // Handles the interaction with the lock screen UI. |
+ scoped_ptr<UnlockManager> unlock_manager_; |
+ |
+ // True if the system is suspended. |
+ bool suspended_; |
+ |
+ base::WeakPtrFactory<ProximityAuthSystem> weak_ptr_factory_; |
DISALLOW_COPY_AND_ASSIGN(ProximityAuthSystem); |
}; |