导航菜单

页面标题

页面副标题

Crafto v9.3.3 - InAppNotificationActivity.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();
        }
    }
}