TvStatusBar.java revision bf8c2c0f99e70514a37da85b1f31d91964daa0c4
1acad183238ad13774dba38c403ed553c2427027eChristopher Tate/* 2acad183238ad13774dba38c403ed553c2427027eChristopher Tate * Copyright (C) 2012 The Android Open Source Project 3acad183238ad13774dba38c403ed553c2427027eChristopher Tate * 4acad183238ad13774dba38c403ed553c2427027eChristopher Tate * Licensed under the Apache License, Version 2.0 (the "License"); 5acad183238ad13774dba38c403ed553c2427027eChristopher Tate * you may not use this file except in compliance with the License. 6acad183238ad13774dba38c403ed553c2427027eChristopher Tate * You may obtain a copy of the License at 7acad183238ad13774dba38c403ed553c2427027eChristopher Tate * 8acad183238ad13774dba38c403ed553c2427027eChristopher Tate * http://www.apache.org/licenses/LICENSE-2.0 9acad183238ad13774dba38c403ed553c2427027eChristopher Tate * 10acad183238ad13774dba38c403ed553c2427027eChristopher Tate * Unless required by applicable law or agreed to in writing, software 11acad183238ad13774dba38c403ed553c2427027eChristopher Tate * distributed under the License is distributed on an "AS IS" BASIS, 12acad183238ad13774dba38c403ed553c2427027eChristopher Tate * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13acad183238ad13774dba38c403ed553c2427027eChristopher Tate * See the License for the specific language governing permissions and 14acad183238ad13774dba38c403ed553c2427027eChristopher Tate * limitations under the License. 15acad183238ad13774dba38c403ed553c2427027eChristopher Tate */ 16acad183238ad13774dba38c403ed553c2427027eChristopher Tate 17acad183238ad13774dba38c403ed553c2427027eChristopher Tatepackage com.android.systemui.statusbar.tv; 18acad183238ad13774dba38c403ed553c2427027eChristopher Tate 197e53f20c835ae2614c92717a6fc222b345c75036Jason Monkimport android.content.ComponentName; 2086905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggiimport android.graphics.Rect; 21acad183238ad13774dba38c403ed553c2427027eChristopher Tateimport android.os.IBinder; 22d0694b6735a9d91794e6096961231e07364ba3faChristoph Studerimport android.service.notification.NotificationListenerService.RankingMap; 23de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlockimport android.service.notification.StatusBarNotification; 24acad183238ad13774dba38c403ed553c2427027eChristopher Tateimport android.view.View; 25acad183238ad13774dba38c403ed553c2427027eChristopher Tate 26de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlockimport com.android.internal.statusbar.StatusBarIcon; 27a32ab60bb020df1d89fadfa14eb8600242786bf2Selim Cinekimport com.android.systemui.statusbar.ActivatableNotificationView; 28de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlockimport com.android.systemui.statusbar.BaseStatusBar; 29379ff8f6b18b236b679a59a2dc14c0baeede3baeSelim Cinekimport com.android.systemui.statusbar.NotificationData; 30bf8c2c0f99e70514a37da85b1f31d91964daa0c4Winsonimport com.android.systemui.pip.tv.PipManager; 31de84f0e77ea2bf713d15c290264059a413c2486aJohn Spurlock 3267ed54a724df258738062e60d7f702f396502b49Sid Soundararajan/** 33acad183238ad13774dba38c403ed553c2427027eChristopher Tate * Status bar implementation for "large screen" products that mostly present no on-screen nav 34acad183238ad13774dba38c403ed553c2427027eChristopher Tate */ 35acad183238ad13774dba38c403ed553c2427027eChristopher Tate 36acad183238ad13774dba38c403ed553c2427027eChristopher Tatepublic class TvStatusBar extends BaseStatusBar { 37acad183238ad13774dba38c403ed553c2427027eChristopher Tate 38acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 3907473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void setIcon(String slot, StatusBarIcon icon) { 40acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 41acad183238ad13774dba38c403ed553c2427027eChristopher Tate 42acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 4307473cea3a6007d5e72b25d3445437a175735fa9Jason Monk public void removeIcon(String slot) { 44acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 45acad183238ad13774dba38c403ed553c2427027eChristopher Tate 46acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 47379ff8f6b18b236b679a59a2dc14c0baeede3baeSelim Cinek public void addNotification(StatusBarNotification notification, RankingMap ranking, 48379ff8f6b18b236b679a59a2dc14c0baeede3baeSelim Cinek NotificationData.Entry entry) { 49acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 50acad183238ad13774dba38c403ed553c2427027eChristopher Tate 51acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 52e71fefcc8b382947f6f6a8bf816b3889fb368fedChristoph Studer protected void updateNotificationRanking(RankingMap ranking) { 5360748e7122c6cfbcebcf4a283d1a78ca796d07a7Christoph Studer } 5460748e7122c6cfbcebcf4a283d1a78ca796d07a7Christoph Studer 5560748e7122c6cfbcebcf4a283d1a78ca796d07a7Christoph Studer @Override 56e71fefcc8b382947f6f6a8bf816b3889fb368fedChristoph Studer public void removeNotification(String key, RankingMap ranking) { 57acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 58acad183238ad13774dba38c403ed553c2427027eChristopher Tate 59acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 60cde0a2a9ea00d6e4acfe6ce7a7c9061343df7fa3Benjamin Franz public void disable(int state1, int state2, boolean animate) { 61acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 62acad183238ad13774dba38c403ed553c2427027eChristopher Tate 63acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 6411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateExpandNotificationsPanel() { 65acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 66acad183238ad13774dba38c403ed553c2427027eChristopher Tate 67acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 6811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void animateCollapsePanels(int flags) { 69acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 70acad183238ad13774dba38c403ed553c2427027eChristopher Tate 71acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 7286905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi public void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis, 7386905582411c5c77a3e7641589cf206c6e5770f5Jorim Jaggi int mask, Rect fullscreenStackBounds, Rect dockedStackBounds) { 74acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 75acad183238ad13774dba38c403ed553c2427027eChristopher Tate 76acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 77acad183238ad13774dba38c403ed553c2427027eChristopher Tate public void topAppWindowChanged(boolean visible) { 78acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 79acad183238ad13774dba38c403ed553c2427027eChristopher Tate 80acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 81b605fecd9e4282823af754b3968b21205d64554aJason Monk public void setImeWindowStatus(IBinder token, int vis, int backDisposition, 82b605fecd9e4282823af754b3968b21205d64554aJason Monk boolean showImeSwitcher) { 83acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 84acad183238ad13774dba38c403ed553c2427027eChristopher Tate 85acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override // CommandQueue 869764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock public void setWindowState(int window, int state) { 879764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock } 889764218ff979f735aee2f1189e3547d5f3b02f83John Spurlock 89cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock @Override // CommandQueue 90cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock public void buzzBeepBlinked() { 91cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock } 92cad5768e22e5132efb2e5179f4988a763c7a8d9eJohn Spurlock 93cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock @Override // CommandQueue 94cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightOff() { 95cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 96cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock 97cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock @Override // CommandQueue 98cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock public void notificationLightPulse(int argb, int onMillis, int offMillis) { 99cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock } 100cb566aab57cafb69c628809fc0a0ffa2151c7d6eJohn Spurlock 101acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 102acad183238ad13774dba38c403ed553c2427027eChristopher Tate protected void setAreThereNotifications() { 103acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 104acad183238ad13774dba38c403ed553c2427027eChristopher Tate 105acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 10637fe69322517809d38c1934239a6e117c39d40e7Christoph Studer protected void updateNotifications() { 107acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 108acad183238ad13774dba38c403ed553c2427027eChristopher Tate 109acad183238ad13774dba38c403ed553c2427027eChristopher Tate @Override 1102fdeeabe78b0f54f3163b1b3741ac813828b3511Jorim Jaggi public boolean shouldDisableNavbarGestures() { 111acad183238ad13774dba38c403ed553c2427027eChristopher Tate return true; 112acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 113acad183238ad13774dba38c403ed553c2427027eChristopher Tate 114cb2522c86d75fff277dc38ec7e444a5b5f5130eaMichael Jurka public View getStatusBarView() { 115cb2522c86d75fff277dc38ec7e444a5b5f5130eaMichael Jurka return null; 116cb2522c86d75fff277dc38ec7e444a5b5f5130eaMichael Jurka } 117cb2522c86d75fff277dc38ec7e444a5b5f5130eaMichael Jurka 118e20a177d3f147f3011647c3bdab401f90b2c5d1dSvetoslav Ganov @Override 11929379ec859bf7118dec9f3248c63ee369218ad6bJorim Jaggi protected void toggleSplitScreenMode(int metricsDockAction, int metricsUndockAction) { 120315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver } 121315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver 122315c34e7d62ce4b609f2d08b18a11a2d44e93abaPhil Weaver @Override 123684a442b812a5e95d813700ffa2fd17ca72048a7Selim Cinek public void maybeEscalateHeadsUp() { 124a4ef6203262d45d4ffae7860ef40bd931ab27e07Chris Wren } 125a4ef6203262d45d4ffae7860ef40bd931ab27e07Chris Wren 126a4ef6203262d45d4ffae7860ef40bd931ab27e07Chris Wren @Override 127e4ea6ab1e71b129f08aff118b9dbaab7c559841dYorke Lee public boolean isPanelFullyCollapsed() { 1281689594851a6dd985cff69913e7f4bc548062808Chris Wren return false; 1291689594851a6dd985cff69913e7f4bc548062808Chris Wren } 1301689594851a6dd985cff69913e7f4bc548062808Chris Wren 1311689594851a6dd985cff69913e7f4bc548062808Chris Wren @Override 1325f71bee3a83fa9465f03dcd1108c038f0339e3c5Selim Cinek protected int getMaxKeyguardNotifications(boolean recompute) { 133d4a57440ca5fc8461959176475b0fcd8a6e05871Jorim Jaggi return 0; 134d4a57440ca5fc8461959176475b0fcd8a6e05871Jorim Jaggi } 135d4a57440ca5fc8461959176475b0fcd8a6e05871Jorim Jaggi 136d4a57440ca5fc8461959176475b0fcd8a6e05871Jorim Jaggi @Override 137a9927325eda025504d59bb6594fee8e240d95b01Jason Monk public void animateExpandSettingsPanel(String subPanel) { 138acad183238ad13774dba38c403ed553c2427027eChristopher Tate } 1398afcd149970c79054a3a16377834aa0aec35eee0Fabrice Di Meglio 1408afcd149970c79054a3a16377834aa0aec35eee0Fabrice Di Meglio @Override 1415cf17879a31b7b78c09ec50b727f921840dcf783Jorim Jaggi protected void createAndAddWindows() { 1425cf17879a31b7b78c09ec50b727f921840dcf783Jorim Jaggi } 1435cf17879a31b7b78c09ec50b727f921840dcf783Jorim Jaggi 1445cf17879a31b7b78c09ec50b727f921840dcf783Jorim Jaggi @Override 1458afcd149970c79054a3a16377834aa0aec35eee0Fabrice Di Meglio protected void refreshLayout(int layoutDirection) { 1468afcd149970c79054a3a16377834aa0aec35eee0Fabrice Di Meglio } 1478afcd149970c79054a3a16377834aa0aec35eee0Fabrice Di Meglio 148d552d9d8e964c102e6832610be46cf2c041e8829Jorim Jaggi @Override 149a32ab60bb020df1d89fadfa14eb8600242786bf2Selim Cinek public void onActivated(ActivatableNotificationView view) { 150d552d9d8e964c102e6832610be46cf2c041e8829Jorim Jaggi } 151d552d9d8e964c102e6832610be46cf2c041e8829Jorim Jaggi 152d552d9d8e964c102e6832610be46cf2c041e8829Jorim Jaggi @Override 153a32ab60bb020df1d89fadfa14eb8600242786bf2Selim Cinek public void onActivationReset(ActivatableNotificationView view) { 154d552d9d8e964c102e6832610be46cf2c041e8829Jorim Jaggi } 1555565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk 1565565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk @Override 1570f051f5abdb31024d862a954cc4c4716b1dde616Andrii Kulian public void showScreenPinningRequest(int taskId) { 1585565cb42f2ac07fcdbe3aab2503de07fbeb39504Jason Monk } 15924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 16024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi @Override 16124bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionPending() { 16224bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 16324bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 16424bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi @Override 16524bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionCancelled() { 16624bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 16724bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi 16824bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi @Override 16924bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi public void appTransitionStarting(long startTime, long duration) { 17024bec7ce7adc3c0d693cfadcb4b28f5fc41555aeJorim Jaggi } 17129fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek 17229fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek @Override 1732adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi public void appTransitionFinished() { 1742adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi } 1752adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi 1762adba07d75419462873dfeef40d4c983d832ed99Jorim Jaggi @Override 17740aa8811bc817293d7400c14fa60350d2350d29fJorim Jaggi public void onCameraLaunchGestureDetected(int source) { 178372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek } 179372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek 180372d1bdd54fe977c71bdaae895687c76ac35202aSelim Cinek @Override 181f0fd218382b96f052d22a2e8ee00510cc23a6d1eJaewan Kim public void showTvPictureInPictureMenu() { 182f0fd218382b96f052d22a2e8ee00510cc23a6d1eJaewan Kim PipManager.getInstance().showTvPictureInPictureMenu(); 183c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim } 184c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim 185c552b04cb4aac9d31dbaf9744f32ddc14886e222Jaewan Kim @Override 186bdf3376616c276ed18a51185351b44fd16eeae29Chris Wren protected void updateHeadsUp(String key, NotificationData.Entry entry, boolean shouldPeek, 18729fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek boolean alertAgain) { 18829fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek } 18929fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek 19029fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek @Override 19129fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek protected void setHeadsUpUser(int newUserId) { 19229fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek } 19329fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek 19429fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek protected boolean isSnoozedPackage(StatusBarNotification sbn) { 19529fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek return false; 19629fa89b41e15ee61a1ec13307596fe5f5f4c376cSelim Cinek } 1977e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 1987e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 1997e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void addQsTile(ComponentName tile) { 2007e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 2017e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 2027e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 2037e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void remQsTile(ComponentName tile) { 2047e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 2057e53f20c835ae2614c92717a6fc222b345c75036Jason Monk 2067e53f20c835ae2614c92717a6fc222b345c75036Jason Monk @Override 2077e53f20c835ae2614c92717a6fc222b345c75036Jason Monk public void clickTile(ComponentName tile) { 2087e53f20c835ae2614c92717a6fc222b345c75036Jason Monk } 20967ed54a724df258738062e60d7f702f396502b49Sid Soundararajan 21067ed54a724df258738062e60d7f702f396502b49Sid Soundararajan @Override 21167ed54a724df258738062e60d7f702f396502b49Sid Soundararajan public void start() { 21267ed54a724df258738062e60d7f702f396502b49Sid Soundararajan super.start(); 21367ed54a724df258738062e60d7f702f396502b49Sid Soundararajan putComponent(TvStatusBar.class, this); 21467ed54a724df258738062e60d7f702f396502b49Sid Soundararajan } 21567ed54a724df258738062e60d7f702f396502b49Sid Soundararajan 21607e0384a4e931bc94550c108ddd9b9514100161eJim Miller @Override 21707e0384a4e931bc94550c108ddd9b9514100161eJim Miller public void handleSystemNavigationKey(int arg1) { 21807e0384a4e931bc94550c108ddd9b9514100161eJim Miller // Not implemented 21907e0384a4e931bc94550c108ddd9b9514100161eJim Miller } 220acad183238ad13774dba38c403ed553c2427027eChristopher Tate} 221