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;
27bc5559f1922d72715940f754faffc82da4100eabDaniel Sandlerimport android.os.Bundle;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Vibrator;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
304120375d46091df8527bb701882e056fbb0e6b06Dianne Hackbornimport android.os.UserHandle;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemClock;
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.RemoteViews;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.PowerManager;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
37e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler// private NM API
38e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandlerimport android.app.INotificationManager;
39e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class NotificationTestList extends TestActivity
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private final static String TAG = "NotificationTestList";
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    NotificationManager mNM;
45bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler    Vibrator mVibrator;
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Handler mHandler = new Handler();
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
48bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler    long mActivityCreateTime;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long mChronometerBase = 0;
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
51373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler    boolean mProgressDone = true;
52373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
53b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler    final int[] kNumberedIconResIDs = {
54b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification0,
55b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification1,
56b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification2,
57b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification3,
58b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification4,
59b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification5,
60b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification6,
61b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification7,
62b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification8,
63b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        R.drawable.notification9
64b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler    };
65b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler    final int kUnnumberedIconResID = R.drawable.notificationx;
66b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
68bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler    public void onCreate(Bundle icicle) {
69bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler        super.onCreate(icicle);
70bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler        mVibrator = (Vibrator)getSystemService(VIBRATOR_SERVICE);
71bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler        mActivityCreateTime = System.currentTimeMillis();
72bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler    }
73bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler
74bc5559f1922d72715940f754faffc82da4100eabDaniel Sandler    @Override
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected String tag() {
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return TAG;
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected Test[] tests() {
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mTests;
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private Test[] mTests = new Test[] {
871ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren        new Test("Off") {
88e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato            public void run() {
89ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauer                PowerManager pm = (PowerManager)NotificationTestList.this.getSystemService(Context.POWER_SERVICE);
90e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                PowerManager.WakeLock wl =
91e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                            pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "sound");
92e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                wl.acquire();
93e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
94e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                pm.goToSleep(SystemClock.uptimeMillis());
95e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
961ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
971ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.stat_sys_phone)
981ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
991ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
1001ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        getPackageName() + "/raw/ringer"))
1011ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
102e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "n.sound=" + n.sound);
103e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
104e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                mNM.notify(1, n);
105e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
106e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "releasing wake lock");
107e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                wl.release();
108e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "released wake lock");
109e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato            }
110e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato        },
111e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
112ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Cancel #1") {
113ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run()
114ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            {
115ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.cancel(1);
116ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
117ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
118ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
1191ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren        new Test("Custom Button") {
1204058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato            public void run() {
1211ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
1221ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
1231ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
1241ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
1251ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setOngoing(true)
1261ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
1274058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                n.contentView = new RemoteViews(getPackageName(), R.layout.button_notification);
1284058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                n.contentView.setOnClickPendingIntent(R.id.button, makeIntent2());
1294058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato
1304058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato                mNM.notify(1, n);
1314058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato            }
1324058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato        },
1334058ba052682129f2d1055116aaffb2e91c2013dJoe Onorato
1341ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren        new Test("Action Button") {
135184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato            public void run() {
1361ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
1371ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
1381ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
1391ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
1401ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setOngoing(true)
1411ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .addAction(R.drawable.ic_statusbar_chat, "Button", makeIntent2())
1421ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
143184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato
144ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
145ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
146ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
147ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
1481ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren        new Test("with intent") {
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1501ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
1511ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
1521ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
1531ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle("Persistent #1")
1541ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is a notification!!!")
1551ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent2())
1561ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setOngoing(true)
1571ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1631ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren        new Test("Whens") {
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
1661ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification.Builder n = new Notification.Builder(NotificationTestList.this)
1671ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
1681ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
1691ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setOngoing(true);
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1711ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, n.setContentTitle("(453) 123-2328")
1721ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setWhen(System.currentTimeMillis()-(1000*60*60*24))
1731ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .build());
174ddf680bff5bb9bc04ef04667644db8ade0b38c46Joe Onorato
1751ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, n.setContentTitle("Mark Willem, Me (2)")
1761ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setWhen(System.currentTimeMillis())
1771ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .build());
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1791ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, n.setContentTitle("Sophia Winterlanden")
1801ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(System.currentTimeMillis() + (1000 * 60 * 60 * 24))
1811ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build());
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
185005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad Icon #1 (when=create)") {
186871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato            public void run() {
1871ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
1881ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.layout.chrono_notification /* not an icon */)
1891ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
1901ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle("Persistent #1")
1911ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is the same notification!!")
1921ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
1931ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
194005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
195871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato            }
196871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato        },
197871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato
198005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad Icon #1 (when=now)") {
199005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
2001ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
2011ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.layout.chrono_notification /* not an icon */)
2021ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(System.currentTimeMillis())
2031ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle("Persistent #1")
2041ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is the same notification!!")
2051ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
2061ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
207005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
208005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            }
209005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        },
210005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
211e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler        new Test("Null Icon #1 (when=now)") {
212e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            public void run() {
2131ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
2141ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(0)
2151ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(System.currentTimeMillis())
2161ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle("Persistent #1")
2171ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is the same notification!!")
2181ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
2191ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
220e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                mNM.notify(1, n);
221e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            }
222e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler        },
223e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
224005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad resource #1 (when=create)") {
225005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
2261ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
2271ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
2281ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
2291ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle("Persistent #1")
2301ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is the same notification!!")
2311ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
2321ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
23368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
234005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
23568065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
23668065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
23768065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
238005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad resource #1 (when=now)") {
239005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
2401ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
2411ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
2421ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(System.currentTimeMillis())
2431ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle("Persistent #1")
2441ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is the same notification!!")
2451ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
2461ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
247005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
248005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
249005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            }
250005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        },
251005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
252c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        new Test("Times") {
253c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            public void run()
254c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            {
255c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                long now = System.currentTimeMillis();
256c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
257c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(7, "24 hours from now", now+(1000*60*60*24));
258c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(6, "12:01:00 from now", now+(1000*60*60*12)+(60*1000));
259c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(5, "12 hours from now", now+(1000*60*60*12));
260c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(4, "now", now);
261c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(3, "11:59:00 ago", now-((1000*60*60*12)-(60*1000)));
262c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(2, "12 hours ago", now-(1000*60*60*12));
263c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(1, "24 hours ago", now-(1000*60*60*24));
264c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            }
265c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        },
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new StateStress("Stress - Ongoing / Latest", 100, 100, new Runnable[] {
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new Runnable() {
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    public void run() {
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Log.d(TAG, "Stress - Ongoing/Latest 0");
2701ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        Notification n = new Notification.Builder(NotificationTestList.this)
2711ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setSmallIcon(R.drawable.icon3)
2721ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setWhen(System.currentTimeMillis())
2731ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setContentTitle("Stress - Ongoing")
2741ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setContentText("Notify me!!!")
2751ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setOngoing(true)
2761ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .build();
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        mNM.notify(1, n);
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                },
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new Runnable() {
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    public void run() {
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Log.d(TAG, "Stress - Ongoing/Latest 1");
2831ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        Notification n = new Notification.Builder(NotificationTestList.this)
2841ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setSmallIcon(R.drawable.icon4)
2851ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setWhen(System.currentTimeMillis())
2861ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setContentTitle("Stress - Latest")
2871ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setContentText("Notify me!!!")
2881ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .build();
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        mNM.notify(1, n);
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }),
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Long") {
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
2971ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
2981ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
2991ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
3001ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_SOUND)
3011ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setVibrate(new long[] {
3021ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
3031ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
3041ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400 })
3051ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
310373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        new Test("Progress #1") {
311373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            public void run() {
312373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                final boolean PROGRESS_UPDATES_WHEN = true;
313373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                if (!mProgressDone) return;
314373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                mProgressDone = false;
315373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                Thread t = new Thread() {
316373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                    public void run() {
317373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                        int x = 0;
3181ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        final Notification.Builder n = new Notification.Builder(NotificationTestList.this)
3191ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setSmallIcon(R.drawable.icon1)
3201ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setContentTitle(name)
3211ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                .setOngoing(true);
3221ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren
323373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                        while (!mProgressDone) {
3241ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            n.setWhen(PROGRESS_UPDATES_WHEN
325373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                    ? System.currentTimeMillis()
326373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                    : mActivityCreateTime);
3271ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            n.setProgress(100, x, false);
3281ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            n.setContentText("Progress: " + x + "%");
3291ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren
3301ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            mNM.notify(500, n.build());
331373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            x = (x + 7) % 100;
332373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
333373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            try {
334373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                Thread.sleep(1000);
335373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            } catch (InterruptedException e) {
336373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                                break;
337373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                            }
338373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                        }
339373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                    }
340373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                };
341373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                t.start();
342373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            }
343373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        },
344373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
345373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        new Test("Stop Progress") {
346373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            public void run() {
347373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                mProgressDone = true;
348373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler                mNM.cancel(500);
349373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler            }
350373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler        },
351373a9983742b3d2370c36183aca3cde4614e6185Daniel Sandler
352105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Lights") {
353105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
354105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
3551ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
3561ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
3571ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
3581ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setLights(0xff0000ff, 1, 0)
3591ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_LIGHTS)
3601ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
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            {
3681ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
3691ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
3701ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
3711ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setLights(0xffff0000, 1, 0)
3721ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_LIGHTS)
3731ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
374105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
375105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
376105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
377105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
378105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Yellow Lights") {
379105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
380105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
3811ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
3821ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
3831ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
3841ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setLights(0xffffff00, 1, 0)
3851ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_LIGHTS)
3861ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
387b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                mNM.notify(1, n);
388b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            }
389b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren        },
390b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren
391b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren        new Test("Lights off") {
392b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            public void run()
393b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            {
3941ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
3951ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
3961ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
3971ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setLights(0x00000000, 0, 0)
3981ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_LIGHTS)
3991ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
400105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
401105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
402105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
403105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
404105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Blinking Slow") {
405105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
406105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
4071ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
4081ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
4091ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
4101ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setLights(0xff0000ff, 1300, 1300)
4111ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_LIGHTS)
4121ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
413105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
414105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
415105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
416105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
417105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Blinking Fast") {
418105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
419105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
4201ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
4211ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
4221ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
4231ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setLights(0xff0000ff, 300, 300)
4241ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_LIGHTS)
4251ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
426105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
427105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
428105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
429105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Default All") {
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4331ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
4341ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
4351ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
4361ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_ALL)
4371ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Default All, once") {
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4451ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
4461ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
4471ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
4481ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setOnlyAlertOnce(true)
4491ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_ALL)
4501ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
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            {
4581ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
4591ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.stat_sys_phone)
4601ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
4611ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
4621ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                getPackageName() + "/raw/ringer"))
4631ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Log.d(TAG, "n.sound=" + n.sound);
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Sound and Cancel") {
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4731ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
4741ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.stat_sys_phone)
4751ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
4761ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
4771ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                getPackageName() + "/raw/ringer"))
4781ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
4791ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Log.d(TAG, "n.sound=" + n.sound);
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                SystemClock.sleep(200);
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate") {
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4901ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
4911ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.stat_sys_phone)
4921ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
4931ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setVibrate(new long[]{0, 700, 500, 1000})
4941ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate and cancel") {
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5031ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
5041ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.stat_sys_phone)
5051ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
5061ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setVibrate(new long[]{0, 700, 500, 1000})
5071ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                SystemClock.sleep(500);
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate pattern") {
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(new long[] { 250, 1000, 500, 2000 }, -1);
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate pattern repeating") {
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(new long[] { 250, 1000, 500 }, 1);
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate 3s") {
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(3000);
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate 100s") {
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(100000);
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate off") {
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.cancel();
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #1") {
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #1 in 3 sec") {
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            public void run() {
5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                Log.d(TAG, "Cancelling now...");
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                mNM.cancel(1);
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            }
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }, 3000);
5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #2") {
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(2);
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #1") {
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5751ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
5761ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
5771ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
5781ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
5791ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is a notification!!!")
5801ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
5811ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #1 in 3 sec") {
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            public void run() {
5901ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                String message = "            "
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "tick tock tick tock\n\nSometimes notifications can "
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "be really long and wrap to more than one line.\n"
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "Sometimes."
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "Ohandwhathappensifwehaveonereallylongstringarewesure"
5951ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        + "thatwesegmentitcorrectly?\n";
5961ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                Notification n = new Notification.Builder(NotificationTestList.this)
5971ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        .setSmallIcon(R.drawable.icon1)
5981ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        .setContentTitle(name)
5991ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        .setContentText("This is still a notification!!!")
6001ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        .setContentIntent(makeIntent())
6011ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        .setStyle(new Notification.BigTextStyle().bigText(message))
6021ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                        .build();
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                mNM.notify(1, n);
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            }
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }, 3000);
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #2") {
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6111ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
6121ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
6131ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
6141ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
6151ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is a notification!!!")
6161ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
6171ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
62268065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        new Test("Persistent #3") {
62368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            public void run() {
6241ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
6251ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
6261ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
6271ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
6281ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is a notification!!!")
6291ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
6301ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
63168065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                mNM.notify(3, n);
63268065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
63368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
63468065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #2 Vibrate") {
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6371ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
6381ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
6391ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
6401ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
6411ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is a notification!!!")
6421ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
6431ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setDefaults(Notification.DEFAULT_VIBRATE)
6441ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
649d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato        new Test("Persistent #1 - different icon") {
650d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato            public void run() {
6511ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
6521ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon2)
6531ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(mActivityCreateTime)
6541ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
6551ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentText("This is a notification!!!")
6561ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
6571ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
658d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                mNM.notify(1, n);
659d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato            }
660d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato        },
661d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Chronometer Start") {
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6641ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                Notification n = new Notification.Builder(NotificationTestList.this)
6651ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setSmallIcon(R.drawable.icon1)
6661ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setWhen(System.currentTimeMillis())
6671ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentTitle(name)
6681ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setContentIntent(makeIntent())
6691ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setOngoing(true)
6701ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .setUsesChronometer(true)
6711ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        .build();
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Chronometer Stop") {
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Log.d(TAG, "Chronometer Stop");
6811ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            Notification n = new Notification.Builder(NotificationTestList.this)
6821ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                    .setSmallIcon(R.drawable.icon1)
6831ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                    .setWhen(System.currentTimeMillis())
6841ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                    .setContentTitle(name)
6851ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                    .setContentIntent(makeIntent())
6861ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                                    .build();
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNM.notify(2, n);
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Sequential Persistent") {
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6951ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 1));
6961ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(2, notificationWithNumbers(name, 2));
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Replace Persistent") {
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7021ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 1));
7031ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 1));
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Run and Cancel (n=1)") {
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7091ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 1));
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Run an Cancel (n=2)") {
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7161ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 1));
7171ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(2, notificationWithNumbers(name, 2));
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(2);
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Repeatedly notify and cancel -- triggers bug #670627
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Bug 670627") {
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 0; i < 10; i++) {
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  Log.d(TAG, "Add two notifications");
7271ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                  mNM.notify(1, notificationWithNumbers(name, 1));
7281ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                  mNM.notify(2, notificationWithNumbers(name, 2));
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  Log.d(TAG, "Cancel two notifications");
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.cancel(1);
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.cancel(2);
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Ten Notifications") {
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7381ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                for (int i = 0; i < 10; i++) {
7391ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                    Notification n = new Notification.Builder(NotificationTestList.this)
7401ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            .setSmallIcon(kNumberedIconResIDs[i])
7411ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            .setContentTitle("Persistent #" + i)
7421ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            .setContentText("Notify me!!!" + i)
7431ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            .setOngoing(i < 2)
7441ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            .setNumber(i)
7451ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                            .build();
7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.notify((i+1)*10, n);
7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel eight notifications") {
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 1; i < 9; i++) {
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.cancel((i+1)*10);
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
759b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        new Test("Cancel the other two notifications") {
760b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler            public void run() {
761b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                mNM.cancel(10);
762b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler                mNM.cancel(100);
763b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler            }
764b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler        },
765b0cc50de14dc9e2d0d224803bb523aa7f48904acDaniel Sandler
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 1") {
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7681ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 1));
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7726c01a11a20d5fc796360e5e97998401a6cc84f27Joe Onorato        new Test("Persistent with numbers 22") {
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7741ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 22));
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 333") {
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7801ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 333));
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 4444") {
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7861ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                mNM.notify(1, notificationWithNumbers(name, 4444));
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7902561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler        new Test("PRIORITY_HIGH") {
791e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            public void run() {
792e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                Notification n = new Notification.Builder(NotificationTestList.this)
7932561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setSmallIcon(R.drawable.notification5)
7942561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setContentTitle("High priority")
795e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    .setContentText("This should appear before all others")
7962561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setPriority(Notification.PRIORITY_HIGH)
7971ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                    .build();
798e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
799e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                int[] idOut = new int[1];
800e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                try {
801e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    INotificationManager directLine = mNM.getService();
8022561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    directLine.enqueueNotificationWithTag(
8032561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                            getPackageName(),
804f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn                            getPackageName(),
8052561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                            null,
8062561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                            100,
8072561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                            n,
8084120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                            idOut,
8094120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                            UserHandle.myUserId());
8102561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                } catch (android.os.RemoteException ex) {
8112561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    // oh well
8122561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                }
8132561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler            }
8142561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler        },
8152561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler
8162561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler        new Test("PRIORITY_MAX") {
8172561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler            public void run() {
8182561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                Notification n = new Notification.Builder(NotificationTestList.this)
8192561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setSmallIcon(R.drawable.notification9)
8202561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setContentTitle("MAX priority")
8212561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setContentText("This might appear as an intruder alert")
8222561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setPriority(Notification.PRIORITY_MAX)
8231ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                    .build();
8242561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler
8252561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                int[] idOut = new int[1];
8262561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                try {
8272561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    INotificationManager directLine = mNM.getService();
8282561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    directLine.enqueueNotificationWithTag(
8292561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                            getPackageName(),
830f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn                            getPackageName(),
831f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn                            null,
8322561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                            200,
8332561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                            n,
8344120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                            idOut,
8354120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                            UserHandle.myUserId());
8362561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                } catch (android.os.RemoteException ex) {
8372561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    // oh well
8382561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                }
8392561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler            }
8402561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler        },
8412561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler
8422561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler        new Test("PRIORITY_MIN") {
8432561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler            public void run() {
8442561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                Notification n = new Notification.Builder(NotificationTestList.this)
8452561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setSmallIcon(R.drawable.notification0)
8462561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setContentTitle("MIN priority")
8472561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setContentText("You should not see this")
8482561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    .setPriority(Notification.PRIORITY_MIN)
8491ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                    .build();
8502561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler
8512561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                int[] idOut = new int[1];
8522561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                try {
8532561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    INotificationManager directLine = mNM.getService();
8542561b0b10a55841a08e0e1d467e73e10b1bf256dDaniel Sandler                    directLine.enqueueNotificationWithTag(
855e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            getPackageName(),
856f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn                            getPackageName(),
857f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn                            null,
858e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            1,
859e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                            n,
8604120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                            idOut,
8614120375d46091df8527bb701882e056fbb0e6b06Dianne Hackborn                            UserHandle.myUserId());
862e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                } catch (android.os.RemoteException ex) {
863e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                    // oh well
864e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler                }
865e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler            }
866e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler        },
867e40451a89dc91dfd636af7cb32a23b4a4cc93fdcDaniel Sandler
868105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Crash") {
869105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
870105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
871105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                PowerManager.WakeLock wl
872ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauer                        = ((PowerManager)NotificationTestList.this.getSystemService(Context.POWER_SERVICE))
873105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "crasher");
874105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                wl.acquire();
875105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mHandler.postDelayed(new Runnable() {
876105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            public void run() {
877105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                                throw new RuntimeException("Die!");
878105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            }
879105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                        }, 10000);
880105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
881105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
882105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
883105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8861ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren    private Notification notificationWithNumbers(String name, int num) {
8871ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren        Notification n = new Notification.Builder(NotificationTestList.this)
8881ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setSmallIcon((num >= 0 && num < kNumberedIconResIDs.length)
8891ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        ? kNumberedIconResIDs[num]
8901ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                        : kUnnumberedIconResID)
8911ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setContentTitle(name)
8921ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setContentText("Number=" + num)
8931ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setNumber(num)
8941ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .build();
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return n;
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private PendingIntent makeIntent() {
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Intent intent = new Intent(Intent.ACTION_MAIN);
9000e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato        intent.addCategory(Intent.CATEGORY_HOME);
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return PendingIntent.getActivity(this, 0, intent, 0);
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
904184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato    private PendingIntent makeIntent2() {
905184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato        Intent intent = new Intent(this, StatusBarTest.class);
906184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato        return PendingIntent.getActivity(this, 0, intent, 0);
907184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato    }
908184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato
909184498ce5a8d77e1d9c45693363829daaeef9611Joe Onorato
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    class StateStress extends Test {
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        StateStress(String name, int pause, int iterations, Runnable[] tasks) {
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            super(name);
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mPause = pause;
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mTasks = tasks;
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mIteration = iterations;
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Runnable[] mTasks;
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int mNext;
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int mIteration;
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        long mPause;
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Runnable mRunnable = new Runnable() {
9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mTasks[mNext].run();
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNext++;
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                if (mNext >= mTasks.length) {
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNext = 0;
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mIteration--;
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    if (mIteration <= 0) {
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        return;
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(mRunnable, mPause);
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        };
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void run() {
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mNext = 0;
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mHandler.postDelayed(mRunnable, mPause);
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
940c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
941c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato    void timeNotification(int n, String label, long time) {
9421ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren        mNM.notify(n, new Notification.Builder(NotificationTestList.this)
9431ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setSmallIcon(R.drawable.ic_statusbar_missedcall)
9441ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setWhen(time)
9451ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setContentTitle(label)
9461ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .setContentText(new java.util.Date(time).toString())
9471ce4b6d3c6cb5b2eb9c9d00472be12245db92427Chris Wren                .build());
948c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
949c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato    }
950ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
951ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato    Bitmap loadBitmap(int resId) {
952ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        BitmapDrawable bd = (BitmapDrawable)getResources().getDrawable(resId);
953ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        return Bitmap.createBitmap(bd.getBitmap());
954ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato    }
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
957