StatusBarTest.java revision 982cbf1cbc302eb1ee4ab10076533281c6a947c7
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.ListActivity; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.Notification; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.NotificationManager; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.ArrayAdapter; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.View; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.ListView; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent; 268896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandlerimport android.app.PendingIntent; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.Notification; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.NotificationManager; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.StatusBarManager; 30664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onoratoimport android.content.Context; 31664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onoratoimport android.util.AttributeSet; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Vibrator; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemClock; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.RemoteViews; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.Toast; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.PowerManager; 41664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onoratoimport android.view.View; 428896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandlerimport android.view.Window; 438896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandlerimport android.view.WindowManager; 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class StatusBarTest extends TestActivity 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private final static String TAG = "StatusBarTest"; 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StatusBarManager mStatusBarManager; 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NotificationManager mNotificationManager; 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Handler mHandler = new Handler(); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 52664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener 53664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato = new View.OnSystemUiVisibilityChangeListener() { 54664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato public void onSystemUiVisibilityChange(int visibility) { 55664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato Log.d(TAG, "onSystemUiVisibilityChange visibility=" + visibility); 56664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato } 57664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato }; 58664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected String tag() { 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return TAG; 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected Test[] tests() { 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager = (StatusBarManager)getSystemService(STATUS_BAR_SERVICE); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return mTests; 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Test[] mTests = new Test[] { 737bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato new Test("DISABLE_NAVIGATION") { 747bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato public void run() { 757bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato View v = findViewById(android.R.id.list); 767bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato v.setSystemUiVisibility(View.STATUS_BAR_DISABLE_NAVIGATION); 777bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato } 787bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato }, 79664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato new Test("STATUS_BAR_HIDDEN") { 80664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato public void run() { 81664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato View v = findViewById(android.R.id.list); 82664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); 83664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato v.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener); 84664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato } 85664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato }, 867bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato new Test("no setSystemUiVisibility") { 87664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato public void run() { 88664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato View v = findViewById(android.R.id.list); 89664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato v.setSystemUiVisibility(View.STATUS_BAR_VISIBLE); 90664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato v.setOnSystemUiVisibilityChangeListener(null); 91664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato } 92664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato }, 93795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato new Test("Double Remove") { 94795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato public void run() { 95795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 0"); 96795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0); 97795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "remove 1"); 98795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.removeIcon("tty"); 99795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato 100795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato SystemClock.sleep(1000); 101795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato 102795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 1"); 103795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0); 104795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato if (false) { 105795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 2"); 106795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0); 107795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato } 108795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "remove 2"); 109795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.removeIcon("tty"); 110795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato Log.d(TAG, "set 3"); 111795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0); 112795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato } 113795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato }, 1149305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato new Test("Hide (FLAG_FULLSCREEN)") { 1158896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1168896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler Window win = getWindow(); 1179305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 1189305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato WindowManager.LayoutParams.FLAG_FULLSCREEN); 1199305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags)); 1208896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1218896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1229305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato new Test("Show (~FLAG_FULLSCREEN)") { 1238896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1248896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler Window win = getWindow(); 1259305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato win.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN); 1269305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags)); 1278896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1288896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1298896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler new Test("Immersive: Enter") { 1308896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1318896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler setImmersive(true); 1328896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1338896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1348896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler new Test("Immersive: Exit") { 1358896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 1368896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler setImmersive(false); 1378896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1388896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1398896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler new Test("Priority notification") { 1408896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler public void run() { 141982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler Notification not = new Notification( 142b59b94456b3a8fdfdf524a81274839f657fbb65bDaniel Sandler R.drawable.stat_sys_phone, 143b59b94456b3a8fdfdf524a81274839f657fbb65bDaniel Sandler "Incoming call from: Imperious Leader", 144982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler System.currentTimeMillis()-(1000*60*60*24) 1458896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler ); 1468896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler not.flags |= Notification.FLAG_HIGH_PRIORITY; 1478896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler Intent fullScreenIntent = new Intent(StatusBarTest.this, TestAlertActivity.class); 1488896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler int id = (int)System.currentTimeMillis(); // XXX HAX 1498896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler fullScreenIntent.putExtra("id", id); 1508896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler not.fullScreenIntent = PendingIntent.getActivity( 1518896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler StatusBarTest.this, 1528896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler 0, 1538896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler fullScreenIntent, 1548896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler PendingIntent.FLAG_CANCEL_CURRENT); 15527a8be4b3526f068e911c8edcd4ee6fa6f492c0fDaniel Sandler // if you tap on it you should get the original alert box 15627a8be4b3526f068e911c8edcd4ee6fa6f492c0fDaniel Sandler not.contentIntent = not.fullScreenIntent; 1578896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler mNotificationManager.notify(id, not); 1588896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler } 1598896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler }, 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Disable Alerts") { 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS); 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 16591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Disable Ticker") { 16691e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler public void run() { 16791e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_TICKER); 16891e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler } 16991e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler }, 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Disable Expand in 3 sec.") { 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND); 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Disable Notifications in 3 sec.") { 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS); 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 18891e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Disable Expand + Notifications 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 | StatusBarManager.DISABLE_NOTIFICATION_ICONS); 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 198091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato new Test("Disable Navigation") { 199091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato public void run() { 200091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato mStatusBarManager.disable(StatusBarManager.DISABLE_NAVIGATION); 201091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato } 202091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato }, 2033e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler new Test("Disable Clock") { 2043e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler public void run() { 2053e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK); 2063e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler } 2073e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler }, 2086f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler new Test("Disable System Info") { 2096f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler public void run() { 2106f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_SYSTEM_INFO); 2116f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler } 2126f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler }, 213091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato new Test("Disable everything in 3 sec") { 214091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato public void run() { 215091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato mHandler.postDelayed(new Runnable() { 216091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato public void run() { 2173e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler mStatusBarManager.disable(~StatusBarManager.DISABLE_NONE); 218091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato } 219091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato }, 3000); 220091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato } 221091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato }, 22291e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Enable everything") { 22391e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler public void run() { 2243e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler mStatusBarManager.disable(StatusBarManager.DISABLE_NONE); 22591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler } 22691e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler }, 22791e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler new Test("Enable everything in 3 sec.") { 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.disable(0); 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Notify in 3 sec.") { 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNotificationManager.notify(1, 241982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler new Notification( 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project R.drawable.ic_statusbar_missedcall, 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project "tick tick tick", 244982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler System.currentTimeMillis()-(1000*60*60*24) 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project )); 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Cancel Notification in 3 sec.") { 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mNotificationManager.cancel(1); 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2594762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato new Test("Expand") { 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2614762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato mStatusBarManager.expand(); 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Expand 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 mStatusBarManager.expand(); 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project new Test("Collapse in 3 sec.") { 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mHandler.postDelayed(new Runnable() { 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void run() { 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mStatusBarManager.collapse(); 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 3000); 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }, 2820faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato new Test("More icons") { 2830faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato public void run() { 2840faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato for (String slot: new String[] { 2850faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "sync_failing", 2860faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "gps", 2870faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "bluetooth", 2880faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "tty", 2890faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "speakerphone", 2900faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "mute", 2910faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "wifi", 2920faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "alarm_clock", 2930faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato "secure", 2940faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato }) { 2950faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato mStatusBarManager.setIconVisibility(slot, true); 2960faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato } 2970faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato } 2980faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato }, 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 301