107 lines
4.7 KiB
Java
107 lines
4.7 KiB
Java
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;
|
|
}
|
|
}
|
|
}
|