diff options
author | Allan Wang <me@allanwang.ca> | 2019-09-08 01:58:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-08 01:58:10 -0700 |
commit | f8b477b976cf858e1fff5dbb8f9de26ef3de1cd4 (patch) | |
tree | 9814e7f3f6ad1fe1261a51d0f0f0a4cfc7a2cede /app | |
parent | 81c1a249b847121f9552b4b309dbe8c730de1c14 (diff) | |
parent | ed9dfdd76d90d1f9a4fd52d5f90ad790f671a776 (diff) | |
download | frost-f8b477b976cf858e1fff5dbb8f9de26ef3de1cd4.tar.gz frost-f8b477b976cf858e1fff5dbb8f9de26ef3de1cd4.tar.bz2 frost-f8b477b976cf858e1fff5dbb8f9de26ef3de1cd4.zip |
Merge pull request #1534 from AllanWang/image-extension
Add image extension checker
Diffstat (limited to 'app')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt | 19 | ||||
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt | 7 |
2 files changed, 24 insertions, 2 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt index 2e92c814..09620a54 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt @@ -112,6 +112,8 @@ class ImageActivity : KauBaseActivity() { private lateinit var dragHelper: ViewDragHelper + private var imgExtension: String = ".jpg" + companion object { /** * Cache folder to store images @@ -120,7 +122,6 @@ class ImageActivity : KauBaseActivity() { private const val IMAGE_FOLDER = "images" private const val TIME_FORMAT = "yyyyMMdd_HHmmss" private const val IMG_TAG = "Frost" - private const val IMG_EXTENSION = ".png" const val PURGE_TIME: Long = 10 * 60 * 1000 // 10 min block private val L = KauLoggerExtension("Image", com.pitchedapps.frost.utils.L) @@ -295,6 +296,18 @@ class ImageActivity : KauBaseActivity() { override fun clampViewPositionVertical(child: View, top: Int, dy: Int): Int = top } + private fun getImageExtension(type: String?): String? { + if (type?.startsWith("image/") != true) { + return null + } + return when (type.substring(6)) { + "jpeg" -> ".jpg" + "png" -> ".png" + "gif" -> ".gif" + else -> null + } + } + @Throws(IOException::class) private fun createPublicMediaFile(): File { val timeStamp = SimpleDateFormat(TIME_FORMAT, Locale.getDefault()).format(Date()) @@ -303,7 +316,7 @@ class ImageActivity : KauBaseActivity() { Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) val frostDir = File(storageDir, IMG_TAG) if (!frostDir.exists()) frostDir.mkdirs() - return File.createTempFile(imageFileName, IMG_EXTENSION, frostDir) + return File.createTempFile(imageFileName, imgExtension, frostDir) } /** @@ -353,6 +366,8 @@ class ImageActivity : KauBaseActivity() { throw IOException("Unsuccessful response for image: ${response.peekBody(128).string()}") } + imgExtension = getImageExtension(response.header("Content-Type")) ?: ".jpg" + val body = response.body() ?: throw IOException("Failed to retrieve image body") file.copyFromInputStream(body.byteStream()) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt index dd8cf594..e2fac291 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/L.kt @@ -18,6 +18,7 @@ package com.pitchedapps.frost.utils import android.util.Log import ca.allanwang.kau.logging.KauLogger +import ca.allanwang.kau.logging.KauLoggerExtension import com.bugsnag.android.Bugsnag import com.pitchedapps.frost.BuildConfig @@ -78,3 +79,9 @@ object L : KauLogger("Frost", { } } } + +fun KauLoggerExtension.test(message: () -> Any?) { + if (BuildConfig.DEBUG) { + d { "Test1234 ${message()}" } + } +}
\ No newline at end of file |