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();
5160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler    int mUiVisibility = 0;
5260ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler    View mListView;
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
54664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato    View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener
55664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato            = new View.OnSystemUiVisibilityChangeListener() {
56664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato        public void onSystemUiVisibilityChange(int visibility) {
57664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato            Log.d(TAG, "onSystemUiVisibilityChange visibility=" + visibility);
58664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato        }
59664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato    };
60664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected String tag() {
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return TAG;
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected Test[] tests() {
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mStatusBarManager = (StatusBarManager)getSystemService(STATUS_BAR_SERVICE);
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mTests;
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7460ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler    @Override
7560ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler    public void onResume() {
7660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler        super.onResume();
7760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler
7860ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler        mListView = findViewById(android.R.id.list);
7960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler        mListView.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener);
8060ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler    }
8160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private Test[] mTests = new Test[] {
8360ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler        new Test("toggle LOW_PROFILE (lights out)") {
847bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato            public void run() {
8560ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                if (0 != (mUiVisibility & View.SYSTEM_UI_FLAG_LOW_PROFILE)) {
8660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                    mUiVisibility &= ~View.SYSTEM_UI_FLAG_LOW_PROFILE;
8760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                } else {
8860ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                    mUiVisibility |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
8960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                }
9060ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                mListView.setSystemUiVisibility(mUiVisibility);
917bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato            }
927bb8eeb90cf55f409a282c1f36ca08aa48c10543Joe Onorato        },
9360ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler        new Test("toggle HIDE_NAVIGATION") {
94664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato            public void run() {
9560ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                if (0 != (mUiVisibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)) {
9660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                    mUiVisibility &= ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
9760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                } else {
9860ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                    mUiVisibility |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
9960ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                }
10060ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                mListView.setSystemUiVisibility(mUiVisibility);
10160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler
1021d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler            }
1031d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler        },
10460ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler        new Test("clear SYSTEM_UI_FLAGs") {
1051d4d30aebd2c22627131819cabfe95f97def2c83Daniel Sandler            public void run() {
10660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                mUiVisibility = 0;
10760ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler                mListView.setSystemUiVisibility(mUiVisibility);
108664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato            }
109664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato        },
11060ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler//        new Test("no setSystemUiVisibility") {
11160ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler//            public void run() {
11260ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler//                View v = findViewById(android.R.id.list);
11360ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler//                v.setOnSystemUiVisibilityChangeListener(null);
11460ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler//                v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
11560ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler//            }
11660ee25643e0a7b8841063a4e97b0f18c51807e91Daniel Sandler//        },
117dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        new Test("systemUiVisibility: STATUS_BAR_DISABLE_HOME") {
118664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato            public void run() {
119dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler                mListView.setSystemUiVisibility(View.STATUS_BAR_DISABLE_HOME);
120664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato            }
121664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato        },
122795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato        new Test("Double Remove") {
123795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato            public void run() {
124795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                Log.d(TAG, "set 0");
1256179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov                mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0, null);
126795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                Log.d(TAG, "remove 1");
127795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                mStatusBarManager.removeIcon("tty");
128795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato
129795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                SystemClock.sleep(1000);
130795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato
131795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                Log.d(TAG, "set 1");
1326179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov                mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0, null);
133795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                if (false) {
134795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                    Log.d(TAG, "set 2");
1356179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov                    mStatusBarManager.setIcon("tty", R.drawable.stat_sys_phone, 0, null);
136795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                }
137795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                Log.d(TAG, "remove 2");
138795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                mStatusBarManager.removeIcon("tty");
139795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato                Log.d(TAG, "set 3");
1406179ea3196e9306d3f14361fe9ef14191b1edba6Svetoslav Ganov                mStatusBarManager.setIcon("speakerphone", R.drawable.stat_sys_phone, 0, null);
141795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato            }
142795f2840b4a70bf188c2f24c8c06f73a492b338cJoe Onorato        },
1439305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato        new Test("Hide (FLAG_FULLSCREEN)") {
1448896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            public void run() {
1458896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                Window win = getWindow();
1469305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato                win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
1479305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
1489305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato                Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags));
1498896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            }
1508896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        },
1519305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato        new Test("Show (~FLAG_FULLSCREEN)") {
1528896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            public void run() {
1538896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                Window win = getWindow();
1549305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato                win.setFlags(0, WindowManager.LayoutParams.FLAG_FULLSCREEN);
1559305647eb61bb60a1f42481a0c0d208dc9bbe965Joe Onorato                Log.d(TAG, "flags=" + Integer.toHexString(win.getAttributes().flags));
1568896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            }
1578896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        },
1588896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        new Test("Immersive: Enter") {
1598896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            public void run() {
1608896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                setImmersive(true);
1618896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            }
1628896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        },
1638896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        new Test("Immersive: Exit") {
1648896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            public void run() {
1658896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                setImmersive(false);
1668896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            }
1678896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        },
1688896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        new Test("Priority notification") {
1698896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            public void run() {
170542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler                Notification not = new Notification();
171542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler                not.icon = R.drawable.stat_sys_phone;
172542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler                not.when = System.currentTimeMillis()-(1000*60*60*24);
173542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler                not.setLatestEventInfo(StatusBarTest.this,
174542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler                                "Incoming call",
175542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler                                "from: Imperious Leader",
176542f0510d42e225546acc01842adfafb27f627b6Daniel Sandler                                null
1778896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                                );
1788896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                not.flags |= Notification.FLAG_HIGH_PRIORITY;
1798896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                Intent fullScreenIntent = new Intent(StatusBarTest.this, TestAlertActivity.class);
1808896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                int id = (int)System.currentTimeMillis(); // XXX HAX
1818896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                fullScreenIntent.putExtra("id", id);
1828896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                not.fullScreenIntent = PendingIntent.getActivity(
1838896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    StatusBarTest.this,
1848896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    0,
1858896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    fullScreenIntent,
1868896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                    PendingIntent.FLAG_CANCEL_CURRENT);
18727a8be4b3526f068e911c8edcd4ee6fa6f492c0fDaniel Sandler                // if you tap on it you should get the original alert box
18827a8be4b3526f068e911c8edcd4ee6fa6f492c0fDaniel Sandler                not.contentIntent = not.fullScreenIntent;
1898896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler                mNotificationManager.notify(id, not);
1908896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler            }
1918896783dc1d31c5274b277c364da0ffe7cc27ccaDaniel Sandler        },
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Alerts") {
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS);
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
19791e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Disable Ticker") {
19891e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            public void run() {
19991e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_TICKER);
20091e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            }
20191e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        },
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Expand in 3 sec.") {
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Notifications in 3 sec.") {
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS);
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
22091e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Disable Expand + Notifications in 3 sec.") {
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    | StatusBarManager.DISABLE_NOTIFICATION_ICONS);
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
230dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        new Test("Disable Home (StatusBarManager)") {
231091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            public void run() {
232dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_HOME);
233091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            }
234091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato        },
235dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        new Test("Disable Back (StatusBarManager)") {
236029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler            public void run() {
237029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_BACK);
238029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler            }
239029d5877b0c19af09c6a1cb7d1c3d3507e88430cDaniel Sandler        },
240dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        new Test("Disable Recent (StatusBarManager)") {
241dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler            public void run() {
242dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_RECENT);
243dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler            }
244dba935659024a9ca83cb6bd3f1a9970e277f7658Daniel Sandler        },
2453e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler        new Test("Disable Clock") {
2463e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler            public void run() {
2473e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK);
2483e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler            }
2493e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler        },
2506f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler        new Test("Disable System Info") {
2516f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler            public void run() {
2526f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_SYSTEM_INFO);
2536f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler            }
2546f6cf3c5e577aa62cfd959fa5ef046531090ce31Daniel Sandler        },
255091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato        new Test("Disable everything in 3 sec") {
256091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            public void run() {
257091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                mHandler.postDelayed(new Runnable() {
258091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                        public void run() {
2593e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler                            mStatusBarManager.disable(~StatusBarManager.DISABLE_NONE);
260091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                        }
261091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato                    }, 3000);
262091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato            }
263091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bfJoe Onorato        },
26491e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Enable everything") {
26591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            public void run() {
2663e8f5a2c1beb4b918856063880e05125946e4347Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
26791e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            }
26891e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        },
26991e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Enable everything in 3 sec.") {
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(0);
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("Notify 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.notify(1,
283982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler                                    new Notification(
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            R.drawable.ic_statusbar_missedcall,
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            "tick tick tick",
286982cbf1cbc302eb1ee4ab10076533281c6a947c7Daniel Sandler                                            System.currentTimeMillis()-(1000*60*60*24)
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            ));
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel Notification 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() {
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNotificationManager.cancel(1);
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
3014762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato        new Test("Expand") {
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
3034762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato                mStatusBarManager.expand();
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Expand in 3 sec.") {
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.expand();
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Collapse 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() {
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.collapse();
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