MCPcopy Create free account
hub / github.com/M66B/FairEmail / splitSpan

Method splitSpan

app/src/main/java/eu/faircode/email/StyleHelper.java:1488–1539  ·  view source on GitHub ↗
(Editable edit, int start, int end, int s, int e, int f, boolean extend, Object span1, Object span2)

Source from the content-addressed store, hash-verified

1486 }
1487
1488 static boolean splitSpan(Editable edit, int start, int end, int s, int e, int f, boolean extend, Object span1, Object span2) {
1489 if (start < 0 || end < 0) {
1490 Log.e(span1 + " invalid selection=" + start + "..." + end);
1491 return false;
1492 }
1493
1494 if (s < 0 || e < 0) {
1495 Log.e(span1 + " not attached=" + s + "..." + e);
1496 return false;
1497 }
1498
1499 if (s > e) {
1500 int tmp = s;
1501 s = e;
1502 e = tmp;
1503 }
1504
1505 if (start < s && end > s && end < e) {
1506 // overlap before
1507 if (extend)
1508 edit.setSpan(span1, start, e, f);
1509 else
1510 edit.setSpan(span1, end, e, f);
1511 return true;
1512 } else if (start < e && end > e && start > s) {
1513 // overlap after
1514 if (extend)
1515 edit.setSpan(span1, s, end, f);
1516 else
1517 edit.setSpan(span1, s, start, f);
1518 return true;
1519 } else if (start < s && end > e) {
1520 // overlap all
1521 if (extend) {
1522 edit.setSpan(span1, start, end, f);
1523 return true;
1524 }
1525 } else if (start >= s && end <= e) {
1526 if (start == s && end == e)
1527 return true;
1528
1529 // overlap inner
1530 if (s < start)
1531 edit.setSpan(span1, s, start, f);
1532 if (end < e)
1533 edit.setSpan(span2, end, e, f);
1534 if (s < start || end < e)
1535 return true;
1536 }
1537
1538 return false;
1539 }
1540
1541 static void setSpan(Editable edit, Object span, int start, int end, int flags, Context context) {
1542 if (span instanceof CharacterStyle)

Callers 10

setBoldItalicMethod · 0.95
setUnderlineMethod · 0.95
setSizeMethod · 0.95
setBackgroundMethod · 0.95
setColorMethod · 0.95
setFontMethod · 0.95
setMarkMethod · 0.95
setSubscriptMethod · 0.95
setSuperscriptMethod · 0.95
setStrikeThroughMethod · 0.95

Calls 2

eMethod · 0.95
setSpanMethod · 0.45

Tested by

no test coverage detected