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:
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)