StatusBarManager.java revision dba935659024a9ca83cb6bd3f1a9970e277f7658
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.app; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Context; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Binder; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.RemoteException; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.ServiceManager; 257bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onoratoimport android.view.View; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 270cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onoratoimport com.android.internal.statusbar.IStatusBarService; 280cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Allows an app to control the status bar. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class StatusBarManager { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 367bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public static final int DISABLE_EXPAND = View.STATUS_BAR_DISABLE_EXPAND; 377bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public static final int DISABLE_NOTIFICATION_ICONS = View.STATUS_BAR_DISABLE_NOTIFICATION_ICONS; 387bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public static final int DISABLE_NOTIFICATION_ALERTS 397bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato = View.STATUS_BAR_DISABLE_NOTIFICATION_ALERTS; 407bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public static final int DISABLE_NOTIFICATION_TICKER 417bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato = View.STATUS_BAR_DISABLE_NOTIFICATION_TICKER; 427bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public static final int DISABLE_SYSTEM_INFO = View.STATUS_BAR_DISABLE_SYSTEM_INFO; 43dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler public static final int DISABLE_HOME = View.STATUS_BAR_DISABLE_HOME; 44dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler public static final int DISABLE_RECENT = View.STATUS_BAR_DISABLE_RECENT; 456478adc6b4c35f8c56176582bcde029998e7436fJoe Onorato public static final int DISABLE_BACK = View.STATUS_BAR_DISABLE_BACK; 467bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public static final int DISABLE_CLOCK = View.STATUS_BAR_DISABLE_CLOCK; 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 48dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler @Deprecated 49dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler public static final int DISABLE_NAVIGATION = 50dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler View.STATUS_BAR_DISABLE_HOME | View.STATUS_BAR_DISABLE_RECENT; 51dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int DISABLE_NONE = 0x00000000; 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 547bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public static final int DISABLE_MASK = DISABLE_EXPAND | DISABLE_NOTIFICATION_ICONS 557bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato | DISABLE_NOTIFICATION_ALERTS | DISABLE_NOTIFICATION_TICKER 56dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler | DISABLE_SYSTEM_INFO | DISABLE_RECENT | DISABLE_HOME | DISABLE_BACK | DISABLE_CLOCK; 577bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Context mContext; 5925f95f92005594f2ef094001c54cb4c39eec3adeJoe Onorato private IStatusBarService mService; 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private IBinder mToken = new Binder(); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StatusBarManager(Context context) { 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mContext = context; 6425f95f92005594f2ef094001c54cb4c39eec3adeJoe Onorato mService = IStatusBarService.Stub.asInterface( 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ServiceManager.getService(Context.STATUS_BAR_SERVICE)); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disable some features in the status bar. Pass the bitwise-or of the DISABLE_* flags. 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * To re-enable everything, pass {@link #DISABLE_NONE}. 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void disable(int what) { 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mService.disable(what, mToken, mContext.getPackageName()); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Expand the status bar. 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void expand() { 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 86f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato mService.expand(); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Collapse the status bar. 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void collapse() { 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 98f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato mService.collapse(); 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1056179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov public void setIcon(String slot, int iconId, int iconLevel, String contentDescription) { 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 1076179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov mService.setIcon(slot, mContext.getPackageName(), iconId, iconLevel, 1086179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov contentDescription); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1150cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public void removeIcon(String slot) { 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 1170cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato mService.removeIcon(slot); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 123798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato 124798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato public void setIconVisibility(String slot, boolean visible) { 125798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato try { 126798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato mService.setIconVisibility(slot, visible); 127798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato } catch (RemoteException ex) { 128798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato // system process is dead anyway. 129798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato throw new RuntimeException(ex); 130798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato } 131798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato } 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 133