diff options
author | 2019-09-12 09:18:39 -0700 | |
---|---|---|
committer | 2019-09-12 09:18:39 -0700 | |
commit | 9621fa911d06163058dd942f15f3ecf9bfd88f96 (patch) | |
tree | 665c238f5f477a16dc2343352de669b2343e25a6 | |
parent | cf213992f8c2804c0e6736fb54f169190d321e04 (diff) | |
parent | 636ae6a3863003850b2860e0e4abbb0891160885 (diff) |
Merge "Resolver - Fix NGA (voice interaction) crash in resolver" into qt-qpr1-dev
am: 636ae6a386
Change-Id: Id349a7a0f82f5ed252a04e2e89d6e422f4e04de1
-rw-r--r-- | core/java/com/android/internal/app/ChooserActivity.java | 4 | ||||
-rw-r--r-- | core/java/com/android/internal/app/ResolverActivity.java | 22 | ||||
-rw-r--r-- | packages/SystemUI/AndroidManifest.xml | 4 |
3 files changed, 12 insertions, 18 deletions
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index de77aaae1653..38cb2cc1d553 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -1666,10 +1666,6 @@ public class ChooserActivity extends ResolverActivity { mServiceConnections.clear(); } - public void onSetupVoiceInteraction() { - // Do nothing. We'll send the voice stuff ourselves. - } - private void logDirectShareTargetReceived(int logCategory) { final long queryTime = logCategory == MetricsEvent.ACTION_DIRECT_SHARE_TARGETS_LOADED_SHORTCUT_MANAGER diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 58ce03baa136..407a85f1bb05 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -361,9 +361,6 @@ public class ResolverActivity extends Activity { initSuspendedColorMatrix(); - if (isVoiceInteraction()) { - onSetupVoiceInteraction(); - } final Set<String> categories = intent.getCategories(); MetricsLogger.action(this, mAdapter.hasFilteredItem() ? MetricsProto.MetricsEvent.ACTION_SHOW_APP_DISAMBIG_APP_FEATURED @@ -442,24 +439,21 @@ public class ResolverActivity extends Activity { mSuspendedMatrixColorFilter = new ColorMatrixColorFilter(matrix); } - /** - * Perform any initialization needed for voice interaction. - */ - public void onSetupVoiceInteraction() { - // Do it right now. Subclasses may delay this and send it later. - sendVoiceChoicesIfNeeded(); - } - public void sendVoiceChoicesIfNeeded() { if (!isVoiceInteraction()) { // Clearly not needed. return; } - final Option[] options = new Option[mAdapter.getCount()]; for (int i = 0, N = options.length; i < N; i++) { - options[i] = optionForChooserTarget(mAdapter.getItem(i), i); + TargetInfo target = mAdapter.getItem(i); + if (target == null) { + // If this occurs, a new set of targets is being loaded. Let that complete, + // and have the next call to send voice choices proceed instead. + return; + } + options[i] = optionForChooserTarget(target, i); } mPickOptionRequest = new PickTargetOptionRequest( @@ -1872,7 +1866,7 @@ public class ResolverActivity extends Activity { } } - + sendVoiceChoicesIfNeeded(); postListReadyRunnable(); } diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 4f74605b4003..403e894a68e4 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -609,6 +609,10 @@ android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboard|keyboardHidden" android:process=":ui" android:visibleToInstantApps="true"> + <intent-filter> + <action android:name="android.intent.action.CHOOSER" /> + <category android:name="android.intent.category.VOICE" /> + </intent-filter> </activity> <!-- Doze with notifications, run in main sysui process for every user --> |