Fixed filename generation that broke in StreamProxy after converting to

Kotlin.
This commit is contained in:
casey langen 2017-06-13 10:43:12 -07:00
parent ccd59ae92b
commit 10e35974f5

View File

@ -38,42 +38,43 @@ class StreamProxy private constructor(context: Context) {
val cachePath = File(context.externalCacheDir, "audio")
proxy = HttpProxyCacheServer.Builder(context.applicationContext)
.cacheDirectory(cachePath)
.maxCacheSize(CACHE_SETTING_TO_BYTES[diskCacheIndex] ?: MINIMUM_CACHE_SIZE_BYTES)
.headerInjector { url ->
val headers = HashMap<String, String>()
val userPass = "default:" + prefs.getString(Prefs.Key.PASSWORD, Prefs.Default.PASSWORD)!!
val encoded = Base64.encodeToString(userPass.toByteArray(), Base64.NO_WRAP)
headers.put("Authorization", "Basic " + encoded)
headers
}
.fileNameGenerator { url ->
try {
val uri = Uri.parse(url)
/* format is: audio/external_id/<id> */
val segments = uri.pathSegments
if (segments.size == 3 && "external_id" == segments[1]) {
/* url params, hyphen separated */
var params = uri.query
if (Strings.notEmpty(params)) {
params = "-" + params
.replace("?", "-")
.replace("&", "-")
.replace("=", "-")
}
else {
params = ""
}
"${segments[2]}-$params"
.cacheDirectory(cachePath)
.maxCacheSize(CACHE_SETTING_TO_BYTES[diskCacheIndex] ?: MINIMUM_CACHE_SIZE_BYTES)
.headerInjector { url ->
val headers = HashMap<String, String>()
val userPass = "default:" + prefs.getString(Prefs.Key.PASSWORD, Prefs.Default.PASSWORD)!!
val encoded = Base64.encodeToString(userPass.toByteArray(), Base64.NO_WRAP)
headers.put("Authorization", "Basic " + encoded)
headers
}
.fileNameGenerator gen@ { url ->
try {
val uri = Uri.parse(url)
/* format is: audio/external_id/<id> */
val segments = uri.pathSegments
if (segments.size == 3 && "external_id" == segments[1]) {
/* url params, hyphen separated */
var params = uri.query
if (Strings.notEmpty(params)) {
params = "-" + params
.replace("?", "-")
.replace("&", "-")
.replace("=", "-")
}
else {
params = ""
}
} catch (ex: Exception) {
/* eh... */
}
DEFAULT_FILENAME_GENERATOR.generate(url)
return@gen "${segments[2]}$params"
}
}
.build()
catch (ex: Exception) {
/* eh... */
}
return@gen DEFAULT_FILENAME_GENERATOR.generate(url)
}
.build()
}
companion object {