diff options
author | Marco Nelissen <marcone@google.com> | 2014-02-21 12:00:42 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2014-02-21 12:00:42 -0800 |
commit | 6e89ddc0468495aa15c8408980bb7a86bf2ad604 (patch) | |
tree | 97ac105d39d6a1c62084da8f012418ff7295e148 /media | |
parent | c4f6c351e18380e712d5d365d2a13cfa5674daf7 (diff) | |
download | frameworks_base-6e89ddc0468495aa15c8408980bb7a86bf2ad604.zip frameworks_base-6e89ddc0468495aa15c8408980bb7a86bf2ad604.tar.gz frameworks_base-6e89ddc0468495aa15c8408980bb7a86bf2ad604.tar.bz2 |
Add method to get redirected Uri
Change-Id: I32c35e1cae89ee1106e8eabff0a4673af8cf57cd
Diffstat (limited to 'media')
-rw-r--r-- | media/java/android/media/IMediaHTTPConnection.aidl | 1 | ||||
-rw-r--r-- | media/java/android/media/MediaHTTPConnection.java | 25 |
2 files changed, 19 insertions, 7 deletions
diff --git a/media/java/android/media/IMediaHTTPConnection.aidl b/media/java/android/media/IMediaHTTPConnection.aidl index 300211b..55ffc2e 100644 --- a/media/java/android/media/IMediaHTTPConnection.aidl +++ b/media/java/android/media/IMediaHTTPConnection.aidl @@ -29,5 +29,6 @@ interface IMediaHTTPConnection int readAt(long offset, int size); long getSize(); String getMIMEType(); + String getUri(); } diff --git a/media/java/android/media/MediaHTTPConnection.java b/media/java/android/media/MediaHTTPConnection.java index 2732fbc..67680a8 100644 --- a/media/java/android/media/MediaHTTPConnection.java +++ b/media/java/android/media/MediaHTTPConnection.java @@ -16,7 +16,6 @@ package android.media; -import android.net.Uri; import android.os.IBinder; import android.os.StrictMode; import android.util.Log; @@ -52,6 +51,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { native_setup(); } + @Override public IBinder connect(String uri, String headers) { if (VERBOSE) { Log.d(TAG, "connect: uri=" + uri + ", headers=" + headers); @@ -85,6 +85,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { return map; } + @Override public void disconnect() { teardownConnection(); mHeaders = null; @@ -120,7 +121,11 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { "Range", "bytes=" + offset + "-"); } - if (mConnection.getResponseCode() == HttpURLConnection.HTTP_PARTIAL) { + int response = mConnection.getResponseCode(); + // remember the current, possibly redirected URL + mURL = mConnection.getURL(); + + if (response == HttpURLConnection.HTTP_PARTIAL) { // Partial content, we cannot just use getContentLength // because what we want is not just the length of the range // returned but the size of the full content if available. @@ -145,16 +150,13 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { } } } - } else if (mConnection.getResponseCode() - != HttpURLConnection.HTTP_OK) { + } else if (response != HttpURLConnection.HTTP_OK) { throw new IOException(); } else { mTotalSize = mConnection.getContentLength(); } - if (offset > 0 - && mConnection.getResponseCode() - != HttpURLConnection.HTTP_PARTIAL) { + if (offset > 0 && response != HttpURLConnection.HTTP_PARTIAL) { // Some servers simply ignore "Range" requests and serve // data from the start of the content. throw new IOException(); @@ -174,6 +176,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { } } + @Override public int readAt(long offset, int size) { return native_readAt(offset, size); } @@ -218,6 +221,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { } } + @Override public long getSize() { if (mConnection == null) { try { @@ -230,6 +234,7 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { return mTotalSize; } + @Override public String getMIMEType() { if (mConnection == null) { try { @@ -243,6 +248,11 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { } @Override + public String getUri() { + return mURL.toString(); + } + + @Override protected void finalize() { native_finalize(); } @@ -260,4 +270,5 @@ public class MediaHTTPConnection extends IMediaHTTPConnection.Stub { } private int mNativeContext; + } |