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