commit ed44147be05c303c77e86c0f9d1a309377362789
parent c35382f0010c976d9d567ed35fbb253ff7fa3034
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Fri,  5 Apr 2024 23:14:58 +0200

fix(core/ui_tweaks): sharing drawer button

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/UITweaks.kt | 35+++++++++++++++++++++++++----------
1 file changed, 25 insertions(+), 10 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/UITweaks.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/UITweaks.kt @@ -2,6 +2,7 @@ package me.rhunk.snapenhance.core.features.impl.ui import android.content.res.Resources import android.util.Size +import android.view.LayoutInflater import android.view.View import android.view.ViewGroup.MarginLayoutParams import android.widget.FrameLayout @@ -32,6 +33,20 @@ class UITweaks : Feature("UITweaks", loadParams = FeatureLoadParams.ACTIVITY_CRE event.canceled = true } + private fun hideView(view: View) { + view.apply { + visibility = View.GONE + post { + isEnabled = false + visibility = View.GONE + setWillNotDraw(true) + } + addOnLayoutChangeListener { view, _, _, _, _, _, _, _, _ -> + view.post { view.visibility = View.GONE } + } + } + } + override fun onActivityCreate() { val blockAds by context.config.global.blockAds val hiddenElements by context.config.userInterface.hideUiComponents @@ -57,6 +72,15 @@ class UITweaks : Feature("UITweaks", loadParams = FeatureLoadParams.ACTIVITY_CRE } } + LayoutInflater::class.java.hook("inflate", HookStage.AFTER) { param -> + val id = param.args().firstOrNull() as? Int ?: return@hook + val result = param.getResult() as? View ?: return@hook + + if (id == getId("chat_input_bar_sharing_drawer_button", "layout") && hiddenElements.contains("hide_live_location_share_button")) { + hideView(result) + } + } + Resources::class.java.methods.first { it.name == "getDimensionPixelSize"}.hook( HookStage.AFTER, { isImmersiveCamera } @@ -143,16 +167,7 @@ class UITweaks : Feature("UITweaks", loadParams = FeatureLoadParams.ACTIVITY_CRE (viewId == getId("chat_input_bar_sharing_drawer_button", "id") && hiddenElements.contains("hide_live_location_share_button")) || (viewId == callButtonsStub && hiddenElements.contains("hide_chat_call_buttons")) ) { - view.apply { - view.post { - isEnabled = false - setWillNotDraw(true) - view.visibility = View.GONE - } - addOnLayoutChangeListener { view, _, _, _, _, _, _, _, _ -> - view.post { view.visibility = View.GONE } - } - } + hideView(view) } if (viewId == unreadHintButton && hiddenElements.contains("hide_unread_chat_hint")) { event.canceled = true