/** * Copyright (c) 2007, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.statusbar; import android.os.Bundle; import android.service.notification.StatusBarNotification; import com.android.internal.statusbar.IStatusBar; import com.android.internal.statusbar.StatusBarIcon; import com.android.internal.statusbar.StatusBarIconList; import com.android.internal.statusbar.NotificationVisibility; /** @hide */ interface IStatusBarService { void expandNotificationsPanel(); void collapsePanels(); void disable(int what, IBinder token, String pkg); void disableForUser(int what, IBinder token, String pkg, int userId); void disable2(int what, IBinder token, String pkg); void disable2ForUser(int what, IBinder token, String pkg, int userId); void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription); void setIconVisibility(String slot, boolean visible); void removeIcon(String slot); void topAppWindowChanged(boolean menuVisible); void setImeWindowStatus(in IBinder token, int vis, int backDisposition, boolean showImeSwitcher); void expandSettingsPanel(); void setCurrentUser(int newUserId); // ---- Methods below are for use by the status bar policy services ---- // You need the STATUS_BAR_SERVICE permission void registerStatusBar(IStatusBar callbacks, out StatusBarIconList iconList, out int[] switches, out List binders); void onPanelRevealed(boolean clearNotificationEffects, int numItems); void onPanelHidden(); // Mark current notifications as "seen" and stop ringing, vibrating, blinking. void clearNotificationEffects(); void onNotificationClick(String key); void onNotificationActionClick(String key, int actionIndex); void onNotificationError(String pkg, String tag, int id, int uid, int initialPid, String message, int userId); void onClearAllNotifications(int userId); void onNotificationClear(String pkg, String tag, int id, int userId); void onNotificationVisibilityChanged( in NotificationVisibility[] newlyVisibleKeys, in NotificationVisibility[] noLongerVisibleKeys); void onNotificationExpansionChanged(in String key, in boolean userAction, in boolean expanded); void setSystemUiVisibility(int vis, int mask, String cause); void setWindowState(int window, int state); void showRecentApps(boolean triggeredFromAltTab); void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey); void toggleRecentApps(); void preloadRecentApps(); void cancelPreloadRecentApps(); /** * Notifies the status bar that an app transition is pending to delay applying some flags with * visual impact until {@link #appTransitionReady} is called. */ void appTransitionPending(); /** * Notifies the status bar that a pending app transition has been cancelled. */ void appTransitionCancelled(); /** * Notifies the status bar that an app transition is now being executed. * * @param statusBarAnimationsStartTime the desired start time for all visual animations in the * status bar caused by this app transition in uptime millis * @param statusBarAnimationsDuration the duration for all visual animations in the status * bar caused by this app transition in millis */ void appTransitionStarting(long statusBarAnimationsStartTime, long statusBarAnimationsDuration); void startAssist(in Bundle args); }