@@ -24,6 +24,7 @@ import androidx.compose.material.icons.outlined.CallEnd
2424import androidx.compose.material.icons.outlined.CameraAlt
2525import androidx.compose.material.icons.outlined.Cancel
2626import androidx.compose.material.icons.outlined.ClearAll
27+ import androidx.compose.material.icons.outlined.Dangerous
2728import androidx.compose.material.icons.outlined.DataObject
2829import androidx.compose.material.icons.outlined.DoNotDisturb
2930import androidx.compose.material.icons.outlined.DoNotDisturbOff
@@ -61,6 +62,7 @@ import androidx.compose.material.icons.outlined.StayCurrentPortrait
6162import androidx.compose.material.icons.outlined.StopCircle
6263import androidx.compose.material.icons.outlined.Swipe
6364import androidx.compose.material.icons.outlined.TouchApp
65+ import androidx.compose.material.icons.outlined.VerticalSplit
6466import androidx.compose.material.icons.outlined.ViewArray
6567import androidx.compose.material.icons.rounded.Abc
6668import androidx.compose.material.icons.rounded.Android
@@ -239,6 +241,8 @@ object ActionUtils {
239241 ActionId .DEVICE_CONTROLS -> ActionCategory .APPS
240242
241243 ActionId .INTERACT_UI_ELEMENT -> ActionCategory .APPS
244+ ActionId .FORCE_STOP_APP -> ActionCategory .APPS
245+ ActionId .CLEAR_RECENT_APP -> ActionCategory .APPS
242246
243247 ActionId .CONSUME_KEY_EVENT -> ActionCategory .SPECIAL
244248 }
@@ -360,6 +364,8 @@ object ActionUtils {
360364 ActionId .DEVICE_CONTROLS -> R .string.action_device_controls
361365 ActionId .HTTP_REQUEST -> R .string.action_http_request
362366 ActionId .INTERACT_UI_ELEMENT -> R .string.action_interact_ui_element_title
367+ ActionId .FORCE_STOP_APP -> R .string.action_force_stop_app
368+ ActionId .CLEAR_RECENT_APP -> R .string.action_clear_recent_app
363369 }
364370
365371 @DrawableRes
@@ -477,8 +483,7 @@ object ActionUtils {
477483 ActionId .ANSWER_PHONE_CALL -> R .drawable.ic_outline_call_24
478484 ActionId .END_PHONE_CALL -> R .drawable.ic_outline_call_end_24
479485 ActionId .DEVICE_CONTROLS -> R .drawable.ic_home_automation
480- ActionId .HTTP_REQUEST -> null
481- ActionId .INTERACT_UI_ELEMENT -> null
486+ else -> null
482487 }
483488
484489 fun getMinApi (id : ActionId ): Int = when (id) {
@@ -495,26 +500,26 @@ object ActionUtils {
495500 ActionId .TOGGLE_DND_MODE ,
496501 ActionId .ENABLE_DND_MODE ,
497502 ActionId .DISABLE_DND_MODE ,
498- -> Build .VERSION_CODES .M
503+ -> Build .VERSION_CODES .M
499504
500505 ActionId .DISABLE_FLASHLIGHT ,
501506 ActionId .ENABLE_FLASHLIGHT ,
502507 ActionId .TOGGLE_FLASHLIGHT ,
503- -> Build .VERSION_CODES .M
508+ -> Build .VERSION_CODES .M
504509
505510 ActionId .CHANGE_FLASHLIGHT_STRENGTH ,
506- -> Build .VERSION_CODES .TIRAMISU
511+ -> Build .VERSION_CODES .TIRAMISU
507512
508513 ActionId .TOGGLE_KEYBOARD ,
509514 ActionId .SHOW_KEYBOARD ,
510515 ActionId .HIDE_KEYBOARD ,
511- -> Build .VERSION_CODES .N
516+ -> Build .VERSION_CODES .N
512517
513518 ActionId .TEXT_CUT ,
514519 ActionId .TEXT_COPY ,
515520 ActionId .TEXT_PASTE ,
516521 ActionId .SELECT_WORD_AT_CURSOR ,
517- -> Build .VERSION_CODES .JELLY_BEAN_MR2
522+ -> Build .VERSION_CODES .JELLY_BEAN_MR2
518523
519524 ActionId .SHOW_POWER_MENU -> Build .VERSION_CODES .LOLLIPOP
520525 ActionId .DEVICE_CONTROLS -> Build .VERSION_CODES .S
@@ -539,20 +544,20 @@ object ActionUtils {
539544 ActionId .END_PHONE_CALL ,
540545 ActionId .ANSWER_PHONE_CALL ,
541546 ActionId .PHONE_CALL ,
542- -> listOf (PackageManager .FEATURE_TELEPHONY )
547+ -> listOf (PackageManager .FEATURE_TELEPHONY )
543548
544549 ActionId .SECURE_LOCK_DEVICE ,
545- -> listOf (PackageManager .FEATURE_DEVICE_ADMIN )
550+ -> listOf (PackageManager .FEATURE_DEVICE_ADMIN )
546551
547552 ActionId .TOGGLE_WIFI ,
548553 ActionId .ENABLE_WIFI ,
549554 ActionId .DISABLE_WIFI ,
550- -> listOf (PackageManager .FEATURE_WIFI )
555+ -> listOf (PackageManager .FEATURE_WIFI )
551556
552557 ActionId .TOGGLE_MOBILE_DATA ,
553558 ActionId .ENABLE_MOBILE_DATA ,
554559 ActionId .DISABLE_MOBILE_DATA ,
555- -> if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
560+ -> if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
556561 listOf (PackageManager .FEATURE_TELEPHONY_DATA )
557562 } else {
558563 listOf (PackageManager .FEATURE_TELEPHONY )
@@ -561,18 +566,18 @@ object ActionUtils {
561566 ActionId .TOGGLE_NFC ,
562567 ActionId .ENABLE_NFC ,
563568 ActionId .DISABLE_NFC ,
564- -> listOf (PackageManager .FEATURE_NFC )
569+ -> listOf (PackageManager .FEATURE_NFC )
565570
566571 ActionId .TOGGLE_BLUETOOTH ,
567572 ActionId .ENABLE_BLUETOOTH ,
568573 ActionId .DISABLE_BLUETOOTH ,
569- -> listOf (PackageManager .FEATURE_BLUETOOTH )
574+ -> listOf (PackageManager .FEATURE_BLUETOOTH )
570575
571576 ActionId .TOGGLE_FLASHLIGHT ,
572577 ActionId .ENABLE_FLASHLIGHT ,
573578 ActionId .DISABLE_FLASHLIGHT ,
574579 ActionId .CHANGE_FLASHLIGHT_STRENGTH ,
575- -> listOf (PackageManager .FEATURE_CAMERA_FLASH )
580+ -> listOf (PackageManager .FEATURE_CAMERA_FLASH )
576581
577582 else -> emptyList()
578583 }
@@ -583,30 +588,32 @@ object ActionUtils {
583588 ActionId .ENABLE_WIFI ,
584589 ActionId .DISABLE_WIFI ,
585590 ActionId .TOGGLE_WIFI ,
586- -> true
591+ -> true
587592
588593 ActionId .TOGGLE_MOBILE_DATA ,
589594 ActionId .ENABLE_MOBILE_DATA ,
590595 ActionId .DISABLE_MOBILE_DATA ,
591- -> true
596+ -> true
592597
593598 ActionId .ENABLE_NFC ,
594599 ActionId .DISABLE_NFC ,
595600 ActionId .TOGGLE_NFC ,
596- -> true
601+ -> true
597602
598603 ActionId .TOGGLE_AIRPLANE_MODE ,
599604 ActionId .ENABLE_AIRPLANE_MODE ,
600605 ActionId .DISABLE_AIRPLANE_MODE ,
601- -> true
606+ -> true
602607
603608 ActionId .TOGGLE_BLUETOOTH ,
604609 ActionId .ENABLE_BLUETOOTH ,
605610 ActionId .DISABLE_BLUETOOTH ,
606- -> Build .VERSION .SDK_INT >= Build .VERSION_CODES .S_V2
611+ -> Build .VERSION .SDK_INT >= Build .VERSION_CODES .S_V2
607612
608613 ActionId .POWER_ON_OFF_DEVICE -> true
609614
615+ ActionId .FORCE_STOP_APP , ActionId .CLEAR_RECENT_APP -> true
616+
610617 else -> false
611618 }
612619 }
@@ -616,7 +623,7 @@ object ActionUtils {
616623 ActionId .TOGGLE_MOBILE_DATA ,
617624 ActionId .ENABLE_MOBILE_DATA ,
618625 ActionId .DISABLE_MOBILE_DATA ,
619- -> return if (isSystemBridgeSupported) {
626+ -> return if (isSystemBridgeSupported) {
620627 emptyList()
621628 } else {
622629 listOf (Permission .ROOT )
@@ -629,7 +636,7 @@ object ActionUtils {
629636 ActionId .PREVIOUS_TRACK_PACKAGE ,
630637 ActionId .FAST_FORWARD_PACKAGE ,
631638 ActionId .REWIND_PACKAGE ,
632- -> return listOf (Permission .NOTIFICATION_LISTENER )
639+ -> return listOf (Permission .NOTIFICATION_LISTENER )
633640
634641 ActionId .VOLUME_UP ,
635642 ActionId .VOLUME_DOWN ,
@@ -645,7 +652,7 @@ object ActionUtils {
645652 ActionId .TOGGLE_DND_MODE ,
646653 ActionId .DISABLE_DND_MODE ,
647654 ActionId .ENABLE_DND_MODE ,
648- -> return listOf (Permission .ACCESS_NOTIFICATION_POLICY )
655+ -> return listOf (Permission .ACCESS_NOTIFICATION_POLICY )
649656
650657 ActionId .TOGGLE_AUTO_ROTATE ,
651658 ActionId .ENABLE_AUTO_ROTATE ,
@@ -654,25 +661,25 @@ object ActionUtils {
654661 ActionId .LANDSCAPE_MODE ,
655662 ActionId .SWITCH_ORIENTATION ,
656663 ActionId .CYCLE_ROTATIONS ,
657- -> return listOf (Permission .WRITE_SETTINGS )
664+ -> return listOf (Permission .WRITE_SETTINGS )
658665
659666 ActionId .TOGGLE_AUTO_BRIGHTNESS ,
660667 ActionId .ENABLE_AUTO_BRIGHTNESS ,
661668 ActionId .DISABLE_AUTO_BRIGHTNESS ,
662669 ActionId .INCREASE_BRIGHTNESS ,
663670 ActionId .DECREASE_BRIGHTNESS ,
664- -> return listOf (Permission .WRITE_SETTINGS )
671+ -> return listOf (Permission .WRITE_SETTINGS )
665672
666673 ActionId .TOGGLE_FLASHLIGHT ,
667674 ActionId .ENABLE_FLASHLIGHT ,
668675 ActionId .DISABLE_FLASHLIGHT ,
669676 ActionId .CHANGE_FLASHLIGHT_STRENGTH ,
670- -> return listOf (Permission .CAMERA )
677+ -> return listOf (Permission .CAMERA )
671678
672679 ActionId .ENABLE_NFC ,
673680 ActionId .DISABLE_NFC ,
674681 ActionId .TOGGLE_NFC ,
675- -> return if (isSystemBridgeSupported) {
682+ -> return if (isSystemBridgeSupported) {
676683 emptyList()
677684 } else {
678685 listOf (Permission .ROOT )
@@ -690,7 +697,7 @@ object ActionUtils {
690697 ActionId .TOGGLE_AIRPLANE_MODE ,
691698 ActionId .ENABLE_AIRPLANE_MODE ,
692699 ActionId .DISABLE_AIRPLANE_MODE ,
693- -> return if (isSystemBridgeSupported) {
700+ -> return if (isSystemBridgeSupported) {
694701 emptyList()
695702 } else {
696703 listOf (Permission .ROOT )
@@ -713,11 +720,11 @@ object ActionUtils {
713720
714721 ActionId .DISMISS_ALL_NOTIFICATIONS ,
715722 ActionId .DISMISS_MOST_RECENT_NOTIFICATION ,
716- -> return listOf (Permission .NOTIFICATION_LISTENER )
723+ -> return listOf (Permission .NOTIFICATION_LISTENER )
717724
718725 ActionId .ANSWER_PHONE_CALL ,
719726 ActionId .END_PHONE_CALL ,
720- -> return listOf (Permission .ANSWER_PHONE_CALL )
727+ -> return listOf (Permission .ANSWER_PHONE_CALL )
721728
722729 ActionId .PHONE_CALL -> return listOf (Permission .CALL_PHONE )
723730
@@ -849,6 +856,8 @@ object ActionUtils {
849856 ActionId .DEVICE_CONTROLS -> KeyMapperIcons .HomeIotDevice
850857 ActionId .HTTP_REQUEST -> Icons .Outlined .Http
851858 ActionId .INTERACT_UI_ELEMENT -> KeyMapperIcons .JumpToElement
859+ ActionId .FORCE_STOP_APP -> Icons .Outlined .Dangerous
860+ ActionId .CLEAR_RECENT_APP -> Icons .Outlined .VerticalSplit
852861 }
853862}
854863
@@ -894,7 +903,7 @@ fun ActionData.isEditable(): Boolean = when (this) {
894903 is ActionData .HttpRequest ,
895904 is ActionData .InteractUiElement ,
896905 is ActionData .MoveCursor ,
897- -> true
906+ -> true
898907
899908 else -> false
900909}
0 commit comments