diff options
| -rw-r--r-- | media/java/android/media/Media2HTTPService.java | 44 | ||||
| -rw-r--r-- | media/java/android/media/Media2Utils.java | 65 | ||||
| -rw-r--r-- | media/java/android/media/MediaPlayer2Impl.java | 3 |
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); |