NotificationBuilderTest.java revision a3850b68399ab49032e1fc2a2eab129fe3a7e69e
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 1980a44401a22344f7eabce6976372ab144ef22893Joe Onoratoimport java.util.GregorianCalendar; 2080a44401a22344f7eabce6976372ab144ef22893Joe Onorato 218d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.app.Activity; 2246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.app.Notification; 2346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.app.NotificationManager; 2446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.app.PendingIntent; 2546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.content.Context; 2646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.content.ContentResolver; 2746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.content.Intent; 2846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.graphics.Bitmap; 2946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.graphics.drawable.BitmapDrawable; 3046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.net.Uri; 318d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.os.Bundle; 3246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Environment; 3346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Vibrator; 3446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Handler; 358d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.text.TextUtils; 3646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.util.Log; 3746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.net.Uri; 3846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.SystemClock; 398d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.view.View; 408d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.widget.CompoundButton; 418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.widget.RadioButton; 428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.widget.RadioGroup; 4346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.widget.RemoteViews; 4446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.PowerManager; 4546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 468d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratopublic class NotificationBuilderTest extends Activity 4746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato{ 4846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private final static String TAG = "NotificationTestList"; 4946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 5046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato NotificationManager mNM; 5146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 5246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato @Override 538d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato public void onCreate(Bundle icicle) { 548d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato super.onCreate(icicle); 558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setContentView(R.layout.notification_builder_test); 578d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (icicle == null) { 588d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setDefaults(); 598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato for (int id: new int[] { 618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_1, 628d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_2, 638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_3, 648d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_4, 658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_5, 668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_6, 678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_7, 688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_8, 698d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_9, 708d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_10, 718d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_1, 728d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_2, 738d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_3, 748d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_4, 758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_5, 768d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_6, 778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_7, 788d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_8, 798d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_9, 808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_10, 818d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.ten, 828d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_all, 838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato }) { 848d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato findViewById(id).setOnClickListener(mClickListener); 858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 8646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 8746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private void setDefaults() { 898d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.when_now); 908d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.icon_surprise); 918d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.title_medium); 928d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.text_medium); 938d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.info_none); 948d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.number_0); 958d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.intent_alert); 968d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.delete_none); 978d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.full_screen_none); 988d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.ticker_none); 998d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.large_icon_none); 1008d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.sound_none); 1018d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.vibrate_none); 1028d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.lights_red); 1038d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.lights_off); 10446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 10546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 1068d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private View.OnClickListener mClickListener = new View.OnClickListener() { 1078d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato public void onClick(View v) { 1088d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (v.getId()) { 1098d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_1: 1108d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(1); 1118d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1128d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_2: 1138d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(2); 1148d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1158d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_3: 1168d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(3); 1178d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1188d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_4: 1198d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(4); 1208d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1218d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_5: 1228d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(5); 1238d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1248d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_6: 1258d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(6); 1268d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1278d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_7: 1288d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(7); 1298d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1308d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_8: 1318d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(8); 1328d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1338d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_9: 1348d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(9); 1358d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1368d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_10: 1378d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(10); 1388d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1398d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_1: 1408d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(1); 1418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_2: 1438d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(2); 1448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1458d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_3: 1468d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(3); 1478d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1488d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_4: 1498d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(4); 1508d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1518d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_5: 1528d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(5); 1538d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1548d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_6: 1558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(6); 1568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1578d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_7: 1588d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(7); 1598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_8: 1618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(8); 1628d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_9: 1648d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(9); 1658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_10: 1678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(10); 1688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1698d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ten: { 1708d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato for (int id=1; id<=10; id++) { 1718d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(id); 1728d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1738d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1748d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_all: { 1768d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato for (int id=1; id<=10; id++) { 1778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(id); 1788d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1798d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 18146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 1828d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato }; 18446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 1858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private void sendNotification(int id) { 1868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final Notification n = buildNotification(id); 1878d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.notify(id, n); 1888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 18946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 1908d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private Notification buildNotification(int id) { 1918d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato Notification.Builder b = new Notification.Builder(this); 192561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 1938d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // when 1948d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_when)) { 19580a44401a22344f7eabce6976372ab144ef22893Joe Onorato case R.id.when_midnight: { 19680a44401a22344f7eabce6976372ab144ef22893Joe Onorato GregorianCalendar c = new GregorianCalendar(); 19780a44401a22344f7eabce6976372ab144ef22893Joe Onorato c.set(GregorianCalendar.HOUR_OF_DAY, 0); 19880a44401a22344f7eabce6976372ab144ef22893Joe Onorato c.set(GregorianCalendar.MINUTE, 0); 19980a44401a22344f7eabce6976372ab144ef22893Joe Onorato c.set(GregorianCalendar.SECOND, 0); 20080a44401a22344f7eabce6976372ab144ef22893Joe Onorato b.setWhen(c.getTimeInMillis()); 2018d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 20280a44401a22344f7eabce6976372ab144ef22893Joe Onorato } 2038d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.when_now: 2048d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setWhen(System.currentTimeMillis()); 2058d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2068d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.when_now_plus_1h: 2078d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2088d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.when_tomorrow: 2098d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2108d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 21146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 2128d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // icon 2138d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_icon)) { 2148d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.icon_im: 2158d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setSmallIcon(R.drawable.icon1); 2168d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2178d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.icon_alert: 2188d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setSmallIcon(R.drawable.icon2); 2198d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2208d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.icon_surprise: 2218d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setSmallIcon(R.drawable.emo_im_kissing); 2228d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2238d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 22446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 2258d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // title 2268d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final String title = getRadioTag(R.id.group_title); 2278d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (!TextUtils.isEmpty(title)) { 2288d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setContentTitle(title); 2298d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2308595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 2318d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // text 2328d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final String text = getRadioTag(R.id.group_text); 2338d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (!TextUtils.isEmpty(text)) { 2348d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setContentText(text); 2358d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2363f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 2378d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // info 2388d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final String info = getRadioTag(R.id.group_info); 2398d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (!TextUtils.isEmpty(info)) { 2408d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setContentInfo(info); 2418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2423f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 2438d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // number 2448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setNumber(getRadioInt(R.id.group_number, 0)); 2453f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 2468d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // contentIntent 2478d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_intent)) { 2488d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.intent_none: 2498d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2508d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.intent_alert: 2518d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setContentIntent(makeContentIntent(id)); 2528d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2538d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2548595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 2558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // deleteIntent 2568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_delete)) { 2578d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.delete_none: 2588d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.delete_alert: 2608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setDeleteIntent(makeDeleteIntent(id)); 2618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2628d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2638595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 2648d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // fullScreenIntent TODO 2658595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 2668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // ticker 2678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_ticker)) { 2688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_none: 2698d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2708d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_short: 2718d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_wrap: 2728d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_haiku: 2738d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setTicker(getRadioTag(R.id.group_ticker)); 2748d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_custom: 2768d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // TODO 2778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2788d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 27946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 2808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // largeIcon 2818d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_large_icon)) { 2828d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.large_icon_none: 2838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2848d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.large_icon_pineapple: 2858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setLargeIcon(loadBitmap(R.drawable.pineapple)); 2868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 28780a44401a22344f7eabce6976372ab144ef22893Joe Onorato case R.id.large_icon_pineapple2: 28880a44401a22344f7eabce6976372ab144ef22893Joe Onorato b.setLargeIcon(loadBitmap(R.drawable.pineapple2)); 28980a44401a22344f7eabce6976372ab144ef22893Joe Onorato break; 290a3850b68399ab49032e1fc2a2eab129fe3a7e69eDaniel Sandler case R.id.large_icon_small: 291a3850b68399ab49032e1fc2a2eab129fe3a7e69eDaniel Sandler b.setLargeIcon(loadBitmap(R.drawable.icon2)); 292a3850b68399ab49032e1fc2a2eab129fe3a7e69eDaniel Sandler break; 2938d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 294561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 2958d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // sound TODO 296561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 2978d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // vibrate 2988d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_vibrate)) { 2998d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_none: 3008d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3018d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_short: 3028d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setVibrate(new long[] { 0, 200 }); 3038d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3048d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_medium: 3058d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setVibrate(new long[] { 0, 500 }); 3068d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3078d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_long: 3088d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setVibrate(new long[] { 0, 1000 }); 3098d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3108d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_pattern: 3118d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setVibrate(new long[] { 0, 250, 250, 250, 250, 250, 250, 250 }); 3128d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3138d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3148d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3158d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // lights 3168d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final int color = getRadioInt(R.id.group_lights_color, 0xff0000); 3178d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato int onMs; 3188d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato int offMs; 3198d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_lights_blink)) { 3208d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_slow: 3218d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 1300; 3228d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 1300; 3238d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3248d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_fast: 3258d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 300; 3268d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 300; 3278d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3288d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_on: 3298d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 1; 3308d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 0; 3318d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3328d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_off: 3338d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato default: 3348d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 0; 3358d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 0; 3368d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3378d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3388d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (onMs != 0 && offMs != 0) { 3398d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setLights(color, onMs, offMs); 3408d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // flags 3438d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setOngoing(getChecked(R.id.flag_ongoing)); 3448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setOnlyAlertOnce(getChecked(R.id.flag_once)); 3458d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setAutoCancel(getChecked(R.id.flag_auto_cancel)); 3468d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3478d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // defaults 3488d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato int defaults = 0; 3498d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (getChecked(R.id.default_sound)) { 3508d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato defaults |= Notification.DEFAULT_SOUND; 3518d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3528d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (getChecked(R.id.default_vibrate)) { 3538d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato defaults |= Notification.DEFAULT_VIBRATE; 3548d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (getChecked(R.id.default_lights)) { 3568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato defaults |= Notification.DEFAULT_LIGHTS; 3578d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3588d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setDefaults(defaults); 3598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return b.getNotification(); 361561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato } 362561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 3638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private void setChecked(int id) { 3648d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final CompoundButton b = (CompoundButton)findViewById(id); 3658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setChecked(true); 3668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private int getRadioChecked(int id) { 3698d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final RadioGroup g = (RadioGroup)findViewById(id); 3708d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return g.getCheckedRadioButtonId(); 3718d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3728d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3738d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private String getRadioTag(int id) { 3748d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final RadioGroup g = (RadioGroup)findViewById(id); 3758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final View v = findViewById(g.getCheckedRadioButtonId()); 3768d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return (String)v.getTag(); 3778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3788d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3798d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private int getRadioInt(int id, int def) { 3808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato String str = getRadioTag(id); 3818d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (TextUtils.isEmpty(str)) { 3828d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return def; 3838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } else { 3848d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato try { 3858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return Integer.parseInt(str); 3868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } catch (NumberFormatException ex) { 3878d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return def; 3888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3898d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3908d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3918d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3928d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private boolean getChecked(int id) { 3938d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final CompoundButton b = (CompoundButton)findViewById(id); 3948d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return b.isChecked(); 3958d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3968d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3978d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private Bitmap loadBitmap(int id) { 3988d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final BitmapDrawable bd = (BitmapDrawable)getResources().getDrawable(id); 3998d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return Bitmap.createBitmap(bd.getBitmap()); 40046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 40146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 40246439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private PendingIntent makeDeleteIntent(int id) { 40346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 40446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/delete/" + id, null)); 40546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Delete intent"); 40646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 40746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 40846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 4098d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 4108d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private PendingIntent makeContentIntent(int id) { 4118d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 4128d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/content/" + id, null)); 4138d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Content intent"); 4148d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 4158d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 4168d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 41746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato} 41846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 419