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

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java

Issue 1206673003: Merge java_staging/src into java/src. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 6 months 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
Index: chrome/android/java_staging/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java
deleted file mode 100644
index 7940005b08818b94589f810082e004258d9e7877..0000000000000000000000000000000000000000
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2015 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.chrome.browser.feedback;
-
-import android.app.Activity;
-import android.graphics.Bitmap;
-
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.content.browser.ContentReadbackHandler;
-import org.chromium.content_public.browser.readback_types.ReadbackResponse;
-import org.chromium.ui.UiUtils;
-
-import javax.annotation.Nullable;
-
-/**
- * A utility class to take a feedback-formatted screenshot of an {@link Activity}.
- */
-public final class ScreenshotTask {
- /**
- * Maximum dimension for the screenshot to be sent to the feedback handler. This size
- * ensures the size of bitmap < 1MB, which is a requirement of the handler.
- */
- private static final int MAX_FEEDBACK_SCREENSHOT_DIMENSION = 600;
-
- /**
- * A callback passed to {@link #create} which will get a bitmap version of the screenshot.
- */
- public interface ScreenshotTaskCallback {
- /**
- * Called when collection of the bitmap has completed.
- * @param bitmap the bitmap or null.
- * @param success whether the bitmap is valid.
- */
- void onGotBitmap(@Nullable Bitmap bitmap, boolean success);
- }
-
- /**
- * Prepares screenshot (possibly asynchronously) and invokes the callback when the screenshot
- * is available, or collection has failed. The asynchronous path is only taken when the activity
- * that is passed in is a {@link ChromeActivity}.
- */
- public static void create(Activity activity, ScreenshotTaskCallback callback) {
- if (activity instanceof ChromeActivity) {
- createCompositorActivityScreenshot((ChromeActivity) activity, callback);
- return;
- }
-
- Bitmap bitmap = prepareScreenshot(activity, null);
- callback.onGotBitmap(bitmap, bitmap != null);
- }
-
- private static void createCompositorActivityScreenshot(ChromeActivity activity,
- final ScreenshotTaskCallback callback) {
- ContentReadbackHandler.GetBitmapCallback getBitmapCallback =
- new ContentReadbackHandler.GetBitmapCallback() {
- @Override
- public void onFinishGetBitmap(Bitmap bitmap, int response) {
- callback.onGotBitmap(bitmap, response == ReadbackResponse.SUCCESS);
- }
- };
- activity.startTakingCompositorActivityScreenshot(getBitmapCallback);
- }
-
- /**
- * Prepares a given screenshot for sending with a feedback.
- * If no screenshot is given it creates one from the activity View if an activity is provided.
- * @param activity An activity or null
- * @param bitmap A screenshot or null
- * @return A feedback-ready screenshot or null
- */
- private static Bitmap prepareScreenshot(@Nullable Activity activity, @Nullable Bitmap bitmap) {
- if (bitmap == null) {
- if (activity == null) return null;
- return UiUtils.generateScaledScreenshot(
- activity.getWindow().getDecorView().getRootView(),
- MAX_FEEDBACK_SCREENSHOT_DIMENSION, Bitmap.Config.ARGB_8888);
- }
-
- int screenshotMaxDimension = Math.max(bitmap.getWidth(), bitmap.getHeight());
- if (screenshotMaxDimension <= MAX_FEEDBACK_SCREENSHOT_DIMENSION) return bitmap;
-
- float screenshotScale = (float) MAX_FEEDBACK_SCREENSHOT_DIMENSION / screenshotMaxDimension;
- int destWidth = (int) (bitmap.getWidth() * screenshotScale);
- int destHeight = (int) (bitmap.getHeight() * screenshotScale);
- return Bitmap.createScaledBitmap(bitmap, destWidth, destHeight, true);
- }
-
- // This is a utility class, so it should never be created.
- private ScreenshotTask() {}
-}

Powered by Google App Engine
This is Rietveld 408576698