Files
adif-api-reverse-engineering/apk_decompiled/sources/com/google/firebase/messaging/Metadata.java

143 lines
5.0 KiB
Java

package com.google.firebase.messaging;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.util.Log;
import com.google.android.gms.common.util.PlatformVersion;
import com.google.firebase.FirebaseApp;
import java.util.List;
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes3.dex */
public class Metadata {
private static final String ACTION_C2DM_REGISTER = "com.google.android.c2dm.intent.REGISTER";
private static final String ACTION_IID_TOKEN_REQUEST = "com.google.iid.TOKEN_REQUEST";
static final int GMSCORE_NOT_FOUND = 0;
private static final String GMSCORE_SEND_PERMISSION = "com.google.android.c2dm.permission.SEND";
static final String GMS_PACKAGE = "com.google.android.gms";
static final int IID_VIA_RECEIVER = 2;
static final int IID_VIA_SERVICE = 1;
private String appVersionCode;
private String appVersionName;
private final Context context;
private int gmsVersionCode;
private int iidImplementation = 0;
public Metadata(Context context) {
this.context = context;
}
public static String getDefaultSenderId(FirebaseApp firebaseApp) {
String gcmSenderId = firebaseApp.getOptions().getGcmSenderId();
if (gcmSenderId != null) {
return gcmSenderId;
}
String applicationId = firebaseApp.getOptions().getApplicationId();
if (!applicationId.startsWith("1:")) {
return applicationId;
}
String[] split = applicationId.split(":");
if (split.length < 2) {
return null;
}
String str = split[1];
if (str.isEmpty()) {
return null;
}
return str;
}
private PackageInfo getPackageInfo(String str) {
try {
return this.context.getPackageManager().getPackageInfo(str, 0);
} catch (PackageManager.NameNotFoundException e4) {
Log.w(Constants.TAG, "Failed to find package " + e4);
return null;
}
}
private synchronized void populateAppVersionInfo() {
PackageInfo packageInfo = getPackageInfo(this.context.getPackageName());
if (packageInfo != null) {
this.appVersionCode = Integer.toString(packageInfo.versionCode);
this.appVersionName = packageInfo.versionName;
}
}
public synchronized String getAppVersionCode() {
try {
if (this.appVersionCode == null) {
populateAppVersionInfo();
}
} catch (Throwable th) {
throw th;
}
return this.appVersionCode;
}
public synchronized String getAppVersionName() {
try {
if (this.appVersionName == null) {
populateAppVersionInfo();
}
} catch (Throwable th) {
throw th;
}
return this.appVersionName;
}
public synchronized int getGmsVersionCode() {
PackageInfo packageInfo;
try {
if (this.gmsVersionCode == 0 && (packageInfo = getPackageInfo("com.google.android.gms")) != null) {
this.gmsVersionCode = packageInfo.versionCode;
}
} catch (Throwable th) {
throw th;
}
return this.gmsVersionCode;
}
public synchronized int getIidImplementation() {
int i = this.iidImplementation;
if (i != 0) {
return i;
}
PackageManager packageManager = this.context.getPackageManager();
if (packageManager.checkPermission(GMSCORE_SEND_PERMISSION, "com.google.android.gms") == -1) {
Log.e(Constants.TAG, "Google Play services missing or without correct permission.");
return 0;
}
if (!PlatformVersion.isAtLeastO()) {
Intent intent = new Intent(ACTION_C2DM_REGISTER);
intent.setPackage("com.google.android.gms");
List<ResolveInfo> queryIntentServices = packageManager.queryIntentServices(intent, 0);
if (queryIntentServices != null && queryIntentServices.size() > 0) {
this.iidImplementation = 1;
return 1;
}
}
Intent intent2 = new Intent(ACTION_IID_TOKEN_REQUEST);
intent2.setPackage("com.google.android.gms");
List<ResolveInfo> queryBroadcastReceivers = packageManager.queryBroadcastReceivers(intent2, 0);
if (queryBroadcastReceivers != null && queryBroadcastReceivers.size() > 0) {
this.iidImplementation = 2;
return 2;
}
Log.w(Constants.TAG, "Failed to resolve IID implementation package, falling back");
if (PlatformVersion.isAtLeastO()) {
this.iidImplementation = 2;
} else {
this.iidImplementation = 1;
}
return this.iidImplementation;
}
public boolean isGmscorePresent() {
return getIidImplementation() != 0;
}
}