Initial import of ADIF API reverse-engineering toolkit
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
package com.google.firebase.messaging;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Binder;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import com.google.android.gms.common.util.PlatformVersion;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import java.util.concurrent.Executor;
|
||||
import n.ExecutorC0507a;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ProxyNotificationInitializer {
|
||||
private static final String MANIFEST_METADATA_NOTIFICATION_DELEGATION_ENABLED = "firebase_messaging_notification_delegation_enabled";
|
||||
|
||||
private ProxyNotificationInitializer() {
|
||||
}
|
||||
|
||||
private static boolean allowedToUse(Context context) {
|
||||
return Binder.getCallingUid() == context.getApplicationInfo().uid;
|
||||
}
|
||||
|
||||
public static void initialize(Context context) {
|
||||
if (ProxyNotificationPreferences.isProxyNotificationInitialized(context)) {
|
||||
return;
|
||||
}
|
||||
setEnableProxyNotification(new ExecutorC0507a(1), context, shouldEnableProxyNotification(context));
|
||||
}
|
||||
|
||||
public static boolean isProxyNotificationEnabled(Context context) {
|
||||
if (!PlatformVersion.isAtLeastQ()) {
|
||||
if (Log.isLoggable(Constants.TAG, 3)) {
|
||||
Log.d(Constants.TAG, "Platform doesn't support proxying.");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (!allowedToUse(context)) {
|
||||
Log.e(Constants.TAG, "error retrieving notification delegate for package " + context.getPackageName());
|
||||
return false;
|
||||
}
|
||||
if (!"com.google.android.gms".equals(((NotificationManager) context.getSystemService(NotificationManager.class)).getNotificationDelegate())) {
|
||||
return false;
|
||||
}
|
||||
if (!Log.isLoggable(Constants.TAG, 3)) {
|
||||
return true;
|
||||
}
|
||||
Log.d(Constants.TAG, "GMS core is set for proxying");
|
||||
return true;
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public static /* synthetic */ void lambda$setEnableProxyNotification$0(Context context, boolean z3, TaskCompletionSource taskCompletionSource) {
|
||||
try {
|
||||
if (!allowedToUse(context)) {
|
||||
Log.e(Constants.TAG, "error configuring notification delegate for package " + context.getPackageName());
|
||||
} else {
|
||||
ProxyNotificationPreferences.setProxyNotificationsInitialized(context, true);
|
||||
NotificationManager notificationManager = (NotificationManager) context.getSystemService(NotificationManager.class);
|
||||
if (z3) {
|
||||
notificationManager.setNotificationDelegate("com.google.android.gms");
|
||||
} else if ("com.google.android.gms".equals(notificationManager.getNotificationDelegate())) {
|
||||
notificationManager.setNotificationDelegate(null);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
taskCompletionSource.trySetResult(null);
|
||||
}
|
||||
}
|
||||
|
||||
@TargetApi(29)
|
||||
public static Task<Void> setEnableProxyNotification(Executor executor, final Context context, final boolean z3) {
|
||||
if (!PlatformVersion.isAtLeastQ()) {
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
final TaskCompletionSource taskCompletionSource = new TaskCompletionSource();
|
||||
executor.execute(new Runnable() { // from class: com.google.firebase.messaging.l
|
||||
@Override // java.lang.Runnable
|
||||
public final void run() {
|
||||
ProxyNotificationInitializer.lambda$setEnableProxyNotification$0(context, z3, taskCompletionSource);
|
||||
}
|
||||
});
|
||||
return taskCompletionSource.getTask();
|
||||
}
|
||||
|
||||
private static boolean shouldEnableProxyNotification(Context context) {
|
||||
ApplicationInfo applicationInfo;
|
||||
Bundle bundle;
|
||||
try {
|
||||
Context applicationContext = context.getApplicationContext();
|
||||
PackageManager packageManager = applicationContext.getPackageManager();
|
||||
if (packageManager == null || (applicationInfo = packageManager.getApplicationInfo(applicationContext.getPackageName(), 128)) == null || (bundle = applicationInfo.metaData) == null || !bundle.containsKey(MANIFEST_METADATA_NOTIFICATION_DELEGATION_ENABLED)) {
|
||||
return true;
|
||||
}
|
||||
return applicationInfo.metaData.getBoolean(MANIFEST_METADATA_NOTIFICATION_DELEGATION_ENABLED);
|
||||
} catch (PackageManager.NameNotFoundException unused) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user