正在查看: Crafto v9.3.3 应用的 InAppNotificationActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Crafto v9.3.3 应用的 InAppNotificationActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.clevertap.android.sdk;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.clevertap.android.sdk.inapp.CTInAppAction;
import com.clevertap.android.sdk.inapp.CTInAppBaseFullFragment;
import com.clevertap.android.sdk.inapp.CTInAppHtmlCoverFragment;
import com.clevertap.android.sdk.inapp.CTInAppHtmlHalfInterstitialFragment;
import com.clevertap.android.sdk.inapp.CTInAppHtmlInterstitialFragment;
import com.clevertap.android.sdk.inapp.CTInAppNativeCoverFragment;
import com.clevertap.android.sdk.inapp.CTInAppNativeCoverImageFragment;
import com.clevertap.android.sdk.inapp.CTInAppNativeHalfInterstitialFragment;
import com.clevertap.android.sdk.inapp.CTInAppNativeHalfInterstitialImageFragment;
import com.clevertap.android.sdk.inapp.CTInAppNativeInterstitialFragment;
import com.clevertap.android.sdk.inapp.CTInAppNativeInterstitialImageFragment;
import com.clevertap.android.sdk.inapp.CTInAppNotification;
import com.clevertap.android.sdk.inapp.CTInAppNotificationButton;
import com.clevertap.android.sdk.inapp.CTInAppType;
import com.clevertap.android.sdk.inapp.InAppActionType;
import com.clevertap.android.sdk.inapp.InAppController;
import com.clevertap.android.sdk.inapp.InAppListener;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
public final class InAppNotificationActivity extends FragmentActivity implements InAppListener, DidClickForHardPermissionListener {
private static boolean isAlertVisible = false;
private CleverTapInstanceConfig config;
private CTInAppNotification inAppNotification;
private boolean invokedCallbacks = false;
private WeakReference<InAppListener> listenerWeakReference;
private PushPermissionManager pushPermissionManager;
private WeakReference<PushPermissionResultCallback> pushPermissionResultCallbackWeakReference;
public static class AnonymousClass2 {
static final int[] $SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType;
static {
int[] iArr = new int[CTInAppType.values().length];
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType = iArr;
try {
iArr[CTInAppType.CTInAppTypeCoverHTML.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeInterstitialHTML.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeHalfInterstitialHTML.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeCover.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeInterstitial.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeHalfInterstitial.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeCoverImageOnly.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeInterstitialImageOnly.ordinal()] = 8;
} catch (NoSuchFieldError unused8) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeHalfInterstitialImageOnly.ordinal()] = 9;
} catch (NoSuchFieldError unused9) {
}
try {
$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[CTInAppType.CTInAppTypeAlert.ordinal()] = 10;
} catch (NoSuchFieldError unused10) {
}
}
}
public interface PushPermissionResultCallback {
void onPushPermissionAccept();
void onPushPermissionDeny();
}
private CTInAppBaseFullFragment createContentFragment() {
CTInAppType inAppType = this.inAppNotification.getInAppType();
switch (AnonymousClass2.$SwitchMap$com$clevertap$android$sdk$inapp$CTInAppType[inAppType.ordinal()]) {
case 1:
return new CTInAppHtmlCoverFragment();
case 2:
return new CTInAppHtmlInterstitialFragment();
case 3:
return new CTInAppHtmlHalfInterstitialFragment();
case 4:
return new CTInAppNativeCoverFragment();
case 5:
return new CTInAppNativeInterstitialFragment();
case 6:
return new CTInAppNativeHalfInterstitialFragment();
case 7:
return new CTInAppNativeCoverImageFragment();
case 8:
return new CTInAppNativeInterstitialImageFragment();
case 9:
return new CTInAppNativeHalfInterstitialImageFragment();
case 10:
showAlertDialogForInApp();
return null;
default:
this.config.getLogger().verbose("InAppNotificationActivity: Unhandled InApp Type: " + inAppType);
return null;
}
}
private Bundle didClick(CTInAppNotificationButton cTInAppNotificationButton) {
InAppListener listener = getListener();
if (listener != null) {
return listener.inAppNotificationDidClick(this.inAppNotification, cTInAppNotificationButton, this);
}
return null;
}
private String getFragmentTag() {
return this.config.getAccountId() + ":CT_INAPP_CONTENT_FRAGMENT";
}
public void lambda$showAlertDialogForInApp$0(CTInAppNotificationButton cTInAppNotificationButton, DialogInterface dialogInterface, int i) {
onAlertButtonClick(cTInAppNotificationButton, true);
}
public void lambda$showAlertDialogForInApp$1(CTInAppNotificationButton cTInAppNotificationButton, DialogInterface dialogInterface, int i) {
onAlertButtonClick(cTInAppNotificationButton, false);
}
private void lambda$showAlertDialogForInApp$2(CTInAppNotificationButton cTInAppNotificationButton, DialogInterface dialogInterface, int i) {
onAlertButtonClickLegacy(cTInAppNotificationButton);
}
private void lambda$showAlertDialogForInApp$3(CTInAppNotificationButton cTInAppNotificationButton, DialogInterface dialogInterface, int i) {
onAlertButtonClickLegacy(cTInAppNotificationButton);
}
public void lambda$showAlertDialogForInApp$4(CTInAppNotificationButton cTInAppNotificationButton, DialogInterface dialogInterface, int i) {
onAlertButtonClickLegacy(cTInAppNotificationButton);
}
private void onAlertButtonClick(CTInAppNotificationButton cTInAppNotificationButton, boolean z) {
Bundle didClick = didClick(cTInAppNotificationButton);
if (z && this.inAppNotification.isLocalInApp()) {
showHardPermissionPrompt(this.inAppNotification.fallBackToNotificationSettings());
return;
}
CTInAppAction action = cTInAppNotificationButton.getAction();
if (action == null || InAppActionType.REQUEST_FOR_PERMISSIONS != action.getType()) {
didDismiss(didClick);
} else {
showHardPermissionPrompt(action.shouldFallbackToSettings());
}
}
private void onAlertButtonClickLegacy(CTInAppNotificationButton cTInAppNotificationButton) {
didDismiss(didClick(cTInAppNotificationButton));
}
private void showAlertDialogForInApp() {
ArrayList<CTInAppNotificationButton> buttons = this.inAppNotification.getButtons();
if (buttons.isEmpty()) {
this.config.getLogger().debug("InAppNotificationActivity: Notification has no buttons, not showing Alert InApp");
return;
}
final CTInAppNotificationButton cTInAppNotificationButton = buttons.get(0);
AlertDialog create = new AlertDialog.Builder(this, android.R.style.Theme.Material.Light.Dialog.Alert).setCancelable(false).setTitle(this.inAppNotification.getTitle()).setMessage(this.inAppNotification.getMessage()).setPositiveButton(cTInAppNotificationButton.getText(), new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
InAppNotificationActivity.this.lambda$showAlertDialogForInApp$0(cTInAppNotificationButton, dialogInterface, i);
}
}).create();
if (this.inAppNotification.getButtons().size() == 2) {
final CTInAppNotificationButton cTInAppNotificationButton2 = buttons.get(1);
create.setButton(-2, cTInAppNotificationButton2.getText(), new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
InAppNotificationActivity.this.lambda$showAlertDialogForInApp$1(cTInAppNotificationButton2, dialogInterface, i);
}
});
}
if (buttons.size() > 2) {
final CTInAppNotificationButton cTInAppNotificationButton3 = buttons.get(2);
create.setButton(-3, cTInAppNotificationButton3.getText(), new DialogInterface.OnClickListener() {
@Override
public final void onClick(DialogInterface dialogInterface, int i) {
InAppNotificationActivity.this.lambda$showAlertDialogForInApp$4(cTInAppNotificationButton3, dialogInterface, i);
}
});
}
create.show();
isAlertVisible = true;
didShow(null);
}
@Override
public void didClickForHardPermissionWithFallbackSettings(boolean z) {
showHardPermissionPrompt(z);
}
public void didDismiss(Bundle bundle) {
didDismiss(bundle, true);
}
public void didShow(Bundle bundle) {
InAppListener listener = getListener();
if (listener != null) {
listener.inAppNotificationDidShow(this.inAppNotification, bundle);
}
}
public void finish() {
super/*android.app.Activity*/.finish();
if (Build.VERSION.SDK_INT >= 34) {
Q3.i.b(this);
} else {
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
}
public InAppListener getListener() {
InAppListener inAppListener;
try {
inAppListener = this.listenerWeakReference.get();
} catch (Throwable unused) {
inAppListener = null;
}
if (inAppListener == null) {
this.config.getLogger().verbose(this.config.getAccountId(), "InAppActivityListener is null for notification: " + this.inAppNotification.getJsonDescription());
}
return inAppListener;
}
@Override
public Bundle inAppNotificationActionTriggered(@NonNull CTInAppNotification cTInAppNotification, @NonNull CTInAppAction cTInAppAction, @NonNull String str, Bundle bundle, Context context) {
InAppListener listener = getListener();
if (listener != null) {
return listener.inAppNotificationActionTriggered(cTInAppNotification, cTInAppAction, str, bundle, this);
}
return null;
}
@Override
public Bundle inAppNotificationDidClick(@NonNull CTInAppNotification cTInAppNotification, @NonNull CTInAppNotificationButton cTInAppNotificationButton, Context context) {
InAppListener listener = getListener();
if (listener != null) {
return listener.inAppNotificationDidClick(cTInAppNotification, cTInAppNotificationButton, this);
}
return null;
}
@Override
public void inAppNotificationDidDismiss(@NonNull CTInAppNotification cTInAppNotification, Bundle bundle) {
didDismiss(bundle);
}
@Override
public void inAppNotificationDidShow(@NonNull CTInAppNotification cTInAppNotification, Bundle bundle) {
didShow(bundle);
}
public void notifyPermissionDenied() {
this.pushPermissionResultCallbackWeakReference.get().onPushPermissionDeny();
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
getOnBackPressedDispatcher().a(this, new f.u(true) {
public void handleOnBackPressed() {
InAppNotificationActivity.this.finish();
InAppNotificationActivity.this.didDismiss(null);
}
});
int i = getResources().getConfiguration().orientation;
if (i == 2) {
getWindow().addFlags(1024);
}
try {
Bundle extras = getIntent().getExtras();
if (extras == null) {
throw new IllegalArgumentException();
}
this.inAppNotification = (CTInAppNotification) extras.getParcelable(Constants.INAPP_KEY);
boolean z = extras.getBoolean(InAppController.DISPLAY_HARD_PERMISSION_BUNDLE_KEY, false);
Bundle bundle2 = extras.getBundle("configBundle");
if (bundle2 != null) {
this.config = (CleverTapInstanceConfig) bundle2.getParcelable(Constants.KEY_CONFIG);
}
setListener(CleverTapAPI.instanceWithConfig(this, this.config).getCoreState().getInAppController());
setPermissionCallback(CleverTapAPI.instanceWithConfig(this, this.config).getCoreState().getInAppController());
this.pushPermissionManager = new PushPermissionManager(this, this.config);
if (z) {
showHardPermissionPrompt(extras.getBoolean(InAppController.SHOW_FALLBACK_SETTINGS_BUNDLE_KEY, false));
return;
}
CTInAppNotification cTInAppNotification = this.inAppNotification;
if (cTInAppNotification == null) {
finish();
return;
}
if (cTInAppNotification.isPortrait() && !this.inAppNotification.isLandscape()) {
if (i == 2) {
Logger.d("App in Landscape, dismissing portrait InApp Notification");
finish();
didDismiss(null);
return;
}
Logger.d("App in Portrait, displaying InApp Notification anyway");
}
if (!this.inAppNotification.isPortrait() && this.inAppNotification.isLandscape()) {
if (i == 1) {
Logger.d("App in Portrait, dismissing landscape InApp Notification");
finish();
didDismiss(null);
return;
}
Logger.d("App in Landscape, displaying InApp Notification anyway");
}
if (bundle != null) {
if (isAlertVisible) {
createContentFragment();
return;
}
return;
}
CTInAppBaseFullFragment createContentFragment = createContentFragment();
if (createContentFragment != null) {
Bundle bundle3 = new Bundle();
bundle3.putParcelable(Constants.INAPP_KEY, this.inAppNotification);
bundle3.putParcelable(Constants.KEY_CONFIG, this.config);
createContentFragment.setArguments(bundle3);
getSupportFragmentManager().beginTransaction().setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out).add(android.R.id.content, createContentFragment, getFragmentTag()).commitNow();
}
} catch (Throwable th) {
Logger.v("Cannot find a valid notification bundle to show!", th);
finish();
}
}
public void onDestroy() {
super.onDestroy();
if (isChangingConfigurations()) {
return;
}
didDismiss(null, false);
}
public void onRequestPermissionsResult(int i, @NonNull String[] strArr, @NonNull int[] iArr) {
super.onRequestPermissionsResult(i, strArr, iArr);
CTPreferenceCache.getInstance(this, this.config).setFirstTimeRequest(false);
CTPreferenceCache.updateCacheToDisk(this, this.config);
if (i == 102) {
if (iArr.length <= 0 || iArr[0] != 0) {
this.pushPermissionResultCallbackWeakReference.get().onPushPermissionDeny();
} else {
this.pushPermissionResultCallbackWeakReference.get().onPushPermissionAccept();
}
didDismiss(null);
}
}
public void onResume() {
super.onResume();
if (!this.pushPermissionManager.isFromNotificationSettingsActivity() || Build.VERSION.SDK_INT < 33) {
return;
}
if (J1.a.checkSelfPermission(this, PushPermissionManager.ANDROID_PERMISSION_STRING) == 0) {
this.pushPermissionResultCallbackWeakReference.get().onPushPermissionAccept();
} else {
this.pushPermissionResultCallbackWeakReference.get().onPushPermissionDeny();
}
didDismiss(null);
}
public void setListener(InAppListener inAppListener) {
this.listenerWeakReference = new WeakReference<>(inAppListener);
}
public void setPermissionCallback(PushPermissionResultCallback pushPermissionResultCallback) {
this.pushPermissionResultCallbackWeakReference = new WeakReference<>(pushPermissionResultCallback);
}
public void setTheme(int i) {
super/*android.app.Activity*/.setTheme(android.R.style.Theme.Translucent.NoTitleBar);
}
public void showHardPermissionPrompt(boolean z) {
this.pushPermissionManager.showHardPermissionPrompt(z, this.pushPermissionResultCallbackWeakReference.get());
}
public void didDismiss(Bundle bundle, boolean z) {
CTInAppNotification cTInAppNotification;
if (isAlertVisible) {
isAlertVisible = false;
}
if (!this.invokedCallbacks) {
InAppListener listener = getListener();
if (listener != null && (cTInAppNotification = this.inAppNotification) != null) {
listener.inAppNotificationDidDismiss(cTInAppNotification, bundle);
}
this.invokedCallbacks = true;
}
if (z) {
finish();
}
}
}