| Index: device/vr/vr_device_manager.cc
|
| diff --git a/device/vr/vr_device_manager.cc b/device/vr/vr_device_manager.cc
|
| index 249b3c9259ccfa8208f218a67c8a590e83bc5273..994f202f2f05262f0300b981443eb032f1edf6a1 100644
|
| --- a/device/vr/vr_device_manager.cc
|
| +++ b/device/vr/vr_device_manager.cc
|
| @@ -95,7 +95,7 @@ void VRDeviceManager::AddService(VRServiceImpl* service) {
|
| void VRDeviceManager::RemoveService(VRServiceImpl* service) {
|
|
|
| if (service->listening_for_activate()) {
|
| - ListeningForActivateChanged(false);
|
| + ListeningForActivateChanged(false, service);
|
| }
|
|
|
| services_.erase(service);
|
| @@ -112,9 +112,14 @@ unsigned int VRDeviceManager::GetNumberOfConnectedDevices() {
|
| return static_cast<unsigned int>(devices_.size());
|
| }
|
|
|
| -void VRDeviceManager::ListeningForActivateChanged(bool listening) {
|
| +void VRDeviceManager::ListeningForActivateChanged(bool listening,
|
| + VRServiceImpl* service) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
| + if (listening) {
|
| + most_recently_listening_for_activate_ = service;
|
| + }
|
| +
|
| bool activate_listeners = listening;
|
| if (!activate_listeners) {
|
| for (auto* service : services_) {
|
| @@ -133,6 +138,13 @@ void VRDeviceManager::ListeningForActivateChanged(bool listening) {
|
| }
|
| }
|
|
|
| +bool VRDeviceManager::IsMostRecentlyListeningForActivate(
|
| + VRServiceImpl* service) {
|
| + if (!service)
|
| + return false;
|
| + return service == most_recently_listening_for_activate_;
|
| +}
|
| +
|
| VRDevice* VRDeviceManager::GetDevice(unsigned int index) {
|
| DCHECK(thread_checker_.CalledOnValidThread());
|
|
|
|
|