Only dump ApfFilter if ApfFilter is actually supported

If the ApfFilter is not supported by the device, the apfCapabilities
will be null or the apfCapabilities.apfVersionSupported will be zero.
This change checks those conditions before dumping apfFilter status.

Bug: 310501670
Test: TH
Change-Id: I77aef6e6a52047ce28d06bd4ba7ec3b8add2126e
diff --git a/src/android/net/ip/IpClient.java b/src/android/net/ip/IpClient.java
index 11cdd20..eb17f1a 100644
--- a/src/android/net/ip/IpClient.java
+++ b/src/android/net/ip/IpClient.java
@@ -1293,7 +1293,8 @@
         IndentingPrintWriter pw = new IndentingPrintWriter(writer, "  ");
         pw.println(mTag + " APF dump:");
         pw.increaseIndent();
-        if (apfFilter != null) {
+        if (apfFilter != null && apfCapabilities != null
+                && apfCapabilities.apfVersionSupported > 0) {
             if (apfCapabilities.hasDataAccess()) {
                 // Request a new snapshot, then wait for it.
                 mApfDataSnapshotComplete.close();
diff --git a/tests/unit/src/android/net/ip/IpClientTest.java b/tests/unit/src/android/net/ip/IpClientTest.java
index d8b2cc2..96d5bfa 100644
--- a/tests/unit/src/android/net/ip/IpClientTest.java
+++ b/tests/unit/src/android/net/ip/IpClientTest.java
@@ -86,6 +86,8 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
 import java.net.Inet4Address;
 import java.net.Inet6Address;
 import java.net.InetAddress;
@@ -147,6 +149,8 @@
     @Mock private IpMemoryStoreService mIpMemoryStoreService;
     @Mock private InterfaceParams mInterfaceParams;
     @Mock private IpConnectivityLog mMetricsLog;
+    @Mock private FileDescriptor mFd;
+    @Mock private PrintWriter mWriter;
 
     private NetworkObserver mObserver;
     private InterfaceParams mIfParams;
@@ -782,6 +786,17 @@
     }
 
     @Test
+    public void testDumpApfFilter_withNoException() throws Exception {
+        final IpClient ipc = makeIpClient(TEST_IFNAME);
+        final ApfConfiguration config = verifyApfFilterCreatedOnStart(ipc,
+                false /* isApfSupported */);
+        assertNull(config.apfCapabilities);
+        clearInvocations(mDependencies);
+        ipc.dump(mFd, mWriter, null /* args */);
+        verifyShutdown(ipc);
+    }
+
+    @Test
     public void testApfUpdateCapabilities_nonNullInitialApfCapabilities() throws Exception {
         final IpClient ipc = makeIpClient(TEST_IFNAME);
         final ApfConfiguration config = verifyApfFilterCreatedOnStart(ipc,