Usage Settings: Fix NPE when subscriberId is Null.

For mobile, a old API: buildTemplateMobileAll doesn't includes the
merged wifi network, call the new API: buildTemplateCarrierMetered
to replace the old one.

But new API: buildTemplateCarrierMetered requires non-null subscriberId.
Call old API: buildTemplateMobileAll when subscriberId is NULL since
the matched result is always empty when subscriberId is NULL. No any different
between buildTemplateCarrierMetered and buildTemplateMobileAll.

Bug: 190233044
Bug: 190135429
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=DataUsageUtilsTest
Change-Id: I3c7166e60e32142d5995d41722955dd54c21938f
diff --git a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageUtils.java b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageUtils.java
index 51e533a..3f95a07 100644
--- a/packages/SettingsLib/src/com/android/settingslib/net/DataUsageUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/net/DataUsageUtils.java
@@ -73,7 +73,10 @@
 
     private static NetworkTemplate getMobileTemplateForSubId(
             TelephonyManager telephonyManager, int subId) {
-        return NetworkTemplate.buildTemplateCarrierMetered(
-                telephonyManager.getSubscriberId(subId));
+        // The null subscriberId means that no any mobile/carrier network will be matched.
+        // Using old API: buildTemplateMobileAll for the null subscriberId to avoid NPE.
+        String subscriberId = telephonyManager.getSubscriberId(subId);
+        return subscriberId != null ? NetworkTemplate.buildTemplateCarrierMetered(subscriberId)
+                : NetworkTemplate.buildTemplateMobileAll(subscriberId);
     }
 }