StatusBarManager.java revision 305c78cce649056643641c51f12f2b6d2eb839f3
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 17305c78cce649056643641c51f12f2b6d2eb839f3Jim Miller 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 { 74305c78cce649056643641c51f12f2b6d2eb839f3Jim Miller if (mService != null) { 75305c78cce649056643641c51f12f2b6d2eb839f3Jim Miller mService.disable(what, mToken, mContext.getPackageName()); 76305c78cce649056643641c51f12f2b6d2eb839f3Jim Miller } 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Expand the status bar. 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void expand() { 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 88f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato mService.expand(); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Collapse the status bar. 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void collapse() { 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 100f3f0e053f0cc66249a11639eb67d0cdc2da26dedJoe Onorato mService.collapse(); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1076179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov public void setIcon(String slot, int iconId, int iconLevel, String contentDescription) { 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 1096179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov mService.setIcon(slot, mContext.getPackageName(), iconId, iconLevel, 1106179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov contentDescription); 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1170cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato public void removeIcon(String slot) { 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 1190cbda99f8721ad9b03ada04d2637fb75a2a0fecaJoe Onorato mService.removeIcon(slot); 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (RemoteException ex) { 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // system process is dead anyway. 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new RuntimeException(ex); 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 125798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato 126798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato public void setIconVisibility(String slot, boolean visible) { 127798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato try { 128798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato mService.setIconVisibility(slot, visible); 129798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato } catch (RemoteException ex) { 130798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato // system process is dead anyway. 131798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato throw new RuntimeException(ex); 132798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato } 133798ac4c7d79534a8230623b737b5b1b6a415d105Joe Onorato } 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 135