Loading build.gradle +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ buildscript { propMinSdkVersion = 16 propTargetSdkVersion = propCompileSdkVersion propVersionCode = 1 propVersionName = '4.6.0' propVersionName = '4.6.2' kotlin_version = '1.2.60' support_libs = '27.1.1' } Loading commons/src/main/kotlin/com/simplemobiletools/commons/extensions/String.kt +18 −5 Original line number Diff line number Diff line Loading @@ -228,17 +228,30 @@ fun String.substringTo(cnt: Int): String { } } fun String.highlightTextPart(textToHighlight: String, color: Int): SpannableString { fun String.highlightTextPart(textToHighlight: String, color: Int, highlightAll: Boolean = false): SpannableString { val spannableString = SpannableString(this) if (textToHighlight.isEmpty()) { return spannableString } val startIndex = indexOf(textToHighlight, 0, true) var startIndex = indexOf(textToHighlight, 0, true) val indexes = ArrayList<Int>() while (startIndex >= 0) { if (startIndex != -1) { val endIndex = Math.min(startIndex + textToHighlight.length, length) spannableString.setSpan(ForegroundColorSpan(color), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) indexes.add(startIndex) } startIndex = indexOf(textToHighlight, startIndex + textToHighlight.length, true) if (!highlightAll) { break } } indexes.forEach { val endIndex = Math.min(it + textToHighlight.length, length) spannableString.setSpan(ForegroundColorSpan(color), it, endIndex, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) } return spannableString } Loading Loading
build.gradle +1 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ buildscript { propMinSdkVersion = 16 propTargetSdkVersion = propCompileSdkVersion propVersionCode = 1 propVersionName = '4.6.0' propVersionName = '4.6.2' kotlin_version = '1.2.60' support_libs = '27.1.1' } Loading
commons/src/main/kotlin/com/simplemobiletools/commons/extensions/String.kt +18 −5 Original line number Diff line number Diff line Loading @@ -228,17 +228,30 @@ fun String.substringTo(cnt: Int): String { } } fun String.highlightTextPart(textToHighlight: String, color: Int): SpannableString { fun String.highlightTextPart(textToHighlight: String, color: Int, highlightAll: Boolean = false): SpannableString { val spannableString = SpannableString(this) if (textToHighlight.isEmpty()) { return spannableString } val startIndex = indexOf(textToHighlight, 0, true) var startIndex = indexOf(textToHighlight, 0, true) val indexes = ArrayList<Int>() while (startIndex >= 0) { if (startIndex != -1) { val endIndex = Math.min(startIndex + textToHighlight.length, length) spannableString.setSpan(ForegroundColorSpan(color), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) indexes.add(startIndex) } startIndex = indexOf(textToHighlight, startIndex + textToHighlight.length, true) if (!highlightAll) { break } } indexes.forEach { val endIndex = Math.min(it + textToHighlight.length, length) spannableString.setSpan(ForegroundColorSpan(color), it, endIndex, Spannable.SPAN_EXCLUSIVE_INCLUSIVE) } return spannableString } Loading