feat(core/ui_tweaks): hide billboard prompt
This commit is contained in:
@@ -1239,7 +1239,8 @@
|
||||
"hide_stickers_button": "Remove Stickers Button",
|
||||
"hide_voice_record_button": "Remove Voice Record Button",
|
||||
"hide_unread_chat_hint": "Remove Unread Chat Hint",
|
||||
"hide_post_to_story_buttons": "Remove Post to Story buttons before sending a Snap"
|
||||
"hide_post_to_story_buttons": "Remove Post to Story buttons before sending a Snap",
|
||||
"hide_billboard_prompt": "Remove Billboard Prompt In Friends Feed"
|
||||
},
|
||||
"hide_story_suggestions": {
|
||||
"hide_friend_suggestions": "Hide friend suggestions",
|
||||
|
||||
@@ -49,6 +49,7 @@ class UserInterfaceTweaks : ConfigContainer() {
|
||||
"hide_profile_call_buttons",
|
||||
"hide_unread_chat_hint",
|
||||
"hide_post_to_story_buttons",
|
||||
"hide_billboard_prompt",
|
||||
) { requireRestart() }
|
||||
val operaMediaQuickInfo = boolean("opera_media_quick_info") { requireRestart() }
|
||||
val oldBitmojiSelfie = unique("old_bitmoji_selfie", "2d", "3d") { requireCleanCache() }
|
||||
|
||||
@@ -10,6 +10,8 @@ import me.rhunk.snapenhance.core.event.events.impl.AddViewEvent
|
||||
import me.rhunk.snapenhance.core.event.events.impl.BindViewEvent
|
||||
import me.rhunk.snapenhance.core.event.events.impl.LayoutInflateEvent
|
||||
import me.rhunk.snapenhance.core.features.Feature
|
||||
import me.rhunk.snapenhance.core.ui.getComposerContext
|
||||
import me.rhunk.snapenhance.core.util.dataBuilder
|
||||
import me.rhunk.snapenhance.core.util.hook.HookStage
|
||||
import me.rhunk.snapenhance.core.util.hook.Hooker
|
||||
import me.rhunk.snapenhance.core.util.hook.hook
|
||||
@@ -157,6 +159,14 @@ class UITweaks : Feature("UITweaks") {
|
||||
}
|
||||
}
|
||||
|
||||
if (hiddenElements.contains("hide_billboard_prompt") && event.parent.javaClass.name.endsWith("BillboardFeedHeaderPromptComponent")) {
|
||||
hideView(event.parent)
|
||||
view.getComposerContext()?.componentContext?.get()?.dataBuilder {
|
||||
val dismissFunction = get<Any>("_onDismiss") ?: return@subscribe
|
||||
dismissFunction.javaClass.getMethod("invoke").invoke(dismissFunction)
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
((viewId == getId("post_tool", "id") || viewId == getId("story_button", "id")) && hiddenElements.contains("hide_post_to_story_buttons")) ||
|
||||
(viewId == chatNoteRecordButton && hiddenElements.contains("hide_voice_record_button")) ||
|
||||
|
||||
@@ -24,6 +24,7 @@ import me.rhunk.snapenhance.core.SnapEnhance
|
||||
import me.rhunk.snapenhance.core.util.ktx.getDimens
|
||||
import me.rhunk.snapenhance.core.util.ktx.getDimensFloat
|
||||
import me.rhunk.snapenhance.core.util.ktx.getIdentifier
|
||||
import me.rhunk.snapenhance.core.wrapper.impl.composer.ComposerContext
|
||||
import me.rhunk.snapenhance.core.wrapper.impl.composer.ComposerViewNode
|
||||
import kotlin.random.Random
|
||||
|
||||
@@ -117,6 +118,14 @@ fun View.getComposerViewNode(): ComposerViewNode? {
|
||||
}?.invoke(composerViewNode) as? Long ?: return null)
|
||||
}
|
||||
|
||||
fun View.getComposerContext(): ComposerContext? {
|
||||
if (!this::class.java.isAssignableFrom(SnapEnhance.classCache.composerView)) return null
|
||||
|
||||
return ComposerContext(this::class.java.methods.firstOrNull {
|
||||
it.name == "getComposerContext"
|
||||
}?.invoke(this) ?: return null)
|
||||
}
|
||||
|
||||
object ViewAppearanceHelper {
|
||||
private fun createRoundedBackground(color: Int, radius: Float, hasRadius: Boolean): Drawable {
|
||||
if (!hasRadius) return ColorDrawable(color)
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package me.rhunk.snapenhance.core.wrapper.impl.composer
|
||||
|
||||
import me.rhunk.snapenhance.core.wrapper.AbstractWrapper
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
class ComposerContext(obj: Any): AbstractWrapper(obj) {
|
||||
val componentPath by field<String>("componentPath")
|
||||
val viewModel by field<Any?>("innerViewModel")
|
||||
val moduleName by field<String>("moduleName")
|
||||
val componentContext by field<WeakReference<Any?>>("componentContext")
|
||||
}
|
||||
Reference in New Issue
Block a user