NotificationBuilderTest.java revision 561d3858bb9409b999a19f7ba93f0b12e1db835f
146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato/* 246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * Copyright (C) 2010 The Android Open Source Project 346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * 446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * you may not use this file except in compliance with the License. 646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * You may obtain a copy of the License at 746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * 846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * http://www.apache.org/licenses/LICENSE-2.0 946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * 1046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * Unless required by applicable law or agreed to in writing, software 1146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 1246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * See the License for the specific language governing permissions and 1446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato * limitations under the License. 1546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato */ 1646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 1746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratopackage com.android.statusbartest; 1846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 1946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.app.Notification; 2046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.app.NotificationManager; 2146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.app.PendingIntent; 2246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.content.Context; 2346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.content.ContentResolver; 2446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.content.Intent; 2546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.graphics.Bitmap; 2646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.graphics.drawable.BitmapDrawable; 2746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.net.Uri; 2846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Environment; 2946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Vibrator; 3046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Handler; 3146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.util.Log; 3246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.net.Uri; 3346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.SystemClock; 3446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.widget.RemoteViews; 3546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.PowerManager; 3646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 3746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratopublic class NotificationBuilderTest extends TestActivity 3846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato{ 3946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private final static String TAG = "NotificationTestList"; 4046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 4146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato NotificationManager mNM; 4246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 4346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato @Override 4446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato protected String tag() { 4546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return TAG; 4646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 4746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 4846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato @Override 4946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato protected Test[] tests() { 5046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 5146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 5246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return mTests; 5346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 5446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 5546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private Test[] mTests = new Test[] { 5646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato new Test("Cancel (1)") { 5746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato public void run() { 5846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato mNM.cancel(1); 5946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 6046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato }, 6146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 6246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato new Test("Basic Content (1)") { 6346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato public void run() { 6446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato int id = 1; 65561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato final Notification.Builder b = makeBasicBuilder(this, id); 6646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 67561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato mNM.notify(id, b.getNotification()); 68561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato } 69561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato }, 70561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 71561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato new Test("Content w/ Info (1)") { 72561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato public void run() { 73561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato int id = 1; 74561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato final Notification.Builder b = makeBasicBuilder(this, id); 7546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 76561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setContentInfo("Snoozed"); 7746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 7846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato mNM.notify(id, b.getNotification()); 7946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 8046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato }, 818595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 82561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato new Test("w/ Number (1)") { 833f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato public void run() { 843f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato int id = 1; 85561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato final Notification.Builder b = makeBasicBuilder(this, id); 863f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 87561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setNumber(12345); 883f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 893f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato mNM.notify(id, b.getNotification()); 903f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato } 913f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato }, 923f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 93561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato new Test("w/ Number and Large Icon (1)") { 948595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato public void run() { 958595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato int id = 1; 96561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato final Notification.Builder b = makeBasicBuilder(this, id); 978595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 98561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setNumber(42); 998595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 100561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato final BitmapDrawable bd = (BitmapDrawable)getResources().getDrawable( 101561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato R.drawable.pineapple); 102561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setLargeIcon(Bitmap.createBitmap(bd.getBitmap())); 1038595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 1048595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato mNM.notify(id, b.getNotification()); 1058595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato } 1068595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato }, 10746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato }; 10846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 109561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato private Notification.Builder makeBasicBuilder(Test t, int id) { 110561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato final Notification.Builder b = new Notification.Builder(this); 111561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 112561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setWhen(System.currentTimeMillis()); 113561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setSmallIcon(R.drawable.ic_statusbar_chat); 114561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setContentTitle("Notification builder Test"); 115561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setContentText(t.name + "\nhappy notifying"); 116561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setContentIntent(makeContentIntent(id)); 117561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato b.setDeleteIntent(makeDeleteIntent(id)); 118561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 119561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato return b; 120561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato } 121561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 12246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private PendingIntent makeContentIntent(int id) { 12346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 12446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/content/" + id, null)); 12546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Content intent"); 12646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 12746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 12846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 12946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 13046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private PendingIntent makeDeleteIntent(int id) { 13146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 13246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/delete/" + id, null)); 13346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Delete intent"); 13446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 13546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 13646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 13746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato} 13846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 139