commit 78c28a8c9ed86269b81bd818e84e130d7927fe13
parent b232dbc0563d01c2d93fd5e37eb9a75d27c0687b
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Mon, 27 Nov 2023 22:13:24 +0100

fix(core/ui): action menu container size

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/ChatActionMenu.kt | 16++++++++++++++++
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/MenuViewInjector.kt | 2+-
2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/ChatActionMenu.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/ChatActionMenu.kt @@ -18,6 +18,8 @@ import me.rhunk.snapenhance.core.ui.ViewTagState import me.rhunk.snapenhance.core.ui.applyTheme import me.rhunk.snapenhance.core.ui.menu.AbstractMenu import me.rhunk.snapenhance.core.ui.triggerCloseTouchEvent +import me.rhunk.snapenhance.core.util.hook.HookStage +import me.rhunk.snapenhance.core.util.hook.hook import me.rhunk.snapenhance.core.util.ktx.getDimens import java.time.Instant @@ -61,6 +63,20 @@ class ChatActionMenu : AbstractMenu() { private val lastFocusedMessage get() = context.database.getConversationMessageFromId(context.feature(Messaging::class).lastFocusedMessageId) + override fun init() { + runCatching { + if (!context.config.downloader.chatDownloadContextMenu.get() && !context.config.messaging.messageLogger.get() && !context.isDeveloper) return + context.androidContext.classLoader.loadClass("com.snap.messaging.chat.features.actionmenu.ActionMenuChatItemContainer") + .hook("onMeasure", HookStage.BEFORE) { param -> + param.setArg(1, + View.MeasureSpec.makeMeasureSpec((context.resources.displayMetrics.heightPixels * 0.35).toInt(), View.MeasureSpec.AT_MOST) + ) + } + }.onFailure { + context.log.error("Failed to hook ActionMenuChatItemContainer: $it") + } + } + @SuppressLint("SetTextI18n", "DiscouragedApi", "ClickableViewAccessibility") override fun inject(parent: ViewGroup, view: View, viewConsumer: (View) -> Unit) { val viewGroup = parent.parent.parent as? ViewGroup ?: return diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/MenuViewInjector.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/ui/menu/impl/MenuViewInjector.kt @@ -34,7 +34,7 @@ class MenuViewInjector : Feature("MenuViewInjector", loadParams = FeatureLoadPar menuMap[ChatActionMenu::class] = ChatActionMenu() menuMap[SettingsMenu::class] = SettingsMenu() - menuMap.values.forEach { it.context = context } + menuMap.values.forEach { it.context = context; it.init() } val messaging = context.feature(Messaging::class)