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

Unified Diff: content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java

Issue 481683003: Support for Adaptive Handle Orientation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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: content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java b/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java
index 841a7081d434cd7e43f15b6ee46bd613b2a1b6c7..39dbf46776d30e887ed0bcd091a8af153dfc76a1 100644
--- a/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java
+++ b/content/public/android/java/src/org/chromium/content/browser/input/HandleViewResources.java
@@ -11,6 +11,7 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
import org.chromium.base.CalledByNative;
import org.chromium.base.JNINamespace;
@@ -32,19 +33,19 @@ public class HandleViewResources {
android.R.attr.textSelectHandleRight,
};
- public static Drawable getLeftHandleDrawable(Context context) {
- return getHandleDrawable(context, LEFT_HANDLE_ATTRS);
+ public static Drawable getLeftHandleDrawable(Context context, boolean invert) {
+ return getHandleDrawable(context, LEFT_HANDLE_ATTRS, invert);
}
- public static Drawable getCenterHandleDrawable(Context context) {
- return getHandleDrawable(context, CENTER_HANDLE_ATTRS);
+ public static Drawable getCenterHandleDrawable(Context context, boolean invert) {
+ return getHandleDrawable(context, CENTER_HANDLE_ATTRS, invert);
}
- public static Drawable getRightHandleDrawable(Context context) {
- return getHandleDrawable(context, RIGHT_HANDLE_ATTRS);
+ public static Drawable getRightHandleDrawable(Context context, boolean invert) {
+ return getHandleDrawable(context, RIGHT_HANDLE_ATTRS, invert);
}
- private static Drawable getHandleDrawable(Context context, final int[] attrs) {
+ private static Drawable getHandleDrawable(Context context, final int[] attrs, boolean invert) {
TypedArray a = context.getTheme().obtainStyledAttributes(attrs);
Drawable drawable = a.getDrawable(0);
if (drawable == null) {
@@ -57,7 +58,22 @@ public class HandleViewResources {
}
}
a.recycle();
- return drawable;
+ if (!invert) return drawable;
+ return invertDrawable(drawable, 180);
+ }
+
+ static Drawable invertDrawable(final Drawable drawable, final int angle) {
jdduke (slow) 2015/04/14 00:00:32 Can we move this code in to the PopupTouchHandleDr
AviD 2015/04/23 14:45:16 Done.
+ final Drawable[] drawableArray = {drawable};
+ return new LayerDrawable(drawableArray) {
+ @Override
+ public void draw(final Canvas canvas) {
+ canvas.save();
+ canvas.rotate(
jdduke (slow) 2015/04/14 00:00:32 Hmm, inverting is not the same as a 180 degree rot
AviD 2015/04/23 14:45:16 Done.
+ angle, drawable.getBounds().width() / 2, drawable.getBounds().height() / 2);
+ super.draw(canvas);
+ canvas.restore();
+ }
+ };
}
private static Bitmap getHandleBitmap(Context context, final int[] attrs) {
@@ -81,7 +97,7 @@ public class HandleViewResources {
if (bitmap != null) return bitmap;
}
- Drawable drawable = getHandleDrawable(context, attrs);
+ Drawable drawable = getHandleDrawable(context, attrs, false);
assert drawable != null;
final int width = drawable.getIntrinsicWidth();

Powered by Google App Engine
This is Rietveld 408576698