Merge "Resolver - Fix NGA (voice interaction) crash in resolver" into qt-qpr1-dev

This commit is contained in:
Matt Pietal
2019-09-12 14:37:59 +00:00
committed by Android (Google) Code Review
3 changed files with 12 additions and 18 deletions

View File

@@ -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

View File

@@ -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();
}

View File

@@ -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 -->