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

Unified Diff: remoting/android/java/src/org/chromium/chromoting/DesktopView.java

Issue 2100943004: [Remoting Android] Make JniClient own JniDisplayHandler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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: remoting/android/java/src/org/chromium/chromoting/DesktopView.java
diff --git a/remoting/android/java/src/org/chromium/chromoting/DesktopView.java b/remoting/android/java/src/org/chromium/chromoting/DesktopView.java
index 04c07912b4ebb2415a0cf660714a7a74379831fa..3a7b36236e1f1eea3c9c7cb440c8559432ee2d85 100644
--- a/remoting/android/java/src/org/chromium/chromoting/DesktopView.java
+++ b/remoting/android/java/src/org/chromium/chromoting/DesktopView.java
@@ -23,6 +23,7 @@ import android.view.inputmethod.InputMethodManager;
import org.chromium.base.Log;
import org.chromium.chromoting.jni.Client;
+import org.chromium.chromoting.jni.Display;
/**
* The user interface for viewing and interacting with a specific remote host.
@@ -46,6 +47,8 @@ public class DesktopView extends SurfaceView implements DesktopViewInterface,
/** The Client connection, used to inject input and fetch the video frames. */
private Client mClient;
+ private Display mDisplay;
+
// Flag to prevent multiple repaint requests from being backed up. Requests for repainting will
// be dropped if this is already set to true. This is used by the main thread and the painting
@@ -90,10 +93,14 @@ public class DesktopView extends SurfaceView implements DesktopViewInterface,
public void init(Desktop desktop, Client client) {
Preconditions.isNull(mDesktop);
Preconditions.isNull(mClient);
+ Preconditions.isNull(mDisplay);
Preconditions.notNull(desktop);
Preconditions.notNull(client);
+ Preconditions.notNull(client.getDisplay());
+ Preconditions.isTrue(client.getDisplay() instanceof Display);
mDesktop = desktop;
mClient = client;
+ mDisplay = (Display) client.getDisplay();
mInputHandler.init(desktop, new InputEventSender(client));
}
@@ -121,7 +128,7 @@ public class DesktopView extends SurfaceView implements DesktopViewInterface,
}
mRepaintPending = true;
}
- mClient.getDisplay().redrawGraphics();
+ mDisplay.redrawGraphics();
}
/**
@@ -136,7 +143,7 @@ public class DesktopView extends SurfaceView implements DesktopViewInterface,
Log.w(TAG, "Canvas being redrawn on UI thread");
}
- Bitmap image = mClient.getDisplay().getVideoFrame();
+ Bitmap image = mDisplay.getVideoFrame();
if (image == null) {
// This can happen if the client is connected, but a complete video frame has not yet
// been decoded.
@@ -191,9 +198,9 @@ public class DesktopView extends SurfaceView implements DesktopViewInterface,
mOnPaint.raise(new PaintEventParameter(cursorPosition, canvas, scaleFactor));
if (drawCursor) {
- Bitmap cursorBitmap = mClient.getDisplay().getCursorBitmap();
+ Bitmap cursorBitmap = mDisplay.getCursorBitmap();
if (cursorBitmap != null) {
- Point hotspot = mClient.getDisplay().getCursorHotspot();
+ Point hotspot = mDisplay.getCursorHotspot();
canvas.drawBitmap(cursorBitmap, cursorPosition.x - hotspot.x,
cursorPosition.y - hotspot.y, new Paint());
}
@@ -243,7 +250,7 @@ public class DesktopView extends SurfaceView implements DesktopViewInterface,
}
public void attachRedrawCallback() {
- mClient.getDisplay().provideRedrawCallback(new Runnable() {
+ mDisplay.provideRedrawCallback(new Runnable() {
@Override
public void run() {
paint();

Powered by Google App Engine
This is Rietveld 408576698