OSDN Git Service

DO NOT MERGE. Grant MMS Uri permissions as the calling UID.
[android-x86/frameworks-base.git] / packages / SystemUI / src / com / android / systemui / statusbar / tv / TvStatusBar.java
1 /*
2  * Copyright (C) 2012 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
17 package com.android.systemui.statusbar.tv;
18
19 import android.content.ComponentName;
20 import android.graphics.Rect;
21 import android.os.IBinder;
22 import android.os.RemoteException;
23 import android.service.notification.NotificationListenerService.RankingMap;
24 import android.service.notification.StatusBarNotification;
25 import android.view.View;
26
27 import com.android.internal.statusbar.StatusBarIcon;
28 import com.android.systemui.statusbar.ActivatableNotificationView;
29 import com.android.systemui.statusbar.BaseStatusBar;
30 import com.android.systemui.statusbar.NotificationData;
31 import com.android.systemui.tv.pip.PipManager;
32
33 /**
34  * Status bar implementation for "large screen" products that mostly present no on-screen nav
35  */
36
37 public class TvStatusBar extends BaseStatusBar {
38
39     /**
40      * Tracking calls to View.setSystemUiVisibility().
41      */
42     int mSystemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE;
43
44     /**
45      * Last value sent to window manager.
46      */
47     private int mLastDispatchedSystemUiVisibility = ~View.SYSTEM_UI_FLAG_VISIBLE;
48
49     @Override
50     public void setIcon(String slot, StatusBarIcon icon) {
51     }
52
53     @Override
54     public void removeIcon(String slot) {
55     }
56
57     @Override
58     public void addNotification(StatusBarNotification notification, RankingMap ranking,
59             NotificationData.Entry entry) {
60     }
61
62     @Override
63     protected void updateNotificationRanking(RankingMap ranking) {
64     }
65
66     @Override
67     public void removeNotification(String key, RankingMap ranking) {
68     }
69
70     @Override
71     public void disable(int state1, int state2, boolean animate) {
72     }
73
74     @Override
75     public void animateExpandNotificationsPanel() {
76     }
77
78     @Override
79     public void animateCollapsePanels(int flags) {
80     }
81
82     @Override
83     public void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis,
84             int mask, Rect fullscreenStackBounds, Rect dockedStackBounds) {
85     }
86
87     @Override
88     public void topAppWindowChanged(boolean visible) {
89     }
90
91     @Override
92     public void setImeWindowStatus(IBinder token, int vis, int backDisposition,
93             boolean showImeSwitcher) {
94     }
95
96     @Override // CommandQueue
97     public void setWindowState(int window, int state) {
98     }
99
100     @Override // CommandQueue
101     public void buzzBeepBlinked() {
102     }
103
104     @Override // CommandQueue
105     public void notificationLightOff() {
106     }
107
108     @Override // CommandQueue
109     public void notificationLightPulse(int argb, int onMillis, int offMillis) {
110     }
111
112     @Override
113     protected void setAreThereNotifications() {
114     }
115
116     @Override
117     protected void updateNotifications() {
118     }
119
120     @Override
121     public boolean shouldDisableNavbarGestures() {
122         return true;
123     }
124
125     public View getStatusBarView() {
126         return null;
127     }
128
129     @Override
130     protected void toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) {
131     }
132
133     @Override
134     public void maybeEscalateHeadsUp() {
135     }
136
137     @Override
138     public boolean isPanelFullyCollapsed() {
139         return false;
140     }
141
142     @Override
143     protected int getMaxKeyguardNotifications(boolean recompute) {
144         return 0;
145     }
146
147     @Override
148     public void animateExpandSettingsPanel(String subPanel) {
149     }
150
151     @Override
152     protected void createAndAddWindows() {
153     }
154
155     @Override
156     protected void refreshLayout(int layoutDirection) {
157     }
158
159     @Override
160     public void onActivated(ActivatableNotificationView view) {
161     }
162
163     @Override
164     public void onActivationReset(ActivatableNotificationView view) {
165     }
166
167     @Override
168     public void showScreenPinningRequest(int taskId) {
169     }
170
171     @Override
172     public void appTransitionPending() {
173     }
174
175     @Override
176     public void appTransitionCancelled() {
177     }
178
179     @Override
180     public void appTransitionStarting(long startTime, long duration) {
181     }
182
183     @Override
184     public void appTransitionFinished() {
185     }
186
187     @Override
188     public void onCameraLaunchGestureDetected(int source) {
189     }
190
191     @Override
192     public void showTvPictureInPictureMenu() {
193         PipManager.getInstance().showTvPictureInPictureMenu();
194     }
195
196     @Override
197     protected void updateHeadsUp(String key, NotificationData.Entry entry, boolean shouldPeek,
198             boolean alertAgain) {
199     }
200
201     @Override
202     protected void setHeadsUpUser(int newUserId) {
203     }
204
205     protected boolean isSnoozedPackage(StatusBarNotification sbn) {
206         return false;
207     }
208
209     @Override
210     public void addQsTile(ComponentName tile) {
211     }
212
213     @Override
214     public void remQsTile(ComponentName tile) {
215     }
216
217     @Override
218     public void clickTile(ComponentName tile) {
219     }
220
221     @Override
222     public void start() {
223         super.start();
224         putComponent(TvStatusBar.class, this);
225     }
226
227     /**
228      * Updates the visibility of the picture-in-picture.
229      */
230     public void updatePipVisibility(boolean visible) {
231         if (visible) {
232             mSystemUiVisibility |= View.TV_PICTURE_IN_PICTURE_VISIBLE;
233         } else {
234             mSystemUiVisibility &= ~View.TV_PICTURE_IN_PICTURE_VISIBLE;
235         }
236         notifyUiVisibilityChanged(mSystemUiVisibility);
237     }
238
239     /**
240      * Updates the visibility of the Recents
241      */
242     public void updateRecentsVisibility(boolean visible) {
243         if (visible) {
244             mSystemUiVisibility |= View.RECENT_APPS_VISIBLE;
245         } else {
246             mSystemUiVisibility &= ~View.RECENT_APPS_VISIBLE;
247         }
248         notifyUiVisibilityChanged(mSystemUiVisibility);
249     }
250
251     private void notifyUiVisibilityChanged(int vis) {
252         try {
253             if (mLastDispatchedSystemUiVisibility != vis) {
254                 mWindowManagerService.statusBarVisibilityChanged(vis);
255                 mLastDispatchedSystemUiVisibility = vis;
256             }
257         } catch (RemoteException ex) {
258         }
259     }
260 }