fix(core/ui_tweaks): sharing drawer button

This commit is contained in:
rhunk
2024-04-05 23:14:58 +02:00
parent c35382f001
commit ed44147be0

View File

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