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

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

Issue 62203014: Move WindowOpenDisposition.template to ui/base/android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix ui.gyp 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
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
deleted file mode 100644
index c11d9e3741bbdfcf5ee64da70cfd4fbee03c7edf..0000000000000000000000000000000000000000
--- a/ui/android/java/src/org/chromium/ui/UiUtils.java
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright (c) 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.ui;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Rect;
-import android.util.Log;
-import android.view.SurfaceView;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.inputmethod.InputMethodManager;
-
-/**
- * Utility functions for common Android UI tasks.
- * This class is not supposed to be instantiated.
- */
-public class UiUtils {
- private static final String TAG = "UiUtils";
-
- /**
- * Guards this class from being instantiated.
- */
- private UiUtils() {
- }
-
- /** The minimum size of the bottom margin below the app to detect a keyboard. */
- private static float KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP = 100;
-
- /**
- * Shows the software keyboard if necessary.
- * @param view The currently focused {@link View}, which would receive soft keyboard input.
- */
- public static void showKeyboard(View view) {
- InputMethodManager imm =
- (InputMethodManager) view.getContext().getSystemService(
- Context.INPUT_METHOD_SERVICE);
- // Only shows soft keyboard if there isn't an open physical keyboard.
- imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
- }
-
- /**
- * Hides the keyboard.
- * @param view The {@link View} that is currently accepting input.
- * @return Whether the keyboard was visible before.
- */
- public static boolean hideKeyboard(View view) {
- InputMethodManager imm =
- (InputMethodManager) view.getContext().getSystemService(
- Context.INPUT_METHOD_SERVICE);
- return imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
- }
-
- public static boolean isKeyboardShowing(Context context, View view) {
- View rootView = view.getRootView();
- if (rootView == null) return false;
- Rect appRect = new Rect();
- rootView.getWindowVisibleDisplayFrame(appRect);
- final float screenHeight = context.getResources().getDisplayMetrics().heightPixels;
- final float bottomMargin = Math.abs(appRect.bottom - screenHeight);
- final float density = context.getResources().getDisplayMetrics().density;
- return bottomMargin > KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP * density;
- }
-
- /**
- * Inserts a {@link View} into a {@link ViewGroup} after directly before a given {@View}.
- * @param container The {@link View} to add newView to.
- * @param newView The new {@link View} to add.
- * @param existingView The {@link View} to insert the newView before.
- * @return The index where newView was inserted, or -1 if it was not inserted.
- */
- public static int insertBefore(ViewGroup container, View newView, View existingView) {
- return insertView(container, newView, existingView, false);
- }
-
- /**
- * Inserts a {@link View} into a {@link ViewGroup} after directly after a given {@View}.
- * @param container The {@link View} to add newView to.
- * @param newView The new {@link View} to add.
- * @param existingView The {@link View} to insert the newView after.
- * @return The index where newView was inserted, or -1 if it was not inserted.
- */
- public static int insertAfter(ViewGroup container, View newView, View existingView) {
- return insertView(container, newView, existingView, true);
- }
-
- private static int insertView(
- ViewGroup container, View newView, View existingView, boolean after) {
- // See if the view has already been added.
- int index = container.indexOfChild(newView);
- if (index >= 0) return index;
-
- // Find the location of the existing view.
- index = container.indexOfChild(existingView);
- if (index < 0) return -1;
-
- // Add the view.
- if (after) index++;
- container.addView(newView, index);
- return index;
- }
-
- /**
- * Generates a scaled screenshot of the given view. The maximum size of the screenshot is
- * determined by maximumDimension.
- *
- * @param currentView The view to generate a screenshot of.
- * @param maximumDimension The maximum width or height of the generated screenshot. The bitmap
- * will be scaled to ensure the maximum width or height is equal to or
- * less than this. Any value <= 0, will result in no scaling.
- * @param bitmapConfig Bitmap config for the generated screenshot (ARGB_8888 or RGB_565).
- * @return The screen bitmap of the view or null if a problem was encountered.
- */
- public static Bitmap generateScaledScreenshot(
- View currentView, int maximumDimension, Bitmap.Config bitmapConfig) {
- Bitmap screenshot = null;
- boolean drawingCacheEnabled = currentView.isDrawingCacheEnabled();
- try {
- prepareViewHierarchyForScreenshot(currentView, true);
- if (!drawingCacheEnabled) currentView.setDrawingCacheEnabled(true);
- // Android has a maximum drawing cache size and if the drawing cache is bigger
- // than that, getDrawingCache() returns null.
- Bitmap originalBitmap = currentView.getDrawingCache();
- if (originalBitmap != null) {
- double originalHeight = originalBitmap.getHeight();
- double originalWidth = originalBitmap.getWidth();
- int newWidth = (int) originalWidth;
- int newHeight = (int) originalHeight;
- if (maximumDimension > 0) {
- double scale = maximumDimension / Math.max(originalWidth, originalHeight);
- newWidth = (int) Math.round(originalWidth * scale);
- newHeight = (int) Math.round(originalHeight * scale);
- }
- Bitmap scaledScreenshot =
- Bitmap.createScaledBitmap(originalBitmap, newWidth, newHeight, true);
- if (scaledScreenshot.getConfig() != bitmapConfig) {
- screenshot = scaledScreenshot.copy(bitmapConfig, false);
- scaledScreenshot.recycle();
- scaledScreenshot = null;
- } else {
- screenshot = scaledScreenshot;
- }
- } else if (currentView.getMeasuredHeight() > 0 && currentView.getMeasuredWidth() > 0) {
- double originalHeight = currentView.getMeasuredHeight();
- double originalWidth = currentView.getMeasuredWidth();
- int newWidth = (int) originalWidth;
- int newHeight = (int) originalHeight;
- if (maximumDimension > 0) {
- double scale = maximumDimension / Math.max(originalWidth, originalHeight);
- newWidth = (int) Math.round(originalWidth * scale);
- newHeight = (int) Math.round(originalHeight * scale);
- }
- Bitmap bitmap = Bitmap.createBitmap(newWidth, newHeight, bitmapConfig);
- Canvas canvas = new Canvas(bitmap);
- canvas.scale((float) (newWidth / originalWidth),
- (float) (newHeight / originalHeight));
- currentView.draw(canvas);
- screenshot = bitmap;
- }
- } catch (OutOfMemoryError e) {
- Log.d(TAG, "Unable to capture screenshot and scale it down." + e.getMessage());
- } finally {
- if (!drawingCacheEnabled) currentView.setDrawingCacheEnabled(false);
- prepareViewHierarchyForScreenshot(currentView, false);
- }
- return screenshot;
- }
-
- private static void prepareViewHierarchyForScreenshot(View view, boolean takingScreenshot) {
- if (view instanceof ViewGroup) {
- ViewGroup viewGroup = (ViewGroup) view;
- for (int i = 0; i < viewGroup.getChildCount(); i++) {
- prepareViewHierarchyForScreenshot(viewGroup.getChildAt(i), takingScreenshot);
- }
- } else if (view instanceof SurfaceView) {
- view.setWillNotDraw(!takingScreenshot);
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698