From d49b1ee0de1eeb2f7370bf2839e7c707fe008b37 Mon Sep 17 00:00:00 2001 From: Ivan Podogov Date: Fri, 27 May 2016 13:47:20 +0100 Subject: [PATCH] Set the sensor batch size for accelerometer listener. For the Wear devices it is important to set the batch size here, because otherwise all sensor-related services (like gesture detection or gaze/ungaze detection start to consume ~10x CPU time). Bug: 28995481 Change-Id: I30f9e5f7ea5aee8fdd80734588386e64b874e1dc --- .../android/server/policy/WindowOrientationListener.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/policy/WindowOrientationListener.java b/services/core/java/com/android/server/policy/WindowOrientationListener.java index a32c017c42975..8ef0acbd38080 100644 --- a/services/core/java/com/android/server/policy/WindowOrientationListener.java +++ b/services/core/java/com/android/server/policy/WindowOrientationListener.java @@ -49,6 +49,7 @@ public abstract class WindowOrientationListener { "debug.orientation.log", false); private static final boolean USE_GRAVITY_SENSOR = false; + private static final int DEFAULT_BATCH_LATENCY = 100000; private Handler mHandler; private SensorManager mSensorManager; @@ -118,7 +119,12 @@ public abstract class WindowOrientationListener { Slog.d(TAG, "WindowOrientationListener enabled"); } mOrientationJudge.resetLocked(); - mSensorManager.registerListener(mOrientationJudge, mSensor, mRate, mHandler); + if (mSensor.getType() == Sensor.TYPE_ACCELEROMETER) { + mSensorManager.registerListener( + mOrientationJudge, mSensor, mRate, DEFAULT_BATCH_LATENCY, mHandler); + } else { + mSensorManager.registerListener(mOrientationJudge, mSensor, mRate, mHandler); + } mEnabled = true; } }