正在查看: Handling Master v2 应用的 ActivityManager.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Handling Master v2 应用的 ActivityManager.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.vungle.ads.internal.util;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.VisibleForTesting;
import com.unity3d.splash.BuildConfig;
import com.vungle.ads.internal.protos.Sdk;
import com.vungle.ads.internal.ui.PresenterAdOpenCallback;
import java.lang.ref.WeakReference;
import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.concurrent.atomic.AtomicBoolean;
import kotlin.Metadata;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000P\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u000b\b\u0000\u0018\u0000 &2\u00020\u0001:\u0003&'(B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u000e\u0010\u0011\u001a\u00020\u00122\u0006\u0010\u0013\u001a\u00020\u0005J\u0015\u0010\u0014\u001a\u00020\u00122\u0006\u0010\u0015\u001a\u00020\u0016H\u0000¢\u0006\u0002\b\u0017J\u0010\u0010\u0018\u001a\u00020\u00122\u0006\u0010\u0015\u001a\u00020\u0016H\u0002J\b\u0010\u0019\u001a\u00020\tH\u0002J\u001a\u0010\u001a\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\u001c2\b\u0010\u001d\u001a\u0004\u0018\u00010\u001eH\u0016J\u0010\u0010\u001f\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\u001cH\u0016J\u0010\u0010 \u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\u001cH\u0016J\u0010\u0010!\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\u001cH\u0016J\u0018\u0010\"\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\u001c2\u0006\u0010#\u001a\u00020\u001eH\u0016J\u0010\u0010$\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\u001cH\u0016J\u0010\u0010%\u001a\u00020\u00122\u0006\u0010\u001b\u001a\u00020\u001cH\u0016R\u0014\u0010\u0003\u001a\b\u0012\u0004\u0012\u00020\u00050\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u0010\b\u001a\u00020\t8BX\u0082\u0004¢\u0006\u0006\u001a\u0004\b\b\u0010\nR\u000e\u0010\u000b\u001a\u00020\u0007X\u0082\u000e¢\u0006\u0002\n\u0000R\u0010\u0010\f\u001a\u0004\u0018\u00010\rX\u0082\u000e¢\u0006\u0002\n\u0000R\u0014\u0010\u000e\u001a\b\u0012\u0004\u0012\u00020\r0\u0004X\u0082\u0004¢\u0006\u0002\n\u0000R\u0010\u0010\u000f\u001a\u0004\u0018\u00010\u0010X\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006)"}, d2 = {"Lcom/vungle/ads/internal/util/ActivityManager;", "Landroid/app/Application$ActivityLifecycleCallbacks;", "()V", "callbacks", "Ljava/util/concurrent/CopyOnWriteArraySet;", "Lcom/vungle/ads/internal/util/ActivityManager$LifeCycleCallback;", "inBackground", "Ljava/util/concurrent/atomic/AtomicBoolean;", "isAppForeground", BuildConfig.FLAVOR, "()Z", "isInitialized", "lastStoppedActivityName", BuildConfig.FLAVOR, "startedActivities", "targetActivityInfo", "Lcom/vungle/ads/internal/util/ActivityManager$TargetActivityInfo;", "addListener", BuildConfig.FLAVOR, "callback", "deInit", "context", "Landroid/content/Context;", "deInit$vungle_ads_release", "init", "isAppInForeground", "onActivityCreated", "activity", "Landroid/app/Activity;", "savedInstanceState", "Landroid/os/Bundle;", "onActivityDestroyed", "onActivityPaused", "onActivityResumed", "onActivitySaveInstanceState", "outState", "onActivityStarted", "onActivityStopped", "Companion", "LifeCycleCallback", "TargetActivityInfo", "vungle-ads_release"}, k = 1, mv = {1, 7, 1}, xi = Sdk.SDKMetric.SDKMetricType.AD_SHOW_TO_VALIDATION_DURATION_MS_VALUE)
public final class ActivityManager implements Application.ActivityLifecycleCallbacks {
private static final String TAG = "ActivityManager";
private String lastStoppedActivityName;
private TargetActivityInfo targetActivityInfo;
public static final Companion INSTANCE = new Companion(null);
private static final ActivityManager instance = new ActivityManager();
private AtomicBoolean isInitialized = new AtomicBoolean(false);
private final CopyOnWriteArraySet<String> startedActivities = new CopyOnWriteArraySet<>();
private final CopyOnWriteArraySet<LifeCycleCallback> callbacks = new CopyOnWriteArraySet<>();
private final AtomicBoolean inBackground = new AtomicBoolean(false);
@Metadata(d1 = {"\u0000H\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u000e\u0010\n\u001a\u00020\u000b2\u0006\u0010\f\u001a\u00020\rJ\u000e\u0010\u000e\u001a\u00020\u000b2\u0006\u0010\u000f\u001a\u00020\u0010J\u000e\u0010\u0011\u001a\u00020\u000b2\u0006\u0010\u000f\u001a\u00020\u0010J\u0006\u0010\u0012\u001a\u00020\u0013J.\u0010\u0014\u001a\u00020\u00132\u0006\u0010\u000f\u001a\u00020\u00102\b\u0010\u0015\u001a\u0004\u0018\u00010\u00162\b\u0010\u0017\u001a\u0004\u0018\u00010\u00162\b\u0010\u0018\u001a\u0004\u0018\u00010\u0019H\u0002J,\u0010\u001a\u001a\u00020\u00132\u0006\u0010\u000f\u001a\u00020\u00102\b\u0010\u0015\u001a\u0004\u0018\u00010\u00162\b\u0010\u0017\u001a\u0004\u0018\u00010\u00162\b\u0010\u0018\u001a\u0004\u0018\u00010\u0019R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082T¢\u0006\u0002\n\u0000R\u001c\u0010\u0005\u001a\u00020\u00068\u0000X\u0081\u0004¢\u0006\u000e\n\u0000\u0012\u0004\b\u0007\u0010\u0002\u001a\u0004\b\b\u0010\t¨\u0006\u001b"}, d2 = {"Lcom/vungle/ads/internal/util/ActivityManager$Companion;", BuildConfig.FLAVOR, "()V", "TAG", BuildConfig.FLAVOR, "instance", "Lcom/vungle/ads/internal/util/ActivityManager;", "getInstance$vungle_ads_release$annotations", "getInstance$vungle_ads_release", "()Lcom/vungle/ads/internal/util/ActivityManager;", "addLifecycleListener", BuildConfig.FLAVOR, "listener", "Lcom/vungle/ads/internal/util/ActivityManager$LifeCycleCallback;", "deInit", "context", "Landroid/content/Context;", "init", "isForeground", BuildConfig.FLAVOR, "startActivityHandleException", "deepLinkOverrideIntent", "Landroid/content/Intent;", "defaultIntent", "adOpenCallback", "Lcom/vungle/ads/internal/ui/PresenterAdOpenCallback;", "startWhenForeground", "vungle-ads_release"}, k = 1, mv = {1, 7, 1}, xi = Sdk.SDKMetric.SDKMetricType.AD_SHOW_TO_VALIDATION_DURATION_MS_VALUE)
public static final class Companion {
private Companion() {
}
public Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
@VisibleForTesting
public static void getInstance$vungle_ads_release$annotations() {
}
private final boolean startActivityHandleException(Context context, Intent deepLinkOverrideIntent, Intent defaultIntent, PresenterAdOpenCallback adOpenCallback) {
if (deepLinkOverrideIntent == null && defaultIntent == null) {
return false;
}
try {
if (deepLinkOverrideIntent != null) {
context.startActivity(deepLinkOverrideIntent);
if (adOpenCallback != null) {
adOpenCallback.onDeeplinkClick(true);
}
} else {
context.startActivity(defaultIntent);
}
} catch (Exception e) {
Logger.INSTANCE.e(ActivityManager.TAG, "Cannot launch/find activity to handle the Implicit intent: " + e);
if (deepLinkOverrideIntent != null && adOpenCallback != null) {
try {
adOpenCallback.onDeeplinkClick(false);
} catch (Exception unused) {
return false;
}
}
if (deepLinkOverrideIntent != null && defaultIntent != null) {
context.startActivity(defaultIntent);
}
return false;
}
return true;
}
public final void addLifecycleListener(LifeCycleCallback listener) {
Intrinsics.checkNotNullParameter(listener, "listener");
getInstance$vungle_ads_release().addListener(listener);
}
public final void deInit(Context context) {
Intrinsics.checkNotNullParameter(context, "context");
getInstance$vungle_ads_release().deInit$vungle_ads_release(context);
}
public final ActivityManager getInstance$vungle_ads_release() {
return ActivityManager.instance;
}
public final void init(Context context) {
Intrinsics.checkNotNullParameter(context, "context");
getInstance$vungle_ads_release().init(context);
}
public final boolean isForeground() {
return getInstance$vungle_ads_release().isAppInForeground();
}
public final boolean startWhenForeground(Context context, Intent deepLinkOverrideIntent, Intent defaultIntent, PresenterAdOpenCallback adOpenCallback) {
Intrinsics.checkNotNullParameter(context, "context");
if (isForeground()) {
return startActivityHandleException(context, deepLinkOverrideIntent, defaultIntent, adOpenCallback);
}
getInstance$vungle_ads_release().targetActivityInfo = new TargetActivityInfo(new WeakReference(context), deepLinkOverrideIntent, defaultIntent, adOpenCallback);
return false;
}
}
@Metadata(d1 = {"\u0000\u0014\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0002\b\u0016\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\b\u0010\u0003\u001a\u00020\u0004H\u0016J\b\u0010\u0005\u001a\u00020\u0004H\u0016¨\u0006\u0006"}, d2 = {"Lcom/vungle/ads/internal/util/ActivityManager$LifeCycleCallback;", BuildConfig.FLAVOR, "()V", "onBackground", BuildConfig.FLAVOR, "onForeground", "vungle-ads_release"}, k = 1, mv = {1, 7, 1}, xi = Sdk.SDKMetric.SDKMetricType.AD_SHOW_TO_VALIDATION_DURATION_MS_VALUE)
public static class LifeCycleCallback {
public void onBackground() {
}
public void onForeground() {
}
}
@Metadata(d1 = {"\u00008\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u000e\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u000e\n\u0000\b\u0082\b\u0018\u00002\u00020\u0001B1\u0012\f\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003\u0012\b\u0010\u0005\u001a\u0004\u0018\u00010\u0006\u0012\b\u0010\u0007\u001a\u0004\u0018\u00010\u0006\u0012\b\u0010\b\u001a\u0004\u0018\u00010\t¢\u0006\u0002\u0010\nJ\u000f\u0010\u0012\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003HÆ\u0003J\u000b\u0010\u0013\u001a\u0004\u0018\u00010\u0006HÆ\u0003J\u000b\u0010\u0014\u001a\u0004\u0018\u00010\u0006HÆ\u0003J\u000b\u0010\u0015\u001a\u0004\u0018\u00010\tHÆ\u0003J=\u0010\u0016\u001a\u00020\u00002\u000e\b\u0002\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u00032\n\b\u0002\u0010\u0005\u001a\u0004\u0018\u00010\u00062\n\b\u0002\u0010\u0007\u001a\u0004\u0018\u00010\u00062\n\b\u0002\u0010\b\u001a\u0004\u0018\u00010\tHÆ\u0001J\u0013\u0010\u0017\u001a\u00020\u00182\b\u0010\u0019\u001a\u0004\u0018\u00010\u0001HÖ\u0003J\t\u0010\u001a\u001a\u00020\u001bHÖ\u0001J\t\u0010\u001c\u001a\u00020\u001dHÖ\u0001R\u0013\u0010\b\u001a\u0004\u0018\u00010\t¢\u0006\b\n\u0000\u001a\u0004\b\u000b\u0010\fR\u0017\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003¢\u0006\b\n\u0000\u001a\u0004\b\r\u0010\u000eR\u0013\u0010\u0005\u001a\u0004\u0018\u00010\u0006¢\u0006\b\n\u0000\u001a\u0004\b\u000f\u0010\u0010R\u0013\u0010\u0007\u001a\u0004\u0018\u00010\u0006¢\u0006\b\n\u0000\u001a\u0004\b\u0011\u0010\u0010¨\u0006\u001e"}, d2 = {"Lcom/vungle/ads/internal/util/ActivityManager$TargetActivityInfo;", BuildConfig.FLAVOR, "context", "Ljava/lang/ref/WeakReference;", "Landroid/content/Context;", "deepLinkOverrideIntent", "Landroid/content/Intent;", "defaultIntent", "adOpenCallback", "Lcom/vungle/ads/internal/ui/PresenterAdOpenCallback;", "(Ljava/lang/ref/WeakReference;Landroid/content/Intent;Landroid/content/Intent;Lcom/vungle/ads/internal/ui/PresenterAdOpenCallback;)V", "getAdOpenCallback", "()Lcom/vungle/ads/internal/ui/PresenterAdOpenCallback;", "getContext", "()Ljava/lang/ref/WeakReference;", "getDeepLinkOverrideIntent", "()Landroid/content/Intent;", "getDefaultIntent", "component1", "component2", "component3", "component4", "copy", "equals", BuildConfig.FLAVOR, "other", "hashCode", BuildConfig.FLAVOR, "toString", BuildConfig.FLAVOR, "vungle-ads_release"}, k = 1, mv = {1, 7, 1}, xi = Sdk.SDKMetric.SDKMetricType.AD_SHOW_TO_VALIDATION_DURATION_MS_VALUE)
public static final class TargetActivityInfo {
private final PresenterAdOpenCallback adOpenCallback;
private final WeakReference<Context> context;
private final Intent deepLinkOverrideIntent;
private final Intent defaultIntent;
public TargetActivityInfo(WeakReference<Context> context, Intent intent, Intent intent2, PresenterAdOpenCallback presenterAdOpenCallback) {
Intrinsics.checkNotNullParameter(context, "context");
this.context = context;
this.deepLinkOverrideIntent = intent;
this.defaultIntent = intent2;
this.adOpenCallback = presenterAdOpenCallback;
}
public static TargetActivityInfo copy$default(TargetActivityInfo targetActivityInfo, WeakReference weakReference, Intent intent, Intent intent2, PresenterAdOpenCallback presenterAdOpenCallback, int i, Object obj) {
if ((i & 1) != 0) {
weakReference = targetActivityInfo.context;
}
if ((i & 2) != 0) {
intent = targetActivityInfo.deepLinkOverrideIntent;
}
if ((i & 4) != 0) {
intent2 = targetActivityInfo.defaultIntent;
}
if ((i & 8) != 0) {
presenterAdOpenCallback = targetActivityInfo.adOpenCallback;
}
return targetActivityInfo.copy(weakReference, intent, intent2, presenterAdOpenCallback);
}
public final WeakReference<Context> component1() {
return this.context;
}
public final Intent getDeepLinkOverrideIntent() {
return this.deepLinkOverrideIntent;
}
public final Intent getDefaultIntent() {
return this.defaultIntent;
}
public final PresenterAdOpenCallback getAdOpenCallback() {
return this.adOpenCallback;
}
public final TargetActivityInfo copy(WeakReference<Context> context, Intent deepLinkOverrideIntent, Intent defaultIntent, PresenterAdOpenCallback adOpenCallback) {
Intrinsics.checkNotNullParameter(context, "context");
return new TargetActivityInfo(context, deepLinkOverrideIntent, defaultIntent, adOpenCallback);
}
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof TargetActivityInfo)) {
return false;
}
TargetActivityInfo targetActivityInfo = (TargetActivityInfo) other;
return Intrinsics.areEqual(this.context, targetActivityInfo.context) && Intrinsics.areEqual(this.deepLinkOverrideIntent, targetActivityInfo.deepLinkOverrideIntent) && Intrinsics.areEqual(this.defaultIntent, targetActivityInfo.defaultIntent) && Intrinsics.areEqual(this.adOpenCallback, targetActivityInfo.adOpenCallback);
}
public final PresenterAdOpenCallback getAdOpenCallback() {
return this.adOpenCallback;
}
public final WeakReference<Context> getContext() {
return this.context;
}
public final Intent getDeepLinkOverrideIntent() {
return this.deepLinkOverrideIntent;
}
public final Intent getDefaultIntent() {
return this.defaultIntent;
}
public int hashCode() {
int hashCode = this.context.hashCode() * 31;
Intent intent = this.deepLinkOverrideIntent;
int hashCode2 = (hashCode + (intent == null ? 0 : intent.hashCode())) * 31;
Intent intent2 = this.defaultIntent;
int hashCode3 = (hashCode2 + (intent2 == null ? 0 : intent2.hashCode())) * 31;
PresenterAdOpenCallback presenterAdOpenCallback = this.adOpenCallback;
return hashCode3 + (presenterAdOpenCallback != null ? presenterAdOpenCallback.hashCode() : 0);
}
public String toString() {
return "TargetActivityInfo(context=" + this.context + ", deepLinkOverrideIntent=" + this.deepLinkOverrideIntent + ", defaultIntent=" + this.defaultIntent + ", adOpenCallback=" + this.adOpenCallback + ')';
}
}
private ActivityManager() {
}
public final void init(final Context context) {
if (this.isInitialized.getAndSet(true)) {
return;
}
try {
ThreadUtil.INSTANCE.runOnUiThread(new Runnable() {
@Override
public final void run() {
ActivityManager.m408init$lambda0(context, this);
}
});
} catch (Exception e) {
Logger.INSTANCE.e(TAG, "Error initializing ActivityManager", e);
this.isInitialized.set(false);
}
}
public static final void m408init$lambda0(Context context, ActivityManager this$0) {
Intrinsics.checkNotNullParameter(context, "$context");
Intrinsics.checkNotNullParameter(this$0, "this$0");
Context applicationContext = context.getApplicationContext();
Intrinsics.checkNotNull(applicationContext, "null cannot be cast to non-null type android.app.Application");
((Application) applicationContext).registerActivityLifecycleCallbacks(this$0);
}
private final boolean isAppForeground() {
return !this.startedActivities.isEmpty();
}
public final boolean isAppInForeground() {
return !this.isInitialized.get() || this.lastStoppedActivityName == null || isAppForeground();
}
public final void addListener(LifeCycleCallback callback) {
Intrinsics.checkNotNullParameter(callback, "callback");
this.callbacks.add(callback);
}
public final void deInit$vungle_ads_release(Context context) {
Intrinsics.checkNotNullParameter(context, "context");
Context applicationContext = context.getApplicationContext();
Intrinsics.checkNotNull(applicationContext, "null cannot be cast to non-null type android.app.Application");
((Application) applicationContext).unregisterActivityLifecycleCallbacks(this);
this.startedActivities.clear();
this.isInitialized.set(false);
this.callbacks.clear();
}
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
Intrinsics.checkNotNullParameter(activity, "activity");
}
@Override
public void onActivityDestroyed(Activity activity) {
Intrinsics.checkNotNullParameter(activity, "activity");
}
@Override
public void onActivityPaused(Activity activity) {
Intrinsics.checkNotNullParameter(activity, "activity");
}
@Override
public void onActivityResumed(Activity activity) {
Intrinsics.checkNotNullParameter(activity, "activity");
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
Intrinsics.checkNotNullParameter(activity, "activity");
Intrinsics.checkNotNullParameter(outState, "outState");
}
@Override
public void onActivityStarted(Activity activity) {
Intrinsics.checkNotNullParameter(activity, "activity");
this.startedActivities.add(activity.toString());
if (this.inBackground.getAndSet(false)) {
Iterator<LifeCycleCallback> it = this.callbacks.iterator();
while (it.hasNext()) {
it.next().onForeground();
}
TargetActivityInfo targetActivityInfo = this.targetActivityInfo;
if (targetActivityInfo != null) {
Context context = targetActivityInfo.getContext().get();
if (context != null) {
INSTANCE.startWhenForeground(context, targetActivityInfo.getDeepLinkOverrideIntent(), targetActivityInfo.getDefaultIntent(), targetActivityInfo.getAdOpenCallback());
}
this.targetActivityInfo = null;
}
}
}
@Override
public void onActivityStopped(Activity activity) {
Intrinsics.checkNotNullParameter(activity, "activity");
this.lastStoppedActivityName = activity.toString();
this.startedActivities.remove(activity.toString());
boolean isAppInForeground = isAppInForeground();
this.inBackground.set(!isAppInForeground);
if (isAppInForeground) {
return;
}
Iterator<LifeCycleCallback> it = this.callbacks.iterator();
while (it.hasNext()) {
it.next().onBackground();
}
}
}