Merge "Resolver - Fix NGA (voice interaction) crash in resolver" into qt-qpr1-dev
This commit is contained in:
@@ -1666,10 +1666,6 @@ public class ChooserActivity extends ResolverActivity {
|
|||||||
mServiceConnections.clear();
|
mServiceConnections.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onSetupVoiceInteraction() {
|
|
||||||
// Do nothing. We'll send the voice stuff ourselves.
|
|
||||||
}
|
|
||||||
|
|
||||||
private void logDirectShareTargetReceived(int logCategory) {
|
private void logDirectShareTargetReceived(int logCategory) {
|
||||||
final long queryTime =
|
final long queryTime =
|
||||||
logCategory == MetricsEvent.ACTION_DIRECT_SHARE_TARGETS_LOADED_SHORTCUT_MANAGER
|
logCategory == MetricsEvent.ACTION_DIRECT_SHARE_TARGETS_LOADED_SHORTCUT_MANAGER
|
||||||
|
|||||||
@@ -361,9 +361,6 @@ public class ResolverActivity extends Activity {
|
|||||||
|
|
||||||
initSuspendedColorMatrix();
|
initSuspendedColorMatrix();
|
||||||
|
|
||||||
if (isVoiceInteraction()) {
|
|
||||||
onSetupVoiceInteraction();
|
|
||||||
}
|
|
||||||
final Set<String> categories = intent.getCategories();
|
final Set<String> categories = intent.getCategories();
|
||||||
MetricsLogger.action(this, mAdapter.hasFilteredItem()
|
MetricsLogger.action(this, mAdapter.hasFilteredItem()
|
||||||
? MetricsProto.MetricsEvent.ACTION_SHOW_APP_DISAMBIG_APP_FEATURED
|
? MetricsProto.MetricsEvent.ACTION_SHOW_APP_DISAMBIG_APP_FEATURED
|
||||||
@@ -442,24 +439,21 @@ public class ResolverActivity extends Activity {
|
|||||||
mSuspendedMatrixColorFilter = new ColorMatrixColorFilter(matrix);
|
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() {
|
public void sendVoiceChoicesIfNeeded() {
|
||||||
if (!isVoiceInteraction()) {
|
if (!isVoiceInteraction()) {
|
||||||
// Clearly not needed.
|
// Clearly not needed.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
final Option[] options = new Option[mAdapter.getCount()];
|
final Option[] options = new Option[mAdapter.getCount()];
|
||||||
for (int i = 0, N = options.length; i < N; i++) {
|
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(
|
mPickOptionRequest = new PickTargetOptionRequest(
|
||||||
@@ -1872,7 +1866,7 @@ public class ResolverActivity extends Activity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sendVoiceChoicesIfNeeded();
|
||||||
postListReadyRunnable();
|
postListReadyRunnable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -609,6 +609,10 @@
|
|||||||
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboard|keyboardHidden"
|
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation|keyboard|keyboardHidden"
|
||||||
android:process=":ui"
|
android:process=":ui"
|
||||||
android:visibleToInstantApps="true">
|
android:visibleToInstantApps="true">
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.CHOOSER" />
|
||||||
|
<category android:name="android.intent.category.VOICE" />
|
||||||
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<!-- Doze with notifications, run in main sysui process for every user -->
|
<!-- Doze with notifications, run in main sysui process for every user -->
|
||||||
|
|||||||
Reference in New Issue
Block a user