Index: device/vr/android/gvr/gvr_device.cc |
diff --git a/device/vr/android/gvr/gvr_device.cc b/device/vr/android/gvr/gvr_device.cc |
index 2de6b12f0c8de234f8cee89354b35d8e0b0028d3..2357e785da9b9dd90670c6d582cf12bf669ee210 100644 |
--- a/device/vr/android/gvr/gvr_device.cc |
+++ b/device/vr/android/gvr/gvr_device.cc |
@@ -23,7 +23,9 @@ static const uint64_t kPredictionTimeWithoutVsyncNanos = 50000000; |
} // namespace |
GvrDevice::GvrDevice(VRDeviceProvider* provider, gvr::GvrApi* gvr_api) |
- : VRDevice(provider), gvr_api_(gvr_api) {} |
+ : VRDevice(provider), gvr_api_(gvr_api) { |
+ isConnected = false; |
+} |
GvrDevice::~GvrDevice() {} |
@@ -133,4 +135,22 @@ void GvrDevice::ResetPose() { |
gvr_api_->ResetTracking(); |
} |
+// There are two conditions which hint that connection status has been changed. |
+// First, if the GvrApi pointer is valid and nativeContext could be acquired, |
+// the |
mthiesse
2016/09/06 23:39:24
nit: fix comment formatting.
|
+// connection may be built. |
+// Second, if the GvrApi pointer is invalid or nativeContext couldn't be |
+// acquired, the |
+// connection may be lost. |
+void GvrDevice::PollEvents() { |
bajones
2016/09/06 23:57:26
Sorry, I'm also realizing that this is a signal th
shaobo.yan
2016/09/07 00:49:19
Hi, brandon, thx for reviewing! I agree that OnGvr
|
+ if (!client()) |
+ return; |
+ |
+ if ((!isConnected && gvr_api_ && gvr_api_->GetContext()) || |
+ (isConnected && (!gvr_api_ || (gvr_api_ && !gvr_api_->GetContext())))) { |
+ isConnected = !isConnected; |
+ client()->OnDeviceConnectionStatusChanged(this, isConnected); |
+ } |
+} |
+ |
} // namespace device |