Home | History | Annotate | Download | only in app
      1 /* //device/java/android/android/app/INotificationManager.aidl
      2 **
      3 ** Copyright 2007, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 
     18 package android.app;
     19 
     20 import android.app.ITransientNotification;
     21 import android.app.Notification;
     22 import android.app.NotificationChannel;
     23 import android.app.NotificationChannelGroup;
     24 import android.app.NotificationManager;
     25 import android.content.ComponentName;
     26 import android.content.Intent;
     27 import android.content.pm.ParceledListSlice;
     28 import android.net.Uri;
     29 import android.os.Bundle;
     30 import android.os.UserHandle;
     31 import android.service.notification.Adjustment;
     32 import android.service.notification.Condition;
     33 import android.service.notification.IConditionListener;
     34 import android.service.notification.IConditionProvider;
     35 import android.service.notification.INotificationListener;
     36 import android.service.notification.StatusBarNotification;
     37 import android.app.AutomaticZenRule;
     38 import android.service.notification.ZenModeConfig;
     39 
     40 /** {@hide} */
     41 interface INotificationManager
     42 {
     43     @UnsupportedAppUsage
     44     void cancelAllNotifications(String pkg, int userId);
     45 
     46     void clearData(String pkg, int uid, boolean fromApp);
     47     @UnsupportedAppUsage
     48     void enqueueToast(String pkg, ITransientNotification callback, int duration, int displayId);
     49     @UnsupportedAppUsage
     50     void cancelToast(String pkg, ITransientNotification callback);
     51     void finishToken(String pkg, ITransientNotification callback);
     52 
     53     void enqueueNotificationWithTag(String pkg, String opPkg, String tag, int id,
     54             in Notification notification, int userId);
     55     @UnsupportedAppUsage
     56     void cancelNotificationWithTag(String pkg, String tag, int id, int userId);
     57 
     58     void setShowBadge(String pkg, int uid, boolean showBadge);
     59     boolean canShowBadge(String pkg, int uid);
     60     void setNotificationsEnabledForPackage(String pkg, int uid, boolean enabled);
     61     /**
     62      * Updates the notification's enabled state. Additionally locks importance for all of the
     63      * notifications belonging to the app, such that future notifications aren't reconsidered for
     64      * blocking helper.
     65      */
     66     void setNotificationsEnabledWithImportanceLockForPackage(String pkg, int uid, boolean enabled);
     67 
     68     @UnsupportedAppUsage
     69     boolean areNotificationsEnabledForPackage(String pkg, int uid);
     70     boolean areNotificationsEnabled(String pkg);
     71     int getPackageImportance(String pkg);
     72 
     73     List<String> getAllowedAssistantAdjustments(String pkg);
     74     void allowAssistantAdjustment(String adjustmentType);
     75     void disallowAssistantAdjustment(String adjustmentType);
     76 
     77     boolean shouldHideSilentStatusIcons(String callingPkg);
     78     void setHideSilentStatusIcons(boolean hide);
     79 
     80     void setBubblesAllowed(String pkg, int uid, boolean allowed);
     81     boolean areBubblesAllowed(String pkg);
     82     boolean areBubblesAllowedForPackage(String pkg, int uid);
     83     boolean hasUserApprovedBubblesForPackage(String pkg, int uid);
     84 
     85     void createNotificationChannelGroups(String pkg, in ParceledListSlice channelGroupList);
     86     void createNotificationChannels(String pkg, in ParceledListSlice channelsList);
     87     void createNotificationChannelsForPackage(String pkg, int uid, in ParceledListSlice channelsList);
     88     ParceledListSlice getNotificationChannelGroupsForPackage(String pkg, int uid, boolean includeDeleted);
     89     NotificationChannelGroup getNotificationChannelGroupForPackage(String groupId, String pkg, int uid);
     90     NotificationChannelGroup getPopulatedNotificationChannelGroupForPackage(String pkg, int uid, String groupId, boolean includeDeleted);
     91     void updateNotificationChannelGroupForPackage(String pkg, int uid, in NotificationChannelGroup group);
     92     void updateNotificationChannelForPackage(String pkg, int uid, in NotificationChannel channel);
     93     NotificationChannel getNotificationChannel(String callingPkg, int userId, String pkg, String channelId);
     94     NotificationChannel getNotificationChannelForPackage(String pkg, int uid, String channelId, boolean includeDeleted);
     95     void deleteNotificationChannel(String pkg, String channelId);
     96     ParceledListSlice getNotificationChannels(String callingPkg, String targetPkg, int userId);
     97     ParceledListSlice getNotificationChannelsForPackage(String pkg, int uid, boolean includeDeleted);
     98     int getNumNotificationChannelsForPackage(String pkg, int uid, boolean includeDeleted);
     99     int getDeletedChannelCount(String pkg, int uid);
    100     int getBlockedChannelCount(String pkg, int uid);
    101     void deleteNotificationChannelGroup(String pkg, String channelGroupId);
    102     NotificationChannelGroup getNotificationChannelGroup(String pkg, String channelGroupId);
    103     ParceledListSlice getNotificationChannelGroups(String pkg);
    104     boolean onlyHasDefaultChannel(String pkg, int uid);
    105     int getBlockedAppCount(int userId);
    106     boolean areChannelsBypassingDnd();
    107     int getAppsBypassingDndCount(int uid);
    108     ParceledListSlice getNotificationChannelsBypassingDnd(String pkg, int userId);
    109     boolean isPackagePaused(String pkg);
    110 
    111     // TODO: Remove this when callers have been migrated to the equivalent
    112     // INotificationListener method.
    113     @UnsupportedAppUsage
    114     StatusBarNotification[] getActiveNotifications(String callingPkg);
    115     @UnsupportedAppUsage
    116     StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count);
    117 
    118     void registerListener(in INotificationListener listener, in ComponentName component, int userid);
    119     void unregisterListener(in INotificationListener listener, int userid);
    120 
    121     void cancelNotificationFromListener(in INotificationListener token, String pkg, String tag, int id);
    122     void cancelNotificationsFromListener(in INotificationListener token, in String[] keys);
    123 
    124     void snoozeNotificationUntilContextFromListener(in INotificationListener token, String key, String snoozeCriterionId);
    125     void snoozeNotificationUntilFromListener(in INotificationListener token, String key, long until);
    126 
    127     void requestBindListener(in ComponentName component);
    128     void requestUnbindListener(in INotificationListener token);
    129     void requestBindProvider(in ComponentName component);
    130     void requestUnbindProvider(in IConditionProvider token);
    131 
    132     void setNotificationsShownFromListener(in INotificationListener token, in String[] keys);
    133 
    134     ParceledListSlice getActiveNotificationsFromListener(in INotificationListener token, in String[] keys, int trim);
    135     ParceledListSlice getSnoozedNotificationsFromListener(in INotificationListener token, int trim);
    136     void clearRequestedListenerHints(in INotificationListener token);
    137     void requestHintsFromListener(in INotificationListener token, int hints);
    138     int getHintsFromListener(in INotificationListener token);
    139     void requestInterruptionFilterFromListener(in INotificationListener token, int interruptionFilter);
    140     int getInterruptionFilterFromListener(in INotificationListener token);
    141     void setOnNotificationPostedTrimFromListener(in INotificationListener token, int trim);
    142     void setInterruptionFilter(String pkg, int interruptionFilter);
    143 
    144     void updateNotificationChannelGroupFromPrivilegedListener(in INotificationListener token, String pkg, in UserHandle user, in NotificationChannelGroup group);
    145     void updateNotificationChannelFromPrivilegedListener(in INotificationListener token, String pkg, in UserHandle user, in NotificationChannel channel);
    146     ParceledListSlice getNotificationChannelsFromPrivilegedListener(in INotificationListener token, String pkg, in UserHandle user);
    147     ParceledListSlice getNotificationChannelGroupsFromPrivilegedListener(in INotificationListener token, String pkg, in UserHandle user);
    148 
    149     void applyEnqueuedAdjustmentFromAssistant(in INotificationListener token, in Adjustment adjustment);
    150     void applyAdjustmentFromAssistant(in INotificationListener token, in Adjustment adjustment);
    151     void applyAdjustmentsFromAssistant(in INotificationListener token, in List<Adjustment> adjustments);
    152     void unsnoozeNotificationFromAssistant(in INotificationListener token, String key);
    153 
    154     ComponentName getEffectsSuppressor();
    155     boolean matchesCallFilter(in Bundle extras);
    156     boolean isSystemConditionProviderEnabled(String path);
    157 
    158     boolean isNotificationListenerAccessGranted(in ComponentName listener);
    159     boolean isNotificationListenerAccessGrantedForUser(in ComponentName listener, int userId);
    160     boolean isNotificationAssistantAccessGranted(in ComponentName assistant);
    161     void setNotificationListenerAccessGranted(in ComponentName listener, boolean enabled);
    162     void setNotificationAssistantAccessGranted(in ComponentName assistant, boolean enabled);
    163     void setNotificationListenerAccessGrantedForUser(in ComponentName listener, int userId, boolean enabled);
    164     void setNotificationAssistantAccessGrantedForUser(in ComponentName assistant, int userId, boolean enabled);
    165     List<String> getEnabledNotificationListenerPackages();
    166     List<ComponentName> getEnabledNotificationListeners(int userId);
    167     ComponentName getAllowedNotificationAssistantForUser(int userId);
    168     ComponentName getAllowedNotificationAssistant();
    169 
    170     @UnsupportedAppUsage
    171     int getZenMode();
    172     @UnsupportedAppUsage
    173     ZenModeConfig getZenModeConfig();
    174     NotificationManager.Policy getConsolidatedNotificationPolicy();
    175     oneway void setZenMode(int mode, in Uri conditionId, String reason);
    176     oneway void notifyConditions(String pkg, in IConditionProvider provider, in Condition[] conditions);
    177     boolean isNotificationPolicyAccessGranted(String pkg);
    178     NotificationManager.Policy getNotificationPolicy(String pkg);
    179     void setNotificationPolicy(String pkg, in NotificationManager.Policy policy);
    180     boolean isNotificationPolicyAccessGrantedForPackage(String pkg);
    181     void setNotificationPolicyAccessGranted(String pkg, boolean granted);
    182     void setNotificationPolicyAccessGrantedForUser(String pkg, int userId, boolean granted);
    183     AutomaticZenRule getAutomaticZenRule(String id);
    184     List<ZenModeConfig.ZenRule> getZenRules();
    185     String addAutomaticZenRule(in AutomaticZenRule automaticZenRule);
    186     boolean updateAutomaticZenRule(String id, in AutomaticZenRule automaticZenRule);
    187     boolean removeAutomaticZenRule(String id);
    188     boolean removeAutomaticZenRules(String packageName);
    189     int getRuleInstanceCount(in ComponentName owner);
    190     void setAutomaticZenRuleState(String id, in Condition condition);
    191 
    192     byte[] getBackupPayload(int user);
    193     void applyRestore(in byte[] payload, int user);
    194 
    195     ParceledListSlice getAppActiveNotifications(String callingPkg, int userId);
    196 
    197     void setNotificationDelegate(String callingPkg, String delegate);
    198     String getNotificationDelegate(String callingPkg);
    199     boolean canNotifyAsPackage(String callingPkg, String targetPkg, int userId);
    200 
    201     void setPrivateNotificationsAllowed(boolean allow);
    202     boolean getPrivateNotificationsAllowed();
    203 }
    204