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