Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f88b37f authored by stefan-niedermann's avatar stefan-niedermann
Browse files

#363 Context based formatting

- Use selection as link target instead of label when it starts with `http`
parent f89357e0
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package it.niedermann.owncloud.notes.util;

import android.graphics.Typeface;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.style.StyleSpan;
import android.util.SparseIntArray;
import android.view.ActionMode;
@@ -80,12 +81,22 @@ public class StyleCallback implements ActionMode.Callback {
                editText.setSelection(end + markdown.length() * 2);
                break;
            case R.id.link:
                boolean textToFormatIsLink = TextUtils.indexOf(editText.getText().subSequence(start, end), "http") == 0;
                if(textToFormatIsLink) {
                    ssb.insert(end, ")");
                    ssb.insert(start, "[](");
                } else {
                    ssb.insert(end, "]()");
                    ssb.insert(start, "[");
                }
                end++;
                ssb.setSpan(new StyleSpan(Typeface.NORMAL), start, end, 1);
                editText.setText(ssb);
                if(textToFormatIsLink) {
                    editText.setSelection(start + 1);
                } else {
                    editText.setSelection(end + 2); // after <end>](
                }
                return true;
        }
        return false;