feat(core): disable custom tabs
This commit is contained in:
@@ -648,6 +648,10 @@
|
||||
"name": "Block Ads",
|
||||
"description": "Prevents Advertisements from being displayed"
|
||||
},
|
||||
"disable_custom_tabs": {
|
||||
"name": "Disable Custom Tabs",
|
||||
"description": "Opens links in supported applications rather than in the Web Browser"
|
||||
},
|
||||
"disable_permission_requests": {
|
||||
"name": "Disable Permission Requests",
|
||||
"description": "Prevents Snapchat from asking for specific permissions"
|
||||
|
||||
@@ -32,6 +32,7 @@ class Global : ConfigContainer() {
|
||||
val disableMetrics = boolean("disable_metrics") { requireRestart() }
|
||||
val disableStorySections = multiple("disable_story_sections", "friends", "following", "discover") { requireRestart(); requireCleanCache() }
|
||||
val blockAds = boolean("block_ads")
|
||||
val disableCustomTabs = boolean("disable_custom_tabs") { requireRestart() }
|
||||
val disablePermissionRequests = multiple("disable_permission_requests", *permissionMap.values.toTypedArray()) { requireRestart(); addNotices(FeatureNotice.UNSTABLE) }
|
||||
val disableMemoriesSnapFeed = boolean("disable_memories_snap_feed")
|
||||
val spotlightCommentsUsername = boolean("spotlight_comments_username") { requireRestart() }
|
||||
|
||||
@@ -127,6 +127,7 @@ class FeatureManager(
|
||||
AutoOpenSnaps(),
|
||||
CustomStreaksExpirationFormat(),
|
||||
ComposerHooks(),
|
||||
DisableCustomTabs(),
|
||||
)
|
||||
|
||||
initializeFeatures()
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package me.rhunk.snapenhance.core.features.impl.global
|
||||
|
||||
import android.content.Intent
|
||||
import me.rhunk.snapenhance.core.features.Feature
|
||||
import me.rhunk.snapenhance.core.features.FeatureLoadParams
|
||||
import me.rhunk.snapenhance.core.util.hook.HookStage
|
||||
import me.rhunk.snapenhance.core.util.hook.hook
|
||||
|
||||
class DisableCustomTabs: Feature("Disable Custom Tabs", loadParams = FeatureLoadParams.ACTIVITY_CREATE_SYNC) {
|
||||
override fun onActivityCreate() {
|
||||
if (!context.config.global.disableCustomTabs.get()) return
|
||||
context.mainActivity!!.packageManager.javaClass.hook("resolveService", HookStage.BEFORE) { param ->
|
||||
val intent = param.arg<Intent>(0)
|
||||
if (intent.action == "android.support.customtabs.action.CustomTabsService") {
|
||||
param.setResult(null)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user