blob: 4d5f67b0637e2a533f834f3f90c5b470697b0ee2 [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001/* //device/java/android/android/app/INotificationManager.aidl
2**
3** Copyright 2007, The Android Open Source Project
4**
Geoffrey Pitsche75a66e2016-11-22 11:12:11 -05005** 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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08008**
Geoffrey Pitsche75a66e2016-11-22 11:12:11 -05009** http://www.apache.org/licenses/LICENSE-2.0
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080010**
Geoffrey Pitsche75a66e2016-11-22 11:12:11 -050011** 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
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080015** limitations under the License.
16*/
17
18package android.app;
19
Geoffrey Pitsche75a66e2016-11-22 11:12:11 -050020import android.app.IOnNotificationChannelCreatedListener;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080021import android.app.ITransientNotification;
22import android.app.Notification;
Julia Reynoldsb5e44b72016-08-16 15:00:25 -040023import android.app.NotificationChannel;
John Spurlock1fc476d2015-04-14 16:05:20 -040024import android.app.NotificationManager;
Daniel Sandler5feceeb2013-03-22 18:29:23 -070025import android.content.ComponentName;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080026import android.content.Intent;
Christoph Studercee44ba2014-05-20 18:36:43 +020027import android.content.pm.ParceledListSlice;
John Spurlocke77bb362014-04-26 10:24:59 -040028import android.net.Uri;
John Spurlock2b122f42014-08-27 16:29:47 -040029import android.os.Bundle;
Julia Reynoldse46bb372016-03-17 11:05:58 -040030import android.service.notification.Adjustment;
John Spurlock7340fc82014-04-24 18:50:12 -040031import android.service.notification.Condition;
John Spurlocke77bb362014-04-26 10:24:59 -040032import android.service.notification.IConditionListener;
John Spurlock7340fc82014-04-24 18:50:12 -040033import android.service.notification.IConditionProvider;
Daniel Sandler5feceeb2013-03-22 18:29:23 -070034import android.service.notification.INotificationListener;
John Spurlocke77bb362014-04-26 10:24:59 -040035import android.service.notification.StatusBarNotification;
Julia Reynoldsa47a27f2015-08-24 08:31:47 -040036import android.app.AutomaticZenRule;
John Spurlock056c5192014-04-20 21:52:01 -040037import android.service.notification.ZenModeConfig;
Daniel Sandlerfde19b12013-01-17 00:21:05 -050038
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080039/** {@hide} */
40interface INotificationManager
41{
Dianne Hackborn41203752012-08-31 14:05:51 -070042 void cancelAllNotifications(String pkg, int userId);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080043
44 void enqueueToast(String pkg, ITransientNotification callback, int duration);
45 void cancelToast(String pkg, ITransientNotification callback);
Christoph Studer8fd7f1e2014-04-11 17:35:05 -040046 void enqueueNotificationWithTag(String pkg, String opPkg, String tag, int id,
Dianne Hackborn41203752012-08-31 14:05:51 -070047 in Notification notification, inout int[] idReceived, int userId);
48 void cancelNotificationWithTag(String pkg, String tag, int id, int userId);
Daniel Sandler0da673f2012-04-11 12:33:16 -040049
Daniel Sandler4a900ac2013-01-30 14:04:10 -050050 void setNotificationsEnabledForPackage(String pkg, int uid, boolean enabled);
51 boolean areNotificationsEnabledForPackage(String pkg, int uid);
Julia Reynolds81afbcd2016-02-09 14:54:08 -050052 boolean areNotificationsEnabled(String pkg);
Julia Reynoldsef37f282016-02-12 09:11:27 -050053 int getPackageImportance(String pkg);
Chris Wren3ad4e3a2014-09-02 17:23:51 -040054
Geoffrey Pitsche75a66e2016-11-22 11:12:11 -050055 void createNotificationChannel(String pkg, in NotificationChannel channel,
56 in IOnNotificationChannelCreatedListener listener);
Julia Reynoldsb5e44b72016-08-16 15:00:25 -040057 void updateNotificationChannelForPackage(String pkg, int uid, in NotificationChannel channel);
58 NotificationChannel getNotificationChannel(String pkg, String channelId);
59 NotificationChannel getNotificationChannelForPackage(String pkg, int uid, String channelId);
60 void deleteNotificationChannel(String pkg, String channelId);
61 ParceledListSlice getNotificationChannels(String pkg);
62 ParceledListSlice getNotificationChannelsForPackage(String pkg, int uid);
63
Christoph Studercee44ba2014-05-20 18:36:43 +020064 // TODO: Remove this when callers have been migrated to the equivalent
65 // INotificationListener method.
Daniel Sandlerfde19b12013-01-17 00:21:05 -050066 StatusBarNotification[] getActiveNotifications(String callingPkg);
Daniel Sandler78d0d252013-02-12 08:14:52 -050067 StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count);
Daniel Sandler09a247e2013-02-14 10:24:17 -050068
Chris Wren0efdb882016-03-01 17:17:47 -050069 void registerListener(in INotificationListener listener, in ComponentName component, int userid);
Daniel Sandler09a247e2013-02-14 10:24:17 -050070 void unregisterListener(in INotificationListener listener, int userid);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080071
Daniel Sandlere6f7f2e2013-04-25 15:44:16 -040072 void cancelNotificationFromListener(in INotificationListener token, String pkg, String tag, int id);
John Spurlocka4294292014-03-24 18:02:32 -040073 void cancelNotificationsFromListener(in INotificationListener token, in String[] keys);
Daniel Sandler25cf8ce2013-04-24 15:34:57 -040074
Julia Reynoldsb6c1f992016-11-22 09:26:46 -050075
76 void snoozeNotificationUntilFromListener(in INotificationListener token, String key, long until);
77 void snoozeNotificationFromListener(in INotificationListener token, String key);
78 void unsnoozeNotificationFromListener(in INotificationListener token, String key);
Julia Reynolds72f1cbb2016-09-19 14:57:31 -040079
Chris Wrenab41eec2016-01-04 18:01:27 -050080 void requestBindListener(in ComponentName component);
81 void requestUnbindListener(in INotificationListener token);
Julia Reynolds38e6ca42016-08-08 08:38:09 -040082 void requestBindProvider(in ComponentName component);
83 void requestUnbindProvider(in IConditionProvider token);
Chris Wrenab41eec2016-01-04 18:01:27 -050084
Amith Yamasanif47e51e2015-04-17 10:02:15 -070085 void setNotificationsShownFromListener(in INotificationListener token, in String[] keys);
86
Christoph Studerb82bc782014-08-20 14:29:43 +020087 ParceledListSlice getActiveNotificationsFromListener(in INotificationListener token, in String[] keys, int trim);
John Spurlockd8afe3c2014-08-01 14:04:07 -040088 void requestHintsFromListener(in INotificationListener token, int hints);
89 int getHintsFromListener(in INotificationListener token);
Christoph Studer85a384b2014-08-27 20:16:15 +020090 void requestInterruptionFilterFromListener(in INotificationListener token, int interruptionFilter);
91 int getInterruptionFilterFromListener(in INotificationListener token);
Christoph Studerb82bc782014-08-20 14:29:43 +020092 void setOnNotificationPostedTrimFromListener(in INotificationListener token, int trim);
John Spurlock80774932015-05-07 17:38:50 -040093 void setInterruptionFilter(String pkg, int interruptionFilter);
John Spurlock056c5192014-04-20 21:52:01 -040094
Julia Reynolds4b82f6d2017-01-04 10:47:41 -050095 void applyEnqueuedAdjustmentFromAssistant(in INotificationListener token, in Adjustment adjustment);
Julia Reynolds52e64d02016-12-09 15:36:12 -050096 void applyAdjustmentFromAssistant(in INotificationListener token, in Adjustment adjustment);
97 void applyAdjustmentsFromAssistant(in INotificationListener token, in List<Adjustment> adjustments);
98 void createNotificationChannelFromAssistant(in INotificationListener token, String pkg, in NotificationChannel channel);
99 void updateNotificationChannelFromAssistant(in INotificationListener token, String pkg, in NotificationChannel channel);
100 void deleteNotificationChannelFromAssistant(in INotificationListener token, String pkg, String channelId);
101 ParceledListSlice getNotificationChannelsFromAssistant(in INotificationListener token, String pkg);
Chris Wren51017d02015-12-15 15:34:46 -0500102
John Spurlockb4782522014-08-22 14:54:46 -0400103 ComponentName getEffectsSuppressor();
John Spurlock2b122f42014-08-27 16:29:47 -0400104 boolean matchesCallFilter(in Bundle extras);
John Spurlock530052a2014-11-30 16:26:19 -0500105 boolean isSystemConditionProviderEnabled(String path);
John Spurlockb4782522014-08-22 14:54:46 -0400106
John Spurlockb2278d62015-04-07 12:47:12 -0400107 int getZenMode();
John Spurlock056c5192014-04-20 21:52:01 -0400108 ZenModeConfig getZenModeConfig();
John Spurlockb2278d62015-04-07 12:47:12 -0400109 oneway void setZenMode(int mode, in Uri conditionId, String reason);
John Spurlocke77bb362014-04-26 10:24:59 -0400110 oneway void notifyConditions(String pkg, in IConditionProvider provider, in Condition[] conditions);
John Spurlock80774932015-05-07 17:38:50 -0400111 boolean isNotificationPolicyAccessGranted(String pkg);
112 NotificationManager.Policy getNotificationPolicy(String pkg);
113 void setNotificationPolicy(String pkg, in NotificationManager.Policy policy);
114 String[] getPackagesRequestingNotificationPolicyAccess();
115 boolean isNotificationPolicyAccessGrantedForPackage(String pkg);
116 void setNotificationPolicyAccessGranted(String pkg, boolean granted);
Julia Reynolds4fe98d62015-10-06 16:23:41 -0400117 AutomaticZenRule getAutomaticZenRule(String id);
Julia Reynolds361e82d32016-02-26 18:19:49 -0500118 List<ZenModeConfig.ZenRule> getZenRules();
119 String addAutomaticZenRule(in AutomaticZenRule automaticZenRule);
120 boolean updateAutomaticZenRule(String id, in AutomaticZenRule automaticZenRule);
Julia Reynolds4fe98d62015-10-06 16:23:41 -0400121 boolean removeAutomaticZenRule(String id);
Julia Reynoldsc8e54e82015-11-30 16:43:05 -0500122 boolean removeAutomaticZenRules(String packageName);
Julia Reynolds43b70cd2016-01-14 15:05:34 -0500123 int getRuleInstanceCount(in ComponentName owner);
Christopher Tatef9767d62015-04-08 14:35:43 -0700124
125 byte[] getBackupPayload(int user);
126 void applyRestore(in byte[] payload, int user);
Dan Sandler994349c2015-04-15 11:02:54 -0400127
128 ParceledListSlice getAppActiveNotifications(String callingPkg, int userId);
Dan Sandlerea75fdd2014-08-12 12:29:19 -0400129}