package com.mopub.nativeads;
import android.location.Location;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import java.util.EnumSet;
public class RequestParameters {
public enum NativeAdAsset {
TITLE("title"),
TEXT("text"),
ICON_IMAGE("iconimage"),
MAIN_IMAGE("mainimage"),
CALL_TO_ACTION_TEXT("ctatext"),
STAR_RATING("starrating");
private final String mAssetName;
private NativeAdAsset(@NonNull String assetName) {
mAssetName = assetName;
}
@NonNull
@Override
public String toString() {
return mAssetName;
}
}
@Nullable private final String mKeywords;
@Nullable private final Location mLocation;
@Nullable private final EnumSet<NativeAdAsset> mDesiredAssets;
public final static class Builder {
private String keywords;
private Location location;
private EnumSet<NativeAdAsset> desiredAssets;
@NonNull
public final Builder keywords(String keywords) {
this.keywords = keywords;
return this;
}
@NonNull
public final Builder location(Location location) {
this.location = location;
return this;
}
// Specify set of assets used by this ad request. If not set, this defaults to all assets
@NonNull
public final Builder desiredAssets(final EnumSet<NativeAdAsset> desiredAssets) {
this.desiredAssets = EnumSet.copyOf(desiredAssets);
return this;
}
@NonNull
public final RequestParameters build() {
return new RequestParameters(this);
}
}
private RequestParameters(@NonNull Builder builder) {
mKeywords = builder.keywords;
mLocation = builder.location;
mDesiredAssets = builder.desiredAssets;
}
@Nullable
public final String getKeywords() {
return mKeywords;
}
@Nullable
public final Location getLocation() {
return mLocation;
}
public final String getDesiredAssets() {
String result = "";
if (mDesiredAssets != null) {
result = TextUtils.join(",", mDesiredAssets.toArray());
}
return result;
}
}