Picsart v24.6版本的 MD5 值为:21a61631d94e54da68d2ad9268b8b9d9
以下内容为反编译后的 WebViewActivity.java 源代码,内容仅作参考
package com.picsart.studio.picsart.profile.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.graphics.Point;
import android.graphics.Rect;
import android.net.Uri;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.webkit.SslErrorHandler;
import android.webkit.ValueCallback;
import android.webkit.WebResourceError;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import androidx.browser.customtabs.CustomTabsService;
import com.amazon.device.ads.DtbConstants;
import com.appsflyer.internal.h;
import com.facebook.datasource.f;
import com.picsart.logger.PALog;
import com.picsart.studio.R;
import com.picsart.studio.common.crash.CrashWrapper;
import com.picsart.studio.profile.view.ProfileActivity;
import com.picsart.user.userstate.UserStateSingleton;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import kotlin.jvm.internal.Intrinsics;
import myobfuscated.c42.q;
import myobfuscated.jl1.d;
import myobfuscated.l02.e0;
import myobfuscated.w.f;
public class WebViewActivity extends d {
public static final int e = 0;
public WebView a;
public ValueCallback<Uri[]> b;
public String[] c;
public boolean d = false;
public class a extends WebViewClient {
public final String a;
public a(String str) {
this.a = str;
}
public final void a(String str) {
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(str));
WebViewActivity webViewActivity = WebViewActivity.this;
if (intent.resolveActivity(webViewActivity.getPackageManager()) != null) {
webViewActivity.startActivity(intent);
} else {
f.t(new IllegalArgumentException(h.p("no Activity associated with: ", str)));
}
}
@Override
public final void onPageFinished(WebView webView, String str) {
super.onPageFinished(webView, str);
if (str.equals(this.a)) {
webView.setVisibility(0);
}
int i = WebViewActivity.e;
WebViewActivity.this.getClass();
throw null;
}
@Override
public final void onReceivedError(WebView webView, WebResourceRequest webResourceRequest, WebResourceError webResourceError) {
super.onReceivedError(webView, webResourceRequest, webResourceError);
int i = WebViewActivity.e;
WebViewActivity.this.getClass();
throw null;
}
@Override
public final void onReceivedHttpError(WebView webView, WebResourceRequest webResourceRequest, WebResourceResponse webResourceResponse) {
super.onReceivedHttpError(webView, webResourceRequest, webResourceResponse);
int i = WebViewActivity.e;
WebViewActivity.this.getClass();
throw null;
}
@Override
public final void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
super.onReceivedSslError(webView, sslErrorHandler, sslError);
int i = WebViewActivity.e;
WebViewActivity.this.getClass();
throw null;
}
@Override
@SuppressLint({"DefaultLocale"})
public final boolean shouldOverrideUrlLoading(WebView webView, String str) {
String stringExtra;
PALog.a("WebViewActivity", "shouldOverrideUrlLoading: url= " + str);
HashMap hashMap = new HashMap();
hashMap.put("Url", str);
StringBuilder sb = new StringBuilder("");
WebViewActivity webViewActivity = WebViewActivity.this;
sb.append(webViewActivity.d);
hashMap.put("isFromHook", sb.toString());
CrashWrapper.c("WebViewActivity: shouldOverrideUrlLoading()", hashMap);
String lowerCase = str.toLowerCase();
if (lowerCase.contains("picsart.com/i/".toLowerCase())) {
String substring = str.substring(lowerCase.lastIndexOf("picsart.com/i/".toLowerCase()) + 14, lowerCase.length());
if (!TextUtils.isEmpty(substring) && TextUtils.isDigitsOnly(substring)) {
long parseLong = Long.parseLong(substring);
Intent intent = new Intent(webViewActivity, GalleryItemShowActivity.class);
intent.putExtra("item_id", parseLong);
webViewActivity.startActivity(intent);
return true;
}
} else if (lowerCase.contains("picsart.com/#".toLowerCase())) {
String substring2 = str.substring(lowerCase.lastIndexOf("picsart.com/#".toLowerCase()) + 13, lowerCase.length());
if (!TextUtils.isEmpty(substring2) && TextUtils.isDigitsOnly(substring2)) {
long parseLong2 = Long.parseLong(substring2);
Intent intent2 = new Intent(webViewActivity, ProfileActivity.class);
intent2.putExtra("profileUserId", parseLong2);
webViewActivity.startActivity(intent2);
return true;
}
} else {
String str2 = this.a;
if (!str2.startsWith("https://picsart.com/challenges/create?app=1")) {
if (lowerCase.contains("popsockets")) {
return false;
}
if (!lowerCase.startsWith("picsart://")) {
if (!lowerCase.contains("picsart") && !webViewActivity.d) {
List<String> list = myobfuscated.d42.h.a;
if (!lowerCase.contains("research.net")) {
if (!lowerCase.contains("surveymonkey.com")) {
}
}
}
if (lowerCase.equals("https://picsart.com/sign-in")) {
a(str);
webViewActivity.finish();
return true;
} else if (lowerCase.startsWith("intent://")) {
try {
Intent parseUri = Intent.parseUri(str, 1);
if (parseUri == null || (stringExtra = parseUri.getStringExtra("browser_fallback_url")) == null) {
return false;
}
if (stringExtra.startsWith("market://")) {
stringExtra = stringExtra.replace("market://", "https://play.google.com/store/apps/");
}
webViewActivity.a.loadUrl(stringExtra);
return true;
} catch (URISyntaxException e) {
e.printStackTrace();
}
}
}
a(str);
webViewActivity.finish();
return true;
} else if (!str2.substring(str2.indexOf("//") + 2, str2.length()).equals(lowerCase.substring(lowerCase.indexOf("//") + 2, lowerCase.length()))) {
webViewActivity.setResult(-1);
webViewActivity.finish();
return true;
}
}
return false;
}
}
public static void L(WebViewActivity webViewActivity) {
webViewActivity.getClass();
Intent intent = new Intent("android.intent.action.PICK");
String[] strArr = webViewActivity.c;
if (strArr != null) {
intent.putExtra("android.intent.extra.MIME_TYPES", strArr);
} else {
intent.setType("image/*");
}
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
webViewActivity.startActivityForResult(intent, 123);
}
@Override
public final void onActivityResult(int i, int i2, Intent intent) {
super.onActivityResult(i, i2, intent);
if (i != 123 || this.b == null) {
return;
}
this.b.onReceiveValue((i2 != -1 || intent == null) ? null : new Uri[]{Uri.parse(intent.getDataString())});
this.b = null;
}
@Override
public final void onCreate(Bundle bundle) {
super.onCreate(bundle);
myobfuscated.xl1.c cVar = myobfuscated.xl1.c.a;
WebView.setWebContentsDebuggingEnabled(myobfuscated.xl1.c.b);
boolean z = true;
try {
setContentView(R.layout.web_view_layout);
androidx.appcompat.app.a supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.o(true);
}
setTitle(R.string.app_name);
String str = null;
String stringExtra = (getIntent() == null || !getIntent().hasExtra("url")) ? null : getIntent().getStringExtra("url");
if (TextUtils.isEmpty(stringExtra)) {
Toast.makeText(this, f.b ? "URL is empty" : getString(R.string.something_went_wrong), 0).show();
finish();
return;
}
if (!TextUtils.isEmpty(stringExtra)) {
UserStateSingleton userStateSingleton = UserStateSingleton.a;
if (userStateSingleton.a().b() && stringExtra.startsWith("https://picsart.com") && !stringExtra.contains("key=")) {
stringExtra = Uri.parse(stringExtra).buildUpon().appendQueryParameter("key", userStateSingleton.a().getUser().getKey()).build().toString();
}
}
if (!TextUtils.isEmpty(stringExtra) && stringExtra.contains("bumble.com")) {
myobfuscated.d42.h.d(this, stringExtra);
finish();
return;
}
boolean z2 = getIntent() != null && getIntent().hasExtra("is_from_hook") && getIntent().getBooleanExtra("is_from_hook", false);
this.d = z2;
if ((z2 && !TextUtils.isEmpty(stringExtra)) || stringExtra.contains("picsart.com")) {
stringExtra = Uri.parse(stringExtra).buildUpon().appendQueryParameter("app", "1").build().toString();
}
PackageManager packageManager = getPackageManager();
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("https://picsart.com"));
ResolveInfo resolveActivity = packageManager.resolveActivity(intent, 0);
String str2 = resolveActivity != null ? resolveActivity.activityInfo.packageName : null;
List<ResolveInfo> queryIntentActivities = packageManager.queryIntentActivities(intent, 0);
ArrayList arrayList = new ArrayList();
for (ResolveInfo resolveInfo : queryIntentActivities) {
Intent intent2 = new Intent();
intent2.setAction(CustomTabsService.ACTION_CUSTOM_TABS_CONNECTION);
intent2.setPackage(resolveInfo.activityInfo.packageName);
if (packageManager.resolveService(intent2, 0) != null) {
arrayList.add(resolveInfo.activityInfo.packageName);
}
}
if (!arrayList.isEmpty()) {
if (!TextUtils.isEmpty(str2)) {
try {
List<ResolveInfo> queryIntentActivities2 = getPackageManager().queryIntentActivities(intent, 64);
if (queryIntentActivities2.size() != 0) {
for (ResolveInfo resolveInfo2 : queryIntentActivities2) {
IntentFilter intentFilter = resolveInfo2.filter;
if (intentFilter != null && intentFilter.countDataAuthorities() != 0 && intentFilter.countDataPaths() != 0 && resolveInfo2.activityInfo != null) {
break;
}
}
}
} catch (RuntimeException unused) {
PALog.a("WebViewActivity", "Runtime exception while getting specialized handlers");
}
if (arrayList.contains(str2)) {
str = str2;
}
}
str = (String) arrayList.get(0);
}
if (str != null) {
myobfuscated.w.f a2 = new f.b().a();
Intent intent3 = a2.a;
intent3.setFlags(268435456);
intent3.setPackage(str);
a2.a(getApplicationContext(), Uri.parse(stringExtra));
finish();
return;
}
WebView webView = (WebView) findViewById(R.id.web_view_id);
this.a = webView;
webView.getSettings().setJavaScriptEnabled(true);
this.a.getSettings().setAllowFileAccess(true);
this.a.getSettings().setDomStorageEnabled(true);
this.a.setFocusable(true);
this.a.requestFocus();
this.a.setWebViewClient(new a(stringExtra));
this.a.setWebChromeClient(new c(this));
} catch (Exception e2) {
StringBuilder sb = new StringBuilder("WebViewActivity isEmulator: ");
String str3 = Build.FINGERPRINT;
String str4 = Build.MANUFACTURER;
if ((str3 == null || !str3.contains("generic")) && (str4 == null || !str4.contains("Genymotion"))) {
z = false;
}
sb.append(z);
sb.append(", WebViewInfo: ");
Intrinsics.checkNotNullParameter(this, "activity");
sb.append(com.appsflyer.internal.c.n(q.a(this, "com.google.android.webview"), ", ") + q.a(this, "com.android.webview"));
PALog.h(new IllegalStateException(sb.toString(), e2));
finish();
}
}
@Override
public final boolean onKeyDown(int i, KeyEvent keyEvent) {
if (keyEvent.getAction() == 0) {
if (i != 4) {
if (i == 24 || i == 25) {
throw null;
}
return true;
}
WebView webView = this.a;
if (webView == null || !webView.canGoBack()) {
finish();
return true;
}
this.a.goBack();
return true;
}
return super.onKeyDown(i, keyEvent);
}
@Override
public final boolean onOptionsItemSelected(MenuItem menuItem) {
Resources resources;
int identifier;
if (menuItem.getItemId() == 16908332) {
if (!isFinishing()) {
int i = 0;
View childAt = ((ViewGroup) findViewById(16908290)).getChildAt(0);
Rect rect = new Rect();
childAt.getWindowVisibleDisplayFrame(rect);
int i2 = getResources().getDisplayMetrics().heightPixels - rect.bottom;
Rect rect2 = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect2);
if (rect2.top != 0 && (identifier = (resources = getResources()).getIdentifier("status_bar_height", "dimen", DtbConstants.NATIVE_OS_NAME)) > 0) {
i = resources.getDimensionPixelSize(identifier);
}
Display defaultDisplay = ((WindowManager) getApplicationContext().getSystemService("window")).getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
defaultDisplay.getRealMetrics(displayMetrics);
if (i2 + i > new Point(displayMetrics.widthPixels, displayMetrics.heightPixels).y * 0.15f) {
e0.a(this);
}
}
finish();
return true;
}
return true;
}
@Override
public final void onPause() {
super.onPause();
WebView webView = this.a;
if (webView != null) {
webView.onPause();
}
}
@Override
public final void onRestoreInstanceState(Bundle bundle) {
super.onRestoreInstanceState(bundle);
WebView webView = this.a;
if (webView != null) {
webView.restoreState(bundle);
}
}
@Override
public final void onResume() {
super.onResume();
WebView webView = this.a;
if (webView != null) {
webView.onResume();
}
}
@Override
public final void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
WebView webView = this.a;
if (webView != null) {
webView.saveState(bundle);
}
}
}