Revert "Implement the stop resolution with MdnsDiscoveryManager"

This reverts commit 6d77c41f2ae8d6fdfb6822c92e6989b3197f7b04.

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=aosp_cf_x86_64_phone-userdebug&lkgb=9678930&lkbb=9678975&fkbb=9678975, bug b/271400306

Change-Id: I8bfd2b8117ea401df7441116b983f5fe19f63d5d
BUG: 271400306
diff --git a/service-t/src/com/android/server/NsdService.java b/service-t/src/com/android/server/NsdService.java
index d5d50c0..4ad39e1 100644
--- a/service-t/src/com/android/server/NsdService.java
+++ b/service-t/src/com/android/server/NsdService.java
@@ -545,12 +545,6 @@
                 return new String(out.array(), 0, out.position(), utf8);
             }
 
-            private void stopDiscoveryManagerRequest(ClientRequest request, int clientId, int id,
-                    ClientInfo clientInfo) {
-                clientInfo.unregisterMdnsListenerFromRequest(request);
-                removeRequestMap(clientId, id, clientInfo);
-            }
-
             @Override
             public boolean processMessage(Message msg) {
                 final ClientInfo clientInfo;
@@ -637,7 +631,11 @@
                         // point, so this needs to check the type of the original request to
                         // unregister instead of looking at the flag value.
                         if (request instanceof DiscoveryManagerRequest) {
-                            stopDiscoveryManagerRequest(request, clientId, id, clientInfo);
+                            final MdnsListener listener =
+                                    ((DiscoveryManagerRequest) request).mListener;
+                            mMdnsDiscoveryManager.unregisterListener(
+                                    listener.getListenedServiceType(), listener);
+                            removeRequestMap(clientId, id, clientInfo);
                             clientInfo.onStopDiscoverySucceeded(clientId);
                         } else {
                             removeRequestMap(clientId, id, clientInfo);
@@ -805,22 +803,15 @@
                             break;
                         }
                         id = request.mGlobalId;
-                        // Note isMdnsDiscoveryManagerEnabled may have changed to false at this
-                        // point, so this needs to check the type of the original request to
-                        // unregister instead of looking at the flag value.
-                        if (request instanceof DiscoveryManagerRequest) {
-                            stopDiscoveryManagerRequest(request, clientId, id, clientInfo);
+                        removeRequestMap(clientId, id, clientInfo);
+                        if (stopResolveService(id)) {
                             clientInfo.onStopResolutionSucceeded(clientId);
                         } else {
-                            removeRequestMap(clientId, id, clientInfo);
-                            if (stopResolveService(id)) {
-                                clientInfo.onStopResolutionSucceeded(clientId);
-                            } else {
-                                clientInfo.onStopResolutionFailed(
-                                        clientId, NsdManager.FAILURE_OPERATION_NOT_RUNNING);
-                            }
-                            clientInfo.mResolvedService = null;
+                            clientInfo.onStopResolutionFailed(
+                                    clientId, NsdManager.FAILURE_OPERATION_NOT_RUNNING);
                         }
+                        clientInfo.mResolvedService = null;
+                        // TODO: Implement the stop resolution with MdnsDiscoveryManager.
                         break;
                     }
                     case NsdManager.REGISTER_SERVICE_CALLBACK:
@@ -1173,7 +1164,10 @@
                             Log.wtf(TAG, "non-DiscoveryManager request in DiscoveryManager event");
                             break;
                         }
-                        stopDiscoveryManagerRequest(request, clientId, transactionId, clientInfo);
+                        final MdnsListener listener = ((DiscoveryManagerRequest) request).mListener;
+                        mMdnsDiscoveryManager.unregisterListener(
+                                listener.getListenedServiceType(), listener);
+                        removeRequestMap(clientId, transactionId, clientInfo);
                         break;
                     }
                     default:
@@ -1700,13 +1694,6 @@
             mIsPreSClient = true;
         }
 
-        private void unregisterMdnsListenerFromRequest(ClientRequest request) {
-            final MdnsListener listener =
-                    ((DiscoveryManagerRequest) request).mListener;
-            mMdnsDiscoveryManager.unregisterListener(
-                    listener.getListenedServiceType(), listener);
-        }
-
         // Remove any pending requests from the global map when we get rid of a client,
         // and send cancellations to the daemon.
         private void expungeAllRequests() {
@@ -1722,7 +1709,10 @@
                 }
 
                 if (request instanceof DiscoveryManagerRequest) {
-                    unregisterMdnsListenerFromRequest(request);
+                    final MdnsListener listener =
+                            ((DiscoveryManagerRequest) request).mListener;
+                    mMdnsDiscoveryManager.unregisterListener(
+                            listener.getListenedServiceType(), listener);
                     continue;
                 }
 
diff --git a/tests/unit/java/com/android/server/NsdServiceTest.java b/tests/unit/java/com/android/server/NsdServiceTest.java
index 43637f7..0680772 100644
--- a/tests/unit/java/com/android/server/NsdServiceTest.java
+++ b/tests/unit/java/com/android/server/NsdServiceTest.java
@@ -1150,37 +1150,6 @@
                 argThat(info -> matches(info, new NsdServiceInfo(regInfo.getServiceName(), null))));
     }
 
-    @Test
-    public void testStopServiceResolutionWithMdnsDiscoveryManager() {
-        setMdnsDiscoveryManagerEnabled();
-
-        final NsdManager client = connectClient(mService);
-        final ResolveListener resolveListener = mock(ResolveListener.class);
-        final Network network = new Network(999);
-        final String serviceType = "_nsd._service._tcp";
-        final String constructedServiceType = "_nsd._sub._service._tcp.local";
-        final ArgumentCaptor<MdnsServiceBrowserListener> listenerCaptor =
-                ArgumentCaptor.forClass(MdnsServiceBrowserListener.class);
-        final NsdServiceInfo request = new NsdServiceInfo(SERVICE_NAME, serviceType);
-        request.setNetwork(network);
-        client.resolveService(request, resolveListener);
-        waitForIdle();
-        verify(mSocketProvider).startMonitoringSockets();
-        verify(mDiscoveryManager).registerListener(eq(constructedServiceType),
-                listenerCaptor.capture(), argThat(options -> network.equals(options.getNetwork())));
-
-        client.stopServiceResolution(resolveListener);
-        waitForIdle();
-
-        // Verify the listener has been unregistered.
-        verify(mDiscoveryManager, timeout(TIMEOUT_MS))
-                .unregisterListener(eq(constructedServiceType), eq(listenerCaptor.getValue()));
-        verify(resolveListener, timeout(TIMEOUT_MS)).onResolutionStopped(argThat(ns ->
-                request.getServiceName().equals(ns.getServiceName())
-                        && request.getServiceType().equals(ns.getServiceType())));
-        verify(mSocketProvider, timeout(CLEANUP_DELAY_MS + TIMEOUT_MS)).stopMonitoringSockets();
-    }
-
     private void waitForIdle() {
         HandlerUtils.waitForIdle(mHandler, TIMEOUT_MS);
     }