| Index: components/proximity_auth/proximity_monitor_impl.cc
|
| diff --git a/components/proximity_auth/proximity_monitor_impl.cc b/components/proximity_auth/proximity_monitor_impl.cc
|
| index 432485c906599b3230477873863d3a755ebb8f89..702ea77e2b62b84ee57f31146a462d2e124a234d 100644
|
| --- a/components/proximity_auth/proximity_monitor_impl.cc
|
| +++ b/components/proximity_auth/proximity_monitor_impl.cc
|
| @@ -32,10 +32,8 @@ const int kRssiThreshold = -5;
|
| const double kRssiSampleWeight = 0.3;
|
|
|
| ProximityMonitorImpl::ProximityMonitorImpl(const RemoteDevice& remote_device,
|
| - scoped_ptr<base::TickClock> clock,
|
| - ProximityMonitorObserver* observer)
|
| + scoped_ptr<base::TickClock> clock)
|
| : remote_device_(remote_device),
|
| - observer_(observer),
|
| strategy_(Strategy::NONE),
|
| remote_device_is_in_proximity_(false),
|
| is_active_(false),
|
| @@ -112,6 +110,14 @@ void ProximityMonitorImpl::RecordProximityMetricsOnAuthSuccess() {
|
| metrics::RecordAuthProximityRemoteDeviceModelHash(remote_device_model);
|
| }
|
|
|
| +void ProximityMonitorImpl::AddObserver(ProximityMonitorObserver* observer) {
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void ProximityMonitorImpl::RemoveObserver(ProximityMonitorObserver* observer) {
|
| + observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| void ProximityMonitorImpl::SetStrategy(Strategy strategy) {
|
| if (strategy_ == strategy)
|
| return;
|
| @@ -212,8 +218,10 @@ void ProximityMonitorImpl::OnConnectionInfo(
|
| }
|
|
|
| void ProximityMonitorImpl::ClearProximityState() {
|
| - if (is_active_ && remote_device_is_in_proximity_)
|
| - observer_->OnProximityStateChanged();
|
| + if (is_active_ && remote_device_is_in_proximity_) {
|
| + FOR_EACH_OBSERVER(ProximityMonitorObserver, observers_,
|
| + OnProximityStateChanged());
|
| + }
|
|
|
| remote_device_is_in_proximity_ = false;
|
| rssi_rolling_average_.reset();
|
| @@ -263,7 +271,8 @@ void ProximityMonitorImpl::CheckForProximityStateChange() {
|
| PA_LOG(INFO) << "[Proximity] Updated proximity state: "
|
| << (is_now_in_proximity ? "proximate" : "distant");
|
| remote_device_is_in_proximity_ = is_now_in_proximity;
|
| - observer_->OnProximityStateChanged();
|
| + FOR_EACH_OBSERVER(ProximityMonitorObserver, observers_,
|
| + OnProximityStateChanged());
|
| }
|
| }
|
|
|
|
|