feat(core): default volume controls

This commit is contained in:
rhunk
2024-02-17 14:39:37 +01:00
parent 93e9a67daf
commit edda0d1488
4 changed files with 25 additions and 0 deletions

View File

@@ -538,6 +538,10 @@
"name": "Force Upload Source Quality",
"description": "Forces Snapchat to upload media in the original quality\nPlease note that this may not remove metadata from media"
},
"default_volume_controls": {
"name": "Default Volume Controls",
"description": "Forces Snapchat to use system volume controls"
},
"disable_snap_splitting": {
"name": "Disable Snap Splitting",
"description": "Prevents Snaps from being split into multiple parts\nPictures you send will turn into videos"

View File

@@ -37,5 +37,6 @@ class Global : ConfigContainer() {
val videoPlaybackRateSlider = boolean("video_playback_rate_slider") { requireRestart() }
val disableGooglePlayDialogs = boolean("disable_google_play_dialogs") { requireRestart() }
val forceUploadSourceQuality = boolean("force_upload_source_quality") { requireRestart() }
val defaultVolumeControls = boolean("default_volume_controls") { requireRestart() }
val disableSnapSplitting = boolean("disable_snap_splitting") { addNotices(FeatureNotice.INTERNAL_BEHAVIOR) }
}

View File

@@ -0,0 +1,19 @@
package me.rhunk.snapenhance.core.features.impl.ui
import android.view.KeyEvent
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 DefaultVolumeControls : Feature("Default Volume Controls", loadParams = FeatureLoadParams.ACTIVITY_CREATE_SYNC) {
override fun onActivityCreate() {
if (!context.config.global.defaultVolumeControls.get()) return
context.mainActivity!!::class.java.hook("onKeyDown", HookStage.BEFORE) { param ->
val keyCode = param.arg<Int>(0)
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN || keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
param.setResult(false)
}
}
}
}

View File

@@ -119,6 +119,7 @@ class FeatureManager(
StealthModeIndicator(),
DisablePermissionRequests(),
SessionEvents(),
DefaultVolumeControls(),
)
initializeFeatures()