blob: 1f0907f91cc22c14be80113c41b6fd8f733013c2 [file] [log] [blame]
Remi NGUYEN VAN4a97aba2022-01-26 13:10:51 +09001/*
2 * Copyright (C) 2022 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Remi NGUYEN VAN38a6de02022-05-02 14:07:43 +090017package com.android.networkstack.apishim.api33;
Remi NGUYEN VAN4a97aba2022-01-26 13:10:51 +090018
19import android.net.Network;
Remi NGUYEN VAN59f45fd2022-02-02 21:50:26 +090020import android.net.NetworkRequest;
Remi NGUYEN VAN4a97aba2022-01-26 13:10:51 +090021import android.net.nsd.NsdManager;
22import android.net.nsd.NsdServiceInfo;
23import android.os.Build;
24
25import androidx.annotation.NonNull;
26import androidx.annotation.Nullable;
27import androidx.annotation.RequiresApi;
28
29import com.android.modules.utils.build.SdkLevel;
30import com.android.networkstack.apishim.common.NsdShim;
31import com.android.networkstack.apishim.common.UnsupportedApiLevelException;
32
Remi NGUYEN VAN8fa06502022-03-15 16:12:09 +000033import java.util.concurrent.Executor;
34
Remi NGUYEN VAN4a97aba2022-01-26 13:10:51 +090035/**
36 * Implementation of {@link com.android.networkstack.apishim.common.NsdShim}.
37 */
38@RequiresApi(Build.VERSION_CODES.TIRAMISU)
39public class NsdShimImpl extends com.android.networkstack.apishim.api31.NsdShimImpl {
40
41 /**
42 * Get a new instance of {@link NsdShim}.
43 */
44 @RequiresApi(Build.VERSION_CODES.Q)
45 public static NsdShim newInstance() {
46 if (SdkLevel.isAtLeastT()) {
47 return new NsdShimImpl();
48 } else {
49 return new com.android.networkstack.apishim.api31.NsdShimImpl();
50 }
51 }
52
53 @Nullable
54 @Override
55 public Network getNetwork(@NonNull NsdServiceInfo serviceInfo) {
56 return serviceInfo.getNetwork();
57 }
58
59 @Override
60 public void setNetwork(@NonNull NsdServiceInfo serviceInfo, @Nullable Network network) {
61 serviceInfo.setNetwork(network);
62 }
63
64 @Override
Remi NGUYEN VAN8fa06502022-03-15 16:12:09 +000065 public void registerService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
66 int protocolType, @NonNull Executor executor,
67 @NonNull NsdManager.RegistrationListener listener) {
68 nsdManager.registerService(serviceInfo, protocolType, executor, listener);
69 }
70
71 @Override
Remi NGUYEN VAN4a97aba2022-01-26 13:10:51 +090072 public void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
73 int protocolType, @Nullable Network network,
Remi NGUYEN VAN8fa06502022-03-15 16:12:09 +000074 @NonNull Executor executor, @NonNull NsdManager.DiscoveryListener listener)
75 throws UnsupportedApiLevelException {
76 nsdManager.discoverServices(serviceType, protocolType, network, executor, listener);
Remi NGUYEN VAN4a97aba2022-01-26 13:10:51 +090077 }
Remi NGUYEN VAN59f45fd2022-02-02 21:50:26 +090078
79 @Override
80 public void discoverServices(@NonNull NsdManager nsdManager, @NonNull String serviceType,
81 int protocolType, @Nullable NetworkRequest request,
Remi NGUYEN VAN8fa06502022-03-15 16:12:09 +000082 @NonNull Executor executor, @NonNull NsdManager.DiscoveryListener listener)
83 throws UnsupportedApiLevelException {
84 nsdManager.discoverServices(serviceType, protocolType, request, executor, listener);
85 }
86
87 @Override
88 public void resolveService(@NonNull NsdManager nsdManager, @NonNull NsdServiceInfo serviceInfo,
89 @NonNull Executor executor, @NonNull NsdManager.ResolveListener resolveListener)
90 throws UnsupportedApiLevelException {
91 nsdManager.resolveService(serviceInfo, executor, resolveListener);
Remi NGUYEN VAN59f45fd2022-02-02 21:50:26 +090092 }
Remi NGUYEN VAN4a97aba2022-01-26 13:10:51 +090093}