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