Index: content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
index 7147b93cd8a7c16359adb74bbc041835f21d149a..b7bbcf4a397e658a310bdee6820141c556d4b7cd 100644 |
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java |
@@ -12,6 +12,7 @@ |
import android.content.ClipboardManager; |
import android.content.ContentResolver; |
import android.content.Context; |
+import android.content.ContextWrapper; |
import android.content.Intent; |
import android.content.pm.PackageManager; |
import android.content.res.Configuration; |
@@ -430,6 +431,22 @@ |
*/ |
public interface SmartClipDataListener { |
public void onSmartClipDataExtracted(String text, String html, Rect clipRect); |
+ } |
+ |
+ /** |
+ * Cast from Context to Activity taking ContextWrapper into account. |
+ */ |
+ public static Activity activityFromContext(Context context) { |
+ // Only retrieve the base context if the supplied context is a ContextWrapper but not |
+ // an Activity, given that Activity is already a subclass of ContextWrapper. |
+ if (context instanceof Activity) { |
+ return ((Activity) context); |
+ } else if (context instanceof ContextWrapper) { |
+ context = ((ContextWrapper) context).getBaseContext(); |
+ return activityFromContext(context); |
+ } else { |
+ return null; |
+ } |
} |
private final Context mContext; |