Pass NsdService thread looper to MdnsDiscoveryManager

MdnsDiscoveryManager should use the same thread that create on
NsdService that is used on other mDns components. Thus, pass that
thread loop to MdnsDiscoveryManager.

Bug: 265787401
Test: atest FrameworksNetTests
Change-Id: Icc23994c3ebc99da6043ed2d93540c44f53a150b
This commit is contained in:
Paul Hu
2023-05-12 00:31:06 +08:00
parent bd4140ea91
commit 7f0af78c5e
2 changed files with 7 additions and 5 deletions

View File

@@ -1394,7 +1394,8 @@ public class NsdService extends INsdManager.Stub {
mMdnsSocketClient =
new MdnsMultinetworkSocketClient(handler.getLooper(), mMdnsSocketProvider);
mMdnsDiscoveryManager = deps.makeMdnsDiscoveryManager(new ExecutorProvider(),
mMdnsSocketClient, LOGGER.forSubComponent("MdnsDiscoveryManager"));
mMdnsSocketClient, LOGGER.forSubComponent("MdnsDiscoveryManager"),
handler.getLooper());
handler.post(() -> mMdnsSocketClient.setCallback(mMdnsDiscoveryManager));
mAdvertiser = deps.makeMdnsAdvertiser(handler.getLooper(), mMdnsSocketProvider,
new AdvertiserCallback(), LOGGER.forSubComponent("MdnsAdvertiser"));
@@ -1452,8 +1453,9 @@ public class NsdService extends INsdManager.Stub {
*/
public MdnsDiscoveryManager makeMdnsDiscoveryManager(
@NonNull ExecutorProvider executorProvider,
@NonNull MdnsSocketClientBase socketClient, @NonNull SharedLog sharedLog) {
return new MdnsDiscoveryManager(executorProvider, socketClient, sharedLog);
@NonNull MdnsSocketClientBase socketClient, @NonNull SharedLog sharedLog,
@NonNull Looper looper) {
return new MdnsDiscoveryManager(executorProvider, socketClient, sharedLog, looper);
}
/**