In some rare Android systems ConnectivityManager may be null.
Handle this case more gracefully.

BUG=

Review URL: https://codereview.webrtc.org/1490403002

Cr-Commit-Position: refs/heads/master@{#10875}
diff --git a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java
index 11aa30a..950dcdf 100644
--- a/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java
+++ b/talk/app/webrtc/java/android/org/webrtc/NetworkMonitorAutoDetect.java
@@ -96,6 +96,10 @@
 
   /** Queries the ConnectivityManager for information about the current connection. */
   static class ConnectivityManagerDelegate {
+    /**
+     *  Note: In some rare Android systems connectivityManager is null.  We handle that
+     *  gracefully below.
+     */
     private final ConnectivityManager connectivityManager;
 
     ConnectivityManagerDelegate(Context context) {
@@ -114,6 +118,9 @@
      * default network.
      */
     NetworkState getNetworkState() {
+      if (connectivityManager == null) {
+        return new NetworkState(false, -1, -1);
+      }
       return getNetworkState(connectivityManager.getActiveNetworkInfo());
     }
 
@@ -123,6 +130,9 @@
      */
     @SuppressLint("NewApi")
     NetworkState getNetworkState(Network network) {
+      if (connectivityManager == null) {
+        return new NetworkState(false, -1, -1);
+      }
       return getNetworkState(connectivityManager.getNetworkInfo(network));
     }
 
@@ -142,6 +152,9 @@
      */
     @SuppressLint("NewApi")
     Network[] getAllNetworks() {
+      if (connectivityManager == null) {
+        return new Network[0];
+      }
       return connectivityManager.getAllNetworks();
     }
 
@@ -152,6 +165,9 @@
      */
     @SuppressLint("NewApi")
     int getDefaultNetId() {
+      if (connectivityManager == null) {
+        return INVALID_NET_ID;
+      }
       // Android Lollipop had no API to get the default network; only an
       // API to return the NetworkInfo for the default network. To
       // determine the default network one can find the network with
@@ -188,6 +204,9 @@
      */
     @SuppressLint("NewApi")
     boolean hasInternetCapability(Network network) {
+      if (connectivityManager == null) {
+        return false;
+      }
       final NetworkCapabilities capabilities =
           connectivityManager.getNetworkCapabilities(network);
       return capabilities != null && capabilities.hasCapability(NET_CAPABILITY_INTERNET);