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 Projectpackage com.android.statusbartest; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.Notification; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.NotificationManager; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.View; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent; 238896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandlerimport android.app.PendingIntent; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.StatusBarManager; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemClock; 288896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandlerimport android.view.Window; 298896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandlerimport android.view.WindowManager; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class StatusBarTest extends TestActivity 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private final static String TAG = "StatusBarTest"; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StatusBarManager mStatusBarManager; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NotificationManager mNotificationManager; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler mHandler = new Handler(); 3760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler int mUiVisibility = 0; 3860ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler View mListView; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 40664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener 41664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato = new View.OnSystemUiVisibilityChangeListener() { 42664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato public void onSystemUiVisibilityChange(int visibility) { 43664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato Log.d(TAG, "onSystemUiVisibilityChange visibility=" + visibility); 44664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato } 45664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato }; 46664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected String tag() { 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return TAG; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected Test[] tests() { 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager = (StatusBarManager)getSystemService(STATUS_BAR_SERVICE); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mTests; 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6060ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler @Override 6160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler public void onResume() { 6260ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler super.onResume(); 6360ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler 6460ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mListView = findViewById(android.R.id.list); 6560ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mListView.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); 6660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler } 6760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Test[] mTests = new Test[] { 6960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler new Test("toggle LOW_PROFILE (lights out)") { 707bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public void run() { 7160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler if (0 != (mUiVisibility & View.SYSTEM_UI_FLAG_LOW_PROFILE)) { 7260ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mUiVisibility &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE; 7360ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler } else { 7460ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mUiVisibility |= View.SYSTEM_UI_FLAG_LOW_PROFILE; 7560ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler } 7660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mListView.setSystemUiVisibility(mUiVisibility); 777bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato } 787bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato }, 7960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler new Test("toggle HIDE_NAVIGATION") { 80664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato public void run() { 8160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler if (0 != (mUiVisibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)) { 8260ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mUiVisibility &= ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 8360ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler } else { 8460ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mUiVisibility |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 8560ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler } 8660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mListView.setSystemUiVisibility(mUiVisibility); 8760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler 881d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler } 891d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler }, 9060ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler new Test("clear SYSTEM_UI_FLAGs") { 911d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler public void run() { 9260ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mUiVisibility = 0; 9360ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler mListView.setSystemUiVisibility(mUiVisibility); 94664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato } 95664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato }, 9660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler// new Test("no setSystemUiVisibility") { 9760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler// public void run() { 9860ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler// View v = findViewById(android.R.id.list); 9960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler// v.setOnSystemUiVisibilityChangeListener(null); 10060ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler// v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); 10160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler// } 10260ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler// }, 103dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler new Test("systemUiVisibility: STATUS_BAR_DISABLE_HOME") { 104664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato public void run() { 105dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler mListView.setSystemUiVisibility(View.STATUS_BAR_DISABLE_HOME); 106664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato } 107664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato }, 108795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato new Test("Double Remove") { 109795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato public void run() { 110795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 0"); 1116179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0, null); 112795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "remove 1"); 113795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.removeIcon("tty"); 114795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato 115795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato SystemClock.sleep(1000); 116795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato 117795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 1"); 1186179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0, null); 119795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato if (false) { 120795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 2"); 1216179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0, null); 122795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato } 123795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "remove 2"); 124795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.removeIcon("tty"); 125795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 3"); 1266179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0, null); 127795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato } 128795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato }, 1299305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato new Test("Hide (FLAG_FULLSCREEN)") { 1308896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1318896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler Window win = getWindow(); 1329305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 1339305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato WindowManager.LayoutParams.FLAG_FULLSCREEN); 1349305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags)); 1358896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1368896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1379305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato new Test("Show (~FLAG_FULLSCREEN)") { 1388896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1398896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler Window win = getWindow(); 1409305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato win.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN); 1419305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags)); 1428896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1438896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1448896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler new Test("Immersive: Enter") { 1458896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1468896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler setImmersive(true); 1478896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1488896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1498896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler new Test("Immersive: Exit") { 1508896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1518896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler setImmersive(false); 1528896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1538896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1548896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler new Test("Priority notification") { 1558896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 156542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler Notification not = new Notification(); 157542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler not.icon = R.drawable.stat_sys_phone; 158542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler not.when = System.currentTimeMillis()-(1000*60*60*24); 159542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler not.setLatestEventInfo(StatusBarTest.this, 160542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler "Incoming call", 161542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler "from: Imperious Leader", 162542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler null 1638896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler ); 1648896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler not.flags |= Notification.FLAG_HIGH_PRIORITY; 1658896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler Intent fullScreenIntent = new Intent(StatusBarTest.this, TestAlertActivity.class); 1668896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler int id = (int)System.currentTimeMillis(); // XXX HAX 1678896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler fullScreenIntent.putExtra("id", id); 1688896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler not.fullScreenIntent = PendingIntent.getActivity( 1698896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler StatusBarTest.this, 1708896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler 0, 1718896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler fullScreenIntent, 1728896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler PendingIntent.FLAG_CANCEL_CURRENT); 17327a8be4b3526f068e911c8edcd4ee6fa6f492c0fDaniel Sandler // if you tap on it you should get the original alert box 17427a8be4b3526f068e911c8edcd4ee6fa6f492c0fDaniel Sandler not.contentIntent = not.fullScreenIntent; 1758896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler mNotificationManager.notify(id, not); 1768896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1778896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Disable Alerts") { 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS); 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 18391e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Disable Ticker") { 18491e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler public void run() { 18591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_TICKER); 18691e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler } 18791e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler }, 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Disable Expand in 3 sec.") { 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND); 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Disable Notifications in 3 sec.") { 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS); 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 20691e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Disable Expand + Notifications in 3 sec.") { 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project | StatusBarManager.DISABLE_NOTIFICATION_ICONS); 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 216dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler new Test("Disable Home (StatusBarManager)") { 217091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato public void run() { 218dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_HOME); 219091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato } 220091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato }, 221dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler new Test("Disable Back (StatusBarManager)") { 222029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler public void run() { 223029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_BACK); 224029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler } 225029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler }, 226dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler new Test("Disable Recent (StatusBarManager)") { 227dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler public void run() { 228dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_RECENT); 229dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler } 230dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler }, 2313e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler new Test("Disable Clock") { 2323e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler public void run() { 2333e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK); 2343e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler } 2353e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler }, 2366f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler new Test("Disable System Info") { 2376f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler public void run() { 2386f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_SYSTEM_INFO); 2396f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler } 2406f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler }, 241091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato new Test("Disable everything in 3 sec") { 242091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato public void run() { 243091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato mHandler.postDelayed(new Runnable() { 244091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato public void run() { 2453e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler mStatusBarManager.disable(~StatusBarManager.DISABLE_NONE); 246091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato } 247091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato }, 3000); 248091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato } 249091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato }, 25091e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Enable everything") { 25191e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler public void run() { 2523e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_NONE); 25391e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler } 25491e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler }, 25591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Enable everything in 3 sec.") { 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(0); 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Notify in 3 sec.") { 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNotificationManager.notify(1, 269982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler new Notification( 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project R.drawable.ic_statusbar_missedcall, 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "tick tick tick", 272982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler System.currentTimeMillis()-(1000*60*60*24) 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project )); 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Cancel Notification in 3 sec.") { 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNotificationManager.cancel(1); 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 28711cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler new Test("Expand notifications") { 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 28911cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mStatusBarManager.expandNotificationsPanel(); 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 29211cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler new Test(" ... in 3 sec.") { 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 29611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mStatusBarManager.expandNotificationsPanel(); 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 30111cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler new Test("Expand settings") { 30211cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void run() { 30311cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mStatusBarManager.expandSettingsPanel(); 30411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler } 30511cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler }, 30611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler new Test(" ... in 3 sec.") { 30711cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void run() { 30811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mHandler.postDelayed(new Runnable() { 30911cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler public void run() { 31011cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mStatusBarManager.expandSettingsPanel(); 31111cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler } 31211cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler }, 3000); 31311cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler } 31411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler }, 31511cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler new Test("Collapse panels in 3 sec.") { 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 31911cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler mStatusBarManager.collapsePanels(); 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3240faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato new Test("More icons") { 3250faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato public void run() { 3260faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato for (String slot: new String[] { 3270faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "sync_failing", 3280faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "gps", 3290faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "bluetooth", 3300faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "tty", 3310faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "speakerphone", 3320faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "mute", 3330faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "wifi", 3340faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "alarm_clock", 3350faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "secure", 3360faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato }) { 3370faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato mStatusBarManager.setIconVisibility(slot, true); 3380faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato } 3390faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato } 3400faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato }, 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 343