Store a copy of the Intent rather than the Intent itself. This way,
when choosing from the n-best, the number will not be appended to
the original Intent, so pressing back works properly.
Change-Id: Id6a0232339f34e5f91928e2bc1502f8f2fc33228
.EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS);
mVoiceSearchData.mSourceIsGoogle = intent.getBooleanExtra(
VoiceSearchData.SOURCE_IS_GOOGLE, false);
.EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS);
mVoiceSearchData.mSourceIsGoogle = intent.getBooleanExtra(
VoiceSearchData.SOURCE_IS_GOOGLE, false);
- mVoiceSearchData.mVoiceSearchIntent = intent;
+ mVoiceSearchData.mVoiceSearchIntent = new Intent(intent);
}
String extraData = intent.getStringExtra(
SearchManager.EXTRA_DATA_KEY);
}
String extraData = intent.getStringExtra(
SearchManager.EXTRA_DATA_KEY);
mActivity.sendBroadcast(logIntent);
}
if (mVoiceSearchData.mVoiceSearchIntent != null) {
mActivity.sendBroadcast(logIntent);
}
if (mVoiceSearchData.mVoiceSearchIntent != null) {
- mVoiceSearchData.mVoiceSearchIntent.putExtra(
- SearchManager.EXTRA_DATA_KEY, extraData);
+ // Copy the Intent, so that each history item will have its own
+ // Intent, with different (or none) extra data.
+ Intent latest = new Intent(mVoiceSearchData.mVoiceSearchIntent);
+ latest.putExtra(SearchManager.EXTRA_DATA_KEY, extraData);
+ mVoiceSearchData.mVoiceSearchIntent = latest;
}
}
mVoiceSearchData.mLastVoiceSearchTitle
}
}
mVoiceSearchData.mLastVoiceSearchTitle