Search in sources :

Example 1 with EditorState

use of android.text.method.EditorState in project android_frameworks_base by DirtyUnicorns.

the class StaticLayoutTest method testEmojiOffset.

/**
     * Tests for keycap, variation selectors, flags are in CTS.
     * See {@link android.text.cts.StaticLayoutTest}.
     */
public void testEmojiOffset() {
    EditorState state = new EditorState();
    TextPaint paint = new TextPaint();
    // Odd numbered regional indicator symbols.
    // U+1F1E6 is REGIONAL INDICATOR SYMBOL LETTER A, U+1F1E8 is REGIONAL INDICATOR SYMBOL
    // LETTER C.
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    // Zero width sequence
    final String zwjSequence = "U+1F468 U+200D U+2764 U+FE0F U+200D U+1F468";
    state.setByString("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    // Emoji modifiers
    // U+261D is WHITE UP POINTING INDEX, U+1F3FB is EMOJI MODIFIER FITZPATRICK TYPE-1-2.
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
}
Also used : EditorState(android.text.method.EditorState) TextPaint(android.text.TextPaint)

Example 2 with EditorState

use of android.text.method.EditorState in project android_frameworks_base by AOSPA.

the class StaticLayoutTest method testEmojiOffset.

/**
     * Tests for keycap, variation selectors, flags are in CTS.
     * See {@link android.text.cts.StaticLayoutTest}.
     */
public void testEmojiOffset() {
    EditorState state = new EditorState();
    TextPaint paint = new TextPaint();
    // Odd numbered regional indicator symbols.
    // U+1F1E6 is REGIONAL INDICATOR SYMBOL LETTER A, U+1F1E8 is REGIONAL INDICATOR SYMBOL
    // LETTER C.
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    // Zero width sequence
    final String zwjSequence = "U+1F468 U+200D U+2764 U+FE0F U+200D U+1F468";
    state.setByString("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    // Emoji modifiers
    // U+261D is WHITE UP POINTING INDEX, U+1F3FB is EMOJI MODIFIER FITZPATRICK TYPE-1-2.
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
}
Also used : EditorState(android.text.method.EditorState) TextPaint(android.text.TextPaint)

Example 3 with EditorState

use of android.text.method.EditorState in project android_frameworks_base by crdroidandroid.

the class StaticLayoutTest method testEmojiOffset.

/**
     * Tests for keycap, variation selectors, flags are in CTS.
     * See {@link android.text.cts.StaticLayoutTest}.
     */
public void testEmojiOffset() {
    EditorState state = new EditorState();
    TextPaint paint = new TextPaint();
    // Odd numbered regional indicator symbols.
    // U+1F1E6 is REGIONAL INDICATOR SYMBOL LETTER A, U+1F1E8 is REGIONAL INDICATOR SYMBOL
    // LETTER C.
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    // Zero width sequence
    final String zwjSequence = "U+1F468 U+200D U+2764 U+FE0F U+200D U+1F468";
    state.setByString("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    // Emoji modifiers
    // U+261D is WHITE UP POINTING INDEX, U+1F3FB is EMOJI MODIFIER FITZPATRICK TYPE-1-2.
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
}
Also used : EditorState(android.text.method.EditorState) TextPaint(android.text.TextPaint)

Example 4 with EditorState

use of android.text.method.EditorState in project platform_frameworks_base by android.

the class StaticLayoutTest method testEmojiOffset.

/**
     * Tests for keycap, variation selectors, flags are in CTS.
     * See {@link android.text.cts.StaticLayoutTest}.
     */
public void testEmojiOffset() {
    EditorState state = new EditorState();
    TextPaint paint = new TextPaint();
    // Odd numbered regional indicator symbols.
    // U+1F1E6 is REGIONAL INDICATOR SYMBOL LETTER A, U+1F1E8 is REGIONAL INDICATOR SYMBOL
    // LETTER C.
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    // Zero width sequence
    final String zwjSequence = "U+1F468 U+200D U+2764 U+FE0F U+200D U+1F468";
    state.setByString("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    // Emoji modifiers
    // U+261D is WHITE UP POINTING INDEX, U+1F3FB is EMOJI MODIFIER FITZPATRICK TYPE-1-2.
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
}
Also used : EditorState(android.text.method.EditorState) TextPaint(android.text.TextPaint)

Example 5 with EditorState

use of android.text.method.EditorState in project android_frameworks_base by ResurrectionRemix.

the class StaticLayoutTest method testEmojiOffset.

/**
     * Tests for keycap, variation selectors, flags are in CTS.
     * See {@link android.text.cts.StaticLayoutTest}.
     */
public void testEmojiOffset() {
    EditorState state = new EditorState();
    TextPaint paint = new TextPaint();
    // Odd numbered regional indicator symbols.
    // U+1F1E6 is REGIONAL INDICATOR SYMBOL LETTER A, U+1F1E8 is REGIONAL INDICATOR SYMBOL
    // LETTER C.
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6 |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 | U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+1F1E6 U+1F1E8 | U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+1F1E6 U+1F1E8 U+1F1E6 U+1F1E8 U+1F1E6");
    moveCursorToLeftCursorableOffset(state, paint);
    // Zero width sequence
    final String zwjSequence = "U+1F468 U+200D U+2764 U+FE0F U+200D U+1F468";
    state.setByString("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToRightCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " " + zwjSequence + " |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " " + zwjSequence + " | " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals(zwjSequence + " | " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    state.assertEquals("| " + zwjSequence + " " + zwjSequence + " " + zwjSequence);
    moveCursorToLeftCursorableOffset(state, paint);
    // Emoji modifiers
    // U+261D is WHITE UP POINTING INDEX, U+1F3FB is EMOJI MODIFIER FITZPATRICK TYPE-1-2.
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToRightCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB |");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB U+261D U+1F3FB | U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("U+261D U+1F3FB | U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
    state.setByString("| U+261D U+1F3FB U+261D U+1F3FB U+261D U+1F3FB");
    moveCursorToLeftCursorableOffset(state, paint);
}
Also used : EditorState(android.text.method.EditorState) TextPaint(android.text.TextPaint)

Aggregations

TextPaint (android.text.TextPaint)5 EditorState (android.text.method.EditorState)5