导航菜单

页面标题

页面副标题

Betterhalf.ai v5.1.1 - InAppNotificationActivity.java 源代码

正在查看: Betterhalf.ai v5.1.1 应用的 InAppNotificationActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.clevertap.android.sdk;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
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.CTInAppType;
import com.clevertap.android.sdk.inapp.InAppController;
import com.clevertap.android.sdk.inapp.InAppListener;
import java.lang.ref.WeakReference;
import java.util.HashMap;

public final class InAppNotificationActivity extends FragmentActivity implements InAppListener, DidClickForHardPermissionListener {
    private static boolean isAlertVisible = false;
    private CleverTapInstanceConfig config;
    private CTInAppNotification inAppNotification;
    private WeakReference<InAppListener> listenerWeakReference;
    private PushPermissionManager pushPermissionManager;
    private WeakReference<PushPermissionResultCallback> pushPermissionResultCallbackWeakReference;
    private Bundle returnBundle = null;
    private boolean invokedInAppDismissCallback = false;

    public interface PushPermissionResultCallback {
        void onPushPermissionAccept();

        void onPushPermissionDeny();
    }

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        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) {
                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();
                    return;
                }
                return;
            }
            if (isAlertVisible) {
                createContentFragment();
            }
        } catch (Throwable th) {
            Logger.v("Cannot find a valid notification bundle to show!", th);
            finish();
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        if (!this.pushPermissionManager.isFromNotificationSettingsActivity() || Build.VERSION.SDK_INT < 33) {
            return;
        }
        if (ContextCompat.checkSelfPermission(this, PushPermissionManager.ANDROID_PERMISSION_STRING) == 0) {
            this.pushPermissionResultCallbackWeakReference.get().onPushPermissionAccept();
        } else {
            this.pushPermissionResultCallbackWeakReference.get().onPushPermissionDeny();
        }
        didDismiss(null);
    }

    @Override
    public void finish() {
        super.finish();
        if (Build.VERSION.SDK_INT >= 34) {
            overrideActivityTransition(1, android.R.anim.fade_in, android.R.anim.fade_out);
        } else {
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        }
        if (this.invokedInAppDismissCallback) {
            return;
        }
        notifyInAppDismissed();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (Build.VERSION.SDK_INT >= 34) {
            overrideActivityTransition(1, android.R.anim.fade_in, android.R.anim.fade_out);
        } else {
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        }
        if (this.invokedInAppDismissCallback) {
            return;
        }
        notifyInAppDismissed();
    }

    private void notifyInAppDismissed() {
        if (isAlertVisible) {
            isAlertVisible = false;
        }
        InAppListener listener = getListener();
        if (listener != null && getBaseContext() != null && this.inAppNotification != null) {
            listener.inAppNotificationDidDismiss(getBaseContext(), this.inAppNotification, this.returnBundle);
        }
        this.invokedInAppDismissCallback = true;
    }

    @Override
    public void inAppNotificationDidClick(CTInAppNotification cTInAppNotification, Bundle bundle, HashMap<String, String> hashMap) {
        didClick(bundle, hashMap);
    }

    @Override
    public void inAppNotificationDidDismiss(Context context, CTInAppNotification cTInAppNotification, Bundle bundle) {
        didDismiss(bundle);
    }

    @Override
    public void inAppNotificationDidShow(CTInAppNotification cTInAppNotification, Bundle bundle) {
        didShow(bundle);
    }

    @Override
    public void setTheme(int i) {
        super.setTheme(android.R.style.Theme.Translucent.NoTitleBar);
    }

    void didClick(Bundle bundle, HashMap<String, String> hashMap) {
        InAppListener listener = getListener();
        if (listener != null) {
            listener.inAppNotificationDidClick(this.inAppNotification, bundle, hashMap);
        }
    }

    @Override
    public void didClickForHardPermissionWithFallbackSettings(boolean z) {
        showHardPermissionPrompt(z);
    }

    public void showHardPermissionPrompt(boolean z) {
        this.pushPermissionManager.showHardPermissionPrompt(z, this.pushPermissionResultCallbackWeakReference.get());
    }

    @Override
    public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
        super.onRequestPermissionsResult(i, strArr, iArr);
        boolean z = false;
        CTPreferenceCache.getInstance(this, this.config).setFirstTimeRequest(false);
        CTPreferenceCache.updateCacheToDisk(this, this.config);
        if (i == 102) {
            if (iArr.length > 0 && iArr[0] == 0) {
                z = true;
            }
            if (z) {
                this.pushPermissionResultCallbackWeakReference.get().onPushPermissionAccept();
            } else {
                this.pushPermissionResultCallbackWeakReference.get().onPushPermissionDeny();
            }
            didDismiss(null);
        }
    }

    void didDismiss(Bundle bundle) {
        this.returnBundle = bundle;
        finish();
    }

    void didShow(Bundle bundle) {
        InAppListener listener = getListener();
        if (listener != null) {
            listener.inAppNotificationDidShow(this.inAppNotification, bundle);
        }
    }

    void fireUrlThroughIntent(String str, Bundle bundle) {
        try {
            startActivity(new Intent("android.intent.action.VIEW", Uri.parse(str.replace("\n", "").replace("\r", ""))));
        } catch (Throwable unused) {
        }
        didDismiss(bundle);
    }

    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;
    }

    void setListener(InAppListener inAppListener) {
        this.listenerWeakReference = new WeakReference<>(inAppListener);
    }

    public void setPermissionCallback(PushPermissionResultCallback pushPermissionResultCallback) {
        this.pushPermissionResultCallbackWeakReference = new WeakReference<>(pushPermissionResultCallback);
    }

    public void notifyPermissionDenied() {
        this.pushPermissionResultCallbackWeakReference.get().onPushPermissionDeny();
    }

    private CTInAppBaseFullFragment createContentFragment() {
        AlertDialog alertDialog;
        CTInAppType inAppType = this.inAppNotification.getInAppType();
        switch (AnonymousClass6.$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:
                if (this.inAppNotification.getButtons().size() > 0) {
                    alertDialog = new AlertDialog.Builder(this, android.R.style.Theme.Material.Light.Dialog.Alert).setCancelable(false).setTitle(this.inAppNotification.getTitle()).setMessage(this.inAppNotification.getMessage()).setPositiveButton(this.inAppNotification.getButtons().get(0).getText(), new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            Bundle bundle = new Bundle();
                            bundle.putString(Constants.NOTIFICATION_ID_TAG, InAppNotificationActivity.this.inAppNotification.getCampaignId());
                            bundle.putString(Constants.KEY_C2A, InAppNotificationActivity.this.inAppNotification.getButtons().get(0).getText());
                            InAppNotificationActivity.this.didClick(bundle, null);
                            String actionUrl = InAppNotificationActivity.this.inAppNotification.getButtons().get(0).getActionUrl();
                            if (actionUrl == null) {
                                if (!InAppNotificationActivity.this.inAppNotification.isLocalInApp()) {
                                    if (InAppNotificationActivity.this.inAppNotification.getButtons().get(0).getType() != null && InAppNotificationActivity.this.inAppNotification.getButtons().get(0).getType().equalsIgnoreCase(Constants.KEY_REQUEST_FOR_NOTIFICATION_PERMISSION)) {
                                        InAppNotificationActivity inAppNotificationActivity = InAppNotificationActivity.this;
                                        inAppNotificationActivity.showHardPermissionPrompt(inAppNotificationActivity.inAppNotification.getButtons().get(0).isFallbackToSettings());
                                        return;
                                    } else {
                                        InAppNotificationActivity.this.didDismiss(bundle);
                                        return;
                                    }
                                }
                                InAppNotificationActivity inAppNotificationActivity2 = InAppNotificationActivity.this;
                                inAppNotificationActivity2.showHardPermissionPrompt(inAppNotificationActivity2.inAppNotification.fallBackToNotificationSettings());
                                return;
                            }
                            InAppNotificationActivity.this.fireUrlThroughIntent(actionUrl, bundle);
                        }
                    }).create();
                    if (this.inAppNotification.getButtons().size() == 2) {
                        alertDialog.setButton(-2, this.inAppNotification.getButtons().get(1).getText(), new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Bundle bundle = new Bundle();
                                bundle.putString(Constants.NOTIFICATION_ID_TAG, InAppNotificationActivity.this.inAppNotification.getCampaignId());
                                bundle.putString(Constants.KEY_C2A, InAppNotificationActivity.this.inAppNotification.getButtons().get(1).getText());
                                InAppNotificationActivity.this.didClick(bundle, null);
                                String actionUrl = InAppNotificationActivity.this.inAppNotification.getButtons().get(1).getActionUrl();
                                if (actionUrl == null) {
                                    if (InAppNotificationActivity.this.inAppNotification.getButtons().get(1).getType() != null && InAppNotificationActivity.this.inAppNotification.getButtons().get(1).getType().equalsIgnoreCase(Constants.KEY_REQUEST_FOR_NOTIFICATION_PERMISSION)) {
                                        InAppNotificationActivity inAppNotificationActivity = InAppNotificationActivity.this;
                                        inAppNotificationActivity.showHardPermissionPrompt(inAppNotificationActivity.inAppNotification.getButtons().get(1).isFallbackToSettings());
                                        return;
                                    } else {
                                        InAppNotificationActivity.this.didDismiss(bundle);
                                        return;
                                    }
                                }
                                InAppNotificationActivity.this.fireUrlThroughIntent(actionUrl, bundle);
                            }
                        });
                    }
                    if (this.inAppNotification.getButtons().size() > 2) {
                        alertDialog.setButton(-3, this.inAppNotification.getButtons().get(2).getText(), new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Bundle bundle = new Bundle();
                                bundle.putString(Constants.NOTIFICATION_ID_TAG, InAppNotificationActivity.this.inAppNotification.getCampaignId());
                                bundle.putString(Constants.KEY_C2A, InAppNotificationActivity.this.inAppNotification.getButtons().get(2).getText());
                                InAppNotificationActivity.this.didClick(bundle, null);
                                String actionUrl = InAppNotificationActivity.this.inAppNotification.getButtons().get(2).getActionUrl();
                                if (actionUrl != null) {
                                    InAppNotificationActivity.this.fireUrlThroughIntent(actionUrl, bundle);
                                } else {
                                    InAppNotificationActivity.this.didDismiss(bundle);
                                }
                            }
                        });
                    }
                } else {
                    alertDialog = null;
                }
                if (alertDialog != null) {
                    alertDialog.show();
                    isAlertVisible = true;
                    didShow(null);
                    return null;
                }
                this.config.getLogger().debug("InAppNotificationActivity: Alert Dialog is null, not showing Alert InApp");
                return null;
            default:
                this.config.getLogger().verbose("InAppNotificationActivity: Unhandled InApp Type: " + inAppType);
                return null;
        }
    }

    static class AnonymousClass6 {
        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) {
            }
        }
    }

    class AnonymousClass3 implements DialogInterface.OnClickListener {
        AnonymousClass3() {
        }

        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            Bundle bundle = new Bundle();
            bundle.putString(Constants.NOTIFICATION_ID_TAG, InAppNotificationActivity.this.inAppNotification.getCampaignId());
            bundle.putString(Constants.KEY_C2A, InAppNotificationActivity.this.inAppNotification.getButtons().get(0).getText());
            InAppNotificationActivity.this.didClick(bundle, null);
            String actionUrl = InAppNotificationActivity.this.inAppNotification.getButtons().get(0).getActionUrl();
            if (actionUrl != null) {
                InAppNotificationActivity.this.fireUrlThroughIntent(actionUrl, bundle);
            } else {
                InAppNotificationActivity.this.didDismiss(bundle);
            }
        }
    }

    class AnonymousClass4 implements DialogInterface.OnClickListener {
        AnonymousClass4() {
        }

        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            Bundle bundle = new Bundle();
            bundle.putString(Constants.NOTIFICATION_ID_TAG, InAppNotificationActivity.this.inAppNotification.getCampaignId());
            bundle.putString(Constants.KEY_C2A, InAppNotificationActivity.this.inAppNotification.getButtons().get(1).getText());
            InAppNotificationActivity.this.didClick(bundle, null);
            String actionUrl = InAppNotificationActivity.this.inAppNotification.getButtons().get(1).getActionUrl();
            if (actionUrl != null) {
                InAppNotificationActivity.this.fireUrlThroughIntent(actionUrl, bundle);
            } else {
                InAppNotificationActivity.this.didDismiss(bundle);
            }
        }
    }

    private String getFragmentTag() {
        return this.config.getAccountId() + ":CT_INAPP_CONTENT_FRAGMENT";
    }
}