Skip to content

Commit 522696f

Browse files
committed
#1394 use system bridge for power on/off action
1 parent fd032c8 commit 522696f

1 file changed

Lines changed: 20 additions & 1 deletion

File tree

base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import io.github.sds100.keymapper.common.utils.withFlag
3737
import io.github.sds100.keymapper.data.Keys
3838
import io.github.sds100.keymapper.data.PreferenceDefaults
3939
import io.github.sds100.keymapper.data.repositories.PreferenceRepository
40+
import io.github.sds100.keymapper.sysbridge.manager.SystemBridgeConnectionManager
41+
import io.github.sds100.keymapper.sysbridge.manager.SystemBridgeConnectionState
4042
import io.github.sds100.keymapper.system.airplanemode.AirplaneModeAdapter
4143
import io.github.sds100.keymapper.system.apps.AppShortcutAdapter
4244
import io.github.sds100.keymapper.system.apps.PackageManagerAdapter
@@ -47,6 +49,7 @@ import io.github.sds100.keymapper.system.display.DisplayAdapter
4749
import io.github.sds100.keymapper.system.files.FileAdapter
4850
import io.github.sds100.keymapper.system.files.FileUtils
4951
import io.github.sds100.keymapper.system.inputevents.KeyEventUtils
52+
import io.github.sds100.keymapper.system.inputevents.Scancode
5053
import io.github.sds100.keymapper.system.inputmethod.InputMethodAdapter
5154
import io.github.sds100.keymapper.system.intents.IntentAdapter
5255
import io.github.sds100.keymapper.system.intents.IntentTarget
@@ -102,6 +105,7 @@ class PerformActionsUseCaseImpl @AssistedInject constructor(
102105
private val ringtoneAdapter: RingtoneAdapter,
103106
private val settingsRepository: PreferenceRepository,
104107
private val inputEventHub: InputEventHub,
108+
private val systemBridgeConnectionManager: SystemBridgeConnectionManager
105109
) : PerformActionsUseCase {
106110

107111
@AssistedFactory
@@ -785,7 +789,22 @@ class PerformActionsUseCaseImpl @AssistedInject constructor(
785789
}
786790

787791
is ActionData.ScreenOnOff -> {
788-
result = suAdapter.execute("input keyevent ${KeyEvent.KEYCODE_POWER}")
792+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q &&
793+
systemBridgeConnectionManager.connectionState.value is SystemBridgeConnectionState.Connected
794+
) {
795+
val model = InjectKeyEventModel(
796+
keyCode = KeyEvent.KEYCODE_POWER,
797+
action = KeyEvent.ACTION_DOWN,
798+
metaState = 0,
799+
deviceId = -1,
800+
scanCode = Scancode.KEY_POWER,
801+
source = InputDevice.SOURCE_UNKNOWN
802+
)
803+
result = inputEventHub.injectKeyEvent(model)
804+
.then { inputEventHub.injectKeyEvent(model.copy(action = KeyEvent.ACTION_UP)) }
805+
} else {
806+
result = suAdapter.execute("input keyevent ${KeyEvent.KEYCODE_POWER}")
807+
}
789808
}
790809

791810
is ActionData.SecureLock -> {

0 commit comments

Comments
 (0)