SubwayTooter-Android-App/app/src/main/java/jp/juggler/subwaytooter/util/UserAgent.kt

31 lines
947 B
Kotlin

package jp.juggler.subwaytooter.util
import android.content.Context
import android.os.Build
import jp.juggler.subwaytooter.App1
import jp.juggler.subwaytooter.pref.PrefS
import jp.juggler.util.data.asciiPattern
import jp.juggler.util.getPackageInfoCompat
val reNotAllowedInUserAgent = "[^\\x21-\\x7e]+".asciiPattern()
fun Context.userAgentDefault(): String {
val versionName = try {
packageManager.getPackageInfoCompat(packageName)!!.versionName
} catch (ex: Throwable) {
App1.log.e(ex, "can't get versionName.")
"0.0.0"
}
return "SubwayTooter/${versionName} Android/${Build.VERSION.RELEASE}"
}
fun Context.getUserAgent(): String {
val userAgentCustom = PrefS.spUserAgent.value
return when {
userAgentCustom.isNotEmpty() && !reNotAllowedInUserAgent.matcher(userAgentCustom)
.find() -> userAgentCustom
else -> userAgentDefault()
}
}