| Index: ui/android/java/src/org/chromium/ui/UiUtils.java
|
| diff --git a/ui/android/java/src/org/chromium/ui/UiUtils.java b/ui/android/java/src/org/chromium/ui/UiUtils.java
|
| index 10f33162d47aa04b78f5b8ff402f35dd3098f090..c164641a1cf486d860bd9b52ee55f7704d7b1e38 100644
|
| --- a/ui/android/java/src/org/chromium/ui/UiUtils.java
|
| +++ b/ui/android/java/src/org/chromium/ui/UiUtils.java
|
| @@ -8,6 +8,9 @@ import android.content.Context;
|
| import android.graphics.Bitmap;
|
| import android.graphics.Canvas;
|
| import android.graphics.Rect;
|
| +import android.net.Uri;
|
| +import android.os.Build;
|
| +import android.os.Environment;
|
| import android.os.Handler;
|
| import android.util.Log;
|
| import android.view.SurfaceView;
|
| @@ -15,6 +18,10 @@ import android.view.View;
|
| import android.view.ViewGroup;
|
| import android.view.inputmethod.InputMethodManager;
|
|
|
| +import org.chromium.base.ContentUriUtils;
|
| +
|
| +import java.io.File;
|
| +import java.io.IOException;
|
| import java.util.concurrent.atomic.AtomicInteger;
|
|
|
| /**
|
| @@ -27,6 +34,10 @@ public class UiUtils {
|
| private static final int KEYBOARD_RETRY_ATTEMPTS = 10;
|
| private static final long KEYBOARD_RETRY_DELAY_MS = 100;
|
|
|
| + public static final String EXTERNAL_IMAGE_FILE_PATH = "browser-images";
|
| + // Keep this variable in sync with the value defined in file_paths.xml.
|
| + public static final String IMAGE_FILE_PATH = "images";
|
| +
|
| /**
|
| * Guards this class from being instantiated.
|
| */
|
| @@ -239,4 +250,45 @@ public class UiUtils {
|
| view.setWillNotDraw(!takingScreenshot);
|
| }
|
| }
|
| +
|
| + /**
|
| + * Get a directory for the image capture operation. For devices with JB MR2
|
| + * or latter android versions, the directory is IMAGE_FILE_PATH directory.
|
| + * For ICS devices, the directory is CAPTURE_IMAGE_DIRECTORY.
|
| + *
|
| + * @param context The application context.
|
| + * @return directory for the captured image to be stored.
|
| + */
|
| + public static File getDirectoryForImageCapture(Context context) throws IOException {
|
| + File path;
|
| + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
| + path = new File(context.getFilesDir(), IMAGE_FILE_PATH);
|
| + if (!path.exists() && !path.mkdir()) {
|
| + throw new IOException("Folder cannot be created.");
|
| + }
|
| + } else {
|
| + File externalDataDir =
|
| + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
|
| + path = new File(
|
| + externalDataDir.getAbsolutePath() + File.separator + EXTERNAL_IMAGE_FILE_PATH);
|
| + if (!path.exists() && !path.mkdirs()) {
|
| + path = externalDataDir;
|
| + }
|
| + }
|
| + return path;
|
| + }
|
| +
|
| + /**
|
| + * Get a URI for |file| which has the image capture. This function assumes that path of |file|
|
| + * is based on the result of UiUtils.getDirectoryForImageCapture().
|
| + *
|
| + * @param context The application context.
|
| + * @param file image capture file.
|
| + * @return URI for |file|.
|
| + */
|
| + public static Uri getUriForImageCaptureFile(Context context, File file) {
|
| + return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2
|
| + ? ContentUriUtils.getContentUriFromFile(context, file)
|
| + : Uri.fromFile(file);
|
| + }
|
| }
|
|
|