mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-05-01 15:14:25 +02:00
feat(core): hide friends
Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>
This commit is contained in:
parent
d217e2e86d
commit
053b56bb3d
@ -105,7 +105,7 @@ class FeatureManager(
|
|||||||
FriendFeedMessagePreview(),
|
FriendFeedMessagePreview(),
|
||||||
HideStreakRestore(),
|
HideStreakRestore(),
|
||||||
HideFriendFeedEntry(),
|
HideFriendFeedEntry(),
|
||||||
HideQuickAddSuggestions(),
|
RequerySqlite(),
|
||||||
CallButtonsOverride(),
|
CallButtonsOverride(),
|
||||||
SnapPreview(),
|
SnapPreview(),
|
||||||
BypassScreenshotDetection(),
|
BypassScreenshotDetection(),
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
package me.rhunk.snapenhance.core.features.impl.tweaks
|
||||||
|
|
||||||
|
import me.rhunk.snapenhance.common.data.MessagingRuleType
|
||||||
|
import me.rhunk.snapenhance.core.features.Feature
|
||||||
|
import me.rhunk.snapenhance.core.util.hook.HookStage
|
||||||
|
import me.rhunk.snapenhance.core.util.hook.hook
|
||||||
|
|
||||||
|
class RequerySqlite : Feature("Requery Sqlite") {
|
||||||
|
override fun init() {
|
||||||
|
val hideQuickAddSuggestions = context.config.userInterface.hideQuickAddSuggestions.get()
|
||||||
|
val hideFriendFeedEntry = context.config.userInterface.hideFriendFeedEntry.get()
|
||||||
|
|
||||||
|
if (!hideQuickAddSuggestions && !hideFriendFeedEntry) return
|
||||||
|
|
||||||
|
findClass("io.requery.android.database.sqlite.SQLiteDatabase").hook("rawQueryWithFactory", HookStage.BEFORE) { param ->
|
||||||
|
var sqlRequest = param.argNullable<String>(1) ?: return@hook
|
||||||
|
|
||||||
|
fun patchRequest(condition: String) {
|
||||||
|
sqlRequest.lastIndexOf("WHERE").takeIf { it != -1 }?.let {
|
||||||
|
sqlRequest = sqlRequest.substring(0, it + 5) + " $condition AND " + sqlRequest.substring(it + 5)
|
||||||
|
param.setArg(1, sqlRequest)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hideQuickAddSuggestions && sqlRequest.contains("SuggestedFriendPlacement")) {
|
||||||
|
patchRequest("0 = 1")
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hideFriendFeedEntry && sqlRequest.startsWith("SELECT") && (sqlRequest.contains("FriendWithUsername")) && sqlRequest.contains("userId")) {
|
||||||
|
val ids = context.bridgeClient.getRuleIds(MessagingRuleType.HIDE_FRIEND_FEED).takeIf { it.isNotEmpty() } ?: return@hook
|
||||||
|
patchRequest(ids.joinToString(" AND ") { "${if (sqlRequest.contains("Friend.userId")) "Friend.userId" else "userId "} != '$it'" })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,27 +0,0 @@
|
|||||||
package me.rhunk.snapenhance.core.features.impl.ui
|
|
||||||
|
|
||||||
import me.rhunk.snapenhance.core.features.Feature
|
|
||||||
import me.rhunk.snapenhance.core.util.hook.HookStage
|
|
||||||
import me.rhunk.snapenhance.core.util.hook.hook
|
|
||||||
|
|
||||||
class HideQuickAddSuggestions : Feature("Hide Quick Add Suggestions") {
|
|
||||||
override fun init() {
|
|
||||||
if (!context.config.userInterface.hideQuickAddSuggestions.get()) return
|
|
||||||
|
|
||||||
context.androidContext.classLoader.loadClass("io.requery.android.database.sqlite.SQLiteDatabase")
|
|
||||||
.hook("rawQueryWithFactory", HookStage.BEFORE) { param ->
|
|
||||||
var sqlRequest = param.arg<String>(1)
|
|
||||||
|
|
||||||
fun patchRequest() {
|
|
||||||
sqlRequest.lastIndexOf("WHERE").takeIf { it != -1 }?.let {
|
|
||||||
sqlRequest = sqlRequest.substring(0, it + 5) + " 0 = 1 AND " + sqlRequest.substring(it + 5)
|
|
||||||
param.setArg(1, sqlRequest)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sqlRequest.contains("SuggestedFriendPlacement")) {
|
|
||||||
patchRequest()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user