Use different URL encoding for single quote in query

Single quotes in query parameters in HttpURLConnection changed
behavior between M and N due to upstream changes in OkHttp:
in N, single quotes started being encoded as %27 when present in
query parameters. Unfortunately, this broke several "iTunes remote"
apps: iTunes appears not to support %27 encoding for single quotes
in its DAAP server.

Bug: 30405333
Test: (old) cts test packages android.core.tests.libcore.package.okhttp
    and android.core.tests.libcore.package.libcore
Change-Id: Ic5ce976d969a733973c7e62cc6747cb679e78ca8
diff --git a/okhttp-tests/src/test/java/com/squareup/okhttp/HttpUrlTest.java b/okhttp-tests/src/test/java/com/squareup/okhttp/HttpUrlTest.java
index d45ac10..8510eec 100644
--- a/okhttp-tests/src/test/java/com/squareup/okhttp/HttpUrlTest.java
+++ b/okhttp-tests/src/test/java/com/squareup/okhttp/HttpUrlTest.java
@@ -553,7 +553,10 @@
   @Test public void queryCharacters() throws Exception {
     new UrlComponentEncodingTester()
         .override(Encoding.IDENTITY, '?', '`')
-        .override(Encoding.PERCENT, '\'')
+        // ANDROID-CHANGED: http://b/30405333
+        // .override(Encoding.PERCENT, '\'')
+        .override(Encoding.IDENTITY, '\'')
+        // ANDROID-CHANGED end.
         .override(Encoding.SKIP, '#', '+')
         .skipForUri('%', '\\', '^', '`', '{', '|', '}')
         .test(Component.QUERY);
diff --git a/okhttp/src/main/java/com/squareup/okhttp/HttpUrl.java b/okhttp/src/main/java/com/squareup/okhttp/HttpUrl.java
index 8e75e3f..32e1106 100644
--- a/okhttp/src/main/java/com/squareup/okhttp/HttpUrl.java
+++ b/okhttp/src/main/java/com/squareup/okhttp/HttpUrl.java
@@ -259,8 +259,12 @@
   static final String PASSWORD_ENCODE_SET = " \"':;<=>@[]^`{}|/\\?#";
   static final String PATH_SEGMENT_ENCODE_SET = " \"<>^`{}|/\\?#";
   static final String PATH_SEGMENT_ENCODE_SET_URI = "[]";
-  static final String QUERY_ENCODE_SET = " \"'<>#";
-  static final String QUERY_COMPONENT_ENCODE_SET = " \"'<>#&=";
+  // ANDROID-CHANGED: http://b/30405333 - we do not encode single quote as %27 in query strings.
+  // static final String QUERY_ENCODE_SET = " \"'<>#";
+  // static final String QUERY_COMPONENT_ENCODE_SET = " \"'<>#&=";
+  static final String QUERY_ENCODE_SET = " \"<>#";
+  static final String QUERY_COMPONENT_ENCODE_SET = " \"<>#&=";
+  // ANDROID-CHANGED end.
   static final String QUERY_COMPONENT_ENCODE_SET_URI = "\\^`{|}";
   static final String FORM_ENCODE_SET = " \"':;<=>@[]^`{}|/\\?#&!$(),~";
   static final String FRAGMENT_ENCODE_SET = "";