导航菜单

页面标题

页面副标题

Baubap v3.9.7 - IntercomSheetActivity.java 源代码

正在查看: Baubap v3.9.7 应用的 IntercomSheetActivity.java JAVA 源代码文件

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


package io.intercom.android.sdk.activities;

import android.R;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.graphics.drawable.ScaleDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import android.view.inputmethod.InputMethodManager;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import bo.app.p7;
import c0.d;
import d60.h;
import d60.k;
import d60.x0;
import f.a;
import f.c;
import g.e;
import i.o;
import i.p;
import io.intercom.android.sdk.Injector;
import io.intercom.android.sdk.Provider;
import io.intercom.android.sdk.api.Api;
import io.intercom.android.sdk.conversation.JavascriptRunner;
import io.intercom.android.sdk.identity.AppConfig;
import io.intercom.android.sdk.imageloader.WallpaperLoader;
import io.intercom.android.sdk.m5.data.IntercomEvent;
import io.intercom.android.sdk.metrics.MetricTracker;
import io.intercom.android.sdk.models.Sheet;
import io.intercom.android.sdk.sheets.SheetListener;
import io.intercom.android.sdk.sheets.SheetWebViewPresenter;
import io.intercom.android.sdk.utilities.ColorUtils;
import io.intercom.android.sdk.views.IntercomErrorView;
import io.intercom.android.sdk.views.IntercomToolbar;
import java.util.HashMap;
import java.util.Map;
import m40.g0;
import v4.l;

public class IntercomSheetActivity extends IntercomBaseActivity implements IntercomToolbar.Listener, SheetListener {
    private static final int ENTRANCE_ANIMATION_TIME_MS = 250;
    private static final int EXIT_ANIMATION_TIME_MS = 200;
    private static final String PARCEL_CARD_URI = "parcel_card_uri";
    private static final String PARCEL_CONVERSATION_ID = "parcel_conversation_id";
    private static final String PARCEL_IS_HOME_SCREEN = "parcel_is_home_screen";
    private static final String PARCEL_PARAMS = "parcel_params";
    private static final String PARCEL_SHEET_URL = "parcel_sheet_url";
    private static final int WEBVIEW_FADE_IN_TIME_MS = 300;
    private Provider<AppConfig> appConfigProvider;
    private String cardUri;
    private View containerView;
    private IntercomErrorView intercomErrorView;
    private IntercomToolbar intercomToolbar;
    private boolean isHomeScreen;
    private JavascriptRunner jsRunner;
    ProgressBar loadingBar;
    private MetricTracker metricTracker;
    private c pickFile;
    private SheetWebViewPresenter presenter;
    private int secondaryColor;
    public ValueCallback<Uri[]> valueCallback;
    private WallpaperLoader wallpaperLoader;
    WebView webView;
    private String sheetUrl = "";
    private String conversationId = "";
    private HashMap params = new HashMap();

    public void animateWindowIn() {
        this.containerView.setVisibility(0);
        this.containerView.setY(findViewById(R.id.content).getMeasuredHeight());
        this.containerView.animate().y(0.0f).setInterpolator(new AccelerateInterpolator()).setDuration(250L).start();
    }

    private void animateWindowOut() {
        this.containerView.animate().y(getWindow().getDecorView().getHeight()).setDuration(200L).setListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animator) {
                IntercomSheetActivity.this.finish();
                IntercomSheetActivity.this.overridePendingTransition(0, 0);
            }
        }).start();
    }

    public static Intent buildIntent(Context context, String str, Map<String, Object> map, String str2, String str3) {
        Intent intent = new Intent(context, (Class<?>) IntercomSheetActivity.class);
        intent.putExtra(PARCEL_SHEET_URL, str);
        intent.putExtra(PARCEL_PARAMS, new HashMap(map));
        intent.putExtra(PARCEL_CARD_URI, str2);
        intent.putExtra(PARCEL_CONVERSATION_ID, str3);
        return intent;
    }

    public void cardUpdated() {
        Injector.get().getDataLayer().emitEvent((g0) d.u0(this), (IntercomEvent) IntercomEvent.CardUpdated.INSTANCE);
    }

    private void hideKeyboard() {
        View currentFocus = getCurrentFocus();
        if (currentFocus != null) {
            ((InputMethodManager) getSystemService("input_method")).hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
        }
    }

    private void insertWebView() {
        try {
            this.webView = new WebView(this);
        } catch (Resources.NotFoundException unused) {
            this.webView = new WebView(getApplicationContext());
        }
        this.webView.setAlpha(0.0f);
        this.webView.setId(io.intercom.android.sdk.R.id.intercom_sheet_webview);
        this.webView.setLayoutParams(new FrameLayout.LayoutParams(-1, -1));
        ((FrameLayout) findViewById(io.intercom.android.sdk.R.id.sheet_view)).addView(this.webView, 0);
        this.webView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView webView, int i) {
                IntercomSheetActivity.this.loadingBar.setProgress(i);
            }

            @Override
            public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> valueCallback, WebChromeClient.FileChooserParams fileChooserParams) {
                IntercomSheetActivity intercomSheetActivity = IntercomSheetActivity.this;
                intercomSheetActivity.valueCallback = valueCallback;
                intercomSheetActivity.pickFile.a(fileChooserParams.createIntent());
                return true;
            }
        });
    }

    public void lambda$onCreate$0(a aVar) {
        Intent intent;
        if (aVar.b != -1 || (intent = aVar.c) == null) {
            this.valueCallback.onReceiveValue(null);
        } else {
            this.valueCallback.onReceiveValue(new Uri[]{intent.getData()});
        }
    }

    public void loadSheet(Api api) {
        this.loadingBar.setVisibility(0);
        this.intercomErrorView.setVisibility(8);
        api.fetchSheet(this.params, new k() {
            public void onFailure(h<Sheet.Builder> hVar, Throwable th) {
                IntercomSheetActivity.this.showErrorView();
            }

            public void onResponse(h<Sheet.Builder> hVar, x0<Sheet.Builder> x0Var) {
                Object obj;
                if (!x0Var.a.g() || (obj = x0Var.b) == null) {
                    IntercomSheetActivity.this.showErrorView();
                    return;
                }
                IntercomSheetActivity.this.intercomErrorView.setVisibility(8);
                IntercomSheetActivity.this.presenter.loadBundle(((Sheet.Builder) obj).build().getBody());
                IntercomSheetActivity.this.metricTracker.viewedMessengerSheet(IntercomSheetActivity.this.conversationId, IntercomSheetActivity.this.sheetUrl, IntercomSheetActivity.this.isHomeScreen);
            }
        });
    }

    private void setUpToolbar(Provider<AppConfig> provider) {
        AppConfig appConfig = provider.get();
        IntercomToolbar findViewById = findViewById(io.intercom.android.sdk.R.id.intercom_toolbar);
        this.intercomToolbar = findViewById;
        findViewById.updateToolbarColors(appConfig);
        this.intercomToolbar.setListener(this);
        this.intercomToolbar.setSubtitleVisibility(8);
        this.intercomToolbar.setBackgroundColor(this.secondaryColor);
        this.intercomToolbar.setLeftNavigationItemVisibility(0);
        this.intercomToolbar.setCloseButtonVisibility(8);
        this.intercomToolbar.setLeftNavigationIcon(l.getDrawable(this, io.intercom.android.sdk.R.drawable.intercom_close));
        this.intercomToolbar.updateToolbarSize();
        WallpaperLoader create = WallpaperLoader.create(this, provider);
        this.wallpaperLoader = create;
        this.intercomToolbar.loadWallpaper(create);
        ProgressBar progressBar = (ProgressBar) this.intercomToolbar.findViewById(io.intercom.android.sdk.R.id.toolbar_progress_bar);
        this.loadingBar = progressBar;
        progressBar.setProgressDrawable(new LayerDrawable(new Drawable[]{new ColorDrawable(appConfig.getSecondaryColorDark()), new ScaleDrawable(new ColorDrawable(-1), 8388611, 1.0f, -1.0f)}));
    }

    public void showErrorView() {
        this.loadingBar.setVisibility(8);
        this.intercomErrorView.setVisibility(0);
    }

    public void showSubmitActionError(final Map<String, Object> map) {
        p create = new o(this).setTitle(io.intercom.android.sdk.R.string.intercom_couldnt_load_content).setMessage(io.intercom.android.sdk.R.string.intercom_give_it_another_try).setPositiveButton(io.intercom.android.sdk.R.string.intercom_reload, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                IntercomSheetActivity.this.onSubmitSheetAction(map);
            }
        }).create();
        create.show();
        create.f(-1).setTextColor(ColorUtils.primaryOrDarkColor(this, this.appConfigProvider.get()));
    }

    public void closeSheet() {
        this.metricTracker.closedMessengerSheet(this.conversationId, this.sheetUrl, this.isHomeScreen);
        hideKeyboard();
        animateWindowOut();
    }

    public void onBackPressed() {
        if (this.webView.canGoBack()) {
            this.webView.goBack();
        } else {
            closeSheet();
        }
    }

    public void onCloseClicked() {
    }

    @Override
    public void onCloseSheetAction() {
        closeSheet();
    }

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        Injector injector = Injector.get();
        this.metricTracker = injector.getMetricTracker();
        Provider<AppConfig> appConfigProvider = injector.getAppConfigProvider();
        this.appConfigProvider = appConfigProvider;
        this.secondaryColor = appConfigProvider.get().getSecondaryColor();
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            this.sheetUrl = extras.getString(PARCEL_SHEET_URL, "");
            this.conversationId = extras.getString(PARCEL_CONVERSATION_ID, "");
            this.params = (HashMap) extras.getSerializable(PARCEL_PARAMS);
            this.cardUri = extras.getString(PARCEL_CARD_URI);
            this.isHomeScreen = extras.getBoolean(PARCEL_IS_HOME_SCREEN, false);
        }
        setContentView(io.intercom.android.sdk.R.layout.intercom_activity_sheet);
        setUpToolbar(this.appConfigProvider);
        this.containerView = findViewById(io.intercom.android.sdk.R.id.sheet_root);
        if (TextUtils.isEmpty(this.sheetUrl) || this.params == null) {
            closeSheet();
        }
        this.containerView.setVisibility(8);
        this.containerView.post(new Runnable() {
            @Override
            public void run() {
                IntercomSheetActivity.this.animateWindowIn();
            }
        });
        insertWebView();
        JavascriptRunner javascriptRunner = new JavascriptRunner(this.webView);
        this.jsRunner = javascriptRunner;
        SheetWebViewPresenter sheetWebViewPresenter = new SheetWebViewPresenter(this.webView, javascriptRunner, this.sheetUrl, this, injector);
        this.presenter = sheetWebViewPresenter;
        sheetWebViewPresenter.setUpWebView();
        IntercomErrorView findViewById = this.containerView.findViewById(io.intercom.android.sdk.R.id.error_layout_sheet);
        this.intercomErrorView = findViewById;
        findViewById.setActionButtonTextColor(ColorUtils.primaryOrDarkColor(this, this.appConfigProvider.get()));
        this.intercomErrorView.setActionButtonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                IntercomSheetActivity.this.loadSheet(Injector.get().getApi());
            }
        });
        this.pickFile = registerForActivityResult(new e(), new p7(this, 16));
        loadSheet(injector.getApi());
    }

    @Override
    public void onDestroy() {
        this.intercomToolbar.closeWallpaperLoader(this.wallpaperLoader);
        super.onDestroy();
    }

    public void onInboxClicked() {
        closeSheet();
    }

    @Override
    public void onSheetTitleAction(String str) {
        this.intercomToolbar.setTitle(str);
    }

    @Override
    public void onSubmitSheetAction(final Map<String, Object> map) {
        Injector.get().getApi().submitSheet(this.cardUri, map, new k() {
            public void onFailure(h<Void> hVar, Throwable th) {
                IntercomSheetActivity.this.showSubmitActionError(map);
            }

            public void onResponse(h<Void> hVar, x0<Void> x0Var) {
                if (!x0Var.a.g()) {
                    IntercomSheetActivity.this.showSubmitActionError(map);
                } else {
                    IntercomSheetActivity.this.cardUpdated();
                    IntercomSheetActivity.this.closeSheet();
                }
            }
        });
    }

    public void onToolbarClicked() {
    }

    @Override
    public void onWebViewFinishedLoad() {
        this.jsRunner.runPendingScripts();
        this.webView.animate().alpha(1.0f).setDuration(300L).start();
        this.loadingBar.setVisibility(8);
    }
}