aboutsummaryrefslogtreecommitdiff
path: root/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/legacy/WPEditImageSpan.java
diff options
context:
space:
mode:
Diffstat (limited to 'libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/legacy/WPEditImageSpan.java')
-rw-r--r--libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/legacy/WPEditImageSpan.java74
1 files changed, 74 insertions, 0 deletions
diff --git a/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/legacy/WPEditImageSpan.java b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/legacy/WPEditImageSpan.java
new file mode 100644
index 000000000..25bc33894
--- /dev/null
+++ b/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/legacy/WPEditImageSpan.java
@@ -0,0 +1,74 @@
+package org.wordpress.android.editor.legacy;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.net.Uri;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import org.wordpress.android.editor.R;
+import org.wordpress.android.util.helpers.MediaFile;
+import org.wordpress.android.util.helpers.WPImageSpan;
+
+public class WPEditImageSpan extends WPImageSpan {
+ private Bitmap mEditIconBitmap;
+
+ protected WPEditImageSpan() {
+ super();
+ }
+
+ public WPEditImageSpan(Context context, Bitmap b, Uri src) {
+ super(context, b, src);
+ init(context);
+ }
+
+ public WPEditImageSpan(Context context, int resId, Uri src) {
+ super(context, resId, src);
+ init(context);
+ }
+
+ private void init(Context context) {
+ if (context != null) {
+ mEditIconBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ab_icon_edit);
+ }
+ }
+
+ @Override
+ public void draw(Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom,
+ Paint paint) {
+ super.draw(canvas, text, start, end, x, top, y, bottom, paint);
+
+ if (mEditIconBitmap != null && !mMediaFile.isVideo()) {
+ // Add 'edit' icon at bottom right of image
+ int width = getSize(paint, text, start, end, paint.getFontMetricsInt());
+ float editIconXPosition = (x + width) - mEditIconBitmap.getWidth();
+ float editIconYPosition = bottom - mEditIconBitmap.getHeight();
+
+ // Add a black background with a bit of alpha
+ Paint bgPaint = new Paint();
+ bgPaint.setColor(Color.argb(200, 0, 0, 0));
+ canvas.drawRect(editIconXPosition, editIconYPosition, editIconXPosition + mEditIconBitmap.getWidth(),
+ editIconYPosition + mEditIconBitmap.getHeight(), bgPaint);
+
+ // Add the icon to the canvas
+ canvas.drawBitmap(mEditIconBitmap, editIconXPosition, editIconYPosition, paint);
+ }
+ }
+
+ public static final Parcelable.Creator<WPEditImageSpan> CREATOR = new Parcelable.Creator<WPEditImageSpan>() {
+ public WPEditImageSpan createFromParcel(Parcel in) {
+ WPEditImageSpan editSpan = new WPEditImageSpan();
+ editSpan.setupFromParcel(in);
+
+ return editSpan;
+ }
+
+ public WPEditImageSpan[] newArray(int size) {
+ return new WPEditImageSpan[size];
+ }
+ };
+}