Add Executors to NSD shim
The new APIs use Executors and need shims for testing
Bug: 218752665
Test: atest NsdManagerTest
Change-Id: I5ade8c8019eff1bd67ba07d0d7573a9b21437220
diff --git a/apishim/29/com/android/networkstack/apishim/api29/NsdShimImpl.java b/apishim/29/com/android/networkstack/apishim/api29/NsdShimImpl.java
index b54746a..51cb2ba 100644
--- a/apishim/29/com/android/networkstack/apishim/api29/NsdShimImpl.java
+++ b/apishim/29/com/android/networkstack/apishim/api29/NsdShimImpl.java
@@ -29,6 +29,8 @@
import com.android.networkstack.apishim.common.NsdShim;
import com.android.networkstack.apishim.common.UnsupportedApiLevelException;
+import java.util.concurrent.Executor;
+
/**
* Implementation of {@link NsdShim}.
*/
@@ -55,17 +57,33 @@
}
@Override
+ public void registerService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
+ int protocolType, @NonNull Executor executor,
+ @NonNull NsdManager.RegistrationListener listener) throws UnsupportedApiLevelException {
+ throw new UnsupportedApiLevelException("Register with an executor is only supported on T+");
+ }
+
+ @Override
public void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
int protocolType, @Nullable Network network,
- @NonNull NsdManager.DiscoveryListener listener) throws UnsupportedApiLevelException {
+ @NonNull Executor executor, @NonNull NsdManager.DiscoveryListener listener)
+ throws UnsupportedApiLevelException {
throw new UnsupportedApiLevelException("Discover on network is only supported on T+");
}
@Override
public void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
int protocolType, @Nullable NetworkRequest request,
- @NonNull NsdManager.DiscoveryListener listener) throws UnsupportedApiLevelException {
+ @NonNull Executor executor, @NonNull NsdManager.DiscoveryListener listener)
+ throws UnsupportedApiLevelException {
throw new UnsupportedApiLevelException(
"Discover with NetworkRequest is only supported on T+");
}
+
+ @Override
+ public void resolveService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
+ @NonNull Executor executor, @NonNull NsdManager.ResolveListener resolveListener)
+ throws UnsupportedApiLevelException {
+ throw new UnsupportedApiLevelException("Resolve with executor is only supported on T+");
+ }
}
diff --git a/apishim/33/com/android/networkstack/apishim/NsdShimImpl.java b/apishim/33/com/android/networkstack/apishim/NsdShimImpl.java
index bee56d3..2f13397 100644
--- a/apishim/33/com/android/networkstack/apishim/NsdShimImpl.java
+++ b/apishim/33/com/android/networkstack/apishim/NsdShimImpl.java
@@ -30,6 +30,8 @@
import com.android.networkstack.apishim.common.NsdShim;
import com.android.networkstack.apishim.common.UnsupportedApiLevelException;
+import java.util.concurrent.Executor;
+
/**
* Implementation of {@link com.android.networkstack.apishim.common.NsdShim}.
*/
@@ -60,16 +62,32 @@
}
@Override
+ public void registerService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
+ int protocolType, @NonNull Executor executor,
+ @NonNull NsdManager.RegistrationListener listener) {
+ nsdManager.registerService(serviceInfo, protocolType, executor, listener);
+ }
+
+ @Override
public void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
int protocolType, @Nullable Network network,
- @NonNull NsdManager.DiscoveryListener listener) throws UnsupportedApiLevelException {
- nsdManager.discoverServices(serviceType, protocolType, network, listener);
+ @NonNull Executor executor, @NonNull NsdManager.DiscoveryListener listener)
+ throws UnsupportedApiLevelException {
+ nsdManager.discoverServices(serviceType, protocolType, network, executor, listener);
}
@Override
public void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
int protocolType, @Nullable NetworkRequest request,
- @NonNull NsdManager.DiscoveryListener listener) throws UnsupportedApiLevelException {
- nsdManager.discoverServices(serviceType, protocolType, request, listener);
+ @NonNull Executor executor, @NonNull NsdManager.DiscoveryListener listener)
+ throws UnsupportedApiLevelException {
+ nsdManager.discoverServices(serviceType, protocolType, request, executor, listener);
+ }
+
+ @Override
+ public void resolveService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
+ @NonNull Executor executor, @NonNull NsdManager.ResolveListener resolveListener)
+ throws UnsupportedApiLevelException {
+ nsdManager.resolveService(serviceInfo, executor, resolveListener);
}
}
diff --git a/apishim/common/com/android/networkstack/apishim/common/NsdShim.java b/apishim/common/com/android/networkstack/apishim/common/NsdShim.java
index ff5209e..9e067ee 100644
--- a/apishim/common/com/android/networkstack/apishim/common/NsdShim.java
+++ b/apishim/common/com/android/networkstack/apishim/common/NsdShim.java
@@ -19,11 +19,16 @@
import android.net.Network;
import android.net.NetworkRequest;
import android.net.nsd.NsdManager;
+import android.net.nsd.NsdManager.DiscoveryListener;
+import android.net.nsd.NsdManager.RegistrationListener;
+import android.net.nsd.NsdManager.ResolveListener;
import android.net.nsd.NsdServiceInfo;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import java.util.concurrent.Executor;
+
/** Shim for NSD APIs, including {@link android.net.nsd.NsdManager} and
* {@link android.net.nsd.NsdServiceInfo}. */
public interface NsdShim {
@@ -39,16 +44,32 @@
void setNetwork(@NonNull NsdServiceInfo serviceInfo, @Nullable Network network);
/**
- * @see NsdManager#discoverServices(String, int, Network, NsdManager.DiscoveryListener)
+ * @see NsdManager#registerService(NsdServiceInfo, int, Executor, RegistrationListener)
+ */
+ void registerService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
+ int protocolType, @NonNull Executor executor, @NonNull RegistrationListener listener)
+ throws UnsupportedApiLevelException;
+
+ /**
+ * @see NsdManager#discoverServices(String, int, Network, Executor, DiscoveryListener)
*/
void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
int protocolType, @Nullable Network network,
- @NonNull NsdManager.DiscoveryListener listener) throws UnsupportedApiLevelException;
+ @NonNull Executor executor, @NonNull DiscoveryListener listener)
+ throws UnsupportedApiLevelException;
/**
- * @see NsdManager#discoverServices(String, int, NetworkRequest, NsdManager.DiscoveryListener)
+ * @see NsdManager#resolveService(NsdServiceInfo, Executor, ResolveListener)
+ */
+ void resolveService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
+ @NonNull Executor executor, @NonNull ResolveListener resolveListener)
+ throws UnsupportedApiLevelException;
+
+ /**
+ * @see NsdManager#discoverServices(String, int, NetworkRequest, Executor, DiscoveryListener)
*/
void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
int protocolType, @Nullable NetworkRequest request,
- @NonNull NsdManager.DiscoveryListener listener) throws UnsupportedApiLevelException;
+ @NonNull Executor executor, @NonNull DiscoveryListener listener)
+ throws UnsupportedApiLevelException;
}