From 50bbb66d604feb8652c344ded22ac207a6c272d5 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Fri, 22 Apr 2016 15:43:21 -0700 Subject: [PATCH] Fix a regression in assist when context is disabled Fixes: 28293783 CTS: DisableContextTest#testContextAndScreenshotOff failure When assist context is disabled, make sure that the handleAssist() is still called with no data. Change-Id: I569dd9f6de503e62fb04c590214df0f2ce3aa4f3 --- .../VoiceInteractionSessionConnection.java | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java index 0922a12ee0b3e..27351e42d5c52 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java @@ -370,20 +370,28 @@ final class VoiceInteractionSessionConnection implements ServiceConnection { } if (mHaveAssistData) { AssistDataForActivity assistData; - while (!mAssistData.isEmpty()) { - if (mPendingAssistDataCount <= 0) { - Slog.e(TAG, "mPendingAssistDataCount is " + mPendingAssistDataCount); + if (mAssistData.isEmpty()) { + // We're not actually going to get any data, deliver some nothing + try { + mSession.handleAssist(null, null, null, 0, 0); + } catch (RemoteException e) { } - mPendingAssistDataCount--; - assistData = mAssistData.remove(0); - if (assistData.data == null) { - try { - mSession.handleAssist(null, null, null, assistData.activityIndex, - assistData.activityCount); - } catch (RemoteException e) { + } else { + while (!mAssistData.isEmpty()) { + if (mPendingAssistDataCount <= 0) { + Slog.e(TAG, "mPendingAssistDataCount is " + mPendingAssistDataCount); + } + mPendingAssistDataCount--; + assistData = mAssistData.remove(0); + if (assistData.data == null) { + try { + mSession.handleAssist(null, null, null, assistData.activityIndex, + assistData.activityCount); + } catch (RemoteException e) { + } + } else { + deliverSessionDataLocked(assistData); } - } else { - deliverSessionDataLocked(assistData); } } if (mPendingAssistDataCount <= 0) {