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