正在查看: Baubap v3.9.7 应用的 IntercomSheetActivity.java JAVA 源代码文件
本页面展示 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);
}
}