Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Unified Diff: components/proximity_auth/proximity_auth_system.h

Issue 1372283002: Hook up ProximityAuthSystem in EasyUnlockService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bluetooth_connection
Patch Set: remove log Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};
« no previous file with comments | « components/proximity_auth/messenger_impl_unittest.cc ('k') | components/proximity_auth/proximity_auth_system.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698