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
19ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.app.Notification;
20ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.app.NotificationManager;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.PendingIntent;
22ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauerimport android.content.Context;
234df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Projectimport android.content.ContentResolver;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
25ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.graphics.Bitmap;
26ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.graphics.drawable.BitmapDrawable;
278b85dceadf281705a94d7546556fa5969364a658Christian Mehlmauerimport android.os.Environment;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Vibrator;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemClock;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.RemoteViews;
34373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandlerimport android.widget.TextView;
35373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandlerimport android.widget.ProgressBar;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.PowerManager;
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
38e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler// private NM API
39e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandlerimport android.app.INotificationManager;
40e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandlerimport com.android.internal.statusbar.StatusBarNotification;
41e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class NotificationTestList extends TestActivity
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private final static String TAG = "NotificationTestList";
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    NotificationManager mNM;
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Vibrator mVibrator = new Vibrator();
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Handler mHandler = new Handler();
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
50d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato    long mActivityCreateTime = System.currentTimeMillis();
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long mChronometerBase = 0;
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
53373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler    boolean mProgressDone = true;
54373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
55b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler    final int[] kNumberedIconResIDs = {
56b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification0,
57b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification1,
58b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification2,
59b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification3,
60b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification4,
61b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification5,
62b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification6,
63b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification7,
64b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification8,
65b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification9
66b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler    };
67b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler    final int kUnnumberedIconResID = R.drawable.notificationx;
68b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected String tag() {
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return TAG;
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected Test[] tests() {
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mTests;
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private Test[] mTests = new Test[] {
82e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato        new Test("Off and sound") {
83e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato            public void run() {
84ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauer                PowerManager pm = (PowerManager)NotificationTestList.this.getSystemService(Context.POWER_SERVICE);
85e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                PowerManager.WakeLock wl =
86e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                            pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "sound");
87e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                wl.acquire();
88e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
89e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                pm.goToSleep(SystemClock.uptimeMillis());
90e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
91e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Notification n = new Notification();
928b85dceadf281705a94d7546556fa5969364a658Christian Mehlmauer                n.sound = Uri.parse("file://" + Environment.getExternalStorageDirectory() +
938b85dceadf281705a94d7546556fa5969364a658Christian Mehlmauer                        "/virtual-void.mp3");
94e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "n.sound=" + n.sound);
95e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
96e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                mNM.notify(1, n);
97e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
98e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "releasing wake lock");
99e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                wl.release();
100e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "released wake lock");
101e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato            }
102e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato        },
103e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
104ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Cancel #1") {
105ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run()
106ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            {
107ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.cancel(1);
108ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
109ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
110ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
1114058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato        new Test("Button") {
1124058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato            public void run() {
1134058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                Notification n = new Notification(R.drawable.icon1, null,
1144058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                        mActivityCreateTime);
1154058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                n.contentView = new RemoteViews(getPackageName(), R.layout.button_notification);
1164058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                n.flags |= Notification.FLAG_ONGOING_EVENT;
1174058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                n.contentIntent = makeIntent();
1184058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                n.contentView.setOnClickPendingIntent(R.id.button, makeIntent2());
1194058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato
1204058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                mNM.notify(1, n);
1214058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato            }
1224058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato        },
1234058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato
124184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato        new Test("custom intent on text view") {
125184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato            public void run() {
126184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato                Notification n = new Notification(R.drawable.icon1, null,
127184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato                        mActivityCreateTime);
128184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
129184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato                            "This is a notification!!!", null);
130184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato                n.contentView.setOnClickPendingIntent(com.android.internal.R.id.text,
131184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato                        makeIntent2());
132184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato                mNM.notify(1, n);
133184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato            }
134184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato        },
135184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato
136ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker 1 line") {
137ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
138ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, "tick tick tick",
139ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
140ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
141ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
142ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
143ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
144ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
145ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("No view") {
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon1, "No view",
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("No intent") {
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon1, "No intent",
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "No intent",
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "No intent", null);
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Layout") {
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
167ddf680bff5bb9bc04ef04667644db8ade0b38c46Joe Onorato                Notification n;
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
169ddf680bff5bb9bc04ef04667644db8ade0b38c46Joe Onorato                n = new Notification(NotificationTestList.this,
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            R.drawable.ic_statusbar_missedcall,
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis()-(1000*60*60*24),
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "(453) 123-2328",
173ddf680bff5bb9bc04ef04667644db8ade0b38c46Joe Onorato                            "", null);
174ddf680bff5bb9bc04ef04667644db8ade0b38c46Joe Onorato                n.flags |= Notification.FLAG_ONGOING_EVENT;
175ddf680bff5bb9bc04ef04667644db8ade0b38c46Joe Onorato
176ddf680bff5bb9bc04ef04667644db8ade0b38c46Joe Onorato                mNM.notify(1, n);
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, new Notification(NotificationTestList.this,
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            R.drawable.ic_statusbar_email,
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis(),
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Mark Willem, Me (2)",
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Re: Didn't you get the memo?", null));
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(3, new Notification(NotificationTestList.this,
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            R.drawable.ic_statusbar_chat,
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis()+(1000*60*60*24),
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Sophia Winterlanden",
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Lorem ipsum dolor sit amet.", null));
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
192005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad Icon #1 (when=create)") {
193871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato            public void run() {
194005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.layout.chrono_notification /* not an icon */,
195005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, mActivityCreateTime);
196005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
197005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
198005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
199871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato            }
200871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato        },
201871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato
202005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad Icon #1 (when=now)") {
203005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
204005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.layout.chrono_notification /* not an icon */,
205005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, System.currentTimeMillis());
206005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
207005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
208005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
209005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            }
210005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        },
211005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
212e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler        new Test("Null Icon #1 (when=now)") {
213e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            public void run() {
214e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                Notification n = new Notification(0, null, System.currentTimeMillis());
215e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
216e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            "This is the same notification!!!", makeIntent());
217e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                mNM.notify(1, n);
218e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            }
219e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler        },
220e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
221005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad resource #1 (when=create)") {
222005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
223005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.drawable.icon2,
224005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, mActivityCreateTime);
225005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
226005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
22768065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
228005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
22968065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
23068065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
23168065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
232005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad resource #1 (when=now)") {
233005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
234005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.drawable.icon2,
235005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, System.currentTimeMillis());
236005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
237005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
238005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
239005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
240005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            }
241005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        },
242005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
243005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
24468065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        new Test("Bad resource #3") {
24568065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            public void run()
24668065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            {
24768065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                Notification n = new Notification(NotificationTestList.this,
24868065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            R.drawable.ic_statusbar_missedcall,
24968065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            null, System.currentTimeMillis()-(1000*60*60*24),
25068065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            "(453) 123-2328",
25168065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            "", null);
25268065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
25368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                mNM.notify(3, n);
25468065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
25568065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
25668065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
257c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        new Test("Times") {
258c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            public void run()
259c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            {
260c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                long now = System.currentTimeMillis();
261c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
262c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(7, "24 hours from now", now+(1000*60*60*24));
263c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(6, "12:01:00 from now", now+(1000*60*60*12)+(60*1000));
264c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(5, "12 hours from now", now+(1000*60*60*12));
265c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(4, "now", now);
266c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(3, "11:59:00 ago", now-((1000*60*60*12)-(60*1000)));
267c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(2, "12 hours ago", now-(1000*60*60*12));
268c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(1, "24 hours ago", now-(1000*60*60*24));
269c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            }
270c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        },
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new StateStress("Stress - Ongoing / Latest", 100, 100, new Runnable[] {
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new Runnable() {
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    public void run() {
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Log.d(TAG, "Stress - Ongoing/Latest 0");
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Notification n = new Notification(NotificationTestList.this,
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                R.drawable.icon3,
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                null, System.currentTimeMillis(), "Stress - Ongoing",
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                "Notify me!!!", null);
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        n.flags |= Notification.FLAG_ONGOING_EVENT;
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        mNM.notify(1, n);
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                },
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new Runnable() {
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    public void run() {
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Log.d(TAG, "Stress - Ongoing/Latest 1");
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Notification n = new Notification(NotificationTestList.this,
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                R.drawable.icon4,
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                null, System.currentTimeMillis(), "Stress - Latest",
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                "Notify me!!!", null);
290175f79c5a556416817a8f8674b2e0ac3b3cb6e6bJoe Onorato                        //n.flags |= Notification.FLAG_ONGOING_EVENT;
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        mNM.notify(1, n);
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }),
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Long") {
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults |= Notification.DEFAULT_SOUND ;
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.vibrate = new long[] {
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400 };
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
309373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        new Test("Progress #1") {
310373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            public void run() {
311373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                final boolean PROGRESS_UPDATES_WHEN = true;
312373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                if (!mProgressDone) return;
313373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                mProgressDone = false;
314373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                Thread t = new Thread() {
315373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                    public void run() {
316373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                        int x = 0;
317373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                        while (!mProgressDone) {
318373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            Notification n = new Notification(R.drawable.icon1, null,
319373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                    PROGRESS_UPDATES_WHEN
320373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                    ? System.currentTimeMillis()
321373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                    : mActivityCreateTime);
322373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            RemoteViews v = new RemoteViews(getPackageName(),
323373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                    R.layout.progress_notification);
324373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
325373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            v.setProgressBar(R.id.progress_bar, 100, x, false);
326373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            v.setTextViewText(R.id.status_text, "Progress: " + x + "%");
327373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
328373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            n.contentView = v;
329373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            n.flags |= Notification.FLAG_ONGOING_EVENT;
330373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
331373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            mNM.notify(500, n);
332373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            x = (x + 7) % 100;
333373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
334373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            try {
335373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                Thread.sleep(1000);
336373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            } catch (InterruptedException e) {
337373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                break;
338373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            }
339373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                        }
340373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                    }
341373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                };
342373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                t.start();
343373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            }
344373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        },
345373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
346373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        new Test("Stop Progress") {
347373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            public void run() {
348373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                mProgressDone = true;
349373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                mNM.cancel(500);
350373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            }
351373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        },
352373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
353105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Lights") {
354105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
355105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
356105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
357105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
358105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledARGB = 0xff0000ff;
359b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 1;
360b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
361105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
362105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
363105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
364105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
365105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Red Lights") {
366105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
367105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
368105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
369105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
370105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledARGB = 0xffff0000;
371b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 1;
372b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
373105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
374105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
375105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
376105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
377105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Yellow Lights") {
378105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
379105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
380105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
381105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
382105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledARGB = 0xffffff00;
383b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 1;
384b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
385b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                mNM.notify(1, n);
386b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            }
387b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren        },
388b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren
389b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren        new Test("Lights off") {
390b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            public void run()
391b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            {
392b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                Notification n = new Notification();
393b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.flags |= Notification.FLAG_SHOW_LIGHTS;
394b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledARGB = 0x00000000;
395b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 0;
396b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
397105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
398105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
399105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
400105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
401105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Blinking Slow") {
402105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
403105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
404105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
405105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
406b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledARGB = 0xff0000ff;
407105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOnMS = 1300;
408105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOffMS = 1300;
409105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
410105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
411105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
412105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
413105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Blinking Fast") {
414105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
415105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
416105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
417105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
418b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledARGB = 0xff0000ff;
419105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOnMS = 300;
420105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOffMS = 300;
421105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
422105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
423105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
424105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Default All") {
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults |= Notification.DEFAULT_ALL;
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Default All, once") {
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults |= Notification.DEFAULT_ALL;
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.flags |= Notification.FLAG_ONLY_ALERT_ONCE ;
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Content Sound") {
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.sound = Uri.parse(
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        "content://media/internal/audio/media/7");
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Resource Sound") {
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.sound = Uri.parse(
4604df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project                        ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
4614df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project                        getPackageName() + "/raw/ringer");
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Log.d(TAG, "n.sound=" + n.sound);
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Sound and Cancel") {
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.sound = Uri.parse(
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "content://media/internal/audio/media/7");
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                SystemClock.sleep(200);
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate") {
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.vibrate = new long[] { 0, 700, 500, 1000 };
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate and cancel") {
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.vibrate = new long[] { 0, 700, 500, 1000 };
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                SystemClock.sleep(500);
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate pattern") {
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(new long[] { 250, 1000, 500, 2000 }, -1);
5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate pattern repeating") {
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(new long[] { 250, 1000, 500 }, 1);
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate 3s") {
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(3000);
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate 100s") {
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(100000);
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate off") {
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.cancel();
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #1") {
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #1 in 3 sec") {
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            public void run() {
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                Log.d(TAG, "Cancelling now...");
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                mNM.cancel(1);
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            }
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }, 3000);
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #2") {
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(2);
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #1") {
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon1, "tick tick tick",
564d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                        mActivityCreateTime);
5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "This is a notification!!!", makeIntent());
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #1 in 3 sec") {
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            public void run() {
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                Notification n = new Notification(R.drawable.icon1,
5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        "            "
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "tick tock tick tock\n\nSometimes notifications can "
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "be really long and wrap to more than one line.\n"
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "Sometimes."
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "Ohandwhathappensifwehaveonereallylongstringarewesure"
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "thatwesegmentitcorrectly?\n",
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        System.currentTimeMillis());
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                n.setLatestEventInfo(NotificationTestList.this,
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        "Still Persistent #1",
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        "This is still a notification!!!",
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        makeIntent());
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                mNM.notify(1, n);
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            }
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }, 3000);
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #2") {
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon2, "tock tock tock",
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "Persistent #2",
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!", makeIntent());
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
60368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        new Test("Persistent #3") {
60468065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            public void run() {
605ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon2, "tock tock tock\nmooooo",
60668065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                        System.currentTimeMillis());
60768065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #3",
60868065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            "Notify me!!!", makeIntent());
60968065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                mNM.notify(3, n);
61068065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
61168065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
61268065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #2 Vibrate") {
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon2, "tock tock tock",
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "Persistent #2",
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!", makeIntent());
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults = Notification.DEFAULT_VIBRATE;
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
624d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato        new Test("Persistent #1 - different icon") {
625d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato            public void run() {
626d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                Notification n = new Notification(R.drawable.icon2, null,
627d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                        mActivityCreateTime);
628d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
629d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                            "This is the same notification!!!", makeIntent());
630d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                mNM.notify(1, n);
631d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato            }
632d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato        },
633d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Chronometer Start") {
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon2, "me me me me",
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                    System.currentTimeMillis());
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.contentView = new RemoteViews(getPackageName(), R.layout.chrono_notification);
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mChronometerBase = SystemClock.elapsedRealtime();
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.contentView.setChronometer(R.id.time, mChronometerBase, "Yay! (%s)", true);
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.flags |= Notification.FLAG_ONGOING_EVENT;
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.contentIntent = makeIntent();
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Chronometer Stop") {
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Log.d(TAG, "Chronometer Stop");
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Notification n = new Notification();
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.icon = R.drawable.icon1;
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.contentView = new RemoteViews(getPackageName(),
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                             R.layout.chrono_notification);
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.contentView.setChronometer(R.id.time, mChronometerBase, null, false);
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.contentIntent = makeIntent();
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNM.notify(2, n);
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Sequential Persistent") {
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, notificationWithNumbers(2));
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Replace Persistent") {
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Run and Cancel (n=1)") {
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Run an Cancel (n=2)") {
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, notificationWithNumbers(2));
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(2);
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Repeatedly notify and cancel -- triggers bug #670627
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Bug 670627") {
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 0; i < 10; i++) {
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  Log.d(TAG, "Add two notifications");
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.notify(1, notificationWithNumbers(1));
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.notify(2, notificationWithNumbers(2));
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  Log.d(TAG, "Cancel two notifications");
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.cancel(1);
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.cancel(2);
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Ten Notifications") {
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 0; i < 2; i++) {
710b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                    Notification n = new Notification(NotificationTestList.this,
711b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                            kNumberedIconResIDs[i],
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis(), "Persistent #" + i,
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!" + i, null);
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.flags |= Notification.FLAG_ONGOING_EVENT;
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.number = i;
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.notify((i+1)*10, n);
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 2; i < 10; i++) {
719b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                    Notification n = new Notification(NotificationTestList.this,
720b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                            kNumberedIconResIDs[i],
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis(), "Persistent #" + i,
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!" + i, null);
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.number = i;
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.notify((i+1)*10, n);
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel eight notifications") {
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 1; i < 9; i++) {
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.cancel((i+1)*10);
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
737b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        new Test("Cancel the other two notifications") {
738b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler            public void run() {
739b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                mNM.cancel(10);
740b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                mNM.cancel(100);
741b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler            }
742b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        },
743b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler
7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 1") {
7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7506c01a11a20d5fc796360e5e97998401a6cc84f27Joe Onorato        new Test("Persistent with numbers 22") {
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(22));
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 333") {
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(333));
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 4444") {
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(4444));
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
768e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler        new Test("System priority notification") {
769e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            public void run() {
770e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                Notification n = new Notification.Builder(NotificationTestList.this)
771e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    .setSmallIcon(R.drawable.notification1)
772e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    .setContentTitle("System priority")
773e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    .setContentText("This should appear before all others")
774e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    .getNotification();
775e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
776e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                int[] idOut = new int[1];
777e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                try {
778e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    INotificationManager directLine = mNM.getService();
779e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    directLine.enqueueNotificationWithTagPriority(
780e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            getPackageName(),
781e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            null,
782e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            1,
783e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            StatusBarNotification.PRIORITY_SYSTEM,
784e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            n,
785e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            idOut);
786e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                } catch (android.os.RemoteException ex) {
787e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    // oh well
788e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                }
789e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            }
790e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler        },
791e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
792105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Crash") {
793105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
794105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
795105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                PowerManager.WakeLock wl
796ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauer                        = ((PowerManager)NotificationTestList.this.getSystemService(Context.POWER_SERVICE))
797105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "crasher");
798105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                wl.acquire();
799105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mHandler.postDelayed(new Runnable() {
800105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            public void run() {
801105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                                throw new RuntimeException("Die!");
802105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            }
803105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                        }, 10000);
804105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
805105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
806105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
807105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private Notification notificationWithNumbers(int num) {
811b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        Notification n = new Notification(this,
812b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                (num >= 0 && num < kNumberedIconResIDs.length)
813b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                    ? kNumberedIconResIDs[num]
814b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                    : kUnnumberedIconResID,
815b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                null,
816b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                System.currentTimeMillis(),
817b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                "Notification", "Number=" + num,
818b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                null);
8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        n.number = num;
8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return n;
8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private PendingIntent makeIntent() {
8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Intent intent = new Intent(Intent.ACTION_MAIN);
8250e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato        intent.addCategory(Intent.CATEGORY_HOME);
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return PendingIntent.getActivity(this, 0, intent, 0);
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
829184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato    private PendingIntent makeIntent2() {
830184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato        Intent intent = new Intent(this, StatusBarTest.class);
831184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato        return PendingIntent.getActivity(this, 0, intent, 0);
832184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato    }
833184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato
834184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    class StateStress extends Test {
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        StateStress(String name, int pause, int iterations, Runnable[] tasks) {
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            super(name);
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mPause = pause;
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mTasks = tasks;
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mIteration = iterations;
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Runnable[] mTasks;
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int mNext;
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int mIteration;
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        long mPause;
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Runnable mRunnable = new Runnable() {
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mTasks[mNext].run();
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNext++;
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                if (mNext >= mTasks.length) {
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNext = 0;
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mIteration--;
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    if (mIteration <= 0) {
8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        return;
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(mRunnable, mPause);
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        };
8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void run() {
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mNext = 0;
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mHandler.postDelayed(mRunnable, mPause);
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
865c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
866c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato    void timeNotification(int n, String label, long time) {
867c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        mNM.notify(n, new Notification(NotificationTestList.this,
868c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                    R.drawable.ic_statusbar_missedcall, null,
869c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                    time, label, "" + new java.util.Date(time), null));
870c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
871c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato    }
872ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
873ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato    Bitmap loadBitmap(int resId) {
874ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        BitmapDrawable bd = (BitmapDrawable)getResources().getDrawable(resId);
875ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        return Bitmap.createBitmap(bd.getBitmap());
876ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato    }
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
879