Add newApi linter check for mDNS library
The mDNS library need to be backported to some internal library which support minSdk 21. Therefore, updated the build rules to add the linter check. Bug: 296175311 Test: TH Change-Id: Iae0bffa315dc6de2339a05f595b13480fa7385ae
This commit is contained in:
@@ -19,7 +19,9 @@ package android.net.nsd;
|
||||
import android.annotation.IntRange;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.annotation.SystemApi;
|
||||
import android.os.Build;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
@@ -38,6 +40,7 @@ import java.util.Objects;
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public final class OffloadServiceInfo implements Parcelable {
|
||||
@NonNull
|
||||
private final Key mKey;
|
||||
|
||||
@@ -91,6 +91,10 @@ java_library {
|
||||
java_library {
|
||||
name: "service-connectivity-mdns-standalone-build-test",
|
||||
sdk_version: "core_platform",
|
||||
min_sdk_version: "21",
|
||||
lint: {
|
||||
error_checks: ["NewApi"],
|
||||
},
|
||||
srcs: [
|
||||
"src/com/android/server/connectivity/mdns/**/*.java",
|
||||
":framework-connectivity-t-mdns-standalone-build-sources",
|
||||
|
||||
@@ -35,6 +35,7 @@ import static com.android.server.connectivity.mdns.util.MdnsUtils.Clock;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -59,6 +60,7 @@ import android.net.nsd.OffloadEngine;
|
||||
import android.net.nsd.OffloadServiceInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.HandlerThread;
|
||||
import android.os.IBinder;
|
||||
@@ -120,6 +122,7 @@ import java.util.regex.Pattern;
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class NsdService extends INsdManager.Stub {
|
||||
private static final String TAG = "NsdService";
|
||||
private static final String MDNS_TAG = "mDnsConnector";
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.android.server.connectivity.mdns;
|
||||
import static com.android.server.connectivity.mdns.MdnsServiceTypeClient.INVALID_TRANSACTION_ID;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
|
||||
@@ -220,7 +221,9 @@ public class EnqueueMdnsQueryCallable implements Callable<Pair<Integer, List<Str
|
||||
throws IOException {
|
||||
DatagramPacket packet = packetWriter.getPacket(address);
|
||||
if (expectUnicastResponse) {
|
||||
if (requestSender instanceof MdnsMultinetworkSocketClient) {
|
||||
// MdnsMultinetworkSocketClient is only available on T+
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
|
||||
&& requestSender instanceof MdnsMultinetworkSocketClient) {
|
||||
((MdnsMultinetworkSocketClient) requestSender).sendPacketRequestingUnicastResponse(
|
||||
packet, socketKey, onlyUseIpv6OnIpv6OnlyNetworks);
|
||||
} else {
|
||||
@@ -228,7 +231,8 @@ public class EnqueueMdnsQueryCallable implements Callable<Pair<Integer, List<Str
|
||||
packet, onlyUseIpv6OnIpv6OnlyNetworks);
|
||||
}
|
||||
} else {
|
||||
if (requestSender instanceof MdnsMultinetworkSocketClient) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU
|
||||
&& requestSender instanceof MdnsMultinetworkSocketClient) {
|
||||
((MdnsMultinetworkSocketClient) requestSender)
|
||||
.sendPacketRequestingMulticastResponse(
|
||||
packet, socketKey, onlyUseIpv6OnIpv6OnlyNetworks);
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
package com.android.server.connectivity.mdns;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.util.ArraySet;
|
||||
|
||||
import com.android.server.connectivity.mdns.util.MdnsUtils;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
@@ -30,7 +31,7 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
|
||||
public class ExecutorProvider {
|
||||
|
||||
private final Set<ScheduledExecutorService> serviceTypeClientSchedulerExecutors =
|
||||
new ArraySet<>();
|
||||
MdnsUtils.newSet();
|
||||
|
||||
/** Returns a new {@link ScheduledExecutorService} instance. */
|
||||
public ScheduledExecutorService newServiceTypeClientSchedulerExecutor() {
|
||||
|
||||
@@ -21,12 +21,14 @@ import static com.android.server.connectivity.mdns.MdnsRecord.MAX_LABEL_LENGTH;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.Network;
|
||||
import android.net.nsd.NsdManager;
|
||||
import android.net.nsd.NsdServiceInfo;
|
||||
import android.net.nsd.OffloadEngine;
|
||||
import android.net.nsd.OffloadServiceInfo;
|
||||
import android.os.Build;
|
||||
import android.os.Looper;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Log;
|
||||
@@ -50,6 +52,7 @@ import java.util.function.Consumer;
|
||||
*
|
||||
* All methods except the constructor must be called on the looper thread.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsAdvertiser {
|
||||
private static final String TAG = MdnsAdvertiser.class.getSimpleName();
|
||||
static final boolean DBG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
|
||||
@@ -18,6 +18,8 @@ package com.android.server.connectivity.mdns;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.os.Build;
|
||||
import android.os.Looper;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
@@ -31,6 +33,7 @@ import java.util.List;
|
||||
*
|
||||
* This allows maintaining other hosts' caches up-to-date. See RFC6762 8.3.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsAnnouncer extends MdnsPacketRepeater<MdnsAnnouncer.BaseAnnouncementInfo> {
|
||||
private static final long ANNOUNCEMENT_INITIAL_DELAY_MS = 1000L;
|
||||
@VisibleForTesting
|
||||
|
||||
@@ -35,6 +35,7 @@ import com.android.server.connectivity.mdns.util.MdnsUtils;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* This class keeps tracking the set of registered {@link MdnsServiceBrowserListener} instances, and
|
||||
@@ -102,8 +103,12 @@ public class MdnsDiscoveryManager implements MdnsSocketClientBase.Callback {
|
||||
}
|
||||
|
||||
public void remove(@NonNull MdnsServiceTypeClient client) {
|
||||
final int index = clients.indexOfValue(client);
|
||||
clients.removeAt(index);
|
||||
for (int i = 0; i < clients.size(); ++i) {
|
||||
if (Objects.equals(client, clients.valueAt(i))) {
|
||||
clients.removeAt(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
|
||||
@@ -20,8 +20,10 @@ import static com.android.server.connectivity.mdns.MdnsConstants.NO_PACKET;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.nsd.NsdServiceInfo;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
|
||||
@@ -39,6 +41,7 @@ import java.util.List;
|
||||
/**
|
||||
* A class that handles advertising services on a {@link MdnsInterfaceSocket} tied to an interface.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsInterfaceAdvertiser implements MulticastPacketReader.PacketHandler {
|
||||
private static final boolean DBG = MdnsAdvertiser.DBG;
|
||||
@VisibleForTesting
|
||||
|
||||
@@ -20,8 +20,10 @@ import static com.android.server.connectivity.mdns.MdnsSocket.MULTICAST_IPV4_ADD
|
||||
import static com.android.server.connectivity.mdns.MdnsSocket.MULTICAST_IPV6_ADDRESS;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.util.SocketUtils;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
@@ -49,6 +51,7 @@ import java.util.List;
|
||||
* @see MulticastSocket for javadoc of each public method.
|
||||
* @see MulticastSocket for javadoc of each public method.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsInterfaceSocket {
|
||||
private static final String TAG = MdnsInterfaceSocket.class.getSimpleName();
|
||||
@NonNull private final MulticastSocket mMulticastSocket;
|
||||
|
||||
@@ -20,8 +20,10 @@ import static com.android.server.connectivity.mdns.util.MdnsUtils.ensureRunningO
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.Network;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.ArrayMap;
|
||||
@@ -40,6 +42,7 @@ import java.util.List;
|
||||
*
|
||||
* * <p>This class is not thread safe.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsMultinetworkSocketClient implements MdnsSocketClientBase {
|
||||
private static final String TAG = MdnsMultinetworkSocketClient.class.getSimpleName();
|
||||
private static final boolean DBG = MdnsDiscoveryManager.DBG;
|
||||
|
||||
@@ -18,7 +18,6 @@ package com.android.server.connectivity.mdns;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.EOFException;
|
||||
import java.io.IOException;
|
||||
@@ -206,9 +205,6 @@ public class MdnsPacket {
|
||||
|
||||
default: {
|
||||
try {
|
||||
if (MdnsAdvertiser.DBG) {
|
||||
Log.i(TAG, "Skipping parsing of record of unhandled type " + type);
|
||||
}
|
||||
skipMdnsRecord(reader, isQuestion);
|
||||
return null;
|
||||
} catch (IOException e) {
|
||||
|
||||
@@ -21,6 +21,8 @@ import static com.android.server.connectivity.mdns.MdnsRecordRepository.IPV6_ADD
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
@@ -34,6 +36,7 @@ import java.net.InetSocketAddress;
|
||||
* A class used to send several packets at given time intervals.
|
||||
* @param <T> The type of the request providing packet repeating parameters.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public abstract class MdnsPacketRepeater<T extends MdnsPacketRepeater.Request> {
|
||||
private static final boolean DBG = MdnsAdvertiser.DBG;
|
||||
private static final InetSocketAddress[] ALL_ADDRS = new InetSocketAddress[] {
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
package com.android.server.connectivity.mdns;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.os.Build;
|
||||
import android.os.Looper;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
@@ -33,6 +35,7 @@ import java.util.List;
|
||||
*
|
||||
* TODO: implement receiving replies and handling conflicts.
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsProber extends MdnsPacketRepeater<MdnsProber.ProbingInfo> {
|
||||
private static final long CONFLICT_RETRY_DELAY_MS = 5_000L;
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@ package com.android.server.connectivity.mdns;
|
||||
import static com.android.server.connectivity.mdns.util.MdnsUtils.ensureRunningOnHandlerThread;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
@@ -41,6 +43,7 @@ import java.util.Collections;
|
||||
*
|
||||
* TODO: implement sending after a delay, combining queued replies and duplicate answer suppression
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsReplySender {
|
||||
private static final boolean DBG = MdnsAdvertiser.DBG;
|
||||
private static final int MSG_SEND = 1;
|
||||
|
||||
@@ -20,7 +20,6 @@ import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.net.Network;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.server.connectivity.mdns.util.MdnsUtils;
|
||||
@@ -29,6 +28,7 @@ import java.io.EOFException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/** A class that decodes mDNS responses from UDP packets. */
|
||||
public class MdnsResponseDecoder {
|
||||
@@ -125,7 +125,7 @@ public class MdnsResponseDecoder {
|
||||
* 2) A copy of the original responses with some of them have records
|
||||
* update or only contains receive time updated.
|
||||
*/
|
||||
public Pair<ArraySet<MdnsResponse>, ArrayList<MdnsResponse>> augmentResponses(
|
||||
public Pair<Set<MdnsResponse>, ArrayList<MdnsResponse>> augmentResponses(
|
||||
@NonNull MdnsPacket mdnsPacket,
|
||||
@NonNull Collection<MdnsResponse> existingResponses, int interfaceIndex,
|
||||
@Nullable Network network) {
|
||||
@@ -136,7 +136,7 @@ public class MdnsResponseDecoder {
|
||||
records.addAll(mdnsPacket.authorityRecords);
|
||||
records.addAll(mdnsPacket.additionalRecords);
|
||||
|
||||
final ArraySet<MdnsResponse> modified = new ArraySet<>();
|
||||
final Set<MdnsResponse> modified = MdnsUtils.newSet();
|
||||
final ArrayList<MdnsResponse> responses = new ArrayList<>(existingResponses.size());
|
||||
final ArrayMap<MdnsResponse, MdnsResponse> augmentedToOriginal = new ArrayMap<>();
|
||||
for (MdnsResponse existing : existingResponses) {
|
||||
|
||||
@@ -22,7 +22,8 @@ import android.net.Network;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArraySet;
|
||||
|
||||
import com.android.server.connectivity.mdns.util.MdnsUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
@@ -46,11 +47,11 @@ public class MdnsSearchOptions implements Parcelable {
|
||||
public MdnsSearchOptions createFromParcel(Parcel source) {
|
||||
return new MdnsSearchOptions(
|
||||
source.createStringArrayList(),
|
||||
source.readBoolean(),
|
||||
source.readBoolean(),
|
||||
source.readInt() == 1,
|
||||
source.readInt() == 1,
|
||||
source.readParcelable(null),
|
||||
source.readString(),
|
||||
source.readBoolean(),
|
||||
source.readInt() == 1,
|
||||
source.readInt());
|
||||
}
|
||||
|
||||
@@ -165,11 +166,11 @@ public class MdnsSearchOptions implements Parcelable {
|
||||
@Override
|
||||
public void writeToParcel(Parcel out, int flags) {
|
||||
out.writeStringList(subtypes);
|
||||
out.writeBoolean(isPassiveMode);
|
||||
out.writeBoolean(removeExpiredService);
|
||||
out.writeInt(isPassiveMode ? 1 : 0);
|
||||
out.writeInt(removeExpiredService ? 1 : 0);
|
||||
out.writeParcelable(mNetwork, 0);
|
||||
out.writeString(resolveInstanceName);
|
||||
out.writeBoolean(onlyUseIpv6OnIpv6OnlyNetworks);
|
||||
out.writeInt(onlyUseIpv6OnIpv6OnlyNetworks ? 1 : 0);
|
||||
out.writeInt(numOfQueriesBeforeBackoff);
|
||||
}
|
||||
|
||||
@@ -184,7 +185,7 @@ public class MdnsSearchOptions implements Parcelable {
|
||||
private String resolveInstanceName;
|
||||
|
||||
private Builder() {
|
||||
subtypes = new ArraySet<>();
|
||||
subtypes = MdnsUtils.newSet();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -27,7 +27,6 @@ import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.text.TextUtils;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.ArraySet;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
@@ -42,6 +41,7 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
|
||||
/**
|
||||
@@ -414,11 +414,11 @@ public class MdnsServiceTypeClient {
|
||||
currentList.add(additionalResponse);
|
||||
}
|
||||
}
|
||||
final Pair<ArraySet<MdnsResponse>, ArrayList<MdnsResponse>> augmentedResult =
|
||||
final Pair<Set<MdnsResponse>, ArrayList<MdnsResponse>> augmentedResult =
|
||||
responseDecoder.augmentResponses(packet, currentList,
|
||||
socketKey.getInterfaceIndex(), socketKey.getNetwork());
|
||||
|
||||
final ArraySet<MdnsResponse> modifiedResponse = augmentedResult.first;
|
||||
final Set<MdnsResponse> modifiedResponse = augmentedResult.first;
|
||||
final ArrayList<MdnsResponse> allResponses = augmentedResult.second;
|
||||
|
||||
for (MdnsResponse response : allResponses) {
|
||||
|
||||
@@ -19,12 +19,12 @@ package com.android.server.connectivity.mdns;
|
||||
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
|
||||
import static android.net.NetworkCapabilities.TRANSPORT_VPN;
|
||||
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
||||
|
||||
import static com.android.server.connectivity.mdns.util.MdnsUtils.ensureRunningOnHandlerThread;
|
||||
import static com.android.server.connectivity.mdns.util.MdnsUtils.isNetworkMatched;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.RequiresApi;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -41,6 +41,7 @@ import android.net.TetheringManager.TetheringEventCallback;
|
||||
import android.net.wifi.p2p.WifiP2pGroup;
|
||||
import android.net.wifi.p2p.WifiP2pInfo;
|
||||
import android.net.wifi.p2p.WifiP2pManager;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.util.ArrayMap;
|
||||
@@ -67,6 +68,7 @@ import java.util.Objects;
|
||||
* to their default value (0, false or null).
|
||||
*
|
||||
*/
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
public class MdnsSocketProvider {
|
||||
private static final String TAG = MdnsSocketProvider.class.getSimpleName();
|
||||
private static final boolean DBG = MdnsDiscoveryManager.DBG;
|
||||
|
||||
@@ -22,9 +22,9 @@ import android.annotation.NonNull;
|
||||
import android.os.Handler;
|
||||
import android.os.ParcelFileDescriptor;
|
||||
import android.system.Os;
|
||||
import android.util.ArraySet;
|
||||
|
||||
import com.android.net.module.util.FdEventsReader;
|
||||
import com.android.server.connectivity.mdns.util.MdnsUtils;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.net.InetSocketAddress;
|
||||
@@ -39,7 +39,7 @@ public class MulticastPacketReader extends FdEventsReader<MulticastPacketReader.
|
||||
@NonNull
|
||||
private final Handler mHandler;
|
||||
@NonNull
|
||||
private final Set<PacketHandler> mPacketHandlers = new ArraySet<>();
|
||||
private final Set<PacketHandler> mPacketHandlers = MdnsUtils.newSet();
|
||||
|
||||
interface PacketHandler {
|
||||
void handlePacket(byte[] recvbuf, int length, InetSocketAddress src);
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.android.server.connectivity.mdns.util;
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.net.Network;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.SystemClock;
|
||||
import android.util.ArraySet;
|
||||
@@ -34,6 +35,8 @@ import java.nio.CharBuffer;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.CharsetEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Mdns utility functions.
|
||||
@@ -57,6 +60,17 @@ public class MdnsUtils {
|
||||
return new String(outChars);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a ArraySet or HashSet based on the sdk version.
|
||||
*/
|
||||
public static <Type> Set<Type> newSet() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
return new ArraySet<>();
|
||||
} else {
|
||||
return new HashSet<>();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the array of labels to DNS case-insensitive lowercase.
|
||||
*/
|
||||
@@ -142,7 +156,7 @@ public class MdnsUtils {
|
||||
|
||||
/*** Check whether the target network matches any of the current networks */
|
||||
public static boolean isAnyNetworkMatched(@Nullable Network targetNetwork,
|
||||
ArraySet<Network> currentNetworks) {
|
||||
Set<Network> currentNetworks) {
|
||||
if (targetNetwork == null) {
|
||||
return !currentNetworks.isEmpty();
|
||||
}
|
||||
|
||||
@@ -17,10 +17,8 @@
|
||||
package com.android.server.connectivity.mdns;
|
||||
|
||||
import static android.net.InetAddresses.parseNumericAddress;
|
||||
|
||||
import static com.android.server.connectivity.mdns.util.MdnsUtils.Clock;
|
||||
import static com.android.testutils.DevSdkIgnoreRuleKt.SC_V2;
|
||||
|
||||
import static org.junit.Assert.assertArrayEquals;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
@@ -343,9 +341,9 @@ public class MdnsResponseDecoderTests {
|
||||
assertNotNull(parsedPacket);
|
||||
|
||||
final Network network = mock(Network.class);
|
||||
responses = decoder.augmentResponses(parsedPacket,
|
||||
responses = new ArraySet<>(decoder.augmentResponses(parsedPacket,
|
||||
/* existingResponses= */ Collections.emptyList(),
|
||||
/* interfaceIndex= */ 10, network /* expireOnExit= */).first;
|
||||
/* interfaceIndex= */ 10, network /* expireOnExit= */).first);
|
||||
|
||||
assertEquals(responses.size(), 1);
|
||||
assertEquals(responses.valueAt(0).getInterfaceIndex(), 10);
|
||||
@@ -641,8 +639,8 @@ public class MdnsResponseDecoderTests {
|
||||
final MdnsPacket parsedPacket = MdnsResponseDecoder.parseResponse(data, data.length);
|
||||
assertNotNull(parsedPacket);
|
||||
|
||||
return decoder.augmentResponses(parsedPacket,
|
||||
return new ArraySet<>(decoder.augmentResponses(parsedPacket,
|
||||
existingResponses,
|
||||
MdnsSocket.INTERFACE_INDEX_UNSPECIFIED, mock(Network.class)).first;
|
||||
MdnsSocket.INTERFACE_INDEX_UNSPECIFIED, mock(Network.class)).first);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user