1/**
2 * Copyright (c) 2007, The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.internal.statusbar;
18
19import android.content.ComponentName;
20import android.graphics.Rect;
21import android.os.Bundle;
22import android.service.notification.StatusBarNotification;
23
24import com.android.internal.statusbar.IStatusBar;
25import com.android.internal.statusbar.StatusBarIcon;
26import com.android.internal.statusbar.StatusBarIconList;
27import com.android.internal.statusbar.NotificationVisibility;
28
29/** @hide */
30interface IStatusBarService
31{
32    void expandNotificationsPanel();
33    void collapsePanels();
34    void disable(int what, IBinder token, String pkg);
35    void disableForUser(int what, IBinder token, String pkg, int userId);
36    void disable2(int what, IBinder token, String pkg);
37    void disable2ForUser(int what, IBinder token, String pkg, int userId);
38    void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription);
39    void setIconVisibility(String slot, boolean visible);
40    void removeIcon(String slot);
41    void setImeWindowStatus(in IBinder token, int vis, int backDisposition,
42            boolean showImeSwitcher);
43    void expandSettingsPanel(String subPanel);
44
45    // ---- Methods below are for use by the status bar policy services ----
46    // You need the STATUS_BAR_SERVICE permission
47    void registerStatusBar(IStatusBar callbacks, out List<String> iconSlots,
48            out List<StatusBarIcon> iconList,
49            out int[] switches, out List<IBinder> binders, out Rect fullscreenStackBounds,
50            out Rect dockedStackBounds);
51    void onPanelRevealed(boolean clearNotificationEffects, int numItems);
52    void onPanelHidden();
53    // Mark current notifications as "seen" and stop ringing, vibrating, blinking.
54    void clearNotificationEffects();
55    void onNotificationClick(String key);
56    void onNotificationActionClick(String key, int actionIndex);
57    void onNotificationError(String pkg, String tag, int id,
58            int uid, int initialPid, String message, int userId);
59    void onClearAllNotifications(int userId);
60    void onNotificationClear(String pkg, String tag, int id, int userId);
61    void onNotificationVisibilityChanged( in NotificationVisibility[] newlyVisibleKeys,
62            in NotificationVisibility[] noLongerVisibleKeys);
63    void onNotificationExpansionChanged(in String key, in boolean userAction, in boolean expanded);
64    void setSystemUiVisibility(int vis, int mask, String cause);
65
66    void addTile(in ComponentName tile);
67    void remTile(in ComponentName tile);
68    void clickTile(in ComponentName tile);
69}
70