diff options
-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 --> |