Perfume Of Love v2.14.9版本的 MD5 值为:16011aefc5a55805771706ce3b259b4e
以下内容为反编译后的 AppLovinNativeAdImpl.java 源代码,内容仅作参考
package com.applovin.impl.sdk.nativeAd;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import com.applovin.impl.sdk.AppLovinAdBase;
import com.applovin.impl.sdk.array.ArrayService;
import com.applovin.impl.sdk.n;
import com.applovin.impl.sdk.network.l;
import com.applovin.impl.sdk.utils.JsonUtils;
import com.applovin.impl.sdk.utils.StringUtils;
import com.applovin.impl.sdk.utils.Utils;
import com.applovin.impl.sdk.utils.h;
import com.applovin.impl.sdk.utils.k;
import com.applovin.impl.sdk.v;
import com.applovin.sdk.AppLovinSdkUtils;
import com.iab.omid.library.applovin.adsession.VerificationScriptResource;
import com.mbridge.msdk.playercommon.exoplayer2.C;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import org.json.JSONArray;
import org.json.JSONObject;
public class AppLovinNativeAdImpl extends AppLovinAdBase implements AppLovinNativeAd {
private static final String AD_RESPONSE_TYPE_APPLOVIN = "applovin";
private static final String AD_RESPONSE_TYPE_ORTB = "ortb";
private static final String AD_RESPONSE_TYPE_UNDEFINED = "undefined";
private static final String DEFAULT_APPLOVIN_PRIVACY_URL = "https://www.applovin.com/privacy/";
private static final float MINIMUM_STARS_TO_RENDER = 3.0f;
private final com.applovin.impl.sdk.a.e adEventTracker;
private final String advertiser;
private final String body;
private final String callToAction;
private final Uri clickDestinationBackupUri;
private final Uri clickDestinationUri;
private final a clickHandler;
private final List<String> clickTrackingUrls;
private AppLovinNativeAdEventListener eventListener;
private Uri iconUri;
private final List<l> impressionRequests;
private final AtomicBoolean impressionTracked;
private final List<String> jsTrackers;
private Uri mainImageUri;
private AppLovinMediaView mediaView;
private ViewGroup nativeAdView;
private final b onAttachStateChangeHandler;
private AppLovinOptionsView optionsView;
private Uri privacyDestinationUri;
private Uri privacyIconUri;
private final List<View> registeredViews;
private final Double starRating;
private final String tag;
private final String title;
private final com.applovin.impl.b.a vastAd;
private final List<l> viewableMRC100Requests;
private final List<l> viewableMRC50Requests;
private final List<l> viewableVideo50Requests;
public static class Builder {
private final JSONObject adObject;
private String advertiser;
private String body;
private String callToAction;
private Uri clickDestinationBackupUri;
private Uri clickDestinationUri;
private List<String> clickTrackingUrls;
private final JSONObject fullResponse;
private Uri iconUri;
private List<l> impressionRequests;
private List<String> jsTrackers;
private Uri mainImageUri;
private Uri privacyDestinationUri;
private Uri privacyIconUri;
private final n sdk;
private Double starRating;
private String title;
private com.applovin.impl.b.a vastAd;
private List<l> viewableMRC100Requests;
private List<l> viewableMRC50Requests;
private List<l> viewableVideo50Requests;
public Builder(JSONObject jSONObject, JSONObject jSONObject2, n nVar) {
this.adObject = jSONObject;
this.fullResponse = jSONObject2;
this.sdk = nVar;
}
public AppLovinNativeAdImpl build() {
return new AppLovinNativeAdImpl(this);
}
public Builder setAdvertiser(String str) {
this.advertiser = str;
return this;
}
public Builder setBody(String str) {
this.body = str;
return this;
}
public Builder setCallToAction(String str) {
this.callToAction = str;
return this;
}
public Builder setClickDestinationBackupUri(Uri uri) {
this.clickDestinationBackupUri = uri;
return this;
}
public Builder setClickDestinationUri(Uri uri) {
this.clickDestinationUri = uri;
return this;
}
public Builder setClickTrackingUrls(List<String> list) {
this.clickTrackingUrls = list;
return this;
}
public Builder setIconUri(Uri uri) {
this.iconUri = uri;
return this;
}
public Builder setImpressionRequests(List<l> list) {
this.impressionRequests = list;
return this;
}
public Builder setJsTrackers(List<String> list) {
this.jsTrackers = list;
return this;
}
public Builder setMainImageUri(Uri uri) {
this.mainImageUri = uri;
return this;
}
public Builder setPrivacyDestinationUri(Uri uri) {
this.privacyDestinationUri = uri;
return this;
}
public Builder setPrivacyIconUri(Uri uri) {
this.privacyIconUri = uri;
return this;
}
public Builder setStarRating(Double d) {
this.starRating = d;
return this;
}
public Builder setTitle(String str) {
this.title = str;
return this;
}
public Builder setVastAd(com.applovin.impl.b.a aVar) {
this.vastAd = aVar;
return this;
}
public Builder setViewableMRC100Requests(List<l> list) {
this.viewableMRC100Requests = list;
return this;
}
public Builder setViewableMRC50Requests(List<l> list) {
this.viewableMRC50Requests = list;
return this;
}
public Builder setViewableVideo50Requests(List<l> list) {
this.viewableVideo50Requests = list;
return this;
}
}
public static class a implements View.OnClickListener {
private final AppLovinNativeAdImpl a;
public a(AppLovinNativeAdImpl appLovinNativeAdImpl) {
this.a = appLovinNativeAdImpl;
}
public void a(AppLovinNativeAdImpl appLovinNativeAdImpl, Context context) {
v J;
String str;
StringBuilder sb;
Uri uri;
if (Utils.openUri(context, appLovinNativeAdImpl.clickDestinationUri, appLovinNativeAdImpl.sdk)) {
appLovinNativeAdImpl.sdk.J();
if (!v.a()) {
return;
}
J = appLovinNativeAdImpl.sdk.J();
str = appLovinNativeAdImpl.tag;
sb = new StringBuilder();
sb.append("Opening URL: ");
uri = appLovinNativeAdImpl.clickDestinationUri;
} else if (!Utils.openUri(context, appLovinNativeAdImpl.clickDestinationBackupUri, appLovinNativeAdImpl.sdk)) {
return;
} else {
appLovinNativeAdImpl.sdk.J();
if (!v.a()) {
return;
}
J = appLovinNativeAdImpl.sdk.J();
str = appLovinNativeAdImpl.tag;
sb = new StringBuilder();
sb.append("Opening backup URL: ");
uri = appLovinNativeAdImpl.clickDestinationBackupUri;
}
sb.append(uri);
J.b(str, sb.toString());
}
public AppLovinNativeAdImpl a() {
return this.a;
}
protected boolean a(Object obj) {
return obj instanceof a;
}
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (obj instanceof a) {
a aVar = (a) obj;
if (aVar.a((Object) this)) {
AppLovinNativeAdImpl a = a();
AppLovinNativeAdImpl a2 = aVar.a();
return a != null ? a.equals(a2) : a2 == null;
}
return false;
}
return false;
}
public int hashCode() {
AppLovinNativeAdImpl a = a();
return 59 + (a == null ? 43 : a.hashCode());
}
@Override
public void onClick(final View view) {
this.a.sdk.J();
if (v.a()) {
this.a.sdk.J().b(this.a.tag, "Handle view clicked");
}
this.a.sdk.D().maybeSubmitPersistentPostbacks(this.a.getDirectClickTrackingPostbacks());
for (String str : this.a.clickTrackingUrls) {
this.a.sdk.ae().dispatchPostbackAsync(str, null);
}
k.a(this.a.eventListener, this.a);
if (this.a.isDirectDownloadEnabled()) {
this.a.sdk.ad().startDirectInstallOrDownloadProcess(this.a, new ArrayService.DirectDownloadListener() {
@Override
public void onAppDetailsDismissed() {
}
@Override
public void onAppDetailsDisplayed() {
}
@Override
public void onFailure() {
a aVar = a.this;
aVar.a(aVar.a, view.getContext());
}
});
} else {
a(this.a, view.getContext());
}
}
public String toString() {
return "AppLovinNativeAdImpl.ClickHandler(ad=" + a() + ")";
}
}
public static class b implements View.OnAttachStateChangeListener {
private final AppLovinNativeAdImpl a;
public b(AppLovinNativeAdImpl appLovinNativeAdImpl) {
this.a = appLovinNativeAdImpl;
}
public AppLovinNativeAdImpl a() {
return this.a;
}
protected boolean a(Object obj) {
return obj instanceof b;
}
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (obj instanceof b) {
b bVar = (b) obj;
if (bVar.a(this)) {
AppLovinNativeAdImpl a = a();
AppLovinNativeAdImpl a2 = bVar.a();
return a != null ? a.equals(a2) : a2 == null;
}
return false;
}
return false;
}
public int hashCode() {
AppLovinNativeAdImpl a = a();
return 59 + (a == null ? 43 : a.hashCode());
}
@Override
public void onViewAttachedToWindow(View view) {
this.a.maybeHandleOnAttachedToWindow(view);
}
@Override
public void onViewDetachedFromWindow(View view) {
}
public String toString() {
return "AppLovinNativeAdImpl.OnAttachStateChangeHandler(ad=" + a() + ")";
}
}
private AppLovinNativeAdImpl(Builder builder) {
super(builder.adObject, builder.fullResponse, builder.sdk);
Uri parse;
this.impressionTracked = new AtomicBoolean();
this.registeredViews = new ArrayList();
this.clickHandler = new a(this);
this.onAttachStateChangeHandler = new b(this);
this.adEventTracker = new com.applovin.impl.sdk.a.e(this);
this.title = builder.title;
this.advertiser = builder.advertiser;
this.body = builder.body;
this.callToAction = builder.callToAction;
this.iconUri = builder.iconUri;
this.mainImageUri = builder.mainImageUri;
this.privacyIconUri = builder.privacyIconUri;
this.vastAd = builder.vastAd;
this.clickDestinationUri = builder.clickDestinationUri;
this.clickDestinationBackupUri = builder.clickDestinationBackupUri;
this.clickTrackingUrls = builder.clickTrackingUrls;
this.jsTrackers = builder.jsTrackers;
this.impressionRequests = builder.impressionRequests;
Double d = builder.starRating;
this.starRating = (d == null || d.doubleValue() < 3.0d) ? null : null;
if (builder.privacyDestinationUri == null) {
parse = (!isDspAd() || getSdk().ap().a()) ? Uri.parse(DEFAULT_APPLOVIN_PRIVACY_URL) : parse;
this.viewableMRC50Requests = builder.viewableMRC50Requests;
this.viewableMRC100Requests = builder.viewableMRC100Requests;
this.viewableVideo50Requests = builder.viewableVideo50Requests;
this.tag = "AppLovinNativeAd:" + getAdIdNumber();
}
parse = builder.privacyDestinationUri;
this.privacyDestinationUri = parse;
this.viewableMRC50Requests = builder.viewableMRC50Requests;
this.viewableMRC100Requests = builder.viewableMRC100Requests;
this.viewableVideo50Requests = builder.viewableVideo50Requests;
this.tag = "AppLovinNativeAd:" + getAdIdNumber();
}
public List<com.applovin.impl.sdk.d.a> getDirectClickTrackingPostbacks() {
List<com.applovin.impl.sdk.d.a> postbacks;
synchronized (this.adObjectLock) {
postbacks = Utils.getPostbacks("click_tracking_urls", this.adObject, getClCode(), getStringFromAdObject("click_tracking_url", null), this.sdk);
}
return postbacks;
}
private boolean isDspAd() {
return AD_RESPONSE_TYPE_ORTB.equalsIgnoreCase(getType());
}
public void maybeHandleOnAttachedToWindow(View view) {
if (this.impressionTracked.compareAndSet(false, true)) {
List<String> list = this.jsTrackers;
if (list != null && list.size() > 0) {
if (((Boolean) this.sdk.a(com.applovin.impl.sdk.c.b.fA)).booleanValue()) {
for (String str : this.jsTrackers) {
this.sdk.W().a(str);
}
} else {
String str2 = this.jsTrackers.get(0);
if (StringUtils.isValidString(str2)) {
final com.applovin.impl.adview.d dVar = new com.applovin.impl.adview.d(null, this.sdk, view.getContext());
dVar.loadData(str2, "text/html", C.UTF8_NAME);
AppLovinSdkUtils.runOnUiThreadDelayed(new Runnable() {
@Override
public void run() {
dVar.stopLoading();
}
}, TimeUnit.SECONDS.toMillis(5L));
}
}
}
for (l lVar : this.impressionRequests) {
this.sdk.ae().dispatchPostbackRequest(lVar, null);
}
this.adEventTracker.a(view);
this.adEventTracker.d();
}
}
@Override
public void destroy() {
unregisterViewsForInteraction();
this.eventListener = null;
this.adEventTracker.e();
}
public com.applovin.impl.sdk.a.e getAdEventTracker() {
return this.adEventTracker;
}
@Override
public long getAdIdNumber() {
return getLongFromAdObject("ad_id", -1L);
}
@Override
public String getAdvertiser() {
return this.advertiser;
}
@Override
public String getBody() {
return this.body;
}
public String getCachePrefix() {
return getStringFromAdObject("cache_prefix", null);
}
@Override
public String getCallToAction() {
return this.callToAction;
}
public a getClickHandler() {
return this.clickHandler;
}
@Override
public Bundle getDirectDownloadParameters() {
JSONObject jsonObjectFromAdObject = getJsonObjectFromAdObject("ah_parameters", null);
if (jsonObjectFromAdObject != null) {
return JsonUtils.toBundle(jsonObjectFromAdObject);
}
return null;
}
@Override
public String getDirectDownloadToken() {
return getStringFromAdObject("ah_dd_token", null);
}
@Override
public Uri getIconUri() {
return this.iconUri;
}
public Uri getMainImageUri() {
return this.mainImageUri;
}
@Override
public AppLovinMediaView getMediaView() {
return this.mediaView;
}
@Override
public String getOpenMeasurementContentUrl() {
return getStringFromAdObject("omid_content_url", null);
}
@Override
public String getOpenMeasurementCustomReferenceData() {
return getStringFromAdObject("omid_custom_ref_data", "");
}
@Override
public List<VerificationScriptResource> getOpenMeasurementVerificationScriptResources() {
ArrayList arrayList = new ArrayList();
synchronized (this.adObjectLock) {
JSONArray jSONArray = JsonUtils.getJSONArray(this.adObject, "omid_verification_script_resources", null);
if (jSONArray != null) {
for (int i = 0; i < jSONArray.length(); i++) {
JSONObject jSONObject = JsonUtils.getJSONObject(jSONArray, i, (JSONObject) null);
URL url = new URL(JsonUtils.getString(jSONObject, "url", null));
String string = JsonUtils.getString(jSONObject, "vendor_key", null);
String string2 = JsonUtils.getString(jSONObject, "parameters", null);
arrayList.add((StringUtils.isValidString(string) && StringUtils.isValidString(string2)) ? VerificationScriptResource.createVerificationScriptResourceWithParameters(string, url, string2) : VerificationScriptResource.createVerificationScriptResourceWithoutParameters(url));
}
}
}
return arrayList;
}
@Override
public AppLovinOptionsView getOptionsView() {
return this.optionsView;
}
public Uri getPrivacyDestinationUri() {
return this.privacyDestinationUri;
}
public Uri getPrivacyIconUri() {
return this.privacyIconUri;
}
@Override
public Double getStarRating() {
return this.starRating;
}
@Override
public String getTitle() {
return this.title;
}
public String getType() {
return getStringFromAdObject("type", "undefined");
}
public com.applovin.impl.b.a getVastAd() {
return this.vastAd;
}
@Override
public boolean isDirectDownloadEnabled() {
return StringUtils.isValidString(getDirectDownloadToken());
}
@Override
public boolean isOpenMeasurementEnabled() {
return getBooleanFromAdObject("omsdk_enabled", false);
}
@Override
public void registerViewsForInteraction(List<View> list, ViewGroup viewGroup) {
v J;
String str;
StringBuilder sb;
String str2;
this.nativeAdView = viewGroup;
if (!(h.c() && this.nativeAdView.isAttachedToWindow()) && (h.c() || this.nativeAdView.getParent() == null)) {
this.nativeAdView.addOnAttachStateChangeListener(this.onAttachStateChangeHandler);
} else {
maybeHandleOnAttachedToWindow(this.nativeAdView);
}
this.sdk.J();
if (v.a()) {
v J2 = this.sdk.J();
String str3 = this.tag;
J2.b(str3, "Registered ad view for impressions: " + this.nativeAdView);
}
if (this.clickDestinationUri == null && this.clickDestinationBackupUri == null) {
this.sdk.J();
if (v.a()) {
this.sdk.J().b(this.tag, "Skipping click registration - no click URLs provided");
return;
}
return;
}
for (View view : list) {
if (view.hasOnClickListeners()) {
this.sdk.J();
if (v.a()) {
v J3 = this.sdk.J();
String str4 = this.tag;
J3.e(str4, "View has an onClickListener already - " + view);
}
}
if (!view.isClickable()) {
this.sdk.J();
if (v.a()) {
v J4 = this.sdk.J();
String str5 = this.tag;
J4.e(str5, "View is not clickable - " + view);
}
}
if (!view.isEnabled()) {
this.sdk.J();
if (v.a()) {
v J5 = this.sdk.J();
String str6 = this.tag;
J5.e(str6, "View is not enabled - " + view);
}
}
if (view instanceof Button) {
this.sdk.J();
if (v.a()) {
J = this.sdk.J();
str = this.tag;
sb = new StringBuilder();
str2 = "Registering click for button: ";
sb.append(str2);
sb.append(view);
J.b(str, sb.toString());
view.setOnClickListener(this.clickHandler);
this.registeredViews.add(view);
} else {
view.setOnClickListener(this.clickHandler);
this.registeredViews.add(view);
}
} else {
this.sdk.J();
if (v.a()) {
J = this.sdk.J();
str = this.tag;
sb = new StringBuilder();
str2 = "Registering click for view: ";
sb.append(str2);
sb.append(view);
J.b(str, sb.toString());
view.setOnClickListener(this.clickHandler);
this.registeredViews.add(view);
} else {
view.setOnClickListener(this.clickHandler);
this.registeredViews.add(view);
}
}
}
this.sdk.J();
if (v.a()) {
v J6 = this.sdk.J();
String str7 = this.tag;
J6.b(str7, "Registered views: " + this.registeredViews);
}
}
public void setEventListener(AppLovinNativeAdEventListener appLovinNativeAdEventListener) {
this.eventListener = appLovinNativeAdEventListener;
}
public void setIconUri(Uri uri) {
this.iconUri = uri;
}
public void setMainImageUri(Uri uri) {
this.mainImageUri = uri;
}
public void setPrivacyIconUri(Uri uri) {
this.privacyIconUri = uri;
}
public void setUpNativeAdViewComponents() {
n nVar = this.sdk;
n nVar2 = this.sdk;
this.mediaView = new AppLovinMediaView(this, nVar, n.x());
if (this.privacyDestinationUri != null) {
n nVar3 = this.sdk;
n nVar4 = this.sdk;
this.optionsView = new AppLovinOptionsView(this, nVar3, n.x());
}
}
public boolean shouldInjectOpenMeasurementScriptDuringCaching() {
return false;
}
public String toString() {
return "AppLovinNativeAd{adIdNumber=" + getAdIdNumber() + " - " + getTitle() + "}";
}
@Override
public void unregisterViewsForInteraction() {
for (View view : this.registeredViews) {
view.setOnClickListener(null);
}
this.sdk.J();
if (v.a()) {
v J = this.sdk.J();
String str = this.tag;
J.b(str, "Unregistered views: " + this.registeredViews);
}
this.registeredViews.clear();
ViewGroup viewGroup = this.nativeAdView;
if (viewGroup != null) {
viewGroup.removeOnAttachStateChangeListener(this.onAttachStateChangeHandler);
this.nativeAdView = null;
}
AppLovinMediaView appLovinMediaView = this.mediaView;
if (appLovinMediaView != null) {
appLovinMediaView.destroy();
}
AppLovinOptionsView appLovinOptionsView = this.optionsView;
if (appLovinOptionsView != null) {
appLovinOptionsView.destroy();
}
}
}