diff --git a/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java b/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java index 657815dafb66..b7b1389baa23 100644 --- a/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java +++ b/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragment.java @@ -3,9 +3,7 @@ import android.annotation.SuppressLint; import android.content.res.AssetManager; import android.os.Bundle; -import android.text.Editable; import android.text.Spanned; -import android.text.style.CharacterStyle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -21,6 +19,7 @@ import org.wordpress.android.util.AppLog; import org.wordpress.android.util.AppLog.T; import org.wordpress.android.util.helpers.MediaFile; +import org.wordpress.android.util.helpers.MediaGallery; import java.io.BufferedReader; import java.io.IOException; @@ -155,6 +154,11 @@ public void appendMediaFile(MediaFile mediaFile, String imageUrl, ImageLoader im // TODO } + @Override + public void appendGallery(MediaGallery mediaGallery) { + // TODO + } + @Override public Spanned getSpannedContent() { return null; diff --git a/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java b/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java index 227545c862e1..802139e27af1 100644 --- a/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java +++ b/WordPressEditor/src/main/java/org/wordpress/android/editor/EditorFragmentAbstract.java @@ -2,13 +2,12 @@ import android.app.Activity; import android.app.Fragment; -import android.text.Editable; import android.text.Spanned; -import android.text.style.CharacterStyle; import com.android.volley.toolbox.ImageLoader; import org.wordpress.android.util.helpers.MediaFile; +import org.wordpress.android.util.helpers.MediaGallery; public abstract class EditorFragmentAbstract extends Fragment { public abstract void setTitle(CharSequence text); @@ -16,6 +15,8 @@ public abstract class EditorFragmentAbstract extends Fragment { public abstract CharSequence getTitle(); public abstract CharSequence getContent(); public abstract void appendMediaFile(MediaFile mediaFile, String imageUrl, ImageLoader imageLoader); + public abstract void appendGallery(MediaGallery mediaGallery); + // TODO: remove this as soon as we can (we'll need to drop the legacy editor or fix html2spanned translation) public abstract Spanned getSpannedContent(); diff --git a/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java b/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java index 2734c95efbda..d2376434c831 100644 --- a/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java +++ b/WordPressEditor/src/main/java/org/wordpress/android/editor/LegacyEditorFragment.java @@ -60,6 +60,7 @@ import org.wordpress.android.util.ImageUtils; import org.wordpress.android.util.MediaUtils; import org.wordpress.android.util.helpers.MediaFile; +import org.wordpress.android.util.helpers.MediaGallery; import org.wordpress.android.util.helpers.MediaGalleryImageSpan; import org.wordpress.android.util.helpers.WPImageSpan; import org.wordpress.android.util.helpers.WPUnderlineSpan; @@ -1010,4 +1011,40 @@ public void appendMediaFile(MediaFile mediaFile, String imageUrl, ImageLoader im loadWPImageSpanThumbnail(mediaFile, imageUrl, imageLoader); } } + + public void appendGallery(MediaGallery mediaGallery) { + Editable editableText = mContentEditText.getText(); + if (editableText == null) { + return; + } + + int selectionStart = mContentEditText.getSelectionStart(); + int selectionEnd = mContentEditText.getSelectionEnd(); + + if (selectionStart > selectionEnd) { + int temp = selectionEnd; + selectionEnd = selectionStart; + selectionStart = temp; + } + + int line, column = 0; + if (mContentEditText.getLayout() != null) { + line = mContentEditText.getLayout().getLineForOffset(selectionStart); + column = mContentEditText.getSelectionStart() - mContentEditText.getLayout().getLineStart(line); + } + + if (column != 0) { + // insert one line break if the cursor is not at the first column + editableText.insert(selectionEnd, "\n"); + selectionStart = selectionStart + 1; + selectionEnd = selectionEnd + 1; + } + + editableText.insert(selectionStart, " "); + MediaGalleryImageSpan is = new MediaGalleryImageSpan(getActivity(), mediaGallery, R.drawable.ab_icon_edit); + editableText.setSpan(is, selectionStart, selectionEnd + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + AlignmentSpan.Standard as = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER); + editableText.setSpan(as, selectionStart, selectionEnd + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + editableText.insert(selectionEnd + 1, "\n\n"); + } }