• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2#
3#   Copyright 2022 - Google
4#
5#   Licensed under the Apache License, Version 2.0 (the "License");
6#   you may not use this file except in compliance with the License.
7#   You may obtain a copy of the License at
8#
9#       http://www.apache.org/licenses/LICENSE-2.0
10#
11#   Unless required by applicable law or agreed to in writing, software
12#   distributed under the License is distributed on an "AS IS" BASIS,
13#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14#   See the License for the specific language governing permissions and
15#   limitations under the License.
16
17import time
18
19from acts import signals
20from acts.test_decorators import test_tracker_info
21from acts_contrib.test_utils.tel.loggers.protos.telephony_metric_pb2 import TelephonyVoiceTestResult
22from acts_contrib.test_utils.tel.loggers.telephony_metric_logger import TelephonyMetricLogger
23from acts_contrib.test_utils.tel.TelephonyBaseTest import TelephonyBaseTest
24from acts_contrib.test_utils.tel.tel_defines import MAX_WAIT_TIME_SMS_RECEIVE
25from acts_contrib.test_utils.tel.tel_defines import INVALID_SUB_ID
26from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_DISABLED
27from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_CELLULAR_PREFERRED
28from acts_contrib.test_utils.tel.tel_defines import WFC_MODE_WIFI_PREFERRED
29from acts_contrib.test_utils.tel.tel_data_utils import reboot_test
30from acts_contrib.test_utils.tel.tel_data_utils import start_youtube_video
31from acts_contrib.test_utils.tel.tel_data_utils import wait_for_cell_data_connection_for_subscription
32from acts_contrib.test_utils.tel.tel_ims_utils import is_volte_enabled
33from acts_contrib.test_utils.tel.tel_ims_utils import set_wfc_mode_for_subscription
34from acts_contrib.test_utils.tel.tel_ims_utils import toggle_volte_for_subscription
35from acts_contrib.test_utils.tel.tel_ims_utils import toggle_wfc_for_subscription
36from acts_contrib.test_utils.tel.tel_ims_utils import wait_for_wfc_enabled
37from acts_contrib.test_utils.tel.tel_message_utils import sms_send_receive_verify_for_subscription
38from acts_contrib.test_utils.tel.tel_message_utils import mms_send_receive_verify
39from acts_contrib.test_utils.tel.tel_message_utils import log_messaging_screen_shot
40from acts_contrib.test_utils.tel.tel_phone_setup_utils import ensure_phones_idle
41from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_volte_for_subscription
42from acts_contrib.test_utils.tel.tel_phone_setup_utils import phone_setup_on_rat
43from acts_contrib.test_utils.tel.tel_subscription_utils import get_subid_from_slot_index
44from acts_contrib.test_utils.tel.tel_subscription_utils import get_default_data_sub_id
45from acts_contrib.test_utils.tel.tel_subscription_utils import get_slot_index_from_subid
46from acts_contrib.test_utils.tel.tel_subscription_utils import get_subid_from_slot_index
47from acts_contrib.test_utils.tel.tel_subscription_utils import set_message_subid
48from acts_contrib.test_utils.tel.tel_subscription_utils import set_subid_for_data
49from acts_contrib.test_utils.tel.tel_subscription_utils import set_voice_sub_id
50from acts_contrib.test_utils.tel.tel_subscription_utils import set_dds_on_slot_0
51from acts_contrib.test_utils.tel.tel_subscription_utils import set_dds_on_slot_1
52from acts_contrib.test_utils.tel.tel_subscription_utils import get_subid_on_same_network_of_host_ad
53from acts_contrib.test_utils.tel.tel_test_utils import verify_http_connection
54from acts_contrib.test_utils.tel.tel_test_utils import verify_internet_connection
55from acts_contrib.test_utils.tel.tel_test_utils import toggle_airplane_mode
56from acts_contrib.test_utils.tel.tel_voice_utils import is_phone_in_call_on_rat
57from acts_contrib.test_utils.tel.tel_voice_utils import two_phone_call_msim_for_slot
58from acts_contrib.test_utils.tel.tel_wifi_utils import check_is_wifi_connected
59from acts_contrib.test_utils.tel.tel_wifi_utils import ensure_wifi_connected
60from acts.utils import rand_ascii_str
61
62CallResult = TelephonyVoiceTestResult.CallResult.Value
63
64
65class TelLiveGFTDSDSDDSSwitchTest(TelephonyBaseTest):
66    def setup_class(self):
67        TelephonyBaseTest.setup_class(self)
68        self.message_lengths = (50, 160, 180)
69        self.tel_logger = TelephonyMetricLogger.for_test_case()
70
71    def teardown_test(self):
72        ensure_phones_idle(self.log, self.android_devices)
73
74    def _msim_message_test(
75        self,
76        ad_mo,
77        ad_mt,
78        mo_sub_id,
79        mt_sub_id, msg="SMS",
80        max_wait_time=MAX_WAIT_TIME_SMS_RECEIVE,
81        expected_result=True):
82        """Make MO/MT SMS/MMS at specific slot.
83
84        Args:
85            ad_mo: Android object of the device sending SMS/MMS
86            ad_mt: Android object of the device receiving SMS/MMS
87            mo_sub_id: Sub ID of MO device
88            mt_sub_id: Sub ID of MT device
89            max_wait_time: Max wait time before SMS/MMS is received.
90            expected_result: True for successful sending/receiving and False on
91                             the contrary
92
93        Returns:
94            True if the result matches expected_result and False on the
95            contrary.
96        """
97
98        if msg == "SMS":
99            for length in self.message_lengths:
100                message_array = [rand_ascii_str(length)]
101                if not sms_send_receive_verify_for_subscription(
102                    self.log,
103                    ad_mo,
104                    ad_mt,
105                    mo_sub_id,
106                    mt_sub_id,
107                    message_array,
108                    max_wait_time):
109                    ad_mo.log.warning(
110                        "%s of length %s test failed", msg, length)
111                    return False
112                else:
113                    ad_mo.log.info(
114                        "%s of length %s test succeeded", msg, length)
115            self.log.info("%s test of length %s characters succeeded.",
116                msg, self.message_lengths)
117
118        elif msg == "MMS":
119            for length in self.message_lengths:
120                message_array = [("Test Message", rand_ascii_str(length), None)]
121
122                if not mms_send_receive_verify(
123                    self.log,
124                    ad_mo,
125                    ad_mt,
126                    message_array,
127                    max_wait_time,
128                    expected_result):
129                    self.log.warning("%s of body length %s test failed",
130                        msg, length)
131                    return False
132                else:
133                    self.log.info(
134                        "%s of body length %s test succeeded", msg, length)
135            self.log.info("%s test of body lengths %s succeeded",
136                          msg, self.message_lengths)
137        return True
138
139    def _test_dds_switch_during_data_transfer(
140        self,
141        slot_0_nw_gen="volte",
142        slot_1_nw_gen="volte",
143        call_slot=0,
144        call_direction=None,
145        call_or_sms_or_mms="call",
146        streaming=True,
147        is_airplane_mode=False,
148        wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED]):
149        """Switch DDS and make voice call (VoLTE/WFC/CS call)/SMS/MMS together
150        with Youtube playing after each DDS switch at specific slot in specific
151        RAT.
152
153        Test step:
154            1. Get sub ID of each slot of the primary device.
155            2. Set up phones in desired RAT.
156            3. Switch DDS to slot 0.
157            4. Check HTTP connection after DDS switch.
158            5. Play Youtube.
159            6. Make voice call (VoLTE/WFC/CS call)/SMS/MMS
160            7. Switch DDS to slot 1 and repeat step 4-6.
161            8. Switch DDS to slot 0 again and repeat step 4-6.
162
163        Args:
164            1, slot_0_nw_gen: Network generation of slot 0 on the primary device
165            2, slot_1_nw_gen: Network generation of slot 1 on the primary device
166            3. call_slot: Slot for making voice call
167            4. call_direction: "mo" or "mt" or None to stoping making call.
168            5. call_or_sms_or_mms: Voice call or SMS or MMS
169            6. streaming: True for playing Youtube after DDS switch and False on
170                the contrary.
171            7. is_airplane_mode: True of False for WFC setup
172            8. wfc_mode: Cellular preferred or Wi-Fi preferred.
173
174        Returns:
175            True or False
176        """
177        ad = self.android_devices[0]
178        slot_0_subid = get_subid_from_slot_index(self.log, ad, 0)
179        slot_1_subid = get_subid_from_slot_index(self.log, ad, 1)
180
181        if slot_0_subid == INVALID_SUB_ID or slot_1_subid == INVALID_SUB_ID:
182            ad.log.error("Not all slots have valid sub ID.")
183            raise signals.TestFailure("Failed",
184                extras={"fail_reason": "Not all slots have valid sub ID"})
185
186        ad.log.info(
187            "Step 0: Set up phone in desired RAT (slot 0: %s, slot 1: %s)",
188            slot_0_nw_gen, slot_1_nw_gen)
189
190        if not phone_setup_on_rat(
191            self.log,
192            ad,
193            slot_0_nw_gen,
194            slot_0_subid,
195            is_airplane_mode,
196            wfc_mode[0],
197            self.wifi_network_ssid,
198            self.wifi_network_pass):
199
200            self.log.error("Phone Failed to Set Up Properly.")
201            self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE"))
202            raise signals.TestFailure("Failed",
203                extras={"fail_reason": "Phone Failed to Set Up Properly."})
204
205        if not phone_setup_on_rat(
206            self.log,
207            ad,
208            slot_1_nw_gen,
209            slot_1_subid,
210            is_airplane_mode,
211            wfc_mode[1],
212            self.wifi_network_ssid,
213            self.wifi_network_pass):
214
215            self.log.error("Phone Failed to Set Up Properly.")
216            self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE"))
217            raise signals.TestFailure("Failed",
218                extras={"fail_reason": "Phone Failed to Set Up Properly."})
219
220        is_slot0_in_call = is_phone_in_call_on_rat(
221            self.log, ad, slot_0_nw_gen, True)
222        is_slot1_in_call = is_phone_in_call_on_rat(
223            self.log, ad, slot_1_nw_gen, True)
224
225        for attempt in range(3):
226            if attempt != 0:
227                ad.log.info("Repeat step 1 to 4.")
228
229            ad.log.info("Step 1: Switch DDS.")
230            if attempt % 2 == 0:
231                set_dds_on_slot_0(ad)
232            else:
233                set_dds_on_slot_1(ad)
234
235            ad.log.info("Step 2: Check HTTP connection after DDS switch.")
236            if not verify_http_connection(self.log, ad):
237                ad.log.error("Failed to verify http connection.")
238                return False
239            else:
240                ad.log.info("Verify http connection successfully.")
241
242            if streaming:
243                ad.log.info("Step 3: Start Youtube streaming.")
244                if not start_youtube_video(ad):
245                    ad.log.warning("Fail to bring up youtube video")
246                time.sleep(10)
247            else:
248                ad.log.info("Step 3: Skip Youtube streaming.")
249
250            if not call_direction:
251                return True
252            else:
253                expected_result = True
254                if call_direction == "mo":
255                    ad_mo = self.android_devices[0]
256                    ad_mt = self.android_devices[1]
257                    mo_sub_id = get_subid_from_slot_index(self.log, ad, call_slot)
258                    if call_or_sms_or_mms == "call":
259                        set_voice_sub_id(ad_mo, mo_sub_id)
260                        _, mt_sub_id, _ = get_subid_on_same_network_of_host_ad(
261                            self.android_devices)
262
263                        if call_slot == 0:
264                            is_mo_in_call = is_slot0_in_call
265                        elif call_slot == 1:
266                            is_mo_in_call = is_slot1_in_call
267                        is_mt_in_call = None
268
269                    elif call_or_sms_or_mms == "sms":
270                        set_message_subid(ad_mo, mo_sub_id)
271                        _, mt_sub_id, _ = get_subid_on_same_network_of_host_ad(
272                            self.android_devices, type="sms")
273                        set_message_subid(ad_mt, mt_sub_id)
274
275                    elif call_or_sms_or_mms == "mms":
276                        current_data_sub_id = get_default_data_sub_id(ad_mo)
277                        if mo_sub_id != current_data_sub_id:
278                            ad_mo.log.warning(
279                                "Current data sub ID (%s) does not match"
280                                " message sub ID (%s). MMS should NOT be sent.",
281                                current_data_sub_id, mo_sub_id)
282                            expected_result = False
283                        set_message_subid(ad_mo, mo_sub_id)
284                        _, mt_sub_id, _ = get_subid_on_same_network_of_host_ad(
285                            self.android_devices, type="sms")
286                        set_message_subid(ad_mt, mt_sub_id)
287                        set_subid_for_data(ad_mt, mt_sub_id)
288                        ad_mt.droid.telephonyToggleDataConnection(True)
289
290                elif call_direction == "mt":
291                    ad_mo = self.android_devices[1]
292                    ad_mt = self.android_devices[0]
293                    mt_sub_id = get_subid_from_slot_index(self.log, ad, call_slot)
294                    if call_or_sms_or_mms == "call":
295                        set_voice_sub_id(ad_mt, mt_sub_id)
296                        _, mo_sub_id, _ = get_subid_on_same_network_of_host_ad(
297                            self.android_devices)
298
299                        if call_slot == 0:
300                            is_mt_in_call = is_slot0_in_call
301                        elif call_slot == 1:
302                            is_mt_in_call = is_slot1_in_call
303                        is_mo_in_call = None
304
305                    elif call_or_sms_or_mms == "sms":
306                        set_message_subid(ad_mt, mt_sub_id)
307                        _, mo_sub_id, _ = get_subid_on_same_network_of_host_ad(
308                            self.android_devices, type="sms")
309                        set_message_subid(ad_mo, mo_sub_id)
310
311                    elif call_or_sms_or_mms == "mms":
312                        current_data_sub_id = get_default_data_sub_id(ad_mt)
313                        if mt_sub_id != current_data_sub_id:
314                            ad_mt.log.warning(
315                                "Current data sub ID (%s) does not match"
316                                " message sub ID (%s). MMS should NOT be"
317                                " received.", current_data_sub_id, mt_sub_id)
318                            expected_result = False
319                        set_message_subid(ad_mt, mt_sub_id)
320                        _, mo_sub_id, _ = get_subid_on_same_network_of_host_ad(
321                            self.android_devices, type="sms")
322                        set_message_subid(ad_mo, mo_sub_id)
323                        set_subid_for_data(ad_mo, mo_sub_id)
324                        ad_mo.droid.telephonyToggleDataConnection(True)
325
326                if call_or_sms_or_mms == "call":
327                    self.log.info("Step 4: Make voice call.")
328                    mo_slot = get_slot_index_from_subid(ad_mo, mo_sub_id)
329                    mt_slot = get_slot_index_from_subid(ad_mt, mt_sub_id)
330                    result = two_phone_call_msim_for_slot(
331                        self.log,
332                        ad_mo,
333                        mo_slot,
334                        None,
335                        is_mo_in_call,
336                        ad_mt,
337                        mt_slot,
338                        None,
339                        is_mt_in_call)
340                    self.tel_logger.set_result(result.result_value)
341
342                    if not result:
343                        self.log.error(
344                            "Failed to make MO call from %s slot %s to %s"
345                            " slot %s", ad_mo.serial, mo_slot, ad_mt.serial,
346                            mt_slot)
347                        raise signals.TestFailure("Failed",
348                            extras={"fail_reason": str(result.result_value)})
349                else:
350                    self.log.info("Step 4: Send %s.", call_or_sms_or_mms)
351                    if call_or_sms_or_mms == "sms":
352                        result = self._msim_message_test(
353                            ad_mo,
354                            ad_mt,
355                            mo_sub_id,
356                            mt_sub_id,
357                            msg=call_or_sms_or_mms.upper())
358                    elif call_or_sms_or_mms == "mms":
359                        result = self._msim_message_test(
360                            ad_mo,
361                            ad_mt,
362                            mo_sub_id,
363                            mt_sub_id,
364                            msg=call_or_sms_or_mms.upper(),
365                            expected_result=expected_result)
366                    if not result:
367                        log_messaging_screen_shot(
368                            ad_mo, test_name="%s_tx" % call_or_sms_or_mms)
369                        log_messaging_screen_shot(
370                            ad_mt, test_name="%s_rx" % call_or_sms_or_mms)
371
372                        return False
373        return True
374
375    def _test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
376        self,
377        slot_0_nw_gen="volte",
378        slot_1_nw_gen="volte",
379        call_slot=0,
380        call_direction=None,
381        streaming=True,
382        airplane_mode_cycling=False,
383        cellular_data_cycling=False,
384        wifi_cycling=False,
385        enable_volte=[True, True],
386        enable_wfc=[True, True],
387        wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
388        is_airplane_mode=False,
389        is_wifi_connected=False):
390        """Switch DDS and make VoLTE/WFC call together with Youtube playing
391        after each DDS switch at specific slot in specific RAT.
392
393        Test step:
394            1. Get sub ID of each slot of the primary device.
395            2. Set up phones in desired RAT.
396            3. Toggle on/off VoLTE/WFC and set WFC mode.
397            4. Airplane mode or cellular data or Wi-Fi cycling.
398            5. Switch DDS to slot 0.
399            6. Check HTTP connection after DDS switch.
400            7. Play Youtube.
401            8. Make VoLTE or WFC call.
402            9. Switch DDS to slot 1 and repeat step 6-8.
403            10. Switch DDS to slot 0 again and repeat step 6-8.
404
405        Args:
406            1, slot_0_nw_gen: Network generation of slot 0 on the primary device
407            2, slot_1_nw_gen: Network generation of slot 1 on the primary device
408            3. call_slot: Slot for making voice call
409            4. call_direction: "mo" or "mt" or None to stoping making call.
410            5. streaming: True for playing Youtube after DDS switch and False on
411                the contrary.
412            6. airplane_mode_cycling: True for cycling airplane
413            7. cellular_data_cycling: True for cycling cellular data
414            8. wifi_cycling: True for cycling Wi-Fi
415            9. enable_volte: True for enabling and False for disabling VoLTE for
416               each slot on the primary device
417            10. enable_wfc: True for enabling and False for disabling WFC for
418                each slot on the primary device
419            11. wfc_mode: Cellular preferred or Wi-Fi preferred.
420            12. is_airplane_mode: True of False for WFC setup
421
422        Returns:
423            True or False
424        """
425        ad = self.android_devices[0]
426        slot_0_subid = get_subid_from_slot_index(self.log, ad, 0)
427        slot_1_subid = get_subid_from_slot_index(self.log, ad, 1)
428
429        if slot_0_subid == INVALID_SUB_ID or slot_1_subid == INVALID_SUB_ID:
430            ad.log.error("Not all slots have valid sub ID.")
431            raise signals.TestFailure("Failed",
432                extras={"fail_reason": "Not all slots have valid sub ID"})
433
434        ad.log.info(
435            "Step 0: Set up phone in desired RAT (slot 0: %s, slot 1: %s)",
436            slot_0_nw_gen, slot_1_nw_gen)
437
438        if not phone_setup_on_rat(
439            self.log,
440            ad,
441            slot_0_nw_gen,
442            slot_0_subid,
443            is_airplane_mode,
444            wfc_mode[0],
445            self.wifi_network_ssid,
446            self.wifi_network_pass):
447
448            self.log.error("Phone Failed to Set Up Properly.")
449            self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE"))
450            raise signals.TestFailure("Failed",
451                extras={"fail_reason": "Phone Failed to Set Up Properly."})
452
453        if not phone_setup_on_rat(
454            self.log,
455            ad,
456            slot_1_nw_gen,
457            slot_1_subid,
458            is_airplane_mode,
459            wfc_mode[1],
460            self.wifi_network_ssid,
461            self.wifi_network_pass):
462
463            self.log.error("Phone Failed to Set Up Properly.")
464            self.tel_logger.set_result(CallResult("CALL_SETUP_FAILURE"))
465            raise signals.TestFailure("Failed",
466                extras={"fail_reason": "Phone Failed to Set Up Properly."})
467
468        is_slot0_in_call = is_phone_in_call_on_rat(
469            self.log, ad, slot_0_nw_gen, True)
470        is_slot1_in_call = is_phone_in_call_on_rat(
471            self.log, ad, slot_1_nw_gen, True)
472
473        if is_wifi_connected:
474            if not ensure_wifi_connected(
475                self.log,
476                ad,
477                self.wifi_network_ssid,
478                self.wifi_network_pass,
479                apm=False):
480                return False
481            time.sleep(5)
482
483        ad.log.info("Step 1: Enable/disable VoLTE and WFC.")
484        for sub_id, volte in zip([slot_0_subid, slot_1_subid], enable_volte):
485            if not toggle_volte_for_subscription(
486                self.log,
487                ad,
488                sub_id,
489                new_state=volte):
490                return False
491
492        for sub_id, wfc, mode in \
493            zip([slot_0_subid, slot_1_subid], enable_wfc, wfc_mode):
494            if not toggle_wfc_for_subscription(self.log, ad, new_state=wfc, sub_id=sub_id):
495                return False
496            if not set_wfc_mode_for_subscription(ad, mode, sub_id=sub_id):
497                return False
498
499        if airplane_mode_cycling:
500            ad.log.info("Step 2: Airplane mode cycling.")
501            ad.log.info("Step 2-1: Toggle on airplane mode.")
502            if not toggle_airplane_mode(self.log, ad, True):
503                ad.log.error("Failed to toggle on airplane mode.")
504                return False
505            time.sleep(5)
506            ad.log.info("Step 2-2: Toggle off airplane mode.")
507            if not toggle_airplane_mode(self.log, ad, False):
508                ad.log.error("Failed to toggle off airplane mode.")
509                return False
510
511            if is_airplane_mode:
512                time.sleep(5)
513                ad.log.info("Step 2-3: Toggle on airplane mode again.")
514                if not toggle_airplane_mode(self.log, ad, True):
515                    ad.log.error("Failed to toggle on airplane mode.")
516                    return False
517
518                if wfc_mode[0] or wfc_mode[1]:
519                    time.sleep(5)
520                    ad.log.info("Step 2-4: Toggle on Wi-Fi again.")
521                    if not ensure_wifi_connected(
522                        self.log,
523                        ad,
524                        self.wifi_network_ssid,
525                        self.wifi_network_pass,
526                        apm=is_airplane_mode):
527                        return False
528                    time.sleep(5)
529
530        if cellular_data_cycling:
531            if call_slot == 0:
532                sub_id = slot_0_subid
533            elif call_slot == 1:
534                sub_id = slot_1_subid
535            ad.log.info("Step 2: Cellular data cycling")
536            ad.log.info("Step 2-1: Toggle off cellular data.")
537            ad.droid.telephonyToggleDataConnection(False)
538            if not check_is_wifi_connected(
539                self.log,
540                ad,
541                self.wifi_network_ssid):
542                if not wait_for_cell_data_connection_for_subscription(
543                        self.log, ad, sub_id, False):
544                    ad.log.error("Failed to disable cellular data")
545                    return False
546
547                if not verify_internet_connection(
548                    self.log,
549                    ad,
550                    expected_state=False):
551                    ad.log.error("Internet still accessible when cellular data"
552                    " is disabled.")
553                    return False
554            time.sleep(5)
555            ad.log.info("Step 2-2: Toggle on cellular data.")
556            ad.droid.telephonyToggleDataConnection(True)
557            if not check_is_wifi_connected(
558                self.log,
559                ad,
560                self.wifi_network_ssid):
561                if not wait_for_cell_data_connection_for_subscription(
562                        self.log, ad, sub_id, True):
563                    ad.log.error("Failed to enable cellular data")
564                    return False
565                if not verify_internet_connection(self.log, ad, retries=3):
566                    ad.log.error(
567                        "Internet inaccessible when cellular data is enabled.")
568                    return False
569
570        if wifi_cycling:
571            ad.log.info("Step 2: Wi-Fi cycling")
572            ad.log.info("Step 2-1: Toggle on Wi-Fi.")
573            if not ensure_wifi_connected(
574                self.log,
575                ad,
576                self.wifi_network_ssid,
577                self.wifi_network_pass,
578                apm=is_airplane_mode):
579                return False
580            time.sleep(5)
581            ad.log.info("Step 2-2: Toggle off Wi-Fi.")
582            ad.droid.wifiToggleState(False)
583            time.sleep(5)
584
585            if (call_slot == 0 and slot_0_nw_gen == "wfc") or \
586                (call_slot == 1 and slot_1_nw_gen == "wfc") or is_wifi_connected:
587                if not ensure_wifi_connected(
588                    self.log,
589                    ad,
590                    self.wifi_network_ssid,
591                    self.wifi_network_pass,
592                    apm=is_airplane_mode):
593                    return False
594
595        for attempt in range(3):
596            if attempt != 0:
597                ad.log.info("Repeat step 1 to 4.")
598
599            ad.log.info("Step 3: Switch DDS.")
600            if attempt % 2 == 0:
601                set_dds_on_slot_0(ad)
602            else:
603                set_dds_on_slot_1(ad)
604
605            ad.log.info("Step 4: Check HTTP connection after DDS switch.")
606            if not verify_http_connection(self.log, ad):
607                ad.log.error("Failed to verify http connection.")
608                return False
609            else:
610                ad.log.info("Verify http connection successfully.")
611
612            if streaming:
613                ad.log.info("Step 5: Start Youtube streaming.")
614                if not start_youtube_video(ad):
615                    ad.log.warning("Fail to bring up youtube video")
616                time.sleep(10)
617            else:
618                ad.log.info("Step 5: Skip Youtube streaming.")
619
620            if not call_direction:
621                return True
622            else:
623                if call_direction == "mo":
624                    ad_mo = self.android_devices[0]
625                    ad_mt = self.android_devices[1]
626                    mo_sub_id = get_subid_from_slot_index(self.log, ad, call_slot)
627
628                    set_voice_sub_id(ad_mo, mo_sub_id)
629                    _, mt_sub_id, _ = get_subid_on_same_network_of_host_ad(
630                        self.android_devices)
631
632                    if call_slot == 0:
633                        is_mo_in_call = is_slot0_in_call
634                    elif call_slot == 1:
635                        is_mo_in_call = is_slot1_in_call
636                    is_mt_in_call = None
637
638                elif call_direction == "mt":
639                    ad_mo = self.android_devices[1]
640                    ad_mt = self.android_devices[0]
641                    mt_sub_id = get_subid_from_slot_index(self.log, ad, call_slot)
642
643                    set_voice_sub_id(ad_mt, mt_sub_id)
644                    _, mo_sub_id, _ = get_subid_on_same_network_of_host_ad(
645                        self.android_devices)
646
647                    if call_slot == 0:
648                        is_mt_in_call = is_slot0_in_call
649                    elif call_slot == 1:
650                        is_mt_in_call = is_slot1_in_call
651                    is_mo_in_call = None
652
653                if (call_slot == 0 and slot_0_nw_gen == "wfc") or \
654                    (call_slot == 1 and slot_1_nw_gen == "wfc"):
655                    if not wait_for_wfc_enabled(self.log, ad):
656                        return False
657
658                self.log.info("Step 6: Make voice call.")
659                mo_slot = get_slot_index_from_subid(ad_mo, mo_sub_id)
660                mt_slot = get_slot_index_from_subid(ad_mt, mt_sub_id)
661                result = two_phone_call_msim_for_slot(
662                    self.log,
663                    ad_mo,
664                    mo_slot,
665                    None,
666                    is_mo_in_call,
667                    ad_mt,
668                    mt_slot,
669                    None,
670                    is_mt_in_call)
671                self.tel_logger.set_result(result.result_value)
672
673                if not result:
674                    self.log.error(
675                        "Failed to make MO call from %s slot %s to %s slot %s",
676                        ad_mo.serial, mo_slot, ad_mt.serial, mt_slot)
677                    raise signals.TestFailure("Failed",
678                        extras={"fail_reason": str(result.result_value)})
679
680        return True
681
682    def _test_dds_switch_volte_cycling(self, slot=0):
683        """ VoLTE cycling after DDS switch.
684
685        Test steps:
686            1. Enable VoLTE.
687            2. Disable VoLTE.
688            3. Switch DDS to slot 0.
689            4. Check HTTP connection after DDS switch.
690            5. Enable VoLTE again.
691            6. Check if IMS can be registered successfully and if VoLTE is
692               available.
693            7. Repeat steps 2-6 for 2 times and each time DDS should be switched
694               to another slot.
695
696        Args:
697            slot: slot to be tested
698
699        Returns:
700            True or False
701        """
702        ad = self.android_devices[0]
703        slot_0_subid = get_subid_from_slot_index(self.log, ad, 0)
704        slot_1_subid = get_subid_from_slot_index(self.log, ad, 1)
705
706        if slot == 0:
707            sub_id = slot_0_subid
708        elif slot == 1:
709            sub_id = slot_1_subid
710
711        ad.log.info("Step 1: Enable VoLTE for sub ID %s.", sub_id)
712        if not phone_setup_volte_for_subscription(self.log, ad, sub_id):
713            return False
714
715        for attempt in range(3):
716            if attempt != 0:
717                ad.log.info("Repeat step 2 to 4.")
718
719            ad.log.info("Step 2-1: Disable VoLTE for sub ID %s.", sub_id)
720            if not toggle_volte_for_subscription(
721                self.log, ad, sub_id, new_state=False):
722                return False
723
724            ad.log.info(
725                "Step 2-2: Ensure VoLTE is disabled for sub ID %s.", sub_id)
726            if is_volte_enabled(self.log, ad, sub_id):
727                return False
728
729            ad.log.info("Step 3: Switch DDS.")
730            if attempt % 2 == 0:
731                set_dds_on_slot_0(ad)
732            else:
733                set_dds_on_slot_1(ad)
734
735            ad.log.info("Step 4: Check HTTP connection after DDS switch.")
736            if not verify_http_connection(self.log, ad):
737                ad.log.error("Failed to verify http connection.")
738                return False
739            else:
740                ad.log.info("Verify http connection successfully.")
741
742            ad.log.info(
743                "Step 5: Enable VoLTE again after DDS switch for sub ID %s.",
744                sub_id)
745            if not phone_setup_volte_for_subscription(self.log, ad, sub_id):
746                return False
747
748        return True
749
750    @test_tracker_info(uuid="06908fb0-aaaa-4c95-b073-ea5ba8977050")
751    @TelephonyBaseTest.tel_test_wrap
752    def test_dds_switch_when_volte_enabled(self):
753        ad = self.android_devices[0]
754        slot_0_subid = get_subid_from_slot_index(self.log, ad, 0)
755        slot_1_subid = get_subid_from_slot_index(self.log, ad, 1)
756
757        ad.log.info("Step 0: Ensure VoLTE is enabled as initial condition.")
758        if not phone_setup_volte_for_subscription(self.log, ad, slot_0_subid):
759            return False
760        if not phone_setup_volte_for_subscription(self.log, ad, slot_1_subid):
761            return False
762
763        for attempt in range(3):
764            ad.log.info("Step 1: Switch DDS.")
765            if attempt % 2 == 0:
766                set_dds_on_slot_0(ad)
767            else:
768                set_dds_on_slot_1(ad)
769
770            ad.log.info("Step 2: Check HTTP connection after DDS switch.")
771            if not verify_http_connection(self.log, ad):
772                ad.log.error("Failed to verify http connection.")
773                return False
774            else:
775                ad.log.info("Verify http connection successfully.")
776
777            ad.log.info("Step 3: Ensure VoLTE is still enabled after DDS"
778                " switch.")
779            if not phone_setup_volte_for_subscription(
780                self.log, ad, slot_0_subid):
781                return False
782            if not phone_setup_volte_for_subscription(
783                self.log, ad, slot_1_subid):
784                return False
785        return True
786
787    @test_tracker_info(uuid="6b41d84c-4485-47b0-a5d8-eac16ed36258")
788    @TelephonyBaseTest.tel_test_wrap
789    def test_dds_switch_and_reboot_when_volte_enabled(self):
790        ad = self.android_devices[0]
791        slot_0_subid = get_subid_from_slot_index(self.log, ad, 0)
792        slot_1_subid = get_subid_from_slot_index(self.log, ad, 1)
793
794        ad.log.info("Step 0: Ensure VoLTE is enabled as initial condition.")
795        if not phone_setup_volte_for_subscription(self.log, ad, slot_0_subid):
796            return False
797        if not phone_setup_volte_for_subscription(self.log, ad, slot_1_subid):
798            return False
799
800        for attempt in range(3):
801            ad.log.info("Step 1: Switch DDS.")
802            if attempt % 2 == 0:
803                set_dds_on_slot_0(ad)
804            else:
805                set_dds_on_slot_1(ad)
806
807            ad.log.info("Step 2: Check HTTP connection after DDS switch.")
808            if not verify_http_connection(self.log, ad):
809                ad.log.error("Failed to verify http connection.")
810                return False
811            else:
812                ad.log.info("Verify http connection successfully.")
813
814            ad.log.info("Step 3: Reboot.")
815            if not reboot_test(self.log, ad):
816                return False
817
818            ad.log.info("Step 4: Ensure VoLTE is still enabled after DDS"
819                " switch.")
820            if not phone_setup_volte_for_subscription(
821                self.log, ad, slot_0_subid):
822                return False
823            if not phone_setup_volte_for_subscription(
824                self.log, ad, slot_1_subid):
825                return False
826        return True
827
828    @test_tracker_info(uuid="bb440f33-ab0d-4999-885c-5c1f933430c4")
829    @TelephonyBaseTest.tel_test_wrap
830    def test_dds_switch_when_volte_cycling_psim(self):
831        return self._test_dds_switch_volte_cycling(slot=0)
832
833    @test_tracker_info(uuid="cbd5a4ae-be37-4435-b9db-fe58e8fdac5f")
834    @TelephonyBaseTest.tel_test_wrap
835    def test_dds_switch_when_volte_cycling_esim(self):
836        return self._test_dds_switch_volte_cycling(slot=1)
837
838
839    @test_tracker_info(uuid="2df5faf9-8318-4acb-9068-e6ec0481c2ca")
840    @TelephonyBaseTest.tel_test_wrap
841    def test_dds_switch_youtube_volte(self):
842        return self._test_dds_switch_during_data_transfer(
843            slot_0_nw_gen="volte",
844            slot_1_nw_gen="volte")
845
846    @test_tracker_info(uuid="eb73506e-c604-48df-be04-9b602a801afc")
847    @TelephonyBaseTest.tel_test_wrap
848    def test_dds_switch_youtube_and_voice_call_mo_volte_psim(self):
849        return self._test_dds_switch_during_data_transfer(
850            slot_0_nw_gen="volte",
851            slot_1_nw_gen="volte",
852            call_slot=0,
853            call_direction="mo")
854
855    @test_tracker_info(uuid="2e2feab1-65a8-40a7-8666-0c46cb3411a4")
856    @TelephonyBaseTest.tel_test_wrap
857    def test_dds_switch_youtube_and_voice_call_mo_volte_esim(self):
858        return self._test_dds_switch_during_data_transfer(
859            slot_0_nw_gen="volte",
860            slot_1_nw_gen="volte",
861            call_slot=1,
862            call_direction="mo")
863
864    @test_tracker_info(uuid="f2a7d62c-1f54-4081-b7bb-4782c5482b41")
865    @TelephonyBaseTest.tel_test_wrap
866    def test_dds_switch_youtube_and_voice_call_mt_volte_psim(self):
867        return self._test_dds_switch_during_data_transfer(
868            slot_0_nw_gen="volte",
869            slot_1_nw_gen="volte",
870            call_slot=0,
871            call_direction="mt")
872
873    @test_tracker_info(uuid="df211078-b260-499d-8f7e-86cad039c5f5")
874    @TelephonyBaseTest.tel_test_wrap
875    def test_dds_switch_youtube_and_voice_call_mt_volte_esim(self):
876        return self._test_dds_switch_during_data_transfer(
877            slot_0_nw_gen="volte",
878            slot_1_nw_gen="volte",
879            call_slot=1,
880            call_direction="mt")
881
882    @test_tracker_info(uuid="bd77782d-f43d-40c6-9982-47cd452d980f")
883    @TelephonyBaseTest.tel_test_wrap
884    def test_dds_switch_youtube_and_voice_call_mo_csfb_psim(self):
885        return self._test_dds_switch_during_data_transfer(
886            slot_0_nw_gen="csfb",
887            slot_1_nw_gen="csfb",
888            call_slot=0,
889            call_direction="mo")
890
891    @test_tracker_info(uuid="361a6f69-e6ea-4013-960d-732931fcd130")
892    @TelephonyBaseTest.tel_test_wrap
893    def test_dds_switch_youtube_and_voice_call_mo_csfb_esim(self):
894        return self._test_dds_switch_during_data_transfer(
895            slot_0_nw_gen="csfb",
896            slot_1_nw_gen="csfb",
897            call_slot=1,
898            call_direction="mo")
899
900    @test_tracker_info(uuid="26186d4f-0b0d-41c5-ab91-04e9851461f0")
901    @TelephonyBaseTest.tel_test_wrap
902    def test_dds_switch_youtube_and_voice_call_mt_csfb_psim(self):
903        return self._test_dds_switch_during_data_transfer(
904            slot_0_nw_gen="csfb",
905            slot_1_nw_gen="csfb",
906            call_slot=0,
907            call_direction="mt")
908
909    @test_tracker_info(uuid="7d31c644-a470-4eb9-b272-f0cfc34d23cb")
910    @TelephonyBaseTest.tel_test_wrap
911    def test_dds_switch_youtube_and_voice_call_mt_csfb_esim(self):
912        return self._test_dds_switch_during_data_transfer(
913            slot_0_nw_gen="csfb",
914            slot_1_nw_gen="csfb",
915            call_slot=1,
916            call_direction="mt")
917
918    @test_tracker_info(uuid="614076a6-b042-45f3-84fe-c84591e02f78")
919    @TelephonyBaseTest.tel_test_wrap
920    def test_dds_switch_youtube_and_sms_volte(self):
921        result = True
922        self.log.info("Scenario 1: MO SMS at slot 0")
923        if not self._test_dds_switch_during_data_transfer(
924            slot_0_nw_gen="volte",
925            slot_1_nw_gen="volte",
926            call_slot=0,
927            call_direction="mo",
928            call_or_sms_or_mms="sms"):
929            result = False
930        self.log.info("Scenario 2: MO SMS at slot 1")
931        if not self._test_dds_switch_during_data_transfer(
932            slot_0_nw_gen="volte",
933            slot_1_nw_gen="volte",
934            call_slot=1,
935            call_direction="mo",
936            call_or_sms_or_mms="sms"):
937            result = False
938        self.log.info("Scenario 3: MT SMS at slot 0")
939        if not self._test_dds_switch_during_data_transfer(
940            slot_0_nw_gen="volte",
941            slot_1_nw_gen="volte",
942            call_slot=0,
943            call_direction="mt",
944            call_or_sms_or_mms="sms"):
945            result = False
946        self.log.info("Scenario 4: MT SMS at slot 1")
947        if not self._test_dds_switch_during_data_transfer(
948            slot_0_nw_gen="volte",
949            slot_1_nw_gen="volte",
950            call_slot=1,
951            call_direction="mt",
952            call_or_sms_or_mms="sms"):
953            result = False
954        return result
955
956    @test_tracker_info(uuid="5e61f007-7b01-4dee-ac2d-fd2225ac3dbd")
957    @TelephonyBaseTest.tel_test_wrap
958    def test_dds_switch_youtube_and_mms_volte(self):
959        result = True
960        self.log.info("Scenario 1: MO MMS at slot 0")
961        if not self._test_dds_switch_during_data_transfer(
962            slot_0_nw_gen="volte",
963            slot_1_nw_gen="volte",
964            call_slot=0,
965            call_direction="mo",
966            call_or_sms_or_mms="mms"):
967            result = False
968        self.log.info("Scenario 2: MO MMS at slot 1")
969        if not self._test_dds_switch_during_data_transfer(
970            slot_0_nw_gen="volte",
971            slot_1_nw_gen="volte",
972            call_slot=1,
973            call_direction="mo",
974            call_or_sms_or_mms="mms"):
975            result = False
976        self.log.info("Scenario 3: MT MMS at slot 0")
977        if not self._test_dds_switch_during_data_transfer(
978            slot_0_nw_gen="volte",
979            slot_1_nw_gen="volte",
980            call_slot=0,
981            call_direction="mt",
982            call_or_sms_or_mms="mms"):
983            result = False
984        self.log.info("Scenario 4: MT MMS at slot 1")
985        if not self._test_dds_switch_during_data_transfer(
986            slot_0_nw_gen="volte",
987            slot_1_nw_gen="volte",
988            call_slot=1,
989            call_direction="mt",
990            call_or_sms_or_mms="mms"):
991            result = False
992        return result
993
994    @test_tracker_info(uuid="47b9bf08-2c17-4646-b1d3-3d191318bc0d")
995    @TelephonyBaseTest.tel_test_wrap
996    def test_dds_switch_voice_call_mo_volte_psim(self):
997        return self._test_dds_switch_during_data_transfer(
998            "volte", "volte", 0, "mo", "call", False)
999
1000    @test_tracker_info(uuid="eef31675-f0a3-4086-8474-d67614ede507")
1001    @TelephonyBaseTest.tel_test_wrap
1002    def test_dds_switch_voice_call_mo_volte_esim(self):
1003        return self._test_dds_switch_during_data_transfer(
1004            "volte", "volte", 1, "mo", "call", False)
1005
1006    @test_tracker_info(uuid="ce8b6ce8-d314-49ca-bead-391c15809235")
1007    @TelephonyBaseTest.tel_test_wrap
1008    def test_dds_switch_voice_call_mt_volte_psim(self):
1009        return self._test_dds_switch_during_data_transfer(
1010            "volte", "volte", 0, "mt", "call", False)
1011
1012    @test_tracker_info(uuid="64c941e0-fcab-43ca-a988-f667398f1997")
1013    @TelephonyBaseTest.tel_test_wrap
1014    def test_dds_switch_voice_call_mt_volte_esim(self):
1015        return self._test_dds_switch_during_data_transfer(
1016            "volte", "volte", 1, "mt", "call", False)
1017
1018    @test_tracker_info(uuid="28963e86-f8ce-4324-8ce8-8e6628fd2d99")
1019    @TelephonyBaseTest.tel_test_wrap
1020    def test_dds_switch_sms_volte(self):
1021        result = True
1022        self.log.info("Scenario 1: MO SMS at slot 0")
1023        if not self._test_dds_switch_during_data_transfer(
1024            "volte", "volte", 0, "mo", "sms", False):
1025            result = False
1026        self.log.info("Scenario 2: MO SMS at slot 1")
1027        if not self._test_dds_switch_during_data_transfer(
1028            "volte", "volte", 1, "mo", "sms", False):
1029            result = False
1030        self.log.info("Scenario 3: MT SMS at slot 0")
1031        if not self._test_dds_switch_during_data_transfer(
1032            "volte", "volte", 0, "mt", "sms", False):
1033            result = False
1034        self.log.info("Scenario 4: MT SMS at slot 1")
1035        if not self._test_dds_switch_during_data_transfer(
1036            "volte", "volte", 1, "mt", "sms", False):
1037            result = False
1038        return result
1039
1040    @test_tracker_info(uuid="915c0eb3-1a84-4eb0-8cba-cafe32c0d604")
1041    @TelephonyBaseTest.tel_test_wrap
1042    def test_dds_switch_mms_volte(self):
1043        result = True
1044        self.log.info("Scenario 1: MO MMS at slot 0")
1045        if not self._test_dds_switch_during_data_transfer(
1046            "volte", "volte", 0, "mo", "mms", False):
1047            result = False
1048        self.log.info("Scenario 2: MO MMS at slot 1")
1049        if not self._test_dds_switch_during_data_transfer(
1050            "volte", "volte", 1, "mo", "mms", False):
1051            result = False
1052        self.log.info("Scenario 3: MT MMS at slot 0")
1053        if not self._test_dds_switch_during_data_transfer(
1054            "volte", "volte", 0, "mt", "mms", False):
1055            result = False
1056        self.log.info("Scenario 4: MT MMS at slot 1")
1057        if not self._test_dds_switch_during_data_transfer(
1058            "volte", "volte", 1, "mt", "mms", False):
1059            result = False
1060        return result
1061
1062    @test_tracker_info(uuid="d58939c0-d246-453e-9eac-54152d6dc70c")
1063    @TelephonyBaseTest.tel_test_wrap
1064    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_on_apm_cycling(self):
1065        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1066            slot_0_nw_gen="volte",
1067            slot_1_nw_gen="volte",
1068            call_slot=0,
1069            call_direction="mo",
1070            streaming=True,
1071            airplane_mode_cycling=True,
1072            enable_volte=[True, True],
1073            enable_wfc=[True, True],
1074            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1075
1076    @test_tracker_info(uuid="61dfb957-6349-4190-8e63-973558b1292b")
1077    @TelephonyBaseTest.tel_test_wrap
1078    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_on_apm_cycling(self):
1079        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1080            slot_0_nw_gen="volte",
1081            slot_1_nw_gen="volte",
1082            call_slot=1,
1083            call_direction="mo",
1084            streaming=True,
1085            airplane_mode_cycling=True,
1086            enable_volte=[True, True],
1087            enable_wfc=[True, True],
1088            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1089
1090    @test_tracker_info(uuid="127377f2-973f-4758-b138-4c0dd276f893")
1091    @TelephonyBaseTest.tel_test_wrap
1092    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_on_apm_cycling(self):
1093        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1094            slot_0_nw_gen="volte",
1095            slot_1_nw_gen="volte",
1096            call_slot=0,
1097            call_direction="mt",
1098            streaming=True,
1099            airplane_mode_cycling=True,
1100            enable_volte=[True, True],
1101            enable_wfc=[True, True],
1102            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1103
1104    @test_tracker_info(uuid="a149d357-27a7-490d-a30b-70f44cd43ac7")
1105    @TelephonyBaseTest.tel_test_wrap
1106    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_on_apm_cycling(self):
1107        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1108            slot_0_nw_gen="volte",
1109            slot_1_nw_gen="volte",
1110            call_slot=1,
1111            call_direction="mt",
1112            streaming=True,
1113            airplane_mode_cycling=True,
1114            enable_volte=[True, True],
1115            enable_wfc=[True, True],
1116            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1117
1118    @test_tracker_info(uuid="8823e87c-0e4d-435d-a17f-84e1b65c1012")
1119    @TelephonyBaseTest.tel_test_wrap
1120    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_on_wifi_on_apm_cycling(self):
1121        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1122            slot_0_nw_gen="volte",
1123            slot_1_nw_gen="volte",
1124            call_slot=0,
1125            call_direction="mo",
1126            streaming=True,
1127            airplane_mode_cycling=True,
1128            enable_volte=[True, True],
1129            enable_wfc=[True, True],
1130            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1131            is_wifi_connected=True)
1132
1133    @test_tracker_info(uuid="bd038a77-baa6-483d-9af0-fe18d50d7f1f")
1134    @TelephonyBaseTest.tel_test_wrap
1135    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_on_wifi_on_apm_cycling(self):
1136        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1137            slot_0_nw_gen="volte",
1138            slot_1_nw_gen="volte",
1139            call_slot=1,
1140            call_direction="mo",
1141            streaming=True,
1142            airplane_mode_cycling=True,
1143            enable_volte=[True, True],
1144            enable_wfc=[True, True],
1145            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1146            is_wifi_connected=True)
1147
1148    @test_tracker_info(uuid="3f96fb8a-d4ee-49b8-8958-45cd509ed7b8")
1149    @TelephonyBaseTest.tel_test_wrap
1150    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_on_wifi_on_apm_cycling(self):
1151        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1152            slot_0_nw_gen="volte",
1153            slot_1_nw_gen="volte",
1154            call_slot=0,
1155            call_direction="mt",
1156            streaming=True,
1157            airplane_mode_cycling=True,
1158            enable_volte=[True, True],
1159            enable_wfc=[True, True],
1160            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1161            is_wifi_connected=True)
1162
1163    @test_tracker_info(uuid="1f89da8b-e559-4e96-afc7-0d2127616c56")
1164    @TelephonyBaseTest.tel_test_wrap
1165    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_on_wifi_on_apm_cycling(self):
1166        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1167            slot_0_nw_gen="volte",
1168            slot_1_nw_gen="volte",
1169            call_slot=1,
1170            call_direction="mt",
1171            streaming=True,
1172            airplane_mode_cycling=True,
1173            enable_volte=[True, True],
1174            enable_wfc=[True, True],
1175            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1176            is_wifi_connected=True)
1177
1178    @test_tracker_info(uuid="bc522b4d-2d26-4b5f-b82c-f92356f103d0")
1179    @TelephonyBaseTest.tel_test_wrap
1180    def test_dds_switch_voice_call_mo_wfc_psim_cellular_preferred_apm_on_with_volte_on_apm_cycling(self):
1181        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1182            slot_0_nw_gen="wfc",
1183            slot_1_nw_gen="wfc",
1184            call_slot=0,
1185            call_direction="mo",
1186            streaming=True,
1187            airplane_mode_cycling=True,
1188            enable_volte=[True, True],
1189            enable_wfc=[True, True],
1190            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1191            is_airplane_mode=True)
1192
1193    @test_tracker_info(uuid="970ccdb4-c7b3-4b56-b93b-f811407c82cb")
1194    @TelephonyBaseTest.tel_test_wrap
1195    def test_dds_switch_voice_call_mo_wfc_esim_cellular_preferred_apm_on_with_volte_on_apm_cycling(self):
1196        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1197            slot_0_nw_gen="wfc",
1198            slot_1_nw_gen="wfc",
1199            call_slot=1,
1200            call_direction="mo",
1201            streaming=True,
1202            airplane_mode_cycling=True,
1203            enable_volte=[True, True],
1204            enable_wfc=[True, True],
1205            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1206            is_airplane_mode=True)
1207
1208    @test_tracker_info(uuid="26c8b63e-631c-42d0-868b-03c2db6181b7")
1209    @TelephonyBaseTest.tel_test_wrap
1210    def test_dds_switch_voice_call_mo_wfc_psim_wifi_preferred_apm_off_with_volte_on_apm_cycling(self):
1211        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1212            slot_0_nw_gen="wfc",
1213            slot_1_nw_gen="wfc",
1214            call_slot=0,
1215            call_direction="mo",
1216            streaming=True,
1217            airplane_mode_cycling=True,
1218            enable_volte=[True, True],
1219            enable_wfc=[True, True],
1220            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1221            is_airplane_mode=False)
1222
1223    @test_tracker_info(uuid="efd73091-8667-42a3-8551-eafa497fc383")
1224    @TelephonyBaseTest.tel_test_wrap
1225    def test_dds_switch_voice_call_mo_wfc_esim_wifi_preferred_apm_off_with_volte_on_apm_cycling(self):
1226        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1227            slot_0_nw_gen="wfc",
1228            slot_1_nw_gen="wfc",
1229            call_slot=1,
1230            call_direction="mo",
1231            streaming=True,
1232            airplane_mode_cycling=True,
1233            enable_volte=[True, True],
1234            enable_wfc=[True, True],
1235            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1236            is_airplane_mode=False)
1237
1238    @test_tracker_info(uuid="618768b9-83c2-4ab7-b1fb-10a4037c5834")
1239    @TelephonyBaseTest.tel_test_wrap
1240    def test_dds_switch_voice_call_mt_wfc_psim_cellular_preferred_apm_on_with_volte_on_apm_cycling(self):
1241        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1242            slot_0_nw_gen="wfc",
1243            slot_1_nw_gen="wfc",
1244            call_slot=0,
1245            call_direction="mt",
1246            streaming=True,
1247            airplane_mode_cycling=True,
1248            enable_volte=[True, True],
1249            enable_wfc=[True, True],
1250            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1251            is_airplane_mode=True)
1252
1253    @test_tracker_info(uuid="24d695a1-7421-4038-bb07-4d81f3f6d05b")
1254    @TelephonyBaseTest.tel_test_wrap
1255    def test_dds_switch_voice_call_mt_wfc_esim_cellular_preferred_apm_on_with_volte_on_apm_cycling(self):
1256        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1257            slot_0_nw_gen="wfc",
1258            slot_1_nw_gen="wfc",
1259            call_slot=1,
1260            call_direction="mt",
1261            streaming=True,
1262            airplane_mode_cycling=True,
1263            enable_volte=[True, True],
1264            enable_wfc=[True, True],
1265            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1266            is_airplane_mode=True)
1267
1268    @test_tracker_info(uuid="2f28db8f-c0c3-4cf6-9f6f-439c9e32d9f3")
1269    @TelephonyBaseTest.tel_test_wrap
1270    def test_dds_switch_voice_call_mt_wfc_psim_wifi_preferred_apm_off_with_volte_on_apm_cycling(self):
1271        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1272            slot_0_nw_gen="wfc",
1273            slot_1_nw_gen="wfc",
1274            call_slot=0,
1275            call_direction="mt",
1276            streaming=True,
1277            airplane_mode_cycling=True,
1278            enable_volte=[True, True],
1279            enable_wfc=[True, True],
1280            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1281            is_airplane_mode=False)
1282
1283    @test_tracker_info(uuid="60d851c5-f79d-46e7-b921-b510bcdc9024")
1284    @TelephonyBaseTest.tel_test_wrap
1285    def test_dds_switch_voice_call_mt_wfc_esim_wifi_preferred_apm_off_with_volte_on_apm_cycling(self):
1286        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1287            slot_0_nw_gen="wfc",
1288            slot_1_nw_gen="wfc",
1289            call_slot=1,
1290            call_direction="mt",
1291            streaming=True,
1292            airplane_mode_cycling=True,
1293            enable_volte=[True, True],
1294            enable_wfc=[True, True],
1295            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1296            is_airplane_mode=False)
1297
1298    @test_tracker_info(uuid="092b1e43-3de4-4b08-b526-4f3f1e71a47a")
1299    @TelephonyBaseTest.tel_test_wrap
1300    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_on_cellular_data_cycling(self):
1301        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1302            slot_0_nw_gen="volte",
1303            slot_1_nw_gen="volte",
1304            call_slot=0,
1305            call_direction="mo",
1306            streaming=True,
1307            cellular_data_cycling=True,
1308            enable_volte=[True, True],
1309            enable_wfc=[True, True],
1310            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1311
1312    @test_tracker_info(uuid="3b876b39-1cfb-4adb-a45c-11a02890f8e1")
1313    @TelephonyBaseTest.tel_test_wrap
1314    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_on_cellular_data_cycling(self):
1315        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1316            slot_0_nw_gen="volte",
1317            slot_1_nw_gen="volte",
1318            call_slot=1,
1319            call_direction="mo",
1320            streaming=True,
1321            cellular_data_cycling=True,
1322            enable_volte=[True, True],
1323            enable_wfc=[True, True],
1324            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1325
1326    @test_tracker_info(uuid="96c42ffb-5b4e-4ab0-b52a-8b498a25f759")
1327    @TelephonyBaseTest.tel_test_wrap
1328    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_on_cellular_data_cycling(self):
1329        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1330            slot_0_nw_gen="volte",
1331            slot_1_nw_gen="volte",
1332            call_slot=0,
1333            call_direction="mt",
1334            streaming=True,
1335            cellular_data_cycling=True,
1336            enable_volte=[True, True],
1337            enable_wfc=[True, True],
1338            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1339
1340    @test_tracker_info(uuid="fbd4c30c-fef9-4100-b704-eb27d3bcb7ae")
1341    @TelephonyBaseTest.tel_test_wrap
1342    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_on_cellular_data_cycling(self):
1343        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1344            slot_0_nw_gen="volte",
1345            slot_1_nw_gen="volte",
1346            call_slot=1,
1347            call_direction="mt",
1348            streaming=True,
1349            cellular_data_cycling=True,
1350            enable_volte=[True, True],
1351            enable_wfc=[True, True],
1352            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1353
1354    @test_tracker_info(uuid="fbd88b9d-e27b-4c06-a983-a780d0c00623")
1355    @TelephonyBaseTest.tel_test_wrap
1356    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_on_wifi_on_cellular_data_cycling(self):
1357        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1358            slot_0_nw_gen="volte",
1359            slot_1_nw_gen="volte",
1360            call_slot=0,
1361            call_direction="mo",
1362            streaming=True,
1363            cellular_data_cycling=True,
1364            enable_volte=[True, True],
1365            enable_wfc=[True, True],
1366            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1367            is_wifi_connected=True)
1368
1369    @test_tracker_info(uuid="0fabca6f-28c4-4843-af70-f33d806d8dc1")
1370    @TelephonyBaseTest.tel_test_wrap
1371    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_on_wifi_on_cellular_data_cycling(self):
1372        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1373            slot_0_nw_gen="volte",
1374            slot_1_nw_gen="volte",
1375            call_slot=1,
1376            call_direction="mo",
1377            streaming=True,
1378            cellular_data_cycling=True,
1379            enable_volte=[True, True],
1380            enable_wfc=[True, True],
1381            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1382            is_wifi_connected=True)
1383
1384    @test_tracker_info(uuid="9b060264-69d8-437e-9981-b86e213952c5")
1385    @TelephonyBaseTest.tel_test_wrap
1386    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_on_wifi_on_cellular_data_cycling(self):
1387        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1388            slot_0_nw_gen="volte",
1389            slot_1_nw_gen="volte",
1390            call_slot=0,
1391            call_direction="mt",
1392            streaming=True,
1393            cellular_data_cycling=True,
1394            enable_volte=[True, True],
1395            enable_wfc=[True, True],
1396            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1397            is_wifi_connected=True)
1398
1399    @test_tracker_info(uuid="3a2effa4-728a-4160-9e0c-2aeafc7ba153")
1400    @TelephonyBaseTest.tel_test_wrap
1401    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_on_wifi_on_cellular_data_cycling(self):
1402        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1403            slot_0_nw_gen="volte",
1404            slot_1_nw_gen="volte",
1405            call_slot=1,
1406            call_direction="mt",
1407            streaming=True,
1408            cellular_data_cycling=True,
1409            enable_volte=[True, True],
1410            enable_wfc=[True, True],
1411            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1412            is_wifi_connected=True)
1413
1414    @test_tracker_info(uuid="ad491362-8bcc-4097-84af-932878002ce6")
1415    @TelephonyBaseTest.tel_test_wrap
1416    def test_dds_switch_voice_call_mo_wfc_psim_cellular_preferred_apm_on_with_volte_on_cellular_data_cycling(self):
1417        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1418            slot_0_nw_gen="wfc",
1419            slot_1_nw_gen="wfc",
1420            call_slot=0,
1421            call_direction="mo",
1422            streaming=True,
1423            cellular_data_cycling=True,
1424            enable_volte=[True, True],
1425            enable_wfc=[True, True],
1426            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1427            is_airplane_mode=True)
1428
1429    @test_tracker_info(uuid="c137fe4e-380b-4dc5-8996-c8c5654596f7")
1430    @TelephonyBaseTest.tel_test_wrap
1431    def test_dds_switch_voice_call_mo_wfc_esim_cellular_preferred_apm_on_with_volte_on_cellular_data_cycling(self):
1432        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1433            slot_0_nw_gen="wfc",
1434            slot_1_nw_gen="wfc",
1435            call_slot=1,
1436            call_direction="mo",
1437            streaming=True,
1438            cellular_data_cycling=True,
1439            enable_volte=[True, True],
1440            enable_wfc=[True, True],
1441            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1442            is_airplane_mode=True)
1443
1444    @test_tracker_info(uuid="e7936ce8-1652-4b21-b3f0-5327084b823c")
1445    @TelephonyBaseTest.tel_test_wrap
1446    def test_dds_switch_voice_call_mo_wfc_psim_wifi_preferred_apm_off_with_volte_on_cellular_data_cycling(self):
1447        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1448            slot_0_nw_gen="wfc",
1449            slot_1_nw_gen="wfc",
1450            call_slot=0,
1451            call_direction="mo",
1452            streaming=True,
1453            cellular_data_cycling=True,
1454            enable_volte=[True, True],
1455            enable_wfc=[True, True],
1456            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1457            is_airplane_mode=False)
1458
1459    @test_tracker_info(uuid="86db06b4-907f-4085-af8e-75c983831bb0")
1460    @TelephonyBaseTest.tel_test_wrap
1461    def test_dds_switch_voice_call_mo_wfc_esim_wifi_preferred_apm_off_with_volte_on_cellular_data_cycling(self):
1462        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1463            slot_0_nw_gen="wfc",
1464            slot_1_nw_gen="wfc",
1465            call_slot=1,
1466            call_direction="mo",
1467            streaming=True,
1468            cellular_data_cycling=True,
1469            enable_volte=[True, True],
1470            enable_wfc=[True, True],
1471            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1472            is_airplane_mode=False)
1473
1474    @test_tracker_info(uuid="e43b23b5-022a-4830-9110-839ece333f6f")
1475    @TelephonyBaseTest.tel_test_wrap
1476    def test_dds_switch_voice_call_mt_wfc_psim_cellular_preferred_apm_on_with_volte_on_cellular_data_cycling(self):
1477        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1478            slot_0_nw_gen="wfc",
1479            slot_1_nw_gen="wfc",
1480            call_slot=0,
1481            call_direction="mt",
1482            streaming=True,
1483            cellular_data_cycling=True,
1484            enable_volte=[True, True],
1485            enable_wfc=[True, True],
1486            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1487            is_airplane_mode=True)
1488
1489    @test_tracker_info(uuid="00d0bfc2-2121-4ba9-9dd7-72bf78380121")
1490    @TelephonyBaseTest.tel_test_wrap
1491    def test_dds_switch_voice_call_mt_wfc_esim_cellular_preferred_apm_on_with_volte_on_cellular_data_cycling(self):
1492        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1493            slot_0_nw_gen="wfc",
1494            slot_1_nw_gen="wfc",
1495            call_slot=1,
1496            call_direction="mt",
1497            streaming=True,
1498            cellular_data_cycling=True,
1499            enable_volte=[True, True],
1500            enable_wfc=[True, True],
1501            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1502            is_airplane_mode=True)
1503
1504    @test_tracker_info(uuid="4921a948-54d4-4945-81ea-02893d10b6e6")
1505    @TelephonyBaseTest.tel_test_wrap
1506    def test_dds_switch_voice_call_mt_wfc_psim_wifi_preferred_apm_off_with_volte_on_cellular_data_cycling(self):
1507        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1508            slot_0_nw_gen="wfc",
1509            slot_1_nw_gen="wfc",
1510            call_slot=0,
1511            call_direction="mt",
1512            streaming=True,
1513            cellular_data_cycling=True,
1514            enable_volte=[True, True],
1515            enable_wfc=[True, True],
1516            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1517            is_airplane_mode=False)
1518
1519    @test_tracker_info(uuid="ed4b8ba4-1b31-4e3c-9be3-0e184e324523")
1520    @TelephonyBaseTest.tel_test_wrap
1521    def test_dds_switch_voice_call_mt_wfc_esim_wifi_preferred_apm_off_with_volte_on_cellular_data_cycling(self):
1522        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1523            slot_0_nw_gen="wfc",
1524            slot_1_nw_gen="wfc",
1525            call_slot=1,
1526            call_direction="mt",
1527            streaming=True,
1528            cellular_data_cycling=True,
1529            enable_volte=[True, True],
1530            enable_wfc=[True, True],
1531            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1532            is_airplane_mode=False)
1533
1534    @test_tracker_info(uuid="1fb43960-51dd-4be9-adf1-51c84cb8d85a")
1535    @TelephonyBaseTest.tel_test_wrap
1536    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_on_wifi_cycling(self):
1537        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1538            slot_0_nw_gen="volte",
1539            slot_1_nw_gen="volte",
1540            call_slot=0,
1541            call_direction="mo",
1542            streaming=True,
1543            wifi_cycling=True,
1544            enable_volte=[True, True],
1545            enable_wfc=[True, True],
1546            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1547
1548    @test_tracker_info(uuid="1052e02f-5a4b-4826-9c47-9ab6d142f300")
1549    @TelephonyBaseTest.tel_test_wrap
1550    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_on_wifi_cycling(self):
1551        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1552            slot_0_nw_gen="volte",
1553            slot_1_nw_gen="volte",
1554            call_slot=1,
1555            call_direction="mo",
1556            streaming=True,
1557            wifi_cycling=True,
1558            enable_volte=[True, True],
1559            enable_wfc=[True, True],
1560            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1561
1562    @test_tracker_info(uuid="23bb1991-6ff1-4528-aeee-1ec0c7b525be")
1563    @TelephonyBaseTest.tel_test_wrap
1564    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_on_wifi_cycling(self):
1565        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1566            slot_0_nw_gen="volte",
1567            slot_1_nw_gen="volte",
1568            call_slot=0,
1569            call_direction="mt",
1570            streaming=True,
1571            wifi_cycling=True,
1572            enable_volte=[True, True],
1573            enable_wfc=[True, True],
1574            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1575
1576    @test_tracker_info(uuid="1d5842c5-91f5-4c87-9f65-67891d255d43")
1577    @TelephonyBaseTest.tel_test_wrap
1578    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_on_wifi_cycling(self):
1579        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1580            slot_0_nw_gen="volte",
1581            slot_1_nw_gen="volte",
1582            call_slot=1,
1583            call_direction="mt",
1584            streaming=True,
1585            wifi_cycling=True,
1586            enable_volte=[True, True],
1587            enable_wfc=[True, True],
1588            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED])
1589
1590    @test_tracker_info(uuid="380bd592-5437-4e16-9564-5f47b066cab2")
1591    @TelephonyBaseTest.tel_test_wrap
1592    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_on_wifi_on_wifi_cycling(self):
1593        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1594            slot_0_nw_gen="volte",
1595            slot_1_nw_gen="volte",
1596            call_slot=0,
1597            call_direction="mo",
1598            streaming=True,
1599            wifi_cycling=True,
1600            enable_volte=[True, True],
1601            enable_wfc=[True, True],
1602            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1603            is_wifi_connected=True)
1604
1605    @test_tracker_info(uuid="90bb2647-71f1-44cd-bff3-5bbb720e59b7")
1606    @TelephonyBaseTest.tel_test_wrap
1607    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_on_wifi_on_wifi_cycling(self):
1608        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1609            slot_0_nw_gen="volte",
1610            slot_1_nw_gen="volte",
1611            call_slot=1,
1612            call_direction="mo",
1613            streaming=True,
1614            wifi_cycling=True,
1615            enable_volte=[True, True],
1616            enable_wfc=[True, True],
1617            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1618            is_wifi_connected=True)
1619
1620    @test_tracker_info(uuid="5bca72c8-62d0-41bf-8888-310cd235dac4")
1621    @TelephonyBaseTest.tel_test_wrap
1622    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_on_wifi_on_wifi_cycling(self):
1623        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1624            slot_0_nw_gen="volte",
1625            slot_1_nw_gen="volte",
1626            call_slot=0,
1627            call_direction="mt",
1628            streaming=True,
1629            wifi_cycling=True,
1630            enable_volte=[True, True],
1631            enable_wfc=[True, True],
1632            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1633            is_wifi_connected=True)
1634
1635    @test_tracker_info(uuid="13805ecf-3cf9-44c8-98bc-a099edb36340")
1636    @TelephonyBaseTest.tel_test_wrap
1637    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_on_wifi_on_wifi_cycling(self):
1638        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1639            slot_0_nw_gen="volte",
1640            slot_1_nw_gen="volte",
1641            call_slot=1,
1642            call_direction="mt",
1643            streaming=True,
1644            wifi_cycling=True,
1645            enable_volte=[True, True],
1646            enable_wfc=[True, True],
1647            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1648            is_wifi_connected=True)
1649
1650    @test_tracker_info(uuid="33ed3dee-581f-4ae8-b236-1317377a6ca1")
1651    @TelephonyBaseTest.tel_test_wrap
1652    def test_dds_switch_voice_call_mo_wfc_psim_cellular_preferred_apm_on_with_with_volte_on_wifi_cycling(self):
1653        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1654            slot_0_nw_gen="wfc",
1655            slot_1_nw_gen="wfc",
1656            call_slot=0,
1657            call_direction="mo",
1658            streaming=True,
1659            wifi_cycling=True,
1660            enable_volte=[True, True],
1661            enable_wfc=[True, True],
1662            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1663            is_airplane_mode=True)
1664
1665    @test_tracker_info(uuid="88391458-6886-483f-a997-c62fd6dfd0b8")
1666    @TelephonyBaseTest.tel_test_wrap
1667    def test_dds_switch_voice_call_mo_wfc_esim_cellular_preferred_apm_on_with_with_volte_on_wifi_cycling(self):
1668        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1669            slot_0_nw_gen="wfc",
1670            slot_1_nw_gen="wfc",
1671            call_slot=1,
1672            call_direction="mo",
1673            streaming=True,
1674            wifi_cycling=True,
1675            enable_volte=[True, True],
1676            enable_wfc=[True, True],
1677            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1678            is_airplane_mode=True)
1679
1680    @test_tracker_info(uuid="966bcb75-dd2d-4400-a880-e7407989ee52")
1681    @TelephonyBaseTest.tel_test_wrap
1682    def test_dds_switch_voice_call_mo_wfc_psim_wifi_preferred_apm_off_with_with_volte_on_wifi_cycling(self):
1683        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1684            slot_0_nw_gen="wfc",
1685            slot_1_nw_gen="wfc",
1686            call_slot=0,
1687            call_direction="mo",
1688            streaming=True,
1689            wifi_cycling=True,
1690            enable_volte=[True, True],
1691            enable_wfc=[True, True],
1692            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1693            is_airplane_mode=False)
1694
1695    @test_tracker_info(uuid="7ff48189-5b4b-4b2d-a96a-fa66e86d0596")
1696    @TelephonyBaseTest.tel_test_wrap
1697    def test_dds_switch_voice_call_mo_wfc_esim_wifi_preferred_apm_off_with_with_volte_on_wifi_cycling(self):
1698        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1699            slot_0_nw_gen="wfc",
1700            slot_1_nw_gen="wfc",
1701            call_slot=1,
1702            call_direction="mo",
1703            streaming=True,
1704            wifi_cycling=True,
1705            enable_volte=[True, True],
1706            enable_wfc=[True, True],
1707            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1708            is_airplane_mode=False)
1709
1710    @test_tracker_info(uuid="ab503377-7150-4a6d-a7c1-b21009a69402")
1711    @TelephonyBaseTest.tel_test_wrap
1712    def test_dds_switch_voice_call_mt_psim_wfc_cellular_preferred_apm_on_with_with_volte_on_wifi_cycling(self):
1713        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1714            slot_0_nw_gen="wfc",
1715            slot_1_nw_gen="wfc",
1716            call_slot=0,
1717            call_direction="mt",
1718            streaming=True,
1719            wifi_cycling=True,
1720            enable_volte=[True, True],
1721            enable_wfc=[True, True],
1722            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1723            is_airplane_mode=True)
1724
1725    @test_tracker_info(uuid="7f02ee60-19e9-4602-8f6d-a13b976a6bba")
1726    @TelephonyBaseTest.tel_test_wrap
1727    def test_dds_switch_voice_call_mt_esim_wfc_cellular_preferred_apm_on_with_with_volte_on_wifi_cycling(self):
1728        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1729            slot_0_nw_gen="wfc",
1730            slot_1_nw_gen="wfc",
1731            call_slot=1,
1732            call_direction="mt",
1733            streaming=True,
1734            wifi_cycling=True,
1735            enable_volte=[True, True],
1736            enable_wfc=[True, True],
1737            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1738            is_airplane_mode=True)
1739
1740    @test_tracker_info(uuid="e93fa3ac-c5cd-4e21-b872-5172aa22d030")
1741    @TelephonyBaseTest.tel_test_wrap
1742    def test_dds_switch_voice_call_mt_wfc_psim_wifi_preferred_apm_off_with_with_volte_on_wifi_cycling(self):
1743        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1744            slot_0_nw_gen="wfc",
1745            slot_1_nw_gen="wfc",
1746            call_slot=0,
1747            call_direction="mt",
1748            streaming=True,
1749            wifi_cycling=True,
1750            enable_volte=[True, True],
1751            enable_wfc=[True, True],
1752            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1753            is_airplane_mode=False)
1754
1755    @test_tracker_info(uuid="c2af6998-f702-4e36-bbaa-f099a307b21a")
1756    @TelephonyBaseTest.tel_test_wrap
1757    def test_dds_switch_voice_call_mt_wfc_esim_wifi_preferred_apm_off_with_with_volte_on_wifi_cycling(self):
1758        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1759            slot_0_nw_gen="wfc",
1760            slot_1_nw_gen="wfc",
1761            call_slot=1,
1762            call_direction="mt",
1763            streaming=True,
1764            wifi_cycling=True,
1765            enable_volte=[True, True],
1766            enable_wfc=[True, True],
1767            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1768            is_airplane_mode=False)
1769
1770    @test_tracker_info(uuid="45ba6e90-bdaa-4dc0-a504-c596bafdfaad")
1771    @TelephonyBaseTest.tel_test_wrap
1772    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_off_apm_cycling(self):
1773        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1774            slot_0_nw_gen="volte",
1775            slot_1_nw_gen="volte",
1776            call_slot=0,
1777            call_direction="mo",
1778            streaming=True,
1779            airplane_mode_cycling=True,
1780            enable_volte=[True, True],
1781            enable_wfc=[False, False],
1782            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1783
1784    @test_tracker_info(uuid="1b573f40-3eaf-4149-baad-2e73e5bf15f4")
1785    @TelephonyBaseTest.tel_test_wrap
1786    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_off_apm_cycling(self):
1787        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1788            slot_0_nw_gen="volte",
1789            slot_1_nw_gen="volte",
1790            call_slot=1,
1791            call_direction="mo",
1792            streaming=True,
1793            airplane_mode_cycling=True,
1794            enable_volte=[True, True],
1795            enable_wfc=[False, False],
1796            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1797
1798    @test_tracker_info(uuid="13511fb6-2984-40c3-b1b9-22f27f241c07")
1799    @TelephonyBaseTest.tel_test_wrap
1800    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_off_apm_cycling(self):
1801        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1802            slot_0_nw_gen="volte",
1803            slot_1_nw_gen="volte",
1804            call_slot=0,
1805            call_direction="mt",
1806            streaming=True,
1807            airplane_mode_cycling=True,
1808            enable_volte=[True, True],
1809            enable_wfc=[False, False],
1810            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1811
1812    @test_tracker_info(uuid="61cf33d1-e1b2-427a-bb38-29a4c7566947")
1813    @TelephonyBaseTest.tel_test_wrap
1814    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_off_apm_cycling(self):
1815        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1816            slot_0_nw_gen="volte",
1817            slot_1_nw_gen="volte",
1818            call_slot=1,
1819            call_direction="mt",
1820            streaming=True,
1821            airplane_mode_cycling=True,
1822            enable_volte=[True, True],
1823            enable_wfc=[False, False],
1824            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1825
1826    @test_tracker_info(uuid="31a2a741-c825-46f8-8e0a-8487fab9940e")
1827    @TelephonyBaseTest.tel_test_wrap
1828    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_off_cellular_data_cycling(self):
1829        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1830            slot_0_nw_gen="volte",
1831            slot_1_nw_gen="volte",
1832            call_slot=0,
1833            call_direction="mo",
1834            streaming=True,
1835            cellular_data_cycling=True,
1836            enable_volte=[True, True],
1837            enable_wfc=[False, False],
1838            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1839
1840    @test_tracker_info(uuid="9fb2a85f-08b3-4d5d-9e03-3f7f67039148")
1841    @TelephonyBaseTest.tel_test_wrap
1842    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_off_cellular_data_cycling(self):
1843        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1844            slot_0_nw_gen="volte",
1845            slot_1_nw_gen="volte",
1846            call_slot=1,
1847            call_direction="mo",
1848            streaming=True,
1849            cellular_data_cycling=True,
1850            enable_volte=[True, True],
1851            enable_wfc=[False, False],
1852            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1853
1854    @test_tracker_info(uuid="30eba519-b349-4a75-9f31-3fea0d1a8447")
1855    @TelephonyBaseTest.tel_test_wrap
1856    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_off_cellular_data_cycling(self):
1857        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1858            slot_0_nw_gen="volte",
1859            slot_1_nw_gen="volte",
1860            call_slot=0,
1861            call_direction="mt",
1862            streaming=True,
1863            cellular_data_cycling=True,
1864            enable_volte=[True, True],
1865            enable_wfc=[False, False],
1866            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1867
1868    @test_tracker_info(uuid="37240938-3ce1-4ad2-b35a-a8862dc2c70f")
1869    @TelephonyBaseTest.tel_test_wrap
1870    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_off_cellular_data_cycling(self):
1871        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1872            slot_0_nw_gen="volte",
1873            slot_1_nw_gen="volte",
1874            call_slot=1,
1875            call_direction="mt",
1876            streaming=True,
1877            cellular_data_cycling=True,
1878            enable_volte=[True, True],
1879            enable_wfc=[False, False],
1880            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1881
1882    @test_tracker_info(uuid="a7321b9c-fb2c-4a03-9566-05e4244ae6fd")
1883    @TelephonyBaseTest.tel_test_wrap
1884    def test_dds_switch_voice_call_mo_volte_psim_with_wfc_off_wifi_cycling(self):
1885        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1886            slot_0_nw_gen="volte",
1887            slot_1_nw_gen="volte",
1888            call_slot=0,
1889            call_direction="mo",
1890            streaming=True,
1891            wifi_cycling=True,
1892            enable_volte=[True, True],
1893            enable_wfc=[False, False],
1894            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1895
1896    @test_tracker_info(uuid="6de8d678-2f72-41ea-9ed9-47b27afee038")
1897    @TelephonyBaseTest.tel_test_wrap
1898    def test_dds_switch_voice_call_mo_volte_esim_with_wfc_off_wifi_cycling(self):
1899        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1900            slot_0_nw_gen="volte",
1901            slot_1_nw_gen="volte",
1902            call_slot=1,
1903            call_direction="mo",
1904            streaming=True,
1905            wifi_cycling=True,
1906            enable_volte=[True, True],
1907            enable_wfc=[False, False],
1908            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1909
1910    @test_tracker_info(uuid="7bc16dcf-6dab-4eec-931d-9b342caa7a32")
1911    @TelephonyBaseTest.tel_test_wrap
1912    def test_dds_switch_voice_call_mt_volte_psim_with_wfc_off_wifi_cycling(self):
1913        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1914            slot_0_nw_gen="volte",
1915            slot_1_nw_gen="volte",
1916            call_slot=0,
1917            call_direction="mt",
1918            streaming=True,
1919            wifi_cycling=True,
1920            enable_volte=[True, True],
1921            enable_wfc=[False, False],
1922            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1923
1924    @test_tracker_info(uuid="9c13e51b-385d-4df6-90b7-33b5e185f225")
1925    @TelephonyBaseTest.tel_test_wrap
1926    def test_dds_switch_voice_call_mt_volte_esim_with_wfc_off_wifi_cycling(self):
1927        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1928            slot_0_nw_gen="volte",
1929            slot_1_nw_gen="volte",
1930            call_slot=1,
1931            call_direction="mt",
1932            streaming=True,
1933            wifi_cycling=True,
1934            enable_volte=[True, True],
1935            enable_wfc=[False, False],
1936            wfc_mode=[WFC_MODE_DISABLED, WFC_MODE_DISABLED])
1937
1938    @test_tracker_info(uuid="161341e7-5c2d-45f9-9b11-4f44d542cd01")
1939    @TelephonyBaseTest.tel_test_wrap
1940    def test_dds_switch_voice_call_mo_wfc_psim_cellular_preferred_apm_on_with_volte_off_apm_cycling(self):
1941        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1942            slot_0_nw_gen="wfc",
1943            slot_1_nw_gen="wfc",
1944            call_slot=0,
1945            call_direction="mo",
1946            streaming=True,
1947            airplane_mode_cycling=True,
1948            enable_volte=[False, False],
1949            enable_wfc=[True, True],
1950            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1951            is_airplane_mode=True)
1952
1953    @test_tracker_info(uuid="4d43f92f-562f-4bf1-bc25-71410f14425c")
1954    @TelephonyBaseTest.tel_test_wrap
1955    def test_dds_switch_voice_call_mo_wfc_esim_cellular_preferred_apm_on_with_volte_off_apm_cycling(self):
1956        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1957            slot_0_nw_gen="wfc",
1958            slot_1_nw_gen="wfc",
1959            call_slot=1,
1960            call_direction="mo",
1961            streaming=True,
1962            airplane_mode_cycling=True,
1963            enable_volte=[False, False],
1964            enable_wfc=[True, True],
1965            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
1966            is_airplane_mode=True)
1967
1968    @test_tracker_info(uuid="fe83e92d-c554-4f81-a447-d58300426da7")
1969    @TelephonyBaseTest.tel_test_wrap
1970    def test_dds_switch_voice_call_mo_wfc_psim_wifi_preferred_apm_off_with_volte_off_apm_cycling(self):
1971        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1972            slot_0_nw_gen="wfc",
1973            slot_1_nw_gen="wfc",
1974            call_slot=0,
1975            call_direction="mo",
1976            streaming=True,
1977            airplane_mode_cycling=True,
1978            enable_volte=[False, False],
1979            enable_wfc=[True, True],
1980            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1981            is_airplane_mode=False)
1982
1983    @test_tracker_info(uuid="76ba6834-1523-4ce8-80b9-079f2428da67")
1984    @TelephonyBaseTest.tel_test_wrap
1985    def test_dds_switch_voice_call_mo_wfc_esim_wifi_preferred_apm_off_with_volte_off_apm_cycling(self):
1986        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
1987            slot_0_nw_gen="wfc",
1988            slot_1_nw_gen="wfc",
1989            call_slot=1,
1990            call_direction="mo",
1991            streaming=True,
1992            airplane_mode_cycling=True,
1993            enable_volte=[False, False],
1994            enable_wfc=[True, True],
1995            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
1996            is_airplane_mode=False)
1997
1998    @test_tracker_info(uuid="15289348-8e09-4997-b5a3-f66bb7e7dca1")
1999    @TelephonyBaseTest.tel_test_wrap
2000    def test_dds_switch_voice_call_mt_wfc_psim_cellular_preferred_apm_on_with_volte_off_apm_cycling(self):
2001        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2002            slot_0_nw_gen="wfc",
2003            slot_1_nw_gen="wfc",
2004            call_slot=0,
2005            call_direction="mt",
2006            streaming=True,
2007            airplane_mode_cycling=True,
2008            enable_volte=[False, False],
2009            enable_wfc=[True, True],
2010            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2011            is_airplane_mode=True)
2012
2013    @test_tracker_info(uuid="1ae4fa98-1ac3-4194-a483-097b7262415b")
2014    @TelephonyBaseTest.tel_test_wrap
2015    def test_dds_switch_voice_call_mt_wfc_esim_cellular_preferred_apm_on_with_volte_off_apm_cycling(self):
2016        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2017            slot_0_nw_gen="wfc",
2018            slot_1_nw_gen="wfc",
2019            call_slot=1,
2020            call_direction="mt",
2021            streaming=True,
2022            airplane_mode_cycling=True,
2023            enable_volte=[False, False],
2024            enable_wfc=[True, True],
2025            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2026            is_airplane_mode=True)
2027
2028    @test_tracker_info(uuid="13d0af2c-2870-4cbc-8a38-311f93cd4bd7")
2029    @TelephonyBaseTest.tel_test_wrap
2030    def test_dds_switch_voice_call_mt_wfc_psim_wifi_preferred_apm_off_with_volte_off_apm_cycling(self):
2031        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2032            slot_0_nw_gen="wfc",
2033            slot_1_nw_gen="wfc",
2034            call_slot=0,
2035            call_direction="mt",
2036            streaming=True,
2037            airplane_mode_cycling=True,
2038            enable_volte=[False, False],
2039            enable_wfc=[True, True],
2040            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2041            is_airplane_mode=False)
2042
2043    @test_tracker_info(uuid="5fbe2002-a02f-4750-81e5-4a06d7b62740")
2044    @TelephonyBaseTest.tel_test_wrap
2045    def test_dds_switch_voice_call_mt_wfc_esim_wifi_preferred_apm_off_with_volte_off_apm_cycling(self):
2046        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2047            slot_0_nw_gen="wfc",
2048            slot_1_nw_gen="wfc",
2049            call_slot=1,
2050            call_direction="mt",
2051            streaming=True,
2052            airplane_mode_cycling=True,
2053            enable_volte=[False, False],
2054            enable_wfc=[True, True],
2055            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2056            is_airplane_mode=False)
2057
2058    @test_tracker_info(uuid="f8f523d2-e432-45d4-a850-469a22894bc7")
2059    @TelephonyBaseTest.tel_test_wrap
2060    def test_dds_switch_voice_call_mo_wfc_psim_cellular_preferred_apm_on_with_volte_off_cellular_data_cycling(self):
2061        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2062            slot_0_nw_gen="wfc",
2063            slot_1_nw_gen="wfc",
2064            call_slot=0,
2065            call_direction="mo",
2066            streaming=True,
2067            cellular_data_cycling=True,
2068            enable_volte=[False, False],
2069            enable_wfc=[True, True],
2070            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2071            is_airplane_mode=True)
2072
2073    @test_tracker_info(uuid="750a8690-f9dd-4779-b13f-4011f478f194")
2074    @TelephonyBaseTest.tel_test_wrap
2075    def test_dds_switch_voice_call_mo_wfc_esim_cellular_preferred_apm_on_with_volte_off_cellular_data_cycling(self):
2076        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2077            slot_0_nw_gen="wfc",
2078            slot_1_nw_gen="wfc",
2079            call_slot=1,
2080            call_direction="mo",
2081            streaming=True,
2082            cellular_data_cycling=True,
2083            enable_volte=[False, False],
2084            enable_wfc=[True, True],
2085            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2086            is_airplane_mode=True)
2087
2088    @test_tracker_info(uuid="9fcda7e5-1705-4bbe-8f18-f005437c71f2")
2089    @TelephonyBaseTest.tel_test_wrap
2090    def test_dds_switch_voice_call_mo_wfc_psim_wifi_preferred_apm_off_with_volte_off_cellular_data_cycling(self):
2091        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2092            slot_0_nw_gen="wfc",
2093            slot_1_nw_gen="wfc",
2094            call_slot=0,
2095            call_direction="mo",
2096            streaming=True,
2097            cellular_data_cycling=True,
2098            enable_volte=[False, False],
2099            enable_wfc=[True, True],
2100            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2101            is_airplane_mode=False)
2102
2103    @test_tracker_info(uuid="0e054729-945a-4f6f-ad29-4d832f0b11ed")
2104    @TelephonyBaseTest.tel_test_wrap
2105    def test_dds_switch_voice_call_mo_wfc_esim_wifi_preferred_apm_off_with_volte_off_cellular_data_cycling(self):
2106        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2107            slot_0_nw_gen="wfc",
2108            slot_1_nw_gen="wfc",
2109            call_slot=1,
2110            call_direction="mo",
2111            streaming=True,
2112            cellular_data_cycling=True,
2113            enable_volte=[False, False],
2114            enable_wfc=[True, True],
2115            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2116            is_airplane_mode=False)
2117
2118    @test_tracker_info(uuid="2e387739-cc4a-4d48-aa56-83bf621835b1")
2119    @TelephonyBaseTest.tel_test_wrap
2120    def test_dds_switch_voice_call_mt_wfc_psim_cellular_preferred_apm_on_with_volte_off_cellular_data_cycling(self):
2121        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2122            slot_0_nw_gen="wfc",
2123            slot_1_nw_gen="wfc",
2124            call_slot=0,
2125            call_direction="mt",
2126            streaming=True,
2127            cellular_data_cycling=True,
2128            enable_volte=[False, False],
2129            enable_wfc=[True, True],
2130            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2131            is_airplane_mode=True)
2132
2133    @test_tracker_info(uuid="a0e2deda-9148-4665-abc8-7665e3818d06")
2134    @TelephonyBaseTest.tel_test_wrap
2135    def test_dds_switch_voice_call_mt_wfc_esim_cellular_preferred_apm_on_with_volte_off_cellular_data_cycling(self):
2136        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2137            slot_0_nw_gen="wfc",
2138            slot_1_nw_gen="wfc",
2139            call_slot=1,
2140            call_direction="mt",
2141            streaming=True,
2142            cellular_data_cycling=True,
2143            enable_volte=[False, False],
2144            enable_wfc=[True, True],
2145            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2146            is_airplane_mode=True)
2147
2148    @test_tracker_info(uuid="6a43acef-aaa1-4fe8-ae7e-c8e045bf8814")
2149    @TelephonyBaseTest.tel_test_wrap
2150    def test_dds_switch_voice_call_mt_wfc_psim_wifi_preferred_apm_off_with_volte_off_cellular_data_cycling(self):
2151        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2152            slot_0_nw_gen="wfc",
2153            slot_1_nw_gen="wfc",
2154            call_slot=0,
2155            call_direction="mt",
2156            streaming=True,
2157            cellular_data_cycling=True,
2158            enable_volte=[False, False],
2159            enable_wfc=[True, True],
2160            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2161            is_airplane_mode=False)
2162
2163    @test_tracker_info(uuid="95524166-212f-4e82-9e02-2f9b58d92a9f")
2164    @TelephonyBaseTest.tel_test_wrap
2165    def test_dds_switch_voice_call_mt_wfc_esim_wifi_preferred_apm_off_with_volte_off_cellular_data_cycling(self):
2166        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2167            slot_0_nw_gen="wfc",
2168            slot_1_nw_gen="wfc",
2169            call_slot=1,
2170            call_direction="mt",
2171            streaming=True,
2172            cellular_data_cycling=True,
2173            enable_volte=[False, False],
2174            enable_wfc=[True, True],
2175            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2176            is_airplane_mode=False)
2177
2178    @test_tracker_info(uuid="828ae64c-41b3-4974-a412-342d3ca16ce3")
2179    @TelephonyBaseTest.tel_test_wrap
2180    def test_dds_switch_voice_call_mo_wfc_psim_cellular_preferred_apm_on_with_volte_off_wifi_cycling(self):
2181        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2182            slot_0_nw_gen="wfc",
2183            slot_1_nw_gen="wfc",
2184            call_slot=0,
2185            call_direction="mo",
2186            streaming=True,
2187            wifi_cycling=True,
2188            enable_volte=[False, False],
2189            enable_wfc=[True, True],
2190            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2191            is_airplane_mode=True)
2192
2193    @test_tracker_info(uuid="343cf9dc-4f4c-4c0c-bd7b-ba664381f6bd")
2194    @TelephonyBaseTest.tel_test_wrap
2195    def test_dds_switch_voice_call_mo_wfc_esim_cellular_preferred_apm_on_with_volte_off_wifi_cycling(self):
2196        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2197            slot_0_nw_gen="wfc",
2198            slot_1_nw_gen="wfc",
2199            call_slot=1,
2200            call_direction="mo",
2201            streaming=True,
2202            wifi_cycling=True,
2203            enable_volte=[False, False],
2204            enable_wfc=[True, True],
2205            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2206            is_airplane_mode=True)
2207
2208    @test_tracker_info(uuid="6ef18605-bf4c-43d8-83fd-0bf71311973e")
2209    @TelephonyBaseTest.tel_test_wrap
2210    def test_dds_switch_voice_call_mo_wfc_psim_wifi_preferred_apm_off_with_volte_off_wifi_cycling(self):
2211        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2212            slot_0_nw_gen="wfc",
2213            slot_1_nw_gen="wfc",
2214            call_slot=0,
2215            call_direction="mo",
2216            streaming=True,
2217            wifi_cycling=True,
2218            enable_volte=[False, False],
2219            enable_wfc=[True, True],
2220            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2221            is_airplane_mode=False)
2222
2223    @test_tracker_info(uuid="9bddfe69-68e1-4d04-aeaa-75fb0f9ed9aa")
2224    @TelephonyBaseTest.tel_test_wrap
2225    def test_dds_switch_voice_call_mo_wfc_esim_wifi_preferred_apm_off_with_volte_off_wifi_cycling(self):
2226        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2227            slot_0_nw_gen="wfc",
2228            slot_1_nw_gen="wfc",
2229            call_slot=1,
2230            call_direction="mo",
2231            streaming=True,
2232            wifi_cycling=True,
2233            enable_volte=[False, False],
2234            enable_wfc=[True, True],
2235            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2236            is_airplane_mode=False)
2237
2238    @test_tracker_info(uuid="81e7d2b6-e3eb-4651-807f-66bf8eeeea93")
2239    @TelephonyBaseTest.tel_test_wrap
2240    def test_dds_switch_voice_call_mt_wfc_psim_cellular_preferred_apm_on_with_volte_off_wifi_cycling(self):
2241        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2242            slot_0_nw_gen="wfc",
2243            slot_1_nw_gen="wfc",
2244            call_slot=0,
2245            call_direction="mt",
2246            streaming=True,
2247            wifi_cycling=True,
2248            enable_volte=[False, False],
2249            enable_wfc=[True, True],
2250            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2251            is_airplane_mode=True)
2252
2253    @test_tracker_info(uuid="8c6da88b-be3a-4c0c-a239-255faf03a28b")
2254    @TelephonyBaseTest.tel_test_wrap
2255    def test_dds_switch_voice_call_mt_wfc_esim_cellular_preferred_apm_on_with_volte_off_wifi_cycling(self):
2256        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2257            slot_0_nw_gen="wfc",
2258            slot_1_nw_gen="wfc",
2259            call_slot=1,
2260            call_direction="mt",
2261            streaming=True,
2262            wifi_cycling=True,
2263            enable_volte=[False, False],
2264            enable_wfc=[True, True],
2265            wfc_mode=[WFC_MODE_CELLULAR_PREFERRED, WFC_MODE_CELLULAR_PREFERRED],
2266            is_airplane_mode=True)
2267
2268    @test_tracker_info(uuid="1b9ef6b4-c0c0-4375-b1a5-d569b946491e")
2269    @TelephonyBaseTest.tel_test_wrap
2270    def test_dds_switch_voice_call_mt_wfc_psim_wifi_preferred_apm_off_with_volte_off_wifi_cycling(self):
2271        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2272            slot_0_nw_gen="wfc",
2273            slot_1_nw_gen="wfc",
2274            call_slot=0,
2275            call_direction="mt",
2276            streaming=True,
2277            wifi_cycling=True,
2278            enable_volte=[False, False],
2279            enable_wfc=[True, True],
2280            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2281            is_airplane_mode=False)
2282
2283    @test_tracker_info(uuid="5771fedb-5eed-4868-84a3-0d7a01474dcf")
2284    @TelephonyBaseTest.tel_test_wrap
2285    def test_dds_switch_voice_call_mt_wfc_esim_wifi_preferred_apm_off_with_volte_off_wifi_cycling(self):
2286        return self._test_dds_switch_during_data_transfer_with_apm_cycling_and_ims_setting(
2287            slot_0_nw_gen="wfc",
2288            slot_1_nw_gen="wfc",
2289            call_slot=1,
2290            call_direction="mt",
2291            streaming=True,
2292            wifi_cycling=True,
2293            enable_volte=[False, False],
2294            enable_wfc=[True, True],
2295            wfc_mode=[WFC_MODE_WIFI_PREFERRED, WFC_MODE_WIFI_PREFERRED],
2296            is_airplane_mode=False)