Cherry-pick DeviceMotionService CL from master [do not merge]
In DeviceMotionService, handle the fact that we may receive updates from SensorManager after unregistering.
cherry-pick of Change: d09001fea4
Bug: 5110230
Change-Id: Id1d1f51b445ce4a14bfcdfad8f173922e01b6563
This commit is contained in:
@@ -99,6 +99,7 @@ final class DeviceMotionService implements SensorEventListener {
|
||||
mUpdateRunnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
assert mIsRunning;
|
||||
mManager.onMotionChange(new Double(mLastAcceleration[0]),
|
||||
new Double(mLastAcceleration[1]), new Double(mLastAcceleration[2]),
|
||||
INTERVAL_MILLIS);
|
||||
@@ -157,6 +158,11 @@ final class DeviceMotionService implements SensorEventListener {
|
||||
assert WebViewCore.THREAD_NAME.equals(Thread.currentThread().getName());
|
||||
assert(event.sensor.getType() == Sensor.TYPE_ACCELEROMETER);
|
||||
|
||||
// We may get callbacks after the call to getSensorManager().unregisterListener() returns.
|
||||
if (!mIsRunning) {
|
||||
return;
|
||||
}
|
||||
|
||||
boolean firstData = mLastAcceleration == null;
|
||||
mLastAcceleration = event.values;
|
||||
if (firstData) {
|
||||
|
||||
@@ -188,6 +188,7 @@ final class DeviceOrientationService implements SensorEventListener {
|
||||
assert(event.values.length == 3);
|
||||
assert WebViewCore.THREAD_NAME.equals(Thread.currentThread().getName());
|
||||
|
||||
// We may get callbacks after the call to getSensorManager().unregisterListener() returns.
|
||||
if (!mIsRunning) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user