Index: content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java b/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java |
deleted file mode 100644 |
index 5ea3df0d193d4a762239faae29e9b859b753eb16..0000000000000000000000000000000000000000 |
--- a/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java |
+++ /dev/null |
@@ -1,138 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.content.browser; |
- |
-import android.content.Context; |
-import android.content.pm.PackageManager; |
-import android.media.MediaMetadataRetriever; |
-import android.net.ConnectivityManager; |
-import android.net.NetworkInfo; |
-import android.net.Uri; |
-import android.text.TextUtils; |
-import android.util.Log; |
- |
-import org.chromium.base.CalledByNative; |
-import org.chromium.base.JNINamespace; |
-import org.chromium.base.PathUtils; |
- |
-import java.io.File; |
-import java.util.HashMap; |
- |
-/** |
- * Java counterpart of android MediaResourceGetter. |
- */ |
-@JNINamespace("content") |
-class MediaResourceGetter { |
- |
- private static final String TAG = "MediaResourceGetter"; |
- |
- private static class MediaMetadata { |
- private final int mDurationInMilliseconds; |
- private final int mWidth; |
- private final int mHeight; |
- private final boolean mSuccess; |
- |
- private MediaMetadata(int durationInMilliseconds, int width, int height, boolean success) { |
- mDurationInMilliseconds = durationInMilliseconds; |
- mWidth = width; |
- mHeight = height; |
- mSuccess = success; |
- } |
- |
- @CalledByNative("MediaMetadata") |
- private int getDurationInMilliseconds() { return mDurationInMilliseconds; } |
- |
- @CalledByNative("MediaMetadata") |
- private int getWidth() { return mWidth; } |
- |
- @CalledByNative("MediaMetadata") |
- private int getHeight() { return mHeight; } |
- |
- @CalledByNative("MediaMetadata") |
- private boolean isSuccess() { return mSuccess; } |
- } |
- |
- @CalledByNative |
- private static MediaMetadata extractMediaMetadata(Context context, String url, String cookies, |
- String userAgent) { |
- int durationInMilliseconds = 0; |
- int width = 0; |
- int height = 0; |
- boolean success = false; |
- if ("GT-I9100".contentEquals(android.os.Build.MODEL) |
- && android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) { |
- return new MediaMetadata(0, 0, 0, success); |
- } |
- // TODO(qinmin): use ConnectionTypeObserver to listen to the network type change. |
- ConnectivityManager mConnectivityManager = |
- (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); |
- if (mConnectivityManager != null) { |
- if (context.checkCallingOrSelfPermission( |
- android.Manifest.permission.ACCESS_NETWORK_STATE) != |
- PackageManager.PERMISSION_GRANTED) { |
- return new MediaMetadata(0, 0, 0, false); |
- } |
- |
- NetworkInfo info = mConnectivityManager.getActiveNetworkInfo(); |
- if (info == null) { |
- return new MediaMetadata(durationInMilliseconds, width, height, success); |
- } |
- switch (info.getType()) { |
- case ConnectivityManager.TYPE_ETHERNET: |
- case ConnectivityManager.TYPE_WIFI: |
- break; |
- case ConnectivityManager.TYPE_WIMAX: |
- case ConnectivityManager.TYPE_MOBILE: |
- default: |
- return new MediaMetadata(durationInMilliseconds, width, height, success); |
- } |
- } |
- |
- MediaMetadataRetriever retriever = new MediaMetadataRetriever(); |
- try { |
- Uri uri = Uri.parse(url); |
- String scheme = uri.getScheme(); |
- if (scheme == null || scheme.equals("file")) { |
- File file = new File(uri.getPath()); |
- String path = file.getAbsolutePath(); |
- if (file.exists() && (path.startsWith("/mnt/sdcard/") || |
- path.startsWith("/sdcard/") || |
- path.startsWith(PathUtils.getExternalStorageDirectory()) || |
- path.startsWith(context.getCacheDir().getAbsolutePath()))) { |
- retriever.setDataSource(path); |
- } else { |
- return new MediaMetadata(durationInMilliseconds, width, height, success); |
- } |
- } else { |
- HashMap<String, String> headersMap = new HashMap<String, String>(); |
- if (!TextUtils.isEmpty(cookies)) { |
- headersMap.put("Cookie", cookies); |
- } |
- if (!TextUtils.isEmpty(userAgent)) { |
- headersMap.put("User-Agent", userAgent); |
- } |
- retriever.setDataSource(url, headersMap); |
- } |
- String duration = retriever.extractMetadata( |
- MediaMetadataRetriever.METADATA_KEY_DURATION); |
- String videoWidth = retriever.extractMetadata( |
- MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH); |
- String videoHeight = retriever.extractMetadata( |
- MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT); |
- if (duration == null || videoWidth == null || videoHeight == null) { |
- return new MediaMetadata(durationInMilliseconds, width, height, success); |
- } |
- durationInMilliseconds = Integer.parseInt(duration); |
- width = Integer.parseInt(videoWidth); |
- height = Integer.parseInt(videoHeight); |
- success = true; |
- } catch (IllegalArgumentException e) { |
- Log.e(TAG, "Invalid url: " + e); |
- } catch (RuntimeException e) { |
- Log.e(TAG, "Invalid url: " + e); |
- } |
- return new MediaMetadata(durationInMilliseconds, width, height, success); |
- } |
-} |