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