summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/Media2HTTPService.java44
-rw-r--r--media/java/android/media/Media2Utils.java65
-rw-r--r--media/java/android/media/MediaPlayer2Impl.java3
3 files changed, 69 insertions, 43 deletions
diff --git a/media/java/android/media/Media2HTTPService.java b/media/java/android/media/Media2HTTPService.java
index 957acecab13a..0d46ce404831 100644
--- a/media/java/android/media/Media2HTTPService.java
+++ b/media/java/android/media/Media2HTTPService.java
@@ -18,9 +18,6 @@ package android.media;
import android.util.Log;
-import java.net.CookieHandler;
-import java.net.CookieManager;
-import java.net.CookieStore;
import java.net.HttpCookie;
import java.util.List;
@@ -38,45 +35,8 @@ public class Media2HTTPService {
public Media2HTTPConnection makeHTTPConnection() {
synchronized (mCookieStoreInitialized) {
- // Only need to do it once for all connections
- if ( !mCookieStoreInitialized ) {
- CookieHandler cookieHandler = CookieHandler.getDefault();
- if (cookieHandler == null) {
- cookieHandler = new CookieManager();
- CookieHandler.setDefault(cookieHandler);
- Log.v(TAG, "makeHTTPConnection: CookieManager created: " + cookieHandler);
- } else {
- Log.v(TAG, "makeHTTPConnection: CookieHandler (" + cookieHandler + ") exists.");
- }
-
- // Applying the bootstrapping cookies
- if ( mCookies != null ) {
- if ( cookieHandler instanceof CookieManager ) {
- CookieManager cookieManager = (CookieManager)cookieHandler;
- CookieStore store = cookieManager.getCookieStore();
- for ( HttpCookie cookie : mCookies ) {
- try {
- store.add(null, cookie);
- } catch ( Exception e ) {
- Log.v(TAG, "makeHTTPConnection: CookieStore.add" + e);
- }
- //for extended debugging when needed
- //Log.v(TAG, "MediaHTTPConnection adding Cookie[" + cookie.getName() +
- // "]: " + cookie);
- }
- } else {
- Log.w(TAG, "makeHTTPConnection: The installed CookieHandler is not a "
- + "CookieManager. Can’t add the provided cookies to the cookie "
- + "store.");
- }
- } // mCookies
-
- mCookieStoreInitialized = true;
-
- Log.v(TAG, "makeHTTPConnection(" + this + "): cookieHandler: " + cookieHandler +
- " Cookies: " + mCookies);
- } // mCookieStoreInitialized
- } // synchronized
+ Media2Utils.storeCookies(mCookies);
+ }
return new Media2HTTPConnection();
}
diff --git a/media/java/android/media/Media2Utils.java b/media/java/android/media/Media2Utils.java
new file mode 100644
index 000000000000..066233d95f55
--- /dev/null
+++ b/media/java/android/media/Media2Utils.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.media;
+
+import android.util.Log;
+
+import java.net.CookieHandler;
+import java.net.CookieManager;
+import java.net.CookieStore;
+import java.net.HttpCookie;
+import java.util.List;
+
+/** @hide */
+public class Media2Utils {
+ private static final String TAG = "Media2Utils";
+
+ private Media2Utils() {
+ }
+
+ public static synchronized void storeCookies(List<HttpCookie> cookies) {
+ CookieHandler cookieHandler = CookieHandler.getDefault();
+ if (cookieHandler == null) {
+ cookieHandler = new CookieManager();
+ CookieHandler.setDefault(cookieHandler);
+ Log.v(TAG, "storeCookies: CookieManager created: " + cookieHandler);
+ } else {
+ Log.v(TAG, "storeCookies: CookieHandler (" + cookieHandler + ") exists.");
+ }
+
+ if (cookies != null) {
+ if (cookieHandler instanceof CookieManager) {
+ CookieManager cookieManager = (CookieManager)cookieHandler;
+ CookieStore store = cookieManager.getCookieStore();
+ for (HttpCookie cookie : cookies) {
+ try {
+ store.add(null, cookie);
+ } catch (Exception e) {
+ Log.v(TAG, "storeCookies: CookieStore.add" + cookie, e);
+ }
+ }
+ } else {
+ Log.w(TAG, "storeCookies: The installed CookieHandler is not a CookieManager."
+ + " Can’t add the provided cookies to the cookie store.");
+ }
+ } // cookies
+
+ Log.v(TAG, "storeCookies: cookieHandler: " + cookieHandler + " Cookies: " + cookies);
+
+ }
+
+}
diff --git a/media/java/android/media/MediaPlayer2Impl.java b/media/java/android/media/MediaPlayer2Impl.java
index 0e5cbe4e20b7..80522bd629d6 100644
--- a/media/java/android/media/MediaPlayer2Impl.java
+++ b/media/java/android/media/MediaPlayer2Impl.java
@@ -818,10 +818,11 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
path = uri.getPath();
} else if (scheme != null) {
// handle non-file sources
+ Media2Utils.storeCookies(cookies);
nativeHandleDataSourceUrl(
isCurrent,
srcId,
- Media2HTTPService.createHTTPService(path, cookies),
+ Media2HTTPService.createHTTPService(path),
path,
keys,
values);