.class public final Landroidx/core/app/NotificationManagerCompat; .super Ljava/lang/Object; .source "NotificationManagerCompat.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Landroidx/core/app/NotificationManagerCompat$CancelTask;, Landroidx/core/app/NotificationManagerCompat$NotifyTask;, Landroidx/core/app/NotificationManagerCompat$Task;, Landroidx/core/app/NotificationManagerCompat$ServiceConnectedEvent;, Landroidx/core/app/NotificationManagerCompat$SideChannelManager; } .end annotation # static fields .field public static final ACTION_BIND_SIDE_CHANNEL:Ljava/lang/String; = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL" .field private static final CHECK_OP_NO_THROW:Ljava/lang/String; = "checkOpNoThrow" .field public static final EXTRA_USE_SIDE_CHANNEL:Ljava/lang/String; = "android.support.useSideChannel" .field public static final IMPORTANCE_DEFAULT:I = 0x3 .field public static final IMPORTANCE_HIGH:I = 0x4 .field public static final IMPORTANCE_LOW:I = 0x2 .field public static final IMPORTANCE_MAX:I = 0x5 .field public static final IMPORTANCE_MIN:I = 0x1 .field public static final IMPORTANCE_NONE:I = 0x0 .field public static final IMPORTANCE_UNSPECIFIED:I = -0x3e8 .field static final MAX_SIDE_CHANNEL_SDK_VERSION:I = 0x13 .field private static final OP_POST_NOTIFICATION:Ljava/lang/String; = "OP_POST_NOTIFICATION" .field private static final SETTING_ENABLED_NOTIFICATION_LISTENERS:Ljava/lang/String; = "enabled_notification_listeners" .field private static final SIDE_CHANNEL_RETRY_BASE_INTERVAL_MS:I = 0x3e8 .field private static final SIDE_CHANNEL_RETRY_MAX_COUNT:I = 0x6 .field private static final TAG:Ljava/lang/String; = "NotifManCompat" .field private static sEnabledNotificationListenerPackages:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set<", "Ljava/lang/String;", ">;" } .end annotation .end field .field private static sEnabledNotificationListeners:Ljava/lang/String; .field private static final sEnabledNotificationListenersLock:Ljava/lang/Object; .field private static final sLock:Ljava/lang/Object; .field private static sSideChannelManager:Landroidx/core/app/NotificationManagerCompat$SideChannelManager; # instance fields .field private final mContext:Landroid/content/Context; .field private final mNotificationManager:Landroid/app/NotificationManager; # direct methods .method static constructor ()V .registers 1 .line 97 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()V sput-object v0, Landroidx/core/app/NotificationManagerCompat;->sEnabledNotificationListenersLock:Ljava/lang/Object; .line 101 new-instance v0, Ljava/util/HashSet; invoke-direct {v0}, Ljava/util/HashSet;->()V sput-object v0, Landroidx/core/app/NotificationManagerCompat;->sEnabledNotificationListenerPackages:Ljava/util/Set; .line 106 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()V sput-object v0, Landroidx/core/app/NotificationManagerCompat;->sLock:Ljava/lang/Object; return-void .end method .method private constructor (Landroid/content/Context;)V .registers 3 .line 156 invoke-direct {p0}, Ljava/lang/Object;->()V .line 157 iput-object p1, p0, Landroidx/core/app/NotificationManagerCompat;->mContext:Landroid/content/Context; .line 158 const-string v0, "notification" invoke-virtual {p1, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Landroid/app/NotificationManager; iput-object p1, p0, Landroidx/core/app/NotificationManagerCompat;->mNotificationManager:Landroid/app/NotificationManager; return-void .end method .method public static from(Landroid/content/Context;)Landroidx/core/app/NotificationManagerCompat; .registers 2 .line 153 new-instance v0, Landroidx/core/app/NotificationManagerCompat; invoke-direct {v0, p0}, Landroidx/core/app/NotificationManagerCompat;->(Landroid/content/Context;)V return-object v0 .end method .method public static getEnabledListenerPackages(Landroid/content/Context;)Ljava/util/Set; .registers 7 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/content/Context;", ")", "Ljava/util/Set<", "Ljava/lang/String;", ">;" } .end annotation .line 264 invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver; move-result-object p0 const-string v0, "enabled_notification_listeners" .line 263 invoke-static {p0, v0}, Landroid/provider/Settings$Secure;->getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String; move-result-object p0 .line 266 sget-object v0, Landroidx/core/app/NotificationManagerCompat;->sEnabledNotificationListenersLock:Ljava/lang/Object; monitor-enter v0 if-eqz p0, :cond_3e .line 268 :try_start_f sget-object v1, Landroidx/core/app/NotificationManagerCompat;->sEnabledNotificationListeners:Ljava/lang/String; .line 269 invoke-virtual {p0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-nez v1, :cond_3e .line 270 const-string v1, ":" const/4 v2, -0x1 invoke-virtual {p0, v1, v2}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String; move-result-object v1 .line 271 new-instance v2, Ljava/util/HashSet; array-length v3, v1 invoke-direct {v2, v3}, Ljava/util/HashSet;->(I)V .line 272 array-length v3, v1 const/4 v4, 0x0 :goto_26 if-ge v4, v3, :cond_3a aget-object v5, v1, v4 .line 273 invoke-static {v5}, Landroid/content/ComponentName;->unflattenFromString(Ljava/lang/String;)Landroid/content/ComponentName; move-result-object v5 if-eqz v5, :cond_37 .line 275 invoke-virtual {v5}, Landroid/content/ComponentName;->getPackageName()Ljava/lang/String; move-result-object v5 invoke-interface {v2, v5}, Ljava/util/Set;->add(Ljava/lang/Object;)Z :cond_37 add-int/lit8 v4, v4, 0x1 goto :goto_26 .line 278 :cond_3a sput-object v2, Landroidx/core/app/NotificationManagerCompat;->sEnabledNotificationListenerPackages:Ljava/util/Set; .line 279 sput-object p0, Landroidx/core/app/NotificationManagerCompat;->sEnabledNotificationListeners:Ljava/lang/String; .line 281 :cond_3e sget-object p0, Landroidx/core/app/NotificationManagerCompat;->sEnabledNotificationListenerPackages:Ljava/util/Set; monitor-exit v0 return-object p0 :catchall_42 move-exception p0 .line 282 monitor-exit v0 :try_end_44 .catchall {:try_start_f .. :try_end_44} :catchall_42 throw p0 .end method .method private pushSideChannelQueue(Landroidx/core/app/NotificationManagerCompat$Task;)V .registers 5 .line 297 sget-object v0, Landroidx/core/app/NotificationManagerCompat;->sLock:Ljava/lang/Object; monitor-enter v0 .line 298 :try_start_3 sget-object v1, Landroidx/core/app/NotificationManagerCompat;->sSideChannelManager:Landroidx/core/app/NotificationManagerCompat$SideChannelManager; if-nez v1, :cond_14 .line 299 new-instance v1, Landroidx/core/app/NotificationManagerCompat$SideChannelManager; iget-object v2, p0, Landroidx/core/app/NotificationManagerCompat;->mContext:Landroid/content/Context; invoke-virtual {v2}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; move-result-object v2 invoke-direct {v1, v2}, Landroidx/core/app/NotificationManagerCompat$SideChannelManager;->(Landroid/content/Context;)V sput-object v1, Landroidx/core/app/NotificationManagerCompat;->sSideChannelManager:Landroidx/core/app/NotificationManagerCompat$SideChannelManager; .line 301 :cond_14 sget-object v1, Landroidx/core/app/NotificationManagerCompat;->sSideChannelManager:Landroidx/core/app/NotificationManagerCompat$SideChannelManager; invoke-virtual {v1, p1}, Landroidx/core/app/NotificationManagerCompat$SideChannelManager;->queueTask(Landroidx/core/app/NotificationManagerCompat$Task;)V .line 302 monitor-exit v0 return-void :catchall_1b move-exception p1 monitor-exit v0 :try_end_1d .catchall {:try_start_3 .. :try_end_1d} :catchall_1b throw p1 .end method .method private static useSideChannelForNotification(Landroid/app/Notification;)Z .registers 2 .line 289 invoke-static {p0}, Landroidx/core/app/NotificationCompat;->getExtras(Landroid/app/Notification;)Landroid/os/Bundle; move-result-object p0 if-eqz p0, :cond_10 .line 290 const-string v0, "android.support.useSideChannel" invoke-virtual {p0, v0}, Landroid/os/Bundle;->getBoolean(Ljava/lang/String;)Z move-result p0 if-eqz p0, :cond_10 const/4 p0, 0x1 goto :goto_11 :cond_10 const/4 p0, 0x0 :goto_11 return p0 .end method # virtual methods .method public areNotificationsEnabled()Z .registers 2 .line 221 iget-object v0, p0, Landroidx/core/app/NotificationManagerCompat;->mNotificationManager:Landroid/app/NotificationManager; invoke-virtual {v0}, Landroid/app/NotificationManager;->areNotificationsEnabled()Z move-result v0 return v0 .end method .method public cancel(I)V .registers 3 const/4 v0, 0x0 .line 167 invoke-virtual {p0, v0, p1}, Landroidx/core/app/NotificationManagerCompat;->cancel(Ljava/lang/String;I)V return-void .end method .method public cancel(Ljava/lang/String;I)V .registers 4 .line 176 iget-object v0, p0, Landroidx/core/app/NotificationManagerCompat;->mNotificationManager:Landroid/app/NotificationManager; invoke-virtual {v0, p1, p2}, Landroid/app/NotificationManager;->cancel(Ljava/lang/String;I)V return-void .end method .method public cancelAll()V .registers 2 .line 184 iget-object v0, p0, Landroidx/core/app/NotificationManagerCompat;->mNotificationManager:Landroid/app/NotificationManager; invoke-virtual {v0}, Landroid/app/NotificationManager;->cancelAll()V return-void .end method .method public getImportance()I .registers 2 .line 252 iget-object v0, p0, Landroidx/core/app/NotificationManagerCompat;->mNotificationManager:Landroid/app/NotificationManager; invoke-virtual {v0}, Landroid/app/NotificationManager;->getImportance()I move-result v0 return v0 .end method .method public notify(ILandroid/app/Notification;)V .registers 4 const/4 v0, 0x0 .line 196 invoke-virtual {p0, v0, p1, p2}, Landroidx/core/app/NotificationManagerCompat;->notify(Ljava/lang/String;ILandroid/app/Notification;)V return-void .end method .method public notify(Ljava/lang/String;ILandroid/app/Notification;)V .registers 6 .line 206 invoke-static {p3}, Landroidx/core/app/NotificationManagerCompat;->useSideChannelForNotification(Landroid/app/Notification;)Z move-result v0 if-eqz v0, :cond_1a .line 207 new-instance v0, Landroidx/core/app/NotificationManagerCompat$NotifyTask; iget-object v1, p0, Landroidx/core/app/NotificationManagerCompat;->mContext:Landroid/content/Context; invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1, p2, p1, p3}, Landroidx/core/app/NotificationManagerCompat$NotifyTask;->(Ljava/lang/String;ILjava/lang/String;Landroid/app/Notification;)V invoke-direct {p0, v0}, Landroidx/core/app/NotificationManagerCompat;->pushSideChannelQueue(Landroidx/core/app/NotificationManagerCompat$Task;)V .line 210 iget-object p3, p0, Landroidx/core/app/NotificationManagerCompat;->mNotificationManager:Landroid/app/NotificationManager; invoke-virtual {p3, p1, p2}, Landroid/app/NotificationManager;->cancel(Ljava/lang/String;I)V goto :goto_1f .line 212 :cond_1a iget-object v0, p0, Landroidx/core/app/NotificationManagerCompat;->mNotificationManager:Landroid/app/NotificationManager; invoke-virtual {v0, p1, p2, p3}, Landroid/app/NotificationManager;->notify(Ljava/lang/String;ILandroid/app/Notification;)V :goto_1f return-void .end method