Use flattenToShortString instead of toShortString on ComponentNames to
be sent in RecognizerIntent.EXTRA_CALLING_PACKAGE. This never should have
been using toShortString because that includes curly braces and is not
correctly parsed by ComponentName.unflattenFromString.
This was needed as part of http://b/2546173
Change-Id: If34a9273cbcae13a75347be0b6b7ef307134ed40
diff --git a/core/java/android/app/SearchDialog.java b/core/java/android/app/SearchDialog.java
index d6bb7b6..9d217ec 100644
--- a/core/java/android/app/SearchDialog.java
+++ b/core/java/android/app/SearchDialog.java
@@ -819,7 +819,7 @@
Intent voiceIntent = new Intent(baseIntent);
ComponentName searchActivity = searchable.getSearchActivity();
voiceIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
- searchActivity == null ? null : searchActivity.toShortString());
+ searchActivity == null ? null : searchActivity.flattenToShortString());
return voiceIntent;
}
@@ -878,7 +878,7 @@
voiceIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, language);
voiceIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, maxResults);
voiceIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
- searchActivity == null ? null : searchActivity.toShortString());
+ searchActivity == null ? null : searchActivity.flattenToShortString());
// Add the values that configure forwarding the results
voiceIntent.putExtra(RecognizerIntent.EXTRA_RESULTS_PENDINGINTENT, pending);