Fix the op mode dependency for the second toggle:
If OP_RECEIVE_SANDBOX_TRIGGER_AUDIO is toggled to deny,
OP_RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA is set to deny and toggled.

If OP_RECEIVE_SANDBOX_TRIGGER_AUDIO is toggled to allow,
OP_RECEIVE_SANDBOXED_DETECTION_TRAINNING_DATA is unchanged.

Bug: 309677007
Test: presubmit
Change-Id: I83bbfdb71ad1aa0e29c55275948ec88fc7f83c6a
diff --git a/src/com/android/settings/spa/app/specialaccess/VoiceActivationApps.kt b/src/com/android/settings/spa/app/specialaccess/VoiceActivationApps.kt
index a7f9714..aafe493 100644
--- a/src/com/android/settings/spa/app/specialaccess/VoiceActivationApps.kt
+++ b/src/com/android/settings/spa/app/specialaccess/VoiceActivationApps.kt
@@ -56,9 +56,12 @@
     override val appOp = AppOpsManager.OP_RECEIVE_SANDBOX_TRIGGER_AUDIO
     override val permission = Manifest.permission.RECEIVE_SANDBOX_TRIGGER_AUDIO
     override val setModeByUid = true
-
+    private var receiveDetectionTrainingDataOpController:AppOpsController? = null
     override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
         super.setAllowed(record, newAllowed)
+        if (!newAllowed && receiveDetectionTrainingDataOpController != null) {
+            receiveDetectionTrainingDataOpController!!.setAllowed(false)
+        }
         logPermissionChange(newAllowed)
     }
 
@@ -79,20 +82,21 @@
         isReceiveSandBoxTriggerAudioOpAllowed: () -> Boolean?
     ): ReceiveDetectionTrainingDataOpSwitchModel {
         val context = LocalContext.current
-        val ReceiveDetectionTrainingDataOpController = remember {
+        receiveDetectionTrainingDataOpController = remember {
             AppOpsController(
                 context = context,
                 app = record.app,
                 op = AppOpsManager.OP_RECEIVE_SANDBOXED_DETECTION_TRAINING_DATA,
             )
         }
-        val isReceiveDetectionTrainingDataOpAllowed = isReceiveDetectionTrainingDataOpAllowed(record, ReceiveDetectionTrainingDataOpController)
+        val isReceiveDetectionTrainingDataOpAllowed = isReceiveDetectionTrainingDataOpAllowed(record, receiveDetectionTrainingDataOpController!!)
+
         return remember(record) {
             ReceiveDetectionTrainingDataOpSwitchModel(
                 context,
                 record,
                 isReceiveSandBoxTriggerAudioOpAllowed,
-                ReceiveDetectionTrainingDataOpController,
+                receiveDetectionTrainingDataOpController!!,
                 isReceiveDetectionTrainingDataOpAllowed,
             )
         }.also { model -> LaunchedEffect(model, Dispatchers.Default) { model.initState() } }