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() {
1568896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                Intent fullScreenIntent = new Intent(StatusBarTest.this, TestAlertActivity.class);
1578896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                int id = (int)System.currentTimeMillis(); // XXX HAX
1588896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                fullScreenIntent.putExtra("id", id);
1591ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                PendingIntent pi = PendingIntent.getActivity(
1608896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    StatusBarTest.this,
1618896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    0,
1628896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    fullScreenIntent,
1638896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    PendingIntent.FLAG_CANCEL_CURRENT);
1641ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification not = new Notification.Builder(StatusBarTest.this)
1651ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.stat_sys_phone)
1661ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(System.currentTimeMillis() - (1000 * 60 * 60 * 24))
1671ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle("Incoming call")
1681ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("from: Imperious Leader")
1691ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(pi)
1701ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setFullScreenIntent(pi, true)
1711ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setPriority(Notification.PRIORITY_HIGH)
1721ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
1731ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren
1748896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                mNotificationManager.notify(id, not);
1758896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            }
1768896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        },
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Alerts") {
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS);
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
18291e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Disable Ticker") {
18391e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            public void run() {
18491e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_TICKER);
18591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            }
18691e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        },
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Expand in 3 sec.") {
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Notifications in 3 sec.") {
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS);
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
20591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Disable Expand + Notifications in 3 sec.") {
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    | StatusBarManager.DISABLE_NOTIFICATION_ICONS);
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
215dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        new Test("Disable Home (StatusBarManager)") {
216091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            public void run() {
217dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_HOME);
218091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            }
219091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato        },
220dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        new Test("Disable Back (StatusBarManager)") {
221029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler            public void run() {
222029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_BACK);
223029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler            }
224029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler        },
225dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        new Test("Disable Recent (StatusBarManager)") {
226dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler            public void run() {
227dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_RECENT);
228dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler            }
229dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        },
2303e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler        new Test("Disable Clock") {
2313e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler            public void run() {
2323e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK);
2333e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler            }
2343e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler        },
2356f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler        new Test("Disable System Info") {
2366f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler            public void run() {
2376f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_SYSTEM_INFO);
2386f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler            }
2396f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler        },
240091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato        new Test("Disable everything in 3 sec") {
241091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            public void run() {
242091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                mHandler.postDelayed(new Runnable() {
243091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                        public void run() {
2443e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler                            mStatusBarManager.disable(~StatusBarManager.DISABLE_NONE);
245091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                        }
246091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                    }, 3000);
247091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            }
248091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato        },
24991e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Enable everything") {
25091e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            public void run() {
2513e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
25291e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            }
25391e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        },
25491e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Enable everything in 3 sec.") {
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(0);
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Notify in 3 sec.") {
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNotificationManager.notify(1,
268982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler                                    new Notification(
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            R.drawable.ic_statusbar_missedcall,
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            "tick tick tick",
271982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler                                            System.currentTimeMillis()-(1000*60*60*24)
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            ));
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel Notification in 3 sec.") {
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNotificationManager.cancel(1);
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
28611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler        new Test("Expand notifications") {
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
28811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                mStatusBarManager.expandNotificationsPanel();
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
29111cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler        new Test(" ... in 3 sec.") {
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
29511cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                            mStatusBarManager.expandNotificationsPanel();
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
30011cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler        new Test("Expand settings") {
30111cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler            public void run() {
30211cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                mStatusBarManager.expandSettingsPanel();
30311cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler            }
30411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler        },
30511cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler        new Test(" ... in 3 sec.") {
30611cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler            public void run() {
30711cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                mHandler.postDelayed(new Runnable() {
30811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                        public void run() {
30911cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                            mStatusBarManager.expandSettingsPanel();
31011cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                        }
31111cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                    }, 3000);
31211cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler            }
31311cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler        },
31411cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler        new Test("Collapse panels in 3 sec.") {
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
31811cf178100e71d3f9f34ab5865e03a277c5eadaaDaniel Sandler                            mStatusBarManager.collapsePanels();
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
3230faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato        new Test("More icons") {
3240faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato            public void run() {
3250faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                for (String slot: new String[] {
3260faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "sync_failing",
3270faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "gps",
3280faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "bluetooth",
3290faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "tty",
3300faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "speakerphone",
3310faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "mute",
3320faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "wifi",
3330faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "alarm_clock",
3340faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                            "secure",
3350faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                        }) {
3360faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                    mStatusBarManager.setIconVisibility(slot, true);
3370faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato                }
3380faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato            }
3390faeb078cf2bf689eaa69e7041013c5152281b4fJoe Onorato        },
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
342