mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-05-02 15:44:24 +02:00
feat(core/chat_action_menu): debug media headers
This commit is contained in:
parent
d91641d394
commit
53204a2b42
@ -2,6 +2,7 @@ package me.rhunk.snapenhance.common.util.snap
|
|||||||
|
|
||||||
import me.rhunk.snapenhance.common.Constants
|
import me.rhunk.snapenhance.common.Constants
|
||||||
import me.rhunk.snapenhance.common.logger.AbstractLogger
|
import me.rhunk.snapenhance.common.logger.AbstractLogger
|
||||||
|
import okhttp3.Headers
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
@ -66,4 +67,9 @@ object RemoteMediaResolver {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getMediaHeaders(protoKey: ByteArray): Headers {
|
||||||
|
val request = newResolveRequest(protoKey)
|
||||||
|
return okHttpClient.newCall(request.newBuilder().method("HEAD", null).build()).execute().headers
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package me.rhunk.snapenhance.core.ui.menu.impl
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.text.format.Formatter
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
import android.view.ViewGroup.MarginLayoutParams
|
||||||
@ -19,6 +20,7 @@ import androidx.compose.ui.unit.dp
|
|||||||
import me.rhunk.snapenhance.common.data.ContentType
|
import me.rhunk.snapenhance.common.data.ContentType
|
||||||
import me.rhunk.snapenhance.common.ui.createComposeView
|
import me.rhunk.snapenhance.common.ui.createComposeView
|
||||||
import me.rhunk.snapenhance.common.util.protobuf.ProtoReader
|
import me.rhunk.snapenhance.common.util.protobuf.ProtoReader
|
||||||
|
import me.rhunk.snapenhance.common.util.snap.RemoteMediaResolver
|
||||||
import me.rhunk.snapenhance.core.features.impl.downloader.MediaDownloader
|
import me.rhunk.snapenhance.core.features.impl.downloader.MediaDownloader
|
||||||
import me.rhunk.snapenhance.core.features.impl.downloader.decoder.MessageDecoder
|
import me.rhunk.snapenhance.core.features.impl.downloader.decoder.MessageDecoder
|
||||||
import me.rhunk.snapenhance.core.features.impl.experiments.ConvertMessageLocally
|
import me.rhunk.snapenhance.core.features.impl.experiments.ConvertMessageLocally
|
||||||
@ -36,6 +38,8 @@ import me.rhunk.snapenhance.core.util.ktx.getDimens
|
|||||||
import me.rhunk.snapenhance.core.util.ktx.vibrateLongPress
|
import me.rhunk.snapenhance.core.util.ktx.vibrateLongPress
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
|
import kotlin.io.encoding.Base64
|
||||||
|
import kotlin.io.encoding.ExperimentalEncodingApi
|
||||||
|
|
||||||
|
|
||||||
@SuppressLint("DiscouragedApi")
|
@SuppressLint("DiscouragedApi")
|
||||||
@ -93,7 +97,7 @@ class ChatActionMenu : AbstractMenu() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalLayoutApi::class)
|
@OptIn(ExperimentalLayoutApi::class, ExperimentalEncodingApi::class)
|
||||||
@SuppressLint("SetTextI18n", "DiscouragedApi", "ClickableViewAccessibility")
|
@SuppressLint("SetTextI18n", "DiscouragedApi", "ClickableViewAccessibility")
|
||||||
override fun inject(parent: ViewGroup, view: View, viewConsumer: (View) -> Unit) {
|
override fun inject(parent: ViewGroup, view: View, viewConsumer: (View) -> Unit) {
|
||||||
val viewGroup = parent.parent.parent as? ViewGroup ?: return
|
val viewGroup = parent.parent.parent as? ViewGroup ?: return
|
||||||
@ -256,6 +260,12 @@ class ChatActionMenu : AbstractMenu() {
|
|||||||
append("duration: $it\n")
|
append("duration: $it\n")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
runCatching {
|
||||||
|
val mediaHeaders = RemoteMediaResolver.getMediaHeaders(Base64.UrlSafe.decode(attachment.mediaUrlKey ?: return@runCatching))
|
||||||
|
append("content-type: ${mediaHeaders["content-type"]}\n")
|
||||||
|
append("content-length: ${Formatter.formatShortFileSize(context.androidContext, mediaHeaders["content-length"]?.toLongOrNull() ?: 0)}\n")
|
||||||
|
append("creation-date: ${mediaHeaders["last-modified"]}\n")
|
||||||
|
}
|
||||||
}.toString()
|
}.toString()
|
||||||
}.joinToString("\n\n")
|
}.joinToString("\n\n")
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user