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

Unified Diff: blimp/client/app/android/java/src/org/chromium/blimp/BlimpView.java

Issue 2493333002: Move Java Blimp shell code to app subpackage (Closed)
Patch Set: Merge branch 'refs/heads/master' into blimp-shell-integration Created 4 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: blimp/client/app/android/java/src/org/chromium/blimp/BlimpView.java
diff --git a/blimp/client/app/android/java/src/org/chromium/blimp/BlimpView.java b/blimp/client/app/android/java/src/org/chromium/blimp/BlimpView.java
deleted file mode 100644
index aaa555b17997afc0d456d89e57c49159ecca917b..0000000000000000000000000000000000000000
--- a/blimp/client/app/android/java/src/org/chromium/blimp/BlimpView.java
+++ /dev/null
@@ -1,207 +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.blimp;
-
-import android.content.Context;
-import android.graphics.Color;
-import android.graphics.Point;
-import android.os.Build;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.Surface;
-import android.view.SurfaceHolder;
-import android.view.SurfaceView;
-import android.view.View;
-import android.view.WindowManager;
-
-import org.chromium.base.annotations.CalledByNative;
-import org.chromium.base.annotations.JNINamespace;
-import org.chromium.blimp.session.BlimpClientSession;
-import org.chromium.ui.UiUtils;
-
-/**
- * A {@link View} that will visually represent the Blimp rendered content. This {@link View} starts
- * a native compositor.
- */
-@JNINamespace("blimp::client::app")
-public class BlimpView
- extends SurfaceView implements SurfaceHolder.Callback, View.OnLayoutChangeListener {
- private long mNativeBlimpViewPtr;
-
- /**
- * Builds a new {@link BlimpView}.
- * @param context A {@link Context} instance.
- * @param attrs An {@link AttributeSet} instance.
- */
- public BlimpView(Context context, AttributeSet attrs) {
- super(context, attrs);
- setFocusable(true);
- setFocusableInTouchMode(true);
- addOnLayoutChangeListener(this);
- }
-
- /**
- * Starts up rendering for this {@link View}. This will start up the native compositor and will
- * display it's contents.
- * @param blimpClientSession The {@link BlimpClientSession} that contains the content-lite
- * features required by the native components of the compositor.
- */
- public void initializeRenderer(BlimpClientSession blimpClientSession) {
- assert mNativeBlimpViewPtr == 0;
-
- WindowManager windowManager =
- (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
- Point displaySize = new Point();
- windowManager.getDefaultDisplay().getSize(displaySize);
- Point physicalSize = new Point();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
- windowManager.getDefaultDisplay().getRealSize(physicalSize);
- }
- float deviceScaleFactor = getContext().getResources().getDisplayMetrics().density;
- mNativeBlimpViewPtr = nativeInit(blimpClientSession, physicalSize.x, physicalSize.y,
- displaySize.x, displaySize.y, deviceScaleFactor);
- getHolder().addCallback(this);
- setBackgroundColor(Color.WHITE);
- setVisibility(VISIBLE);
- }
-
- /**
- * Stops rendering for this {@link View} and destroys all internal state. This {@link View}
- * should not be used after this.
- */
- public void destroyRenderer() {
- getHolder().removeCallback(this);
- if (mNativeBlimpViewPtr != 0) {
- nativeDestroy(mNativeBlimpViewPtr);
- mNativeBlimpViewPtr = 0;
- }
- }
-
- // View.OnLayoutChangeListener implementation.
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft,
- int oldTop, int oldRight, int oldBottom) {
- if (mNativeBlimpViewPtr == 0) return;
- nativeOnContentAreaSizeChanged(mNativeBlimpViewPtr, right - left, bottom - top,
- getContext().getResources().getDisplayMetrics().density);
- }
-
- // View overrides.
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (mNativeBlimpViewPtr == 0) return false;
-
- int eventAction = event.getActionMasked();
-
- // Close the IME. It might be open for typing URL into toolbar.
- // TODO(shaktisahu): Detect if the IME was open and return immediately (crbug/606977)
- UiUtils.hideKeyboard(this);
-
- if (!isValidTouchEventActionForNative(eventAction)) return false;
-
- int pointerCount = event.getPointerCount();
-
- float[] touchMajor = {event.getTouchMajor(), pointerCount > 1 ? event.getTouchMajor(1) : 0};
- float[] touchMinor = {event.getTouchMinor(), pointerCount > 1 ? event.getTouchMinor(1) : 0};
-
- for (int i = 0; i < 2; i++) {
- if (touchMajor[i] < touchMinor[i]) {
- float tmp = touchMajor[i];
- touchMajor[i] = touchMinor[i];
- touchMinor[i] = tmp;
- }
- }
-
- boolean consumed = nativeOnTouchEvent(mNativeBlimpViewPtr, event,
- event.getEventTime(), eventAction,
- pointerCount, event.getHistorySize(), event.getActionIndex(),
- event.getX(), event.getY(),
- pointerCount > 1 ? event.getX(1) : 0,
- pointerCount > 1 ? event.getY(1) : 0,
- event.getPointerId(0), pointerCount > 1 ? event.getPointerId(1) : -1,
- touchMajor[0], touchMajor[1],
- touchMinor[0], touchMinor[1],
- event.getOrientation(), pointerCount > 1 ? event.getOrientation(1) : 0,
- event.getAxisValue(MotionEvent.AXIS_TILT),
- pointerCount > 1 ? event.getAxisValue(MotionEvent.AXIS_TILT, 1) : 0,
- event.getRawX(), event.getRawY(),
- event.getToolType(0),
- pointerCount > 1 ? event.getToolType(1) : MotionEvent.TOOL_TYPE_UNKNOWN,
- event.getButtonState(),
- event.getMetaState());
-
- return consumed;
- }
-
- // SurfaceView overrides.
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
-
- setZOrderMediaOverlay(true);
- setVisibility(GONE);
- }
-
- // SurfaceHolder.Callback2 interface.
- @Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
- if (mNativeBlimpViewPtr == 0) return;
- nativeOnSurfaceChanged(mNativeBlimpViewPtr, format, width, height, holder.getSurface());
- }
-
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- if (mNativeBlimpViewPtr == 0) return;
- nativeOnSurfaceCreated(mNativeBlimpViewPtr);
- }
-
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) {
- if (mNativeBlimpViewPtr == 0) return;
- nativeOnSurfaceDestroyed(mNativeBlimpViewPtr);
- }
-
- private static boolean isValidTouchEventActionForNative(int eventAction) {
- // Only these actions have any effect on gesture detection. Other
- // actions have no corresponding WebTouchEvent type and may confuse the
- // touch pipline, so we ignore them entirely.
- return eventAction == MotionEvent.ACTION_DOWN
- || eventAction == MotionEvent.ACTION_UP
- || eventAction == MotionEvent.ACTION_CANCEL
- || eventAction == MotionEvent.ACTION_MOVE
- || eventAction == MotionEvent.ACTION_POINTER_DOWN
- || eventAction == MotionEvent.ACTION_POINTER_UP;
- }
-
- @CalledByNative
- public void onSwapBuffersCompleted() {
- if (getBackground() == null) return;
-
- setBackgroundResource(0);
- }
-
- // Native Methods
- private native long nativeInit(BlimpClientSession blimpClientSession, int physicalWidth,
- int physicalHeight, int displayWidth, int displayHeight, float dpToPixel);
- private native void nativeDestroy(long nativeBlimpView);
- private native void nativeOnContentAreaSizeChanged(
- long nativeBlimpView, int width, int height, float dpToPx);
- private native void nativeOnSurfaceChanged(
- long nativeBlimpView, int format, int width, int height, Surface surface);
- private native void nativeOnSurfaceCreated(long nativeBlimpView);
- private native void nativeOnSurfaceDestroyed(long nativeBlimpView);
- private native boolean nativeOnTouchEvent(
- long nativeBlimpView, MotionEvent event,
- long timeMs, int action, int pointerCount, int historySize, int actionIndex,
- float x0, float y0, float x1, float y1,
- int pointerId0, int pointerId1,
- float touchMajor0, float touchMajor1,
- float touchMinor0, float touchMinor1,
- float orientation0, float orientation1,
- float tilt0, float tilt1,
- float rawX, float rawY,
- int androidToolType0, int androidToolType1,
- int androidButtonState, int androidMetaState);
-}

Powered by Google App Engine
This is Rietveld 408576698