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",
|
"longitude_value": "Longitude",
|
||||||
"hide_ui_elements": "Hide UI Elements",
|
"hide_ui_elements": "Hide UI Elements",
|
||||||
"auto_updater": "Auto Updater",
|
"auto_updater": "Auto Updater",
|
||||||
|
"disable_camera": "Disable Camera",
|
||||||
"infinite_story_boost": "Infinite Story Boost",
|
"infinite_story_boost": "Infinite Story Boost",
|
||||||
"enable_app_appearance": "Enable App Appearance Settings",
|
"enable_app_appearance": "Enable App Appearance Settings",
|
||||||
"disable_spotlight": "Disable Spotlight",
|
"disable_spotlight": "Disable Spotlight",
|
||||||
|
@ -177,6 +177,12 @@ enum class ConfigProperty(
|
|||||||
),
|
),
|
||||||
|
|
||||||
//UI AND TWEAKS
|
//UI AND TWEAKS
|
||||||
|
CAMERA_DISABLE(
|
||||||
|
"property.disable_camera",
|
||||||
|
"description.disable_camera",
|
||||||
|
ConfigCategory.UI_TWEAKS,
|
||||||
|
ConfigStateValue(false)
|
||||||
|
),
|
||||||
HIDE_UI_ELEMENTS(
|
HIDE_UI_ELEMENTS(
|
||||||
"property.hide_ui_elements",
|
"property.hide_ui_elements",
|
||||||
"description.hide_ui_elements",
|
"description.hide_ui_elements",
|
||||||
|
@ -1,12 +1,17 @@
|
|||||||
package me.rhunk.snapenhance.features.impl.tweaks
|
package me.rhunk.snapenhance.features.impl.tweaks
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
import android.annotation.SuppressLint
|
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.config.ConfigProperty
|
||||||
import me.rhunk.snapenhance.data.wrapper.impl.ScSize
|
import me.rhunk.snapenhance.data.wrapper.impl.ScSize
|
||||||
import me.rhunk.snapenhance.features.Feature
|
import me.rhunk.snapenhance.features.Feature
|
||||||
import me.rhunk.snapenhance.features.FeatureLoadParams
|
import me.rhunk.snapenhance.features.FeatureLoadParams
|
||||||
import me.rhunk.snapenhance.features.impl.ConfigEnumKeys
|
import me.rhunk.snapenhance.features.impl.ConfigEnumKeys
|
||||||
import me.rhunk.snapenhance.hook.HookStage
|
import me.rhunk.snapenhance.hook.HookStage
|
||||||
|
import me.rhunk.snapenhance.hook.hook
|
||||||
import me.rhunk.snapenhance.hook.hookConstructor
|
import me.rhunk.snapenhance.hook.hookConstructor
|
||||||
|
|
||||||
class CameraTweaks : Feature("Camera Tweaks", loadParams = FeatureLoadParams.ACTIVITY_CREATE_SYNC) {
|
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")
|
@SuppressLint("MissingPermission", "DiscouragedApi")
|
||||||
override fun onActivityCreate() {
|
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")) {
|
ConfigEnumKeys.hookAllEnums(context.mappings.getMappedClass("enums", "CAMERA")) {
|
||||||
if (key == "FORCE_CAMERA_HIGHEST_FPS" && context.config.bool(ConfigProperty.FORCE_HIGHEST_FRAME_RATE)) {
|
if (key == "FORCE_CAMERA_HIGHEST_FPS" && context.config.bool(ConfigProperty.FORCE_HIGHEST_FRAME_RATE)) {
|
||||||
set(true)
|
set(true)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user