mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-05-29 13:00:17 +02:00
feat: camera disabler (#52)
Co-authored-by: rhunk <101876869+rhunk@users.noreply.github.com>
This commit is contained in:
parent
20c1f6a779
commit
bef74a3c77
@ -60,6 +60,7 @@
|
||||
"longitude_value": "Longitude",
|
||||
"hide_ui_elements": "Hide UI Elements",
|
||||
"auto_updater": "Auto Updater",
|
||||
"disable_camera": "Disable Camera",
|
||||
"infinite_story_boost": "Infinite Story Boost",
|
||||
"enable_app_appearance": "Enable App Appearance Settings",
|
||||
"disable_spotlight": "Disable Spotlight",
|
||||
|
@ -177,6 +177,12 @@ enum class ConfigProperty(
|
||||
),
|
||||
|
||||
//UI AND TWEAKS
|
||||
CAMERA_DISABLE(
|
||||
"property.disable_camera",
|
||||
"description.disable_camera",
|
||||
ConfigCategory.UI_TWEAKS,
|
||||
ConfigStateValue(false)
|
||||
),
|
||||
HIDE_UI_ELEMENTS(
|
||||
"property.hide_ui_elements",
|
||||
"description.hide_ui_elements",
|
||||
|
@ -1,12 +1,17 @@
|
||||
package me.rhunk.snapenhance.features.impl.tweaks
|
||||
|
||||
import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.admin.DevicePolicyManager
|
||||
import android.content.ContextWrapper
|
||||
import android.content.pm.PackageManager
|
||||
import me.rhunk.snapenhance.config.ConfigProperty
|
||||
import me.rhunk.snapenhance.data.wrapper.impl.ScSize
|
||||
import me.rhunk.snapenhance.features.Feature
|
||||
import me.rhunk.snapenhance.features.FeatureLoadParams
|
||||
import me.rhunk.snapenhance.features.impl.ConfigEnumKeys
|
||||
import me.rhunk.snapenhance.hook.HookStage
|
||||
import me.rhunk.snapenhance.hook.hook
|
||||
import me.rhunk.snapenhance.hook.hookConstructor
|
||||
|
||||
class CameraTweaks : Feature("Camera Tweaks", loadParams = FeatureLoadParams.ACTIVITY_CREATE_SYNC) {
|
||||
@ -20,6 +25,19 @@ class CameraTweaks : Feature("Camera Tweaks", loadParams = FeatureLoadParams.ACT
|
||||
|
||||
@SuppressLint("MissingPermission", "DiscouragedApi")
|
||||
override fun onActivityCreate() {
|
||||
if (context.config.bool(ConfigProperty.CAMERA_DISABLE)) {
|
||||
ContextWrapper::class.java.hook("checkPermission", HookStage.BEFORE) { param ->
|
||||
val permission = param.arg<String>(0)
|
||||
if (permission == Manifest.permission.CAMERA) {
|
||||
param.setResult(PackageManager.PERMISSION_GRANTED)
|
||||
}
|
||||
}
|
||||
|
||||
DevicePolicyManager::class.java.hook("getCameraDisabled", HookStage.BEFORE) { param ->
|
||||
param.setResult(true)
|
||||
}
|
||||
}
|
||||
|
||||
ConfigEnumKeys.hookAllEnums(context.mappings.getMappedClass("enums", "CAMERA")) {
|
||||
if (key == "FORCE_CAMERA_HIGHEST_FPS" && context.config.bool(ConfigProperty.FORCE_HIGHEST_FRAME_RATE)) {
|
||||
set(true)
|
||||
|
Loading…
x
Reference in New Issue
Block a user