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

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

Issue 2175353003: [Remoting Android] Define feedback animation size in dp (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reviewer's Feedback Created 4 years, 5 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/GlDesktopView.java
diff --git a/remoting/android/java/src/org/chromium/chromoting/GlDesktopView.java b/remoting/android/java/src/org/chromium/chromoting/GlDesktopView.java
index 439eeab6d21644f38faa9a2f30daa45bccf665a7..79ba3112755bd1407d5958ab6b85c383a6ebca0f 100644
--- a/remoting/android/java/src/org/chromium/chromoting/GlDesktopView.java
+++ b/remoting/android/java/src/org/chromium/chromoting/GlDesktopView.java
@@ -6,6 +6,7 @@ package org.chromium.chromoting;
import android.graphics.Point;
import android.view.SurfaceHolder;
+import android.view.View;
import org.chromium.chromoting.jni.Client;
import org.chromium.chromoting.jni.GlDisplay;
@@ -20,6 +21,9 @@ public class GlDesktopView extends AbstractDesktopView implements SurfaceHolder.
private Object mOnHostSizeChangedListenerKey;
private Object mOnCanvasRenderedListenerKey;
+ private static float sSmallFeedbackPixelDiameter = -1;
+ private static float sLargeFeedbackPixelDiameter = -1;
+
public GlDesktopView(GlDisplay display, Desktop desktop, Client client) {
super(desktop, client);
Preconditions.notNull(display);
@@ -28,23 +32,36 @@ public class GlDesktopView extends AbstractDesktopView implements SurfaceHolder.
getHolder().addCallback(this);
}
- @Override
- public void showInputFeedback(InputFeedbackType feedbackToShow, Point pos) {
- float diameter;
- // TODO(yuweih): diameter (and radius in DesktopView) should be defined in dp so that it is
- // DPI independent.
- switch (feedbackToShow) {
- case LARGE_ANIMATION:
- diameter = 320.f;
- break;
+ private static float getFeedbackDiameterInPixel(InputFeedbackType feedbackType, View view) {
+ // Note that the OpenGL renderer takes diameter as argument so the radius we got needs
+ // to be multiplied by 2.
+ switch (feedbackType) {
case SMALL_ANIMATION:
- diameter = 80.f;
- break;
+ if (sSmallFeedbackPixelDiameter < 0) {
+ sSmallFeedbackPixelDiameter = 2 * view.getResources()
+ .getDimensionPixelSize(R.dimen.feedback_animation_radius_small);
+ }
+ return sSmallFeedbackPixelDiameter;
+
+ case LARGE_ANIMATION:
+ if (sLargeFeedbackPixelDiameter < 0) {
+ sLargeFeedbackPixelDiameter = 2 * view.getResources()
+ .getDimensionPixelSize(R.dimen.feedback_animation_radius_large);
+ }
+ return sLargeFeedbackPixelDiameter;
+
default:
- return;
+ // Unreachable, but required by Google Java style and findbugs.
+ assert false : "Unreached";
+ return 0.0f;
}
+ }
+
+ @Override
+ public void showInputFeedback(InputFeedbackType feedbackType, Point pos) {
float scaleFactor = mRenderData.transform.mapRadius(1);
- mDisplay.showCursorInputFeedback(pos.x, pos.y, diameter / scaleFactor);
+ mDisplay.showCursorInputFeedback(pos.x, pos.y,
+ getFeedbackDiameterInPixel(feedbackType, this) / scaleFactor);
}
@Override

Powered by Google App Engine
This is Rietveld 408576698