NotificationTestList.java revision ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fc
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.statusbartest;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
19ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.app.Notification;
20ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.app.NotificationManager;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.PendingIntent;
22ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauerimport android.content.Context;
234df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Projectimport android.content.ContentResolver;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
25ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.graphics.Bitmap;
26ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onoratoimport android.graphics.drawable.BitmapDrawable;
278b85dceadf281705a94d7546556fa5969364a658Christian Mehlmauerimport android.os.Environment;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Vibrator;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemClock;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.RemoteViews;
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.PowerManager;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class NotificationTestList extends TestActivity
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private final static String TAG = "NotificationTestList";
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    NotificationManager mNM;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Vibrator mVibrator = new Vibrator();
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Handler mHandler = new Handler();
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
44d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato    long mActivityCreateTime = System.currentTimeMillis();
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    long mChronometerBase = 0;
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected String tag() {
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return TAG;
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    protected Test[] tests() {
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return mTests;
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private Test[] mTests = new Test[] {
60e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato        new Test("Off and sound") {
61e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato            public void run() {
62ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauer                PowerManager pm = (PowerManager)NotificationTestList.this.getSystemService(Context.POWER_SERVICE);
63e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                PowerManager.WakeLock wl =
64e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                            pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "sound");
65e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                wl.acquire();
66e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
67e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                pm.goToSleep(SystemClock.uptimeMillis());
68e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
69e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Notification n = new Notification();
708b85dceadf281705a94d7546556fa5969364a658Christian Mehlmauer                n.sound = Uri.parse("file://" + Environment.getExternalStorageDirectory() +
718b85dceadf281705a94d7546556fa5969364a658Christian Mehlmauer                        "/virtual-void.mp3");
72e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "n.sound=" + n.sound);
73e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
74e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                mNM.notify(1, n);
75e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
76e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "releasing wake lock");
77e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                wl.release();
78e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato                Log.d(TAG, "released wake lock");
79e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato            }
80e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato        },
81e71d9e421da070705a8f37aaf702282467a9fe7fJoe Onorato
82ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Cancel #1") {
83ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run()
84ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            {
85ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.cancel(1);
86ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
87ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
88ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
89ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker 1 line") {
90ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
91ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, "tick tick tick",
92ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
93ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
94ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
95ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
96ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
97ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
98ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
99ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker 1 line & icon") {
100ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
101ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, "tick tick tick",
102ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
103ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
104ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
105ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerIcons = new Bitmap[1];
106ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerIcons[0] = loadBitmap(R.drawable.icon3);
107ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
108ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
109ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
110ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
111ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker 2 lines") {
112ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
113ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, "tick tick tick\ntock tock",
114ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
115ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
116ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
117ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
118ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
119ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
120ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
121ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker title") {
122ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
123ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, null,
124ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
125ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
126ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
127ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerTitle = "This is a title";
128ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
129ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
130ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
131ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
132ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker subtitle") {
133ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
134ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, null,
135ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
136ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
137ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
138ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerSubtitle = "and a subtitle";
139ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
140ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
141ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
142ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
143ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker title & subtitle") {
144ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
145ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, null,
146ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
147ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
148ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
149ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerTitle = "This is a title it is really really longggggg long long long long";
150ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerSubtitle = "and a subtitle it is really really longggggg long long long long long long long long long long long long long long long long";
151ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
152ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
153ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
154ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
155ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker text, title & subtitle") {
156ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
157ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, "not visible",
158ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
159ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
160ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
161ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerTitle = "This is a title";
162ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerSubtitle = "and a subtitle";
163ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
164ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
165ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
166ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
167ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        new Test("Ticker title, subtitle & 2 icons") {
168ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            public void run() {
169ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon1, null,
170ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                        mActivityCreateTime);
171ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
172ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                            "This is a notification!!!", makeIntent());
173ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerTitle = "This is a title";
174ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerSubtitle = "and a subtitle";
175ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
176ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerIcons = new Bitmap[2];
177ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerIcons[0] = loadBitmap(R.drawable.icon3);
178ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerIcons[1] = loadBitmap(R.drawable.app_gmail);
179ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
180ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                mNM.notify(1, n);
181ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                /*
182ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerIcons[0].recycle();
183ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                n.tickerIcons[1].recycle();
184ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                */
185ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato            }
186ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        },
187ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("No view") {
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon1, "No view",
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("No intent") {
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon1, "No intent",
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "No intent",
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "No intent", null);
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Layout") {
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, new Notification(NotificationTestList.this,
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            R.drawable.ic_statusbar_missedcall,
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis()-(1000*60*60*24),
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "(453) 123-2328",
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "", null));
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, new Notification(NotificationTestList.this,
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            R.drawable.ic_statusbar_email,
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis(),
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Mark Willem, Me (2)",
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Re: Didn't you get the memo?", null));
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(3, new Notification(NotificationTestList.this,
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            R.drawable.ic_statusbar_chat,
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis()+(1000*60*60*24),
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Sophia Winterlanden",
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Lorem ipsum dolor sit amet.", null));
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
230005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad Icon #1 (when=create)") {
231871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato            public void run() {
232005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.layout.chrono_notification /* not an icon */,
233005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, mActivityCreateTime);
234005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
235005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
236005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
237871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato            }
238871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato        },
239871bdb9867f6630d8bb28e5607263e8bf4eac3baJoe Onorato
240005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad Icon #1 (when=now)") {
241005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
242005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.layout.chrono_notification /* not an icon */,
243005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, System.currentTimeMillis());
244005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
245005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
246005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
247005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            }
248005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        },
249005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
250005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad resource #1 (when=create)") {
251005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
252005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.drawable.icon2,
253005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, mActivityCreateTime);
254005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
255005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
25668065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
257005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
25868065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
25968065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
26068065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
261005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        new Test("Bad resource #1 (when=now)") {
262005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            public void run() {
263005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                Notification n = new Notification(R.drawable.icon2,
264005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                        null, System.currentTimeMillis());
265005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
266005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                            "This is the same notification!!!", makeIntent());
267005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
268005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato                mNM.notify(1, n);
269005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato            }
270005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato        },
271005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
272005847b03b2ebe3eb1a974a8a04ad51bca6636cdJoe Onorato
27368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        new Test("Bad resource #3") {
27468065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            public void run()
27568065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            {
27668065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                Notification n = new Notification(NotificationTestList.this,
27768065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            R.drawable.ic_statusbar_missedcall,
27868065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            null, System.currentTimeMillis()-(1000*60*60*24),
27968065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            "(453) 123-2328",
28068065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            "", null);
28168065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                n.contentView.setInt(1 /*bogus*/, "bogus method", 666);
28268065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                mNM.notify(3, n);
28368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
28468065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
28568065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
286c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        new Test("Times") {
287c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            public void run()
288c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            {
289c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                long now = System.currentTimeMillis();
290c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
291c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(7, "24 hours from now", now+(1000*60*60*24));
292c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(6, "12:01:00 from now", now+(1000*60*60*12)+(60*1000));
293c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(5, "12 hours from now", now+(1000*60*60*12));
294c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(4, "now", now);
295c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(3, "11:59:00 ago", now-((1000*60*60*12)-(60*1000)));
296c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(2, "12 hours ago", now-(1000*60*60*12));
297c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                timeNotification(1, "24 hours ago", now-(1000*60*60*24));
298c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato            }
299c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        },
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new StateStress("Stress - Ongoing / Latest", 100, 100, new Runnable[] {
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new Runnable() {
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    public void run() {
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Log.d(TAG, "Stress - Ongoing/Latest 0");
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Notification n = new Notification(NotificationTestList.this,
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                R.drawable.icon3,
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                null, System.currentTimeMillis(), "Stress - Ongoing",
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                "Notify me!!!", null);
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        n.flags |= Notification.FLAG_ONGOING_EVENT;
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        mNM.notify(1, n);
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                },
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                new Runnable() {
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    public void run() {
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Log.d(TAG, "Stress - Ongoing/Latest 1");
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        Notification n = new Notification(NotificationTestList.this,
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                R.drawable.icon4,
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                null, System.currentTimeMillis(), "Stress - Latest",
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                "Notify me!!!", null);
319175f79c5a556416817a8f8674b2e0ac3b3cb6e6bJoe Onorato                        //n.flags |= Notification.FLAG_ONGOING_EVENT;
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        mNM.notify(1, n);
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }),
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Long") {
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults |= Notification.DEFAULT_SOUND ;
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.vibrate = new long[] {
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400 };
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
338105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Lights") {
339105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
340105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
341105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
342105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
343105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledARGB = 0xff0000ff;
344b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 1;
345b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
346105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
347105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
348105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
349105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
350105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Red Lights") {
351105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
352105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
353105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
354105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
355105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledARGB = 0xffff0000;
356b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 1;
357b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
358105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
359105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
360105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
361105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
362105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Yellow Lights") {
363105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
364105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
365105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
366105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
367105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledARGB = 0xffffff00;
368b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 1;
369b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
370b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                mNM.notify(1, n);
371b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            }
372b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren        },
373b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren
374b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren        new Test("Lights off") {
375b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            public void run()
376b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren            {
377b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                Notification n = new Notification();
378b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.flags |= Notification.FLAG_SHOW_LIGHTS;
379b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledARGB = 0x00000000;
380b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOnMS = 0;
381b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledOffMS = 0;
382105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
383105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
384105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
385105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
386105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Blinking Slow") {
387105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
388105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
389105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
390105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
391b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledARGB = 0xff0000ff;
392105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOnMS = 1300;
393105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOffMS = 1300;
394105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
395105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
396105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
397105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
398105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Blue Blinking Fast") {
399105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
400105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
401105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                Notification n = new Notification();
402105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.flags |= Notification.FLAG_SHOW_LIGHTS;
403b0fbe297c50df5dcfb81721fd6079dd7125f88e0Mattias Östergren                n.ledARGB = 0xff0000ff;
404105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOnMS = 300;
405105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                n.ledOffMS = 300;
406105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mNM.notify(1, n);
407105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
408105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
409105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Default All") {
4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults |= Notification.DEFAULT_ALL;
4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Default All, once") {
4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults |= Notification.DEFAULT_ALL;
4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.flags |= Notification.FLAG_ONLY_ALERT_ONCE ;
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Content Sound") {
4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.sound = Uri.parse(
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        "content://media/internal/audio/media/7");
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Resource Sound") {
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.sound = Uri.parse(
4454df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project                        ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
4464df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project                        getPackageName() + "/raw/ringer");
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Log.d(TAG, "n.sound=" + n.sound);
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Sound and Cancel") {
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.sound = Uri.parse(
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "content://media/internal/audio/media/7");
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                SystemClock.sleep(200);
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate") {
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.vibrate = new long[] { 0, 700, 500, 1000 };
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate and cancel") {
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification();
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.vibrate = new long[] { 0, 700, 500, 1000 };
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                SystemClock.sleep(500);
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate pattern") {
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(new long[] { 250, 1000, 500, 2000 }, -1);
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate pattern repeating") {
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(new long[] { 250, 1000, 500 }, 1);
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate 3s") {
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(3000);
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate 100s") {
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.vibrate(100000);
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Vibrate off") {
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run()
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            {
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mVibrator.cancel();
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #1") {
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #1 in 3 sec") {
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            public void run() {
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                Log.d(TAG, "Cancelling now...");
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                mNM.cancel(1);
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            }
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }, 3000);
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel #2") {
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(2);
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #1") {
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon1, "tick tick tick",
549d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                        mActivityCreateTime);
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "This is a notification!!!", makeIntent());
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, n);
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #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                                Notification n = new Notification(R.drawable.icon1,
5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        "            "
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "tick tock tick tock\n\nSometimes notifications can "
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "be really long and wrap to more than one line.\n"
5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "Sometimes."
5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "Ohandwhathappensifwehaveonereallylongstringarewesure"
5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        + "thatwesegmentitcorrectly?\n",
5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        System.currentTimeMillis());
5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                n.setLatestEventInfo(NotificationTestList.this,
5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        "Still Persistent #1",
5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        "This is still a notification!!!",
5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                        makeIntent());
5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                mNM.notify(1, n);
5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            }
5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }, 3000);
5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #2") {
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon2, "tock tock tock",
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "Persistent #2",
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!", makeIntent());
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58868065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        new Test("Persistent #3") {
58968065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            public void run() {
590ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato                Notification n = new Notification(R.drawable.icon2, "tock tock tock\nmooooo",
59168065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                        System.currentTimeMillis());
59268065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #3",
59368065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                            "Notify me!!!", makeIntent());
59468065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato                mNM.notify(3, n);
59568065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato            }
59668065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato        },
59768065e0a1980ab6abf8963b48b011efa017fe1c2Joe Onorato
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent #2 Vibrate") {
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon2, "tock tock tock",
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        System.currentTimeMillis());
6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.setLatestEventInfo(NotificationTestList.this, "Persistent #2",
6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!", makeIntent());
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.defaults = Notification.DEFAULT_VIBRATE;
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
609d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato        new Test("Persistent #1 - different icon") {
610d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato            public void run() {
611d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                Notification n = new Notification(R.drawable.icon2, null,
612d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                        mActivityCreateTime);
613d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
614d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                            "This is the same notification!!!", makeIntent());
615d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato                mNM.notify(1, n);
616d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato            }
617d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato        },
618d2b1f00e1e34cdce0047af7374aa57b1e4b5b040Joe Onorato
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Chronometer Start") {
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                Notification n = new Notification(R.drawable.icon2, "me me me me",
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                    System.currentTimeMillis());
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.contentView = new RemoteViews(getPackageName(), R.layout.chrono_notification);
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mChronometerBase = SystemClock.elapsedRealtime();
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.contentView.setChronometer(R.id.time, mChronometerBase, "Yay! (%s)", true);
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.flags |= Notification.FLAG_ONGOING_EVENT;
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                n.contentIntent = makeIntent();
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, n);
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Chronometer Stop") {
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(new Runnable() {
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        public void run() {
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Log.d(TAG, "Chronometer Stop");
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            Notification n = new Notification();
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.icon = R.drawable.icon1;
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.contentView = new RemoteViews(getPackageName(),
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                                                             R.layout.chrono_notification);
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.contentView.setChronometer(R.id.time, mChronometerBase, null, false);
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            n.contentIntent = makeIntent();
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            mNM.notify(2, n);
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        }
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }, 3000);
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Sequential Persistent") {
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, notificationWithNumbers(2));
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Replace Persistent") {
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Run and Cancel (n=1)") {
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(1);
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Run an Cancel (n=2)") {
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(2, notificationWithNumbers(2));
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.cancel(2);
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Repeatedly notify and cancel -- triggers bug #670627
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Bug 670627") {
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 0; i < 10; i++) {
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  Log.d(TAG, "Add two notifications");
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.notify(1, notificationWithNumbers(1));
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.notify(2, notificationWithNumbers(2));
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  Log.d(TAG, "Cancel two notifications");
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.cancel(1);
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                  mNM.cancel(2);
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Ten Notifications") {
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 0; i < 2; i++) {
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    Notification n = new Notification(NotificationTestList.this, R.drawable.icon2,
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis(), "Persistent #" + i,
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!" + i, null);
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.flags |= Notification.FLAG_ONGOING_EVENT;
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.number = i;
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.notify((i+1)*10, n);
7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 2; i < 10; i++) {
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    Notification n = new Notification(NotificationTestList.this, R.drawable.icon2,
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            null, System.currentTimeMillis(), "Persistent #" + i,
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                            "Notify me!!!" + i, null);
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    n.number = i;
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.notify((i+1)*10, n);
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Cancel eight notifications") {
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                for (int i = 1; i < 9; i++) {
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNM.cancel((i+1)*10);
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 1") {
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(1));
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 222") {
7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(22));
7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 333") {
7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(333));
7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        new Test("Persistent with numbers 4444") {
7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNM.notify(1, notificationWithNumbers(4444));
7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        },
7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
744105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        new Test("Crash") {
745105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            public void run()
746105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            {
747105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                PowerManager.WakeLock wl
748ef367529f9c7a538d74599b37b49ac309d0a8d8cChristian Mehlmauer                        = ((PowerManager)NotificationTestList.this.getSystemService(Context.POWER_SERVICE))
749105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "crasher");
750105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                wl.acquire();
751105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                mHandler.postDelayed(new Runnable() {
752105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            public void run() {
753105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                                throw new RuntimeException("Die!");
754105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                            }
755105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project                        }, 10000);
756105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
757105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project            }
758105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project        },
759105925376f8d0f6b318c9938c7b83ef7fef094daThe Android Open Source Project
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private Notification notificationWithNumbers(int num) {
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Notification n = new Notification(this, R.drawable.icon2, null, System.currentTimeMillis(),
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                "Persistent #2", "Notify me!!!", null);
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        n.number = num;
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return n;
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private PendingIntent makeIntent() {
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Intent intent = new Intent(Intent.ACTION_MAIN);
7710e26dffd6cfcb09b08a94a857b891fdef7fe2b1eJoe Onorato        intent.addCategory(Intent.CATEGORY_HOME);
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return PendingIntent.getActivity(this, 0, intent, 0);
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    class StateStress extends Test {
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        StateStress(String name, int pause, int iterations, Runnable[] tasks) {
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            super(name);
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mPause = pause;
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mTasks = tasks;
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mIteration = iterations;
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Runnable[] mTasks;
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int mNext;
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        int mIteration;
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        long mPause;
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Runnable mRunnable = new Runnable() {
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public void run() {
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mTasks[mNext].run();
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mNext++;
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                if (mNext >= mTasks.length) {
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mNext = 0;
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    mIteration--;
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    if (mIteration <= 0) {
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                        return;
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    }
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                }
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mHandler.postDelayed(mRunnable, mPause);
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        };
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void run() {
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mNext = 0;
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mHandler.postDelayed(mRunnable, mPause);
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
805c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
806c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato    void timeNotification(int n, String label, long time) {
807c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato        mNM.notify(n, new Notification(NotificationTestList.this,
808c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                    R.drawable.ic_statusbar_missedcall, null,
809c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato                    time, label, "" + new java.util.Date(time), null));
810c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato
811c83bb730ec0333e52990a40edf6d54bb66b1d5baJoe Onorato    }
812ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato
813ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato    Bitmap loadBitmap(int resId) {
814ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        BitmapDrawable bd = (BitmapDrawable)getResources().getDrawable(resId);
815ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato        return Bitmap.createBitmap(bd.getBitmap());
816ef1e7763c2dc5b9bac69cc747efe05c81d9fd9fcJoe Onorato    }
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
819