diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java index 58acbe08acf11e7871057dcfda572f347d815f9c..c0e33084f9c47a1fb522c9fc6f1a9cfa6efce9af 100755 --- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java +++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java @@ -1339,16 +1339,22 @@ class TvInputHardwareManager implements TvInputHal.Callback { String inputId = mHardwareInputIdMap.get(deviceId); if (inputId != null) { - if (connection.updateCableConnectionStatusLocked(cableConnectionStatus)) { - if (previousCableConnectionStatus != connection.getInputStateLocked()) { - mHandler.obtainMessage(ListenerHandler.STATE_CHANGED, - connection.getInputStateLocked(), 0, inputId).sendToTarget(); - } - } else { - if ((previousConfigsLength == 0) - != (connection.getConfigsLengthLocked() == 0)) { - mHandler.obtainMessage(ListenerHandler.STATE_CHANGED, - connection.getInputStateLocked(), 0, inputId).sendToTarget(); + synchronized (mLock) { + if (connection.updateCableConnectionStatusLocked( + cableConnectionStatus)) { + if (previousCableConnectionStatus + != connection.getInputStateLocked()) { + mHandler.obtainMessage(ListenerHandler.STATE_CHANGED, + connection.getInputStateLocked(), 0, inputId) + .sendToTarget(); + } + } else { + if ((previousConfigsLength == 0) + != (connection.getConfigsLengthLocked() == 0)) { + mHandler.obtainMessage(ListenerHandler.STATE_CHANGED, + connection.getInputStateLocked(), 0, inputId) + .sendToTarget(); + } } } }