Encode Intent scheme when serializing to URI string RESTRICT AUTOMERGE

Avoids deserialization error when the scheme contains a
reserved character.

Bug: 261858325

Test: atest android.content.cts.IntentTest#testEncoding

Merged-In: Ic34b3f796b762763db5aa7b5d7c109ae70607470
Change-Id: Ic34b3f796b762763db5aa7b5d7c109ae70607470
This commit is contained in:
Winson Chiu
2023-01-06 21:26:24 +00:00
parent a7dce649b5
commit 43437b4ee6

View File

@@ -10750,7 +10750,7 @@ public class Intent implements Parcelable, Cloneable {
private void toUriInner(StringBuilder uri, String scheme, String defAction,
String defPackage, int flags) {
if (scheme != null) {
uri.append("scheme=").append(scheme).append(';');
uri.append("scheme=").append(Uri.encode(scheme)).append(';');
}
if (mAction != null && !mAction.equals(defAction)) {
uri.append("action=").append(Uri.encode(mAction)).append(';');