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