Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Unified Diff: ui/android/java/src/org/chromium/ui/WindowAndroid.java

Issue 29303004: Make WindowAndroid constructor takes context as param. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/android/java/src/org/chromium/ui/ActivityWindowAndroid.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/android/java/src/org/chromium/ui/WindowAndroid.java
diff --git a/ui/android/java/src/org/chromium/ui/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/WindowAndroid.java
index 7c8141bffe448094c0ba1600d1c7b228f7c58e7e..bc05608ff11db1288186e52dc4b06e8a823a8d11 100644
--- a/ui/android/java/src/org/chromium/ui/WindowAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/WindowAndroid.java
@@ -4,20 +4,14 @@
package org.chromium.ui;
-import android.app.Activity;
-import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.Rect;
import android.os.Bundle;
import android.util.Log;
import android.util.SparseArray;
-import android.view.View;
import android.widget.Toast;
-import java.io.ByteArrayOutputStream;
import java.util.HashMap;
import org.chromium.base.CalledByNative;
@@ -28,33 +22,26 @@ import org.chromium.base.JNINamespace;
*/
@JNINamespace("ui")
public class WindowAndroid {
-
private static final String TAG = "WindowAndroid";
// Native pointer to the c++ WindowAndroid object.
private int mNativeWindowAndroid = 0;
- // Constants used for intent request code bounding.
- private static final int REQUEST_CODE_PREFIX = 1000;
- private static final int REQUEST_CODE_RANGE_SIZE = 100;
// A string used as a key to store intent errors in a bundle
static final String WINDOW_CALLBACK_ERRORS = "window_callback_errors";
- private int mNextRequestCode = 0;
- protected Activity mActivity;
protected Context mApplicationContext;
protected SparseArray<IntentCallback> mOutstandingIntents;
protected HashMap<Integer, String> mIntentErrors;
/**
- * @param activity
+ * @param context, the application context..
*/
- public WindowAndroid(Activity activity) {
- mActivity = activity;
- mApplicationContext = mActivity.getApplicationContext();
+ public WindowAndroid(Context context) {
+ assert context == context.getApplicationContext();
joth 2013/11/09 02:22:11 Can this just be removed?
michaelbai 2013/11/09 06:05:54 I think this make the people use the right class,
+ mApplicationContext = context;
mOutstandingIntents = new SparseArray<IntentCallback>();
mIntentErrors = new HashMap<Integer, String>();
-
}
/**
@@ -66,19 +53,8 @@ public class WindowAndroid {
* @return Whether the intent was shown.
*/
public boolean showIntent(Intent intent, IntentCallback callback, int errorId) {
- int requestCode = REQUEST_CODE_PREFIX + mNextRequestCode;
- mNextRequestCode = (mNextRequestCode + 1) % REQUEST_CODE_RANGE_SIZE;
-
- try {
- mActivity.startActivityForResult(intent, requestCode);
- } catch (ActivityNotFoundException e) {
- return false;
- }
-
- mOutstandingIntents.put(requestCode, callback);
- mIntentErrors.put(requestCode, mActivity.getString(errorId));
-
- return true;
+ Log.d(TAG, "Can't show intent as context is not an Activity: " + intent);
+ return false;
}
/**
@@ -87,7 +63,7 @@ public class WindowAndroid {
*/
public void showError(String error) {
if (error != null) {
- Toast.makeText(mActivity, error, Toast.LENGTH_SHORT).show();
+ Toast.makeText(mApplicationContext, error, Toast.LENGTH_SHORT).show();
}
}
@@ -96,7 +72,7 @@ public class WindowAndroid {
* @param resId The error message string's resource id.
*/
public void showError(int resId) {
- showError(mActivity.getString(resId));
+ showError(mApplicationContext.getString(resId));
}
/**
@@ -111,17 +87,18 @@ public class WindowAndroid {
* Broadcasts the given intent to all interested BroadcastReceivers.
*/
public void sendBroadcast(Intent intent) {
- mActivity.sendBroadcast(intent);
+ mApplicationContext.sendBroadcast(intent);
}
/**
* TODO(nileshagrawal): Stop returning Activity Context crbug.com/233440.
- * @return Activity context.
+ * @return Activity context, it could be null. Note, in most cases, you probably
+ * just need Application Context returned by getApplicationContext().
* @see #getApplicationContext()
*/
@Deprecated
public Context getContext() {
- return mActivity;
+ return null;
}
/**
@@ -164,20 +141,6 @@ public class WindowAndroid {
* @return Boolean value of whether the intent was started by the native window.
*/
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
- IntentCallback callback = mOutstandingIntents.get(requestCode);
- mOutstandingIntents.delete(requestCode);
- String errorMessage = mIntentErrors.remove(requestCode);
-
- if (callback != null) {
- callback.onIntentCompleted(this, resultCode,
- mActivity.getContentResolver(), data);
- return true;
- } else {
- if (errorMessage != null) {
- showCallbackNonExistentError(errorMessage);
- return true;
- }
- }
return false;
}
@@ -224,31 +187,7 @@ public class WindowAndroid {
*/
@CalledByNative
public byte[] grabSnapshot(int windowX, int windowY, int width, int height) {
- try {
- // Take a screenshot of the root activity view. This generally includes UI
- // controls such as the URL bar and OS windows such as the status bar.
- View rootView = mActivity.findViewById(android.R.id.content).getRootView();
- Bitmap bitmap = UiUtils.generateScaledScreenshot(rootView, 0, Bitmap.Config.ARGB_8888);
- if (bitmap == null) return null;
-
- // Clip the result into the requested region.
- if (windowX > 0 || windowY > 0 || width != bitmap.getWidth() ||
- height != bitmap.getHeight()) {
- Rect clip = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
- clip.intersect(windowX, windowY, windowX + width, windowY + height);
- bitmap = Bitmap.createBitmap(
- bitmap, clip.left, clip.top, clip.width(), clip.height());
- }
-
- // Compress the result into a PNG.
- ByteArrayOutputStream result = new ByteArrayOutputStream();
- if (!bitmap.compress(Bitmap.CompressFormat.PNG, 100, result)) return null;
- bitmap.recycle();
- return result.toByteArray();
- } catch (OutOfMemoryError e) {
- Log.e(TAG, "Out of memory while grabbing window snapshot.", e);
- return null;
- }
+ return null;
}
private native int nativeInit();
« no previous file with comments | « ui/android/java/src/org/chromium/ui/ActivityWindowAndroid.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698