Temporary fix to prevent TEMPORARILY_NOT_METERED leak

Currently we are seeing TEMPORARILY_NOT_METERED occurs on non-5G
devices. This fix adds more checks to prevent incorrect
TEMPORARILY_NOT_METERED being set. Before we root cause the issue,
we only allow this bit when all of the following conditions met.

1. Devices should support 5G.
2. Carriers should support 5G unmetered data.
3. Device should camp on 5G network.

This temporary fix should be removed after we root cause the issue.

Bug: 176119724
Test: Manual
Merged-In: I2b987d24851cdb16d8457b0ec5c546ace5485ed0
Change-Id: I2b987d24851cdb16d8457b0ec5c546ace5485ed0
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index 757939d..6f10af1 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -3928,6 +3928,13 @@
     public static final String KEY_USE_LOWER_MTU_VALUE_IF_BOTH_RECEIVED =
             "use_lower_mtu_value_if_both_received";
 
+    /**
+     * Indicates temporarily unmetered mobile data is supported by the carrier.
+     * @hide
+     */
+    public static final String KEY_NETWORK_TEMP_NOT_METERED_SUPPORTED_BOOL =
+            "network_temp_not_metered_supported_bool";
+
     /** The default value for every variable. */
     private final static PersistableBundle sDefaults;
 
@@ -4466,6 +4473,7 @@
         sDefaults.putBoolean(KEY_DISABLE_DUN_APN_WHILE_ROAMING_WITH_PRESET_APN_BOOL, false);
         sDefaults.putString(KEY_DEFAULT_PREFERRED_APN_NAME_STRING, "");
         sDefaults.putBoolean(KEY_USE_LOWER_MTU_VALUE_IF_BOTH_RECEIVED, false);
+        sDefaults.putBoolean(KEY_NETWORK_TEMP_NOT_METERED_SUPPORTED_BOOL, false);
     }
 
     /**