package android.net.wifi.nan;
+import android.annotation.IntDef;
+import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
/**
* @hide PROPOSED_NAN_API
*/
public class PublishConfig implements Parcelable {
+ @IntDef({
+ PUBLISH_TYPE_UNSOLICITED, PUBLISH_TYPE_SOLICITED })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface PublishTypes {
+ }
+
/**
* Defines an unsolicited publish session - i.e. a publish session where
* publish packets are transmitted over-the-air. Configuration is done using
* @return The builder to facilitate chaining
* {@code builder.setXXX(..).setXXX(..)}.
*/
- public Builder setServiceName(String serviceName) {
+ public Builder setServiceName(@NonNull String serviceName) {
mServiceName = serviceName;
return this;
}
* @return The builder to facilitate chaining
* {@code builder.setXXX(..).setXXX(..)}.
*/
- public Builder setServiceSpecificInfo(String serviceSpecificInfoStr) {
+ public Builder setServiceSpecificInfo(@NonNull String serviceSpecificInfoStr) {
mServiceSpecificInfoLength = serviceSpecificInfoStr.length();
mServiceSpecificInfo = serviceSpecificInfoStr.getBytes();
return this;
* @return The builder to facilitate chaining
* {@code builder.setXXX(..).setXXX(..)}.
*/
- public Builder setPublishType(int publishType) {
+ public Builder setPublishType(@PublishTypes int publishType) {
if (publishType < PUBLISH_TYPE_UNSOLICITED || publishType > PUBLISH_TYPE_SOLICITED) {
throw new IllegalArgumentException("Invalid publishType - " + publishType);
}
package android.net.wifi.nan;
+import android.annotation.IntDef;
+import android.annotation.NonNull;
import android.os.Parcel;
import android.os.Parcelable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
/**
* @hide PROPOSED_NAN_API
*/
public class SubscribeConfig implements Parcelable {
+ @IntDef({
+ SUBSCRIBE_TYPE_PASSIVE, SUBSCRIBE_TYPE_ACTIVE })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface SubscribeTypes {
+ }
/**
* Defines a passive subscribe session - i.e. a subscribe session where
*/
public static final int SUBSCRIBE_TYPE_ACTIVE = 1;
+ @IntDef({
+ MATCH_STYLE_FIRST_ONLY, MATCH_STYLE_ALL })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface MatchStyles {
+ }
+
/**
* Specifies that only the first match of a set of identical matches (same
* publish) will be reported to the subscriber.
* @return The builder to facilitate chaining
* {@code builder.setXXX(..).setXXX(..)}.
*/
- public Builder setServiceName(String serviceName) {
+ public Builder setServiceName(@NonNull String serviceName) {
mServiceName = serviceName;
return this;
}
* @return The builder to facilitate chaining
* {@code builder.setXXX(..).setXXX(..)}.
*/
- public Builder setServiceSpecificInfo(String serviceSpecificInfoStr) {
+ public Builder setServiceSpecificInfo(@NonNull String serviceSpecificInfoStr) {
mServiceSpecificInfoLength = serviceSpecificInfoStr.length();
mServiceSpecificInfo = serviceSpecificInfoStr.getBytes();
return this;
* @return The builder to facilitate chaining
* {@code builder.setXXX(..).setXXX(..)}.
*/
- public Builder setSubscribeType(int subscribeType) {
+ public Builder setSubscribeType(@SubscribeTypes int subscribeType) {
if (subscribeType < SUBSCRIBE_TYPE_PASSIVE || subscribeType > SUBSCRIBE_TYPE_ACTIVE) {
throw new IllegalArgumentException("Invalid subscribeType - " + subscribeType);
}
* @return The builder to facilitate chaining
* {@code builder.setXXX(..).setXXX(..)}.
*/
- public Builder setMatchStyle(int matchStyle) {
+ public Builder setMatchStyle(@MatchStyles int matchStyle) {
if (matchStyle != MATCH_STYLE_FIRST_ONLY && matchStyle != MATCH_STYLE_ALL) {
throw new IllegalArgumentException(
"Invalid matchType - must be MATCH_FIRST_ONLY or MATCH_ALL");
package android.net.wifi.nan;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.os.Binder;
* connection.
* @param callback A callback extended from {@link WifiNanEventCallback}.
*/
- public void connect(Looper looper, WifiNanEventCallback callback) {
+ public void connect(@NonNull Looper looper, @NonNull WifiNanEventCallback callback) {
connect(looper, callback, null);
}
* @param callback A callback extended from {@link WifiNanEventCallback}.
* @param configRequest The requested NAN configuration.
*/
- public void connect(Looper looper, WifiNanEventCallback callback, ConfigRequest configRequest) {
+ public void connect(@NonNull Looper looper, @NonNull WifiNanEventCallback callback,
+ @Nullable ConfigRequest configRequest) {
if (VDBG) {
Log.v(TAG, "connect(): looper=" + looper + ", callback=" + callback + ", configRequest="
+ configRequest);
* @param callback The {@link WifiNanSessionCallback} derived objects to be
* used for the event callbacks specified by {@code events}.
*/
- public void publish(PublishConfig publishConfig, WifiNanSessionCallback callback) {
+ public void publish(@NonNull PublishConfig publishConfig,
+ @NonNull WifiNanSessionCallback callback) {
if (VDBG) Log.v(TAG, "publish(): config=" + publishConfig);
int clientId;
* @param callback The {@link WifiNanSessionCallback} derived objects to be
* used for the event callbacks specified by {@code events}.
*/
- public void subscribe(SubscribeConfig subscribeConfig, WifiNanSessionCallback callback) {
+ public void subscribe(@NonNull SubscribeConfig subscribeConfig,
+ @NonNull WifiNanSessionCallback callback) {
if (VDBG) {
Log.v(TAG, "subscribe(): config=" + subscribeConfig);
}
package android.net.wifi.nan;
+import android.annotation.NonNull;
import android.util.Log;
/**
* @param publishConfig The configuration ({@link PublishConfig}) of the
* publish session.
*/
- public void updatePublish(PublishConfig publishConfig) {
+ public void updatePublish(@NonNull PublishConfig publishConfig) {
if (mTerminated) {
Log.w(TAG, "updatePublish: called on terminated session");
return;
package android.net.wifi.nan;
import android.annotation.IntDef;
+import android.annotation.NonNull;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
* @param session The {@link WifiNanPublishSession} used to control the
* discovery session.
*/
- public void onPublishStarted(WifiNanPublishSession session) {
+ public void onPublishStarted(@NonNull WifiNanPublishSession session) {
/* empty */
}
* @param session The {@link WifiNanSubscribeSession} used to control the
* discovery session.
*/
- public void onSubscribeStarted(WifiNanSubscribeSession session) {
+ public void onSubscribeStarted(@NonNull WifiNanSubscribeSession session) {
/* empty */
}
package android.net.wifi.nan;
+import android.annotation.NonNull;
import android.util.Log;
/**
* @param subscribeConfig The configuration ({@link SubscribeConfig}) of the
* subscribe session.
*/
- public void updateSubscribe(SubscribeConfig subscribeConfig) {
+ public void updateSubscribe(@NonNull SubscribeConfig subscribeConfig) {
if (mTerminated) {
Log.w(TAG, "updateSubscribe: called on terminated session");
return;