(EditText etBody, int start, int end, boolean select)
| 1402 | } |
| 1403 | |
| 1404 | static boolean clear(EditText etBody, int start, int end, boolean select) { |
| 1405 | Log.breadcrumb("style", "action", "clear"); |
| 1406 | |
| 1407 | int e = end; |
| 1408 | |
| 1409 | // Expand to paragraph (block quotes) |
| 1410 | Editable edit = etBody.getText(); |
| 1411 | if (e + 1 < edit.length() && edit.charAt(e) == '\n') |
| 1412 | e++; |
| 1413 | |
| 1414 | for (Object span : edit.getSpans(start, e, Object.class)) { |
| 1415 | boolean has = false; |
| 1416 | for (Class<?> cls : CLEAR_STYLES) |
| 1417 | if (cls.isAssignableFrom(span.getClass())) { |
| 1418 | has = true; |
| 1419 | break; |
| 1420 | } |
| 1421 | if (!has) |
| 1422 | continue; |
| 1423 | |
| 1424 | int sstart = edit.getSpanStart(span); |
| 1425 | int send = edit.getSpanEnd(span); |
| 1426 | int flags = edit.getSpanFlags(span); |
| 1427 | |
| 1428 | if (sstart < start && send > start) |
| 1429 | setSpan(edit, span, sstart, start, flags, etBody.getContext()); |
| 1430 | if (sstart < end && send > end) |
| 1431 | setSpan(edit, span, e, send, flags, etBody.getContext()); |
| 1432 | |
| 1433 | edit.removeSpan(span); |
| 1434 | } |
| 1435 | |
| 1436 | etBody.setText(edit); |
| 1437 | etBody.setSelection(select ? start : end, end); |
| 1438 | |
| 1439 | return true; |
| 1440 | } |
| 1441 | |
| 1442 | static boolean clearAll(EditText etBody, int start, int end, boolean select) { |
| 1443 | Log.breadcrumb("style", "action", "clear/all"); |
no test coverage detected