[QNS] Update Qns CC default values

- Update KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT default value to
  3000sec
- Update KEY_QNS_HO_RESTRICT_TIME_WITH_LOW_RTP_QUALITY_MILLIS_INT_ARRAY
  WWAN timer default value to 60000sec
- Update Signal Strength Qns Carrier Config default values

Bug: 266028759
Test: atest QualifiedNetworksServiceTests
Change-Id: I65492b08c3082d0391b617ec938a660c97b02b34
diff --git a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierAnspSupportConfig.java b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierAnspSupportConfig.java
index f4545cc..d798d8e 100644
--- a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierAnspSupportConfig.java
+++ b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierAnspSupportConfig.java
@@ -655,8 +655,8 @@
      * <p>{@code 2 values defined by default(Good, Bad)}
      *
      * <UL>
-     *   <LI>"Good:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_GOOD}"
-     *   <LI>"Bad:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_BAD}"
+     *   <LI>"Good:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD}"
+     *   <LI>"Bad:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD}"
      * </UL>
      *
      * <p>This key is considered invalid if the format is violated. If the key not configured, a
@@ -716,8 +716,8 @@
      * <p>{@code 2 values defined by default(Good, Bad)}
      *
      * <UL>
-     *   <LI>"Good:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_GOOD}"
-     *   <LI>"Bad:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_BAD}"
+     *   <LI>"Good:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD}"
+     *   <LI>"Bad:{@link QnsConstants#KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD}"
      * </UL>
      *
      * <p>This key is considered invalid if the format is violated. If the key not configured, a
diff --git a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierConfigManager.java b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierConfigManager.java
index 2b79227..ec6281a 100644
--- a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierConfigManager.java
+++ b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsCarrierConfigManager.java
@@ -486,9 +486,16 @@
     /**
      * This item is the minimum handover guarding timer value when there is no guarding time for
      * handover.
+     * Note:
+     * If this value is set to less than or equal to 0, minimum guarding action is disabled.
+     * if this value is set to greater than or equal to
+     * {@code QnsConstants#CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT},
+     * {@code QnsConstants#CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT} value is set.
+     * If no value set at asset or paris , QnsConstants#CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER
+     * value at code is set.
      *
      * <p>{@code QnsConstants#CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER} : default value of timer.
-     * {@code QnsConstants#CONFIg_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT} : maximum allowable
+     * {@code QnsConstants#CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT} : maximum allowable
      * value.
      */
     static final String KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT =
@@ -2040,10 +2047,10 @@
      */
     int getMinimumHandoverGuardingTimer() {
         int timer = mMinimumHandoverGuardingTimer;
-        if (timer < QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER) {
-            timer = QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER;
+        if (timer <= 0) {
+            return 0;
         }
-        if (timer > QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT) {
+        if (timer >= QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT) {
             timer = QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT;
         }
         return timer;
diff --git a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsConstants.java b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsConstants.java
index 94ae31d..837f974 100644
--- a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsConstants.java
+++ b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsConstants.java
@@ -31,28 +31,26 @@
 
     static final int INVALID_VALUE = -1;
     static final int INVALID_ID = -1;
-    static final int INVALID_SUB_ID = -1;
     static final int KEY_DEFAULT_VALUE = 0;
 
     static final int KEY_DEFAULT_HYST_TIMER = 30000;
-    static final int CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER = 0;
+    static final int CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER = 3000;
     static final int CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT = 5000;
 
     static final int KEY_DEFAULT_PACKET_LOSS_TIME_MILLIS = 5000;
     static final int KEY_DEFAULT_IWLAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS = 60000;
+    static final int KEY_DEFAULT_WWAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS = 60000;
 
-    static final int KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD = -99;
-    static final int KEY_DEFAULT_THRESHOLD_SSRSRP_BAD = -111;
-    static final int KEY_DEFAULT_THRESHOLD_RSRP_GOOD = -99;
-    static final int KEY_DEFAULT_THRESHOLD_RSRP_BAD = -111;
-    static final int KEY_DEFAULT_THRESHOLD_RSCP_GOOD = -90;
-    static final int KEY_DEFAULT_THRESHOLD_RSCP_BAD = -100;
-    static final int KEY_DEFAULT_THRESHOLD_GERAN_RSSI_GOOD = -90;
-    static final int KEY_DEFAULT_THRESHOLD_GERAN_RSSI_BAD = -100;
-    static final int KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD = -70;
+    static final int KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD = -110;
+    static final int KEY_DEFAULT_THRESHOLD_SSRSRP_BAD = -115;
+    static final int KEY_DEFAULT_THRESHOLD_RSRP_GOOD = -115;
+    static final int KEY_DEFAULT_THRESHOLD_RSRP_BAD = -120;
+    static final int KEY_DEFAULT_THRESHOLD_RSCP_GOOD = -105;
+    static final int KEY_DEFAULT_THRESHOLD_RSCP_BAD = -115;
+    static final int KEY_DEFAULT_THRESHOLD_GERAN_RSSI_GOOD = -100;
+    static final int KEY_DEFAULT_THRESHOLD_GERAN_RSSI_BAD = -105;
+    static final int KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD = -75;
     static final int KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD = -80;
-    static final int KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_GOOD = -65;
-    static final int KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_BAD = -75;
 
     static final int CALL_TYPE_IDLE = 0;
     static final int CALL_TYPE_VOICE = 1;
@@ -184,7 +182,6 @@
     static final int SIGNAL_AVAILABLE = 1;
 
     static final int DEFAULT_WIFI_BACKHAUL_TIMER = 3000;
-    static final int DEFAULT_MSG_DELAY_TIMER = 1000;
 
     static final int TRANSPORT_TYPE_ALLOWED_WWAN = 0;
     static final int TRANSPORT_TYPE_ALLOWED_IWLAN = 1;
diff --git a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsUtils.java b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsUtils.java
index b500ccf..c17a2c7 100644
--- a/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsUtils.java
+++ b/services/QualifiedNetworksService/src/com/android/telephony/qns/QnsUtils.java
@@ -662,7 +662,7 @@
                 return (T)
                         new int[] {
                             QnsConstants.KEY_DEFAULT_IWLAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS,
-                            QnsConstants.KEY_DEFAULT_VALUE
+                            QnsConstants.KEY_DEFAULT_WWAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS,
                         };
             case QnsCarrierConfigManager.KEY_IMS_WWAN_HYSTERESIS_TIMER_MS_INT_ARRAY:
             case QnsCarrierConfigManager.KEY_IMS_WLAN_HYSTERESIS_TIMER_MS_INT_ARRAY:
@@ -681,6 +681,7 @@
                 return (T) new String[] {"LTE", "NR"};
             case QnsCarrierAnspSupportConfig.KEY_IDLE_NGRAN_SSRSRP_INT_ARRAY:
             case QnsCarrierAnspSupportConfig.KEY_VOICE_NGRAN_SSRSRP_INT_ARRAY:
+            case QnsCarrierAnspSupportConfig.KEY_VIDEO_NGRAN_SSRSRP_INT_ARRAY:
                 return (T)
                         new int[] {
                             QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD,
@@ -689,6 +690,7 @@
                         };
             case QnsCarrierAnspSupportConfig.KEY_IDLE_EUTRAN_RSRP_INT_ARRAY:
             case QnsCarrierAnspSupportConfig.KEY_VOICE_EUTRAN_RSRP_INT_ARRAY:
+            case QnsCarrierAnspSupportConfig.KEY_VIDEO_EUTRAN_RSRP_INT_ARRAY:
                 return (T)
                         new int[] {
                             QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_GOOD,
@@ -697,6 +699,7 @@
                         };
             case QnsCarrierAnspSupportConfig.KEY_IDLE_UTRAN_RSCP_INT_ARRAY:
             case QnsCarrierAnspSupportConfig.KEY_VOICE_UTRAN_RSCP_INT_ARRAY:
+            case QnsCarrierAnspSupportConfig.KEY_VIDEO_UTRAN_RSCP_INT_ARRAY:
                 return (T)
                         new int[] {
                             QnsConstants.KEY_DEFAULT_THRESHOLD_RSCP_GOOD,
@@ -705,6 +708,7 @@
                         };
             case QnsCarrierAnspSupportConfig.KEY_IDLE_GERAN_RSSI_INT_ARRAY:
             case QnsCarrierAnspSupportConfig.KEY_VOICE_GERAN_RSSI_INT_ARRAY:
+            case QnsCarrierAnspSupportConfig.KEY_VIDEO_GERAN_RSSI_INT_ARRAY:
                 return (T)
                         new int[] {
                             QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_GOOD,
@@ -713,17 +717,12 @@
                         };
             case QnsCarrierAnspSupportConfig.KEY_IDLE_WIFI_RSSI_INT_ARRAY:
             case QnsCarrierAnspSupportConfig.KEY_VOICE_WIFI_RSSI_INT_ARRAY:
+            case QnsCarrierAnspSupportConfig.KEY_VIDEO_WIFI_RSSI_INT_ARRAY:
                 return (T)
                         new int[] {
                             QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD,
                             QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD
                         };
-            case QnsCarrierAnspSupportConfig.KEY_VIDEO_WIFI_RSSI_INT_ARRAY:
-                return (T)
-                        new int[] {
-                            QnsConstants.KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_GOOD,
-                            QnsConstants.KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_BAD
-                        };
             case QnsCarrierAnspSupportConfig.KEY_OVERRIDE_WIFI_PREF_IDLE_WIFI_RSSI_INT_ARRAY:
             case QnsCarrierAnspSupportConfig.KEY_OVERRIDE_WIFI_PREF_VOICE_WIFI_RSSI_INT_ARRAY:
             case QnsCarrierAnspSupportConfig.KEY_OVERRIDE_WIFI_PREF_VIDEO_WIFI_RSSI_INT_ARRAY:
diff --git a/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsCarrierConfigManagerTest.java b/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsCarrierConfigManagerTest.java
index 6bf7464..3e2a7e5 100644
--- a/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsCarrierConfigManagerTest.java
+++ b/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsCarrierConfigManagerTest.java
@@ -581,9 +581,9 @@
                 QnsConstants.KEY_DEFAULT_IWLAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS, hoRestrictTime);
         Assert.assertNotEquals(QnsConstants.KEY_DEFAULT_VALUE, hoRestrictTime);
         hoRestrictTime = mConfigManager.getHoRestrictedTimeOnLowRTPQuality(TRANSPORT_TYPE_WWAN);
-        Assert.assertEquals(QnsConstants.KEY_DEFAULT_VALUE, hoRestrictTime);
-        Assert.assertNotEquals(
-                QnsConstants.KEY_DEFAULT_IWLAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS, hoRestrictTime);
+        Assert.assertEquals(
+                QnsConstants.KEY_DEFAULT_WWAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS, hoRestrictTime);
+        Assert.assertNotEquals(QnsConstants.KEY_DEFAULT_VALUE, hoRestrictTime);
         hoRestrictTime = mConfigManager.getHoRestrictedTimeOnLowRTPQuality(TRANSPORT_TYPE_INVALID);
         Assert.assertEquals(QnsConstants.KEY_DEFAULT_VALUE, hoRestrictTime);
     }
@@ -876,8 +876,18 @@
         PersistableBundle bundle = new PersistableBundle();
         bundle.putInt(QnsCarrierConfigManager.KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT, -1);
         mConfigManager.loadQnsAneSupportConfigurations(bundle, null);
+        Assert.assertEquals(0 /*disabled*/, mConfigManager.getMinimumHandoverGuardingTimer());
+
+        bundle.putInt(QnsCarrierConfigManager.KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT, 0);
+        mConfigManager.loadQnsAneSupportConfigurations(bundle, null);
+        Assert.assertEquals(0 /*disabled*/, mConfigManager.getMinimumHandoverGuardingTimer());
+
+        bundle.putInt(
+                QnsCarrierConfigManager.KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT,
+                QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT);
+        mConfigManager.loadQnsAneSupportConfigurations(bundle, null);
         Assert.assertEquals(
-                QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER,
+                QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER_LIMIT,
                 mConfigManager.getMinimumHandoverGuardingTimer());
 
         bundle.putInt(
@@ -1071,52 +1081,7 @@
                 mConfigManager.getThreshold(an, callType, measurementType);
 
         assert threshold != null;
-
-        if ((callType == CALL_TYPE_IDLE || callType == CALL_TYPE_VOICE)
-                && (measurementType == SIGNAL_MEASUREMENT_TYPE_RSRP
-                        || measurementType == SIGNAL_MEASUREMENT_TYPE_SSRSRP)) {
-            if (an == AccessNetworkConstants.AccessNetworkType.NGRAN) {
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD, threshold.mGood);
-                Assert.assertEquals(QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_BAD, threshold.mBad);
-            } else if (an == AccessNetworkConstants.AccessNetworkType.EUTRAN) {
-                Assert.assertEquals(KEY_DEFAULT_THRESHOLD_RSRP_GOOD, threshold.mGood);
-                Assert.assertEquals(QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_BAD, threshold.mBad);
-            }
-            Assert.assertEquals(0x0000FFFF, threshold.mWorst);
-        } else if ((callType == CALL_TYPE_IDLE || callType == CALL_TYPE_VOICE)
-                && (measurementType == SIGNAL_MEASUREMENT_TYPE_RSCP)) {
-            if (an == AccessNetworkConstants.AccessNetworkType.UTRAN) {
-                Assert.assertEquals(KEY_DEFAULT_THRESHOLD_RSCP_GOOD, threshold.mGood);
-                Assert.assertEquals(KEY_DEFAULT_THRESHOLD_RSCP_BAD, threshold.mBad);
-            }
-            Assert.assertEquals(0x0000FFFF, threshold.mWorst);
-        } else if ((callType == CALL_TYPE_IDLE || callType == CALL_TYPE_VOICE)
-                && (measurementType == SIGNAL_MEASUREMENT_TYPE_RSSI)) {
-            if (an == AccessNetworkConstants.AccessNetworkType.GERAN) {
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_GOOD, threshold.mGood);
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_BAD, threshold.mBad);
-            }
-            Assert.assertEquals(0x0000FFFF, threshold.mWorst);
-        } else if (an == AccessNetworkConstants.AccessNetworkType.IWLAN) {
-            if (callType == CALL_TYPE_IDLE || callType == CALL_TYPE_VOICE) {
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD, threshold.mGood);
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD, threshold.mBad);
-            } else if (callType == QnsConstants.CALL_TYPE_VIDEO) {
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_GOOD, threshold.mGood);
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_BAD, threshold.mBad);
-            }
-        } else {
-            Assert.assertEquals(0x0000FFFF, threshold.mGood);
-            Assert.assertEquals(0x0000FFFF, threshold.mBad);
-            Assert.assertEquals(0x0000FFFF, threshold.mWorst);
-        }
+        validateForThreshold(threshold, an, callType, measurementType);
     }
 
     @Test
@@ -1388,19 +1353,37 @@
 
         assert threshold != null;
 
-        if ((callType == CALL_TYPE_IDLE || callType == CALL_TYPE_VOICE)
-                && (measurementType == SIGNAL_MEASUREMENT_TYPE_RSRP
-                        || measurementType == SIGNAL_MEASUREMENT_TYPE_SSRSRP)) {
+        validateForThreshold(threshold, an, callType, measurementType);
+    }
+
+    private void validateForThreshold(
+            QnsCarrierConfigManager.QnsConfigArray threshold,
+            @AccessNetworkConstants.RadioAccessNetworkType int an,
+            int callType,
+            int measurementType) {
+
+        if ((callType == CALL_TYPE_IDLE
+                        || callType == CALL_TYPE_VOICE
+                        || callType == CALL_TYPE_VIDEO)
+                && measurementType == SIGNAL_MEASUREMENT_TYPE_SSRSRP) {
             if (an == AccessNetworkConstants.AccessNetworkType.NGRAN) {
                 Assert.assertEquals(
                         QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD, threshold.mGood);
                 Assert.assertEquals(QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_BAD, threshold.mBad);
-            } else if (an == AccessNetworkConstants.AccessNetworkType.EUTRAN) {
+            }
+            Assert.assertEquals(0x0000FFFF, threshold.mWorst);
+        } else if ((callType == CALL_TYPE_IDLE
+                        || callType == CALL_TYPE_VOICE
+                        || callType == CALL_TYPE_VIDEO)
+                && measurementType == SIGNAL_MEASUREMENT_TYPE_RSRP) {
+            if (an == AccessNetworkConstants.AccessNetworkType.EUTRAN) {
                 Assert.assertEquals(KEY_DEFAULT_THRESHOLD_RSRP_GOOD, threshold.mGood);
                 Assert.assertEquals(QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_BAD, threshold.mBad);
             }
             Assert.assertEquals(0x0000FFFF, threshold.mWorst);
-        } else if ((callType == CALL_TYPE_IDLE || callType == CALL_TYPE_VOICE)
+        } else if ((callType == CALL_TYPE_IDLE
+                        || callType == CALL_TYPE_VOICE
+                        || callType == CALL_TYPE_VIDEO)
                 && (measurementType == SIGNAL_MEASUREMENT_TYPE_RSCP)) {
             if (an == AccessNetworkConstants.AccessNetworkType.UTRAN) {
                 Assert.assertEquals(KEY_DEFAULT_THRESHOLD_RSCP_GOOD, threshold.mGood);
@@ -1417,21 +1400,14 @@
             }
             Assert.assertEquals(0x0000FFFF, threshold.mWorst);
         } else if (an == AccessNetworkConstants.AccessNetworkType.IWLAN) {
-            if (callType == CALL_TYPE_IDLE || callType == CALL_TYPE_VOICE) {
+            if (callType == CALL_TYPE_IDLE
+                    || callType == CALL_TYPE_VOICE
+                    || callType == QnsConstants.CALL_TYPE_VIDEO) {
                 Assert.assertEquals(
                         QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD, threshold.mGood);
                 Assert.assertEquals(
                         QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD, threshold.mBad);
-            } else if (callType == QnsConstants.CALL_TYPE_VIDEO) {
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_GOOD, threshold.mGood);
-                Assert.assertEquals(
-                        QnsConstants.KEY_DEFAULT_THRESHOLD_VIDEO_WIFI_RSSI_BAD, threshold.mBad);
             }
-        } else {
-            Assert.assertEquals(0x0000FFFF, threshold.mGood);
-            Assert.assertEquals(0x0000FFFF, threshold.mBad);
-            Assert.assertEquals(0x0000FFFF, threshold.mWorst);
         }
     }
 
@@ -1485,8 +1461,7 @@
         Assert.assertEquals(QnsConstants.INVALID_VALUE, rtpMetricsData.mPktLossRate);
         Assert.assertEquals(
                 QnsConstants.KEY_DEFAULT_PACKET_LOSS_TIME_MILLIS, rtpMetricsData.mPktLossTime);
-        Assert.assertEquals(
-                QnsConstants.INVALID_VALUE, rtpMetricsData.mNoRtpInterval);
+        Assert.assertEquals(QnsConstants.INVALID_VALUE, rtpMetricsData.mNoRtpInterval);
 
         Assert.assertNotEquals(QnsConstants.KEY_DEFAULT_VALUE, rtpMetricsData.mJitter);
         Assert.assertNotEquals(QnsConstants.KEY_DEFAULT_VALUE, rtpMetricsData.mPktLossRate);
diff --git a/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsUtilsTest.java b/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsUtilsTest.java
index 48467a4..36b7a4b 100644
--- a/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsUtilsTest.java
+++ b/services/QualifiedNetworksService/tests/src/com/android/telephony/qns/QnsUtilsTest.java
@@ -261,9 +261,6 @@
                 new String[] {FALLBACK_RULE0, FALLBACK_RULE1};
         String[] fallbackWwanRuleWithImsHoRegisterFail =
                 new String[] {FALLBACK_RULE1, FALLBACK_RULE0};
-        String[] apnTypesForInternationalRoamingCheck = new String[] {"ims", "emergency"};
-        String[] plmnsToBeInternationalRoaming = new String[] {"313200", "233", "37809"};
-        String[] plmnsToBeDomesticRoaming = new String[] {"313200", "233", "37707"};
         String[] defaultFallbackConfigInitialDataConnection =
                 new String[] {"ims:2:30000:60000:5", "mms:1:10000:5000:2"};
 
@@ -430,6 +427,14 @@
                                 null,
                                 QnsCarrierConfigManager
                                         .KEY_QNS_MEDIA_THRESHOLD_RTP_PACKET_LOSS_TIME_MILLIS_INT));
+        assertEquals(
+                2000 /* test value */,
+                (int)
+                        QnsUtils.getConfig(
+                                mTestBundle,
+                                null,
+                                QnsCarrierConfigManager
+                                        .KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT));
         assertArrayEquals(
                 defaultIwlanMaxHoCountAndFallback,
                 QnsUtils.getConfig(
@@ -592,6 +597,12 @@
         mTestBundle.putInt(
                 QnsCarrierConfigManager.KEY_QNS_MEDIA_THRESHOLD_RTP_PACKET_LOSS_TIME_MILLIS_INT,
                 3000);
+        mTestBundle.putInt(
+                QnsCarrierConfigManager.KEY_QNS_MEDIA_THRESHOLD_RTP_PACKET_LOSS_TIME_MILLIS_INT,
+                3000);
+        mTestBundle.putInt(
+                QnsCarrierConfigManager.KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT,
+                2000);
         mTestBundle.putIntArray(
                 QnsCarrierConfigManager
                         .KEY_QNS_IN_CALL_ROVEIN_ALLOWED_COUNT_AND_FALLBACK_REASON_INT_ARRAY,
@@ -815,6 +826,14 @@
                                 null,
                                 QnsCarrierConfigManager
                                         .KEY_QNS_MEDIA_THRESHOLD_RTP_PACKET_LOSS_TIME_MILLIS_INT));
+        assertEquals(
+                QnsConstants.CONFIG_DEFAULT_MIN_HANDOVER_GUARDING_TIMER,
+                (int)
+                        QnsUtils.getConfig(
+                                null,
+                                null,
+                                QnsCarrierConfigManager
+                                        .KEY_MINIMUM_HANDOVER_GUARDING_TIMER_MS_INT));
         assertArrayEquals(
                 new int[] {QnsConstants.MAX_COUNT_INVALID, QnsConstants.FALLBACK_REASON_INVALID},
                 QnsUtils.getConfig(
@@ -864,7 +883,7 @@
         assertArrayEquals(
                 new int[] {
                     QnsConstants.KEY_DEFAULT_IWLAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS,
-                    QnsConstants.KEY_DEFAULT_VALUE
+                    QnsConstants.KEY_DEFAULT_WWAN_AVOID_TIME_LOW_RTP_QUALITY_MILLIS
                 },
                 QnsUtils.getConfig(
                         null,
@@ -884,6 +903,153 @@
                         null,
                         null,
                         CarrierConfigManager.Ims.KEY_IMS_PDN_ENABLED_IN_NO_VOPS_SUPPORT_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_IDLE_NGRAN_SSRSRP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VOICE_NGRAN_SSRSRP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_SSRSRP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VIDEO_NGRAN_SSRSRP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_IDLE_EUTRAN_RSRP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VOICE_EUTRAN_RSRP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSRP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VIDEO_EUTRAN_RSRP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSCP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSCP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_IDLE_UTRAN_RSCP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSCP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSCP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VOICE_UTRAN_RSCP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSCP_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_RSCP_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VIDEO_UTRAN_RSCP_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_IDLE_GERAN_RSSI_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VOICE_GERAN_RSSI_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_GERAN_RSSI_BAD,
+                        QnsCarrierConfigManager.QnsConfigArray.INVALID
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VIDEO_GERAN_RSSI_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_IDLE_WIFI_RSSI_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VOICE_WIFI_RSSI_INT_ARRAY));
+        assertArrayEquals(
+                new int[] {
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_GOOD,
+                        QnsConstants.KEY_DEFAULT_THRESHOLD_WIFI_RSSI_BAD
+                },
+                QnsUtils.getConfig(
+                        null,
+                        null,
+                        QnsCarrierAnspSupportConfig.KEY_VIDEO_WIFI_RSSI_INT_ARRAY));
         assertEquals(
                 "",
                 QnsUtils.getConfig(