1
0
mirror of https://github.com/AllanWang/Frost-for-Facebook.git synced 2024-11-10 04:52:38 +01:00

Merge pull request #1534 from AllanWang/image-extension

Add image extension checker
This commit is contained in:
Allan Wang 2019-09-08 01:58:10 -07:00 committed by GitHub
commit f8b477b976
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 2 deletions

View File

@ -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())

View File

@ -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()}" }
}
}