NotificationBuilderTest.java revision 3f76aa7755fbb2e77ca6a648bbfa1f75680788c9
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; 6546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 6646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato Notification.Builder b = new Notification.Builder(NotificationBuilderTest.this); 6746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 6846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato b.setWhen(System.currentTimeMillis()); 6946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato b.setSmallIcon(R.drawable.ic_statusbar_chat); 7046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato b.setContentTitle("Title"); 7146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato b.setContentText("text\nline2"); 7246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato b.setContentIntent(makeContentIntent(id)); 7346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato b.setDeleteIntent(makeDeleteIntent(id)); 7446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 7546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato mNM.notify(id, b.getNotification()); 7646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 7746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato }, 788595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 793f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato new Test("Basic Content w/ Info (1)") { 803f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato public void run() { 813f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato int id = 1; 823f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 833f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato Notification.Builder b = new Notification.Builder(NotificationBuilderTest.this); 843f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 853f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato b.setWhen(System.currentTimeMillis()); 863f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato b.setSmallIcon(R.drawable.ic_statusbar_chat); 873f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato b.setContentTitle("Title"); 883f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato b.setContentText("text\nline2"); 893f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato b.setContentIntent(makeContentIntent(id)); 903f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato b.setDeleteIntent(makeDeleteIntent(id)); 913f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato b.setContentInfo("Snoozed"); 923f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 933f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato mNM.notify(id, b.getNotification()); 943f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato } 953f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato }, 963f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 978595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato new Test("Basic Content w/ Number (1)") { 988595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato public void run() { 998595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato int id = 1; 1008595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 1018595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato Notification.Builder b = new Notification.Builder(NotificationBuilderTest.this); 1028595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 1038595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato b.setWhen(System.currentTimeMillis()); 1048595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato b.setSmallIcon(R.drawable.ic_statusbar_chat); 1058595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato b.setContentTitle("Title"); 1068595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato b.setContentText("text\nline2"); 1078595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato b.setContentIntent(makeContentIntent(id)); 1088595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato b.setDeleteIntent(makeDeleteIntent(id)); 1098595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato b.setNumber(12345); 1108595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 1118595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato mNM.notify(id, b.getNotification()); 1128595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato } 1138595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato }, 11446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato }; 11546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 11646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private PendingIntent makeContentIntent(int id) { 11746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 11846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/content/" + id, null)); 11946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Content intent"); 12046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 12146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 12246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 12346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 12446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private PendingIntent makeDeleteIntent(int id) { 12546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 12646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/delete/" + id, null)); 12746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Delete intent"); 12846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 12946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 13046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 13146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato} 13246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 133