Files
rr3-apk/decompiled-community/sources/com/facebook/messenger/MessengerUtils.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

226 lines
10 KiB
Java

package com.facebook.messenger;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import com.facebook.FacebookSdk;
import com.facebook.bolts.AppLinks;
import com.facebook.internal.FacebookSignatureValidator;
import com.facebook.internal.instrument.crashshield.CrashShieldHandler;
import com.facebook.messenger.MessengerThreadParams;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import kotlin.Unit;
import kotlin.collections.CollectionsKt__CollectionsKt;
import kotlin.io.CloseableKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.StringsKt__StringsKt;
/* loaded from: classes2.dex */
public final class MessengerUtils {
public static final String EXTRA_APP_ID = "com.facebook.orca.extra.APPLICATION_ID";
public static final String EXTRA_EXTERNAL_URI = "com.facebook.orca.extra.EXTERNAL_URI";
public static final String EXTRA_IS_COMPOSE = "com.facebook.orca.extra.IS_COMPOSE";
public static final String EXTRA_IS_REPLY = "com.facebook.orca.extra.IS_REPLY";
public static final String EXTRA_METADATA = "com.facebook.orca.extra.METADATA";
public static final String EXTRA_PARTICIPANTS = "com.facebook.orca.extra.PARTICIPANTS";
public static final String EXTRA_PROTOCOL_VERSION = "com.facebook.orca.extra.PROTOCOL_VERSION";
public static final String EXTRA_REPLY_TOKEN_KEY = "com.facebook.orca.extra.REPLY_TOKEN";
public static final String EXTRA_THREAD_TOKEN_KEY = "com.facebook.orca.extra.THREAD_TOKEN";
public static final MessengerUtils INSTANCE = new MessengerUtils();
public static final String ORCA_THREAD_CATEGORY_20150314 = "com.facebook.orca.category.PLATFORM_THREAD_20150314";
public static final String PACKAGE_NAME = "com.facebook.orca";
public static final int PROTOCOL_VERSION_20150314 = 20150314;
private static final String TAG = "MessengerUtils";
private MessengerUtils() {
}
public final void shareToMessenger(Activity activity, int i, ShareToMessengerParams shareToMessengerParams) {
if (CrashShieldHandler.isObjectCrashing(this)) {
return;
}
try {
Intrinsics.checkNotNullParameter(activity, "activity");
Intrinsics.checkNotNullParameter(shareToMessengerParams, "shareToMessengerParams");
if (!hasMessengerInstalled(activity)) {
openMessengerInPlayStore(activity);
} else if (getAllAvailableProtocolVersions(activity).contains(Integer.valueOf(PROTOCOL_VERSION_20150314))) {
shareToMessenger20150314(activity, i, shareToMessengerParams);
} else {
openMessengerInPlayStore(activity);
}
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
}
}
private final void shareToMessenger20150314(Activity activity, int i, ShareToMessengerParams shareToMessengerParams) {
try {
Intent intent = new Intent("android.intent.action.SEND");
intent.setFlags(1);
intent.setPackage(PACKAGE_NAME);
intent.putExtra("android.intent.extra.STREAM", shareToMessengerParams.getUri());
intent.setType(shareToMessengerParams.getMimeType());
intent.putExtra(EXTRA_PROTOCOL_VERSION, PROTOCOL_VERSION_20150314);
intent.putExtra(EXTRA_APP_ID, FacebookSdk.getApplicationId());
intent.putExtra(EXTRA_METADATA, shareToMessengerParams.getMetaData());
intent.putExtra(EXTRA_EXTERNAL_URI, shareToMessengerParams.getExternalUri());
activity.startActivityForResult(intent, i);
} catch (ActivityNotFoundException unused) {
activity.startActivity(activity.getPackageManager().getLaunchIntentForPackage(PACKAGE_NAME));
}
}
public final MessengerThreadParams getMessengerThreadParamsForIntent(Intent intent) {
MessengerThreadParams.Origin origin;
if (CrashShieldHandler.isObjectCrashing(this)) {
return null;
}
try {
Intrinsics.checkNotNullParameter(intent, "intent");
Set<String> categories = intent.getCategories();
if (categories != null && categories.contains(ORCA_THREAD_CATEGORY_20150314)) {
Bundle appLinkExtras = AppLinks.getAppLinkExtras(intent);
String string = appLinkExtras == null ? null : appLinkExtras.getString(EXTRA_THREAD_TOKEN_KEY);
String string2 = appLinkExtras == null ? null : appLinkExtras.getString(EXTRA_METADATA);
String string3 = appLinkExtras == null ? null : appLinkExtras.getString(EXTRA_PARTICIPANTS);
Boolean valueOf = appLinkExtras == null ? null : Boolean.valueOf(appLinkExtras.getBoolean(EXTRA_IS_REPLY));
Boolean valueOf2 = appLinkExtras == null ? null : Boolean.valueOf(appLinkExtras.getBoolean(EXTRA_IS_COMPOSE));
Boolean bool = Boolean.TRUE;
if (Intrinsics.areEqual(valueOf, bool)) {
origin = MessengerThreadParams.Origin.REPLY_FLOW;
} else if (Intrinsics.areEqual(valueOf2, bool)) {
origin = MessengerThreadParams.Origin.COMPOSE_FLOW;
} else {
origin = MessengerThreadParams.Origin.UNKNOWN;
}
if (string != null && string2 != null) {
return new MessengerThreadParams(origin, string, string2, parseParticipants(string3));
}
}
return null;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
return null;
}
}
public final void finishShareToMessenger(Activity activity, ShareToMessengerParams shareToMessengerParams) {
Intrinsics.checkNotNullParameter(activity, "activity");
Intrinsics.checkNotNullParameter(shareToMessengerParams, "shareToMessengerParams");
Intent originalIntent = activity.getIntent();
Set<String> categories = originalIntent.getCategories();
if (categories == null) {
activity.setResult(0, null);
activity.finish();
return;
}
if (categories.contains(ORCA_THREAD_CATEGORY_20150314)) {
AppLinks appLinks = AppLinks.INSTANCE;
Intrinsics.checkNotNullExpressionValue(originalIntent, "originalIntent");
Bundle appLinkExtras = AppLinks.getAppLinkExtras(originalIntent);
Intent intent = new Intent();
if (appLinkExtras != null && categories.contains(ORCA_THREAD_CATEGORY_20150314)) {
intent.putExtra(EXTRA_PROTOCOL_VERSION, PROTOCOL_VERSION_20150314);
intent.putExtra(EXTRA_THREAD_TOKEN_KEY, appLinkExtras.getString(EXTRA_THREAD_TOKEN_KEY));
intent.setDataAndType(shareToMessengerParams.getUri(), shareToMessengerParams.getMimeType());
intent.setFlags(1);
intent.putExtra(EXTRA_APP_ID, FacebookSdk.getApplicationId());
intent.putExtra(EXTRA_METADATA, shareToMessengerParams.getMetaData());
intent.putExtra(EXTRA_EXTERNAL_URI, shareToMessengerParams.getExternalUri());
activity.setResult(-1, intent);
activity.finish();
return;
}
throw new RuntimeException();
}
activity.setResult(0, null);
activity.finish();
}
public final boolean hasMessengerInstalled(Context context) {
Intrinsics.checkNotNullParameter(context, "context");
return FacebookSignatureValidator.validateSignature(context, PACKAGE_NAME);
}
public final void openMessengerInPlayStore(Context context) {
if (CrashShieldHandler.isObjectCrashing(this)) {
return;
}
try {
Intrinsics.checkNotNullParameter(context, "context");
try {
startViewUri(context, "market://details?id=com.facebook.orca");
} catch (ActivityNotFoundException unused) {
startViewUri(context, "http://play.google.com/store/apps/details?id=com.facebook.orca");
}
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
}
}
private final Set<Integer> getAllAvailableProtocolVersions(Context context) {
ContentResolver contentResolver = context.getContentResolver();
HashSet hashSet = new HashSet();
Cursor query = contentResolver.query(Uri.parse("content://com.facebook.orca.provider.MessengerPlatformProvider/versions"), new String[]{"version"}, null, null, null);
if (query != null) {
try {
int columnIndex = query.getColumnIndex("version");
while (query.moveToNext()) {
hashSet.add(Integer.valueOf(query.getInt(columnIndex)));
}
Unit unit = Unit.INSTANCE;
CloseableKt.closeFinally(query, null);
} finally {
}
}
return hashSet;
}
private final void startViewUri(Context context, String str) {
context.startActivity(new Intent("android.intent.action.VIEW", Uri.parse(str)));
}
private final List<String> parseParticipants(String str) {
List split$default;
if (str == null || str.length() == 0) {
return CollectionsKt__CollectionsKt.emptyList();
}
split$default = StringsKt__StringsKt.split$default((CharSequence) str, new String[]{","}, false, 0, 6, (Object) null);
Object[] array = split$default.toArray(new String[0]);
if (array == null) {
throw new NullPointerException("null cannot be cast to non-null type kotlin.Array<T>");
}
String[] strArr = (String[]) array;
ArrayList arrayList = new ArrayList(strArr.length);
for (String str2 : strArr) {
int length = str2.length() - 1;
int i = 0;
boolean z = false;
while (i <= length) {
boolean z2 = Intrinsics.compare((int) str2.charAt(!z ? i : length), 32) <= 0;
if (z) {
if (!z2) {
break;
}
length--;
} else if (z2) {
i++;
} else {
z = true;
}
}
arrayList.add(str2.subSequence(i, length + 1).toString());
}
return arrayList;
}
}