fix(android): detekt -- parseHhMmSs ReturnCount/MagicNumber + readUntilEndTag jumps
android / Build + lint + test (push) Failing after 3m5s
android / Build + lint + test (push) Failing after 3m5s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+7
-4
@@ -184,11 +184,13 @@ class AVTransportClient(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun parseHhMmSs(raw: String): Long {
|
private fun parseHhMmSs(raw: String): Long {
|
||||||
if (raw.isBlank()) return 0L
|
|
||||||
val parts = raw.split(':').mapNotNull { it.trim().toLongOrNull() }
|
val parts = raw.split(':').mapNotNull { it.trim().toLongOrNull() }
|
||||||
if (parts.size != 3) return 0L
|
return if (parts.size == EXPECTED_HMS_PARTS) {
|
||||||
val (h, m, s) = parts
|
val (h, m, s) = parts
|
||||||
return ((h * SECONDS_PER_HOUR) + (m * SECONDS_PER_MINUTE) + s) * MILLIS_PER_SECOND
|
((h * SECONDS_PER_HOUR) + (m * SECONDS_PER_MINUTE) + s) * MILLIS_PER_SECOND
|
||||||
|
} else {
|
||||||
|
0L
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
@@ -196,6 +198,7 @@ class AVTransportClient(
|
|||||||
const val MILLIS_PER_SECOND = 1000L
|
const val MILLIS_PER_SECOND = 1000L
|
||||||
const val SECONDS_PER_MINUTE = 60L
|
const val SECONDS_PER_MINUTE = 60L
|
||||||
const val SECONDS_PER_HOUR = 3600L
|
const val SECONDS_PER_HOUR = 3600L
|
||||||
|
const val EXPECTED_HMS_PARTS = 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+21
-13
@@ -127,33 +127,41 @@ class SoapClient(
|
|||||||
private fun readUntilEndTag(parser: XmlPullParser, tagName: String): String {
|
private fun readUntilEndTag(parser: XmlPullParser, tagName: String): String {
|
||||||
val sb = StringBuilder()
|
val sb = StringBuilder()
|
||||||
var depth = 1
|
var depth = 1
|
||||||
while (depth > 0) {
|
var done = false
|
||||||
|
while (!done && depth > 0) {
|
||||||
when (parser.next()) {
|
when (parser.next()) {
|
||||||
XmlPullParser.START_TAG -> {
|
XmlPullParser.START_TAG -> {
|
||||||
sb.append('<').append(parser.name)
|
appendStartTag(sb, parser)
|
||||||
for (i in 0 until parser.attributeCount) {
|
|
||||||
sb.append(' ')
|
|
||||||
.append(parser.getAttributeName(i))
|
|
||||||
.append("=\"")
|
|
||||||
.append(parser.getAttributeValue(i))
|
|
||||||
.append('"')
|
|
||||||
}
|
|
||||||
sb.append('>')
|
|
||||||
depth += 1
|
depth += 1
|
||||||
}
|
}
|
||||||
XmlPullParser.END_TAG -> {
|
XmlPullParser.END_TAG -> {
|
||||||
depth -= 1
|
depth -= 1
|
||||||
if (depth == 0 && parser.name == tagName) break
|
if (depth == 0 && parser.name == tagName) {
|
||||||
sb.append("</").append(parser.name).append('>')
|
done = true
|
||||||
|
} else {
|
||||||
|
sb.append("</").append(parser.name).append('>')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
XmlPullParser.TEXT -> sb.append(parser.text.orEmpty())
|
XmlPullParser.TEXT -> sb.append(parser.text.orEmpty())
|
||||||
XmlPullParser.END_DOCUMENT -> break
|
XmlPullParser.END_DOCUMENT -> done = true
|
||||||
else -> Unit
|
else -> Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sb.toString()
|
return sb.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun appendStartTag(sb: StringBuilder, parser: XmlPullParser) {
|
||||||
|
sb.append('<').append(parser.name)
|
||||||
|
for (i in 0 until parser.attributeCount) {
|
||||||
|
sb.append(' ')
|
||||||
|
.append(parser.getAttributeName(i))
|
||||||
|
.append("=\"")
|
||||||
|
.append(parser.getAttributeValue(i))
|
||||||
|
.append('"')
|
||||||
|
}
|
||||||
|
sb.append('>')
|
||||||
|
}
|
||||||
|
|
||||||
private fun faultCodeOf(body: String): String =
|
private fun faultCodeOf(body: String): String =
|
||||||
extractBetween(body, "<errorCode>", "</errorCode>") ?: "unknown"
|
extractBetween(body, "<errorCode>", "</errorCode>") ?: "unknown"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user