From 65af5656fb73f5c53c6cbec297533ed48ac53d2b Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Mon, 9 Oct 2023 01:36:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=81=B6=E7=8E=B0=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E6=97=B6=E9=97=AA=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tieba/post/components/NavSerializer.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 app/src/main/java/com/huanchengfly/tieba/post/components/NavSerializer.kt diff --git a/app/src/main/java/com/huanchengfly/tieba/post/components/NavSerializer.kt b/app/src/main/java/com/huanchengfly/tieba/post/components/NavSerializer.kt new file mode 100644 index 00000000..3b6739df --- /dev/null +++ b/app/src/main/java/com/huanchengfly/tieba/post/components/NavSerializer.kt @@ -0,0 +1,24 @@ +package com.huanchengfly.tieba.post.components + +import android.util.Log +import com.huanchengfly.tieba.post.api.models.protos.ThreadInfo +import com.huanchengfly.tieba.post.api.urlDecode +import com.huanchengfly.tieba.post.api.urlEncode +import com.ramcosta.composedestinations.navargs.DestinationsNavTypeSerializer +import com.ramcosta.composedestinations.navargs.NavTypeSerializer +import com.ramcosta.composedestinations.navargs.utils.base64ToByteArray +import com.ramcosta.composedestinations.navargs.utils.toBase64Str + +@NavTypeSerializer +class ThreadInfoSerializer : DestinationsNavTypeSerializer { + override fun toRouteString(value: ThreadInfo): String { + val routeStr = ThreadInfo.ADAPTER.encode(value).toBase64Str().urlEncode() + Log.d("ThreadInfoSerializer", "toRouteString: $routeStr") + return routeStr + } + + override fun fromRouteString(routeStr: String): ThreadInfo { + Log.d("ThreadInfoSerializer", "fromRouteString: $routeStr") + return ThreadInfo.ADAPTER.decode(routeStr.urlDecode().base64ToByteArray()) + } +} \ No newline at end of file