StatusBarTest.java revision 4762c2d75a55e0854bbff2f996748116d4ab1a37
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;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.Notification;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.NotificationManager;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.StatusBarManager;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Vibrator;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemClock;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.RemoteViews;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.Toast;
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.PowerManager;
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class StatusBarTest extends TestActivity
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private final static String TAG = "StatusBarTest";
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    StatusBarManager mStatusBarManager;
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    NotificationManager mNotificationManager;
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Handler mHandler = new Handler();
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected String tag() {
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return TAG;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected Test[] tests() {
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mStatusBarManager = (StatusBarManager)getSystemService(STATUS_BAR_SERVICE);
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mTests;
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private Test[] mTests = new Test[] {
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Alerts") {
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6591e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Disable Ticker") {
6691e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            public void run() {
6791e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler                mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_TICKER);
6891e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            }
6991e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        },
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Expand in 3 sec.") {
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND);
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Disable Notifications in 3 sec.") {
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS);
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
8891e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Disable Expand + Notifications in 3 sec.") {
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    | StatusBarManager.DISABLE_NOTIFICATION_ICONS);
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
9891e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Enable everything") {
9991e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            public void run() {
10091e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler                mStatusBarManager.disable(0);
10191e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler            }
10291e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        },
10391e1d0cddaaec5e077ca689744463901f9d5d580Daniel Sandler        new Test("Enable everything in 3 sec.") {
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.disable(0);
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Notify in 3 sec.") {
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNotificationManager.notify(1,
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                    new Notification(StatusBarTest.this,
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            R.drawable.ic_statusbar_missedcall,
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            "tick tick tick",
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            System.currentTimeMillis()-(1000*60*60*24),
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            "(453) 123-2328",
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            "", null
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                            ));
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel Notification in 3 sec.") {
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNotificationManager.cancel(1);
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1374762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato        new Test("Expand") {
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1394762c2d75a55e0854bbff2f996748116d4ab1a37Joe Onorato                mStatusBarManager.expand();
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Expand in 3 sec.") {
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.expand();
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Collapse in 3 sec.") {
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mStatusBarManager.collapse();
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
162