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; 33205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandlerimport android.os.Handler; 3446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Vibrator; 3546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.Handler; 36b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandlerimport android.text.SpannableStringBuilder; 378d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.text.TextUtils; 3846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.util.Log; 3946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.net.Uri; 4046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.SystemClock; 418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.view.View; 428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.widget.CompoundButton; 438d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.widget.RadioButton; 448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratoimport android.widget.RadioGroup; 4546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.widget.RemoteViews; 4646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onoratoimport android.os.PowerManager; 4746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 488d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onoratopublic class NotificationBuilderTest extends Activity 4946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato{ 5046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private final static String TAG = "NotificationTestList"; 5146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 520e78de6c0fadd70277eb29f56ccce97c1dffc4f2Daniel Sandler private final static String NOTIFY_TAG = "foo"; 530e78de6c0fadd70277eb29f56ccce97c1dffc4f2Daniel Sandler 5446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato NotificationManager mNM; 55205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler Handler mHandler; 56205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler int mStartDelay; 5746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 5846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato @Override 598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato public void onCreate(Bundle icicle) { 608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato super.onCreate(icicle); 618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 62205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler mHandler = new Handler(); 638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setContentView(R.layout.notification_builder_test); 648d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (icicle == null) { 658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setDefaults(); 668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato for (int id: new int[] { 688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_1, 698d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_2, 708d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_3, 718d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_4, 728d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_5, 738d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_6, 748d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_7, 758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_8, 768d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_9, 778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_10, 788d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_1, 798d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_2, 808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_3, 818d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_4, 828d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_5, 838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_6, 848d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_7, 858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_8, 868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_9, 878d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.notify_10, 888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.ten, 898d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato R.id.clear_all, 908d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato }) { 918d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato findViewById(id).setOnClickListener(mClickListener); 928d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 9346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 9446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 958d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private void setDefaults() { 968d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.when_now); 978d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.icon_surprise); 988d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.title_medium); 998d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.text_medium); 1008d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.info_none); 1018d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.number_0); 1028d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.intent_alert); 1038d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.delete_none); 1048d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.full_screen_none); 1058d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.ticker_none); 1068d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.large_icon_none); 1078d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.sound_none); 1088d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.vibrate_none); 109205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler setChecked(R.id.pri_default); 1108d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.lights_red); 1118d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato setChecked(R.id.lights_off); 112205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler setChecked(R.id.delay_none); 113205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler// setChecked(R.id.default_vibrate); 114205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler// setChecked(R.id.default_sound); 115205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler// setChecked(R.id.default_lights); 11646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 11746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 1188d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private View.OnClickListener mClickListener = new View.OnClickListener() { 1198d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato public void onClick(View v) { 1208d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (v.getId()) { 1218d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_1: 12272dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(1); 1238d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1248d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_2: 12572dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(2); 1268d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1278d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_3: 12872dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(3); 1298d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1308d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_4: 13172dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(4); 1328d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1338d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_5: 13472dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(5); 1358d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1368d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_6: 13772dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(6); 1388d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1398d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_7: 14072dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(7); 1418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_8: 14372dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(8); 1448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1458d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_9: 14672dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(9); 1478d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1488d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_10: 14972dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler cancelNotification(10); 1508d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1518d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_1: 1528d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(1); 1538d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1548d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_2: 1558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(2); 1568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1578d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_3: 1588d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(3); 1598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_4: 1618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(4); 1628d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_5: 1648d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(5); 1658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_6: 1678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(6); 1688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1698d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_7: 1708d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(7); 1718d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1728d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_8: 1738d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(8); 1748d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_9: 1768d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(9); 1778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1788d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.notify_10: 1798d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(10); 1808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1818d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ten: { 1828d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato for (int id=1; id<=10; id++) { 1838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato sendNotification(id); 1848d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1878d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.clear_all: { 1888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato for (int id=1; id<=10; id++) { 1898d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato mNM.cancel(id); 1908d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1918d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 1928d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 19346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 1948d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 1958d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato }; 19646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 197205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler private void sendNotification(final int id) { 1988d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final Notification n = buildNotification(id); 199205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler mHandler.postDelayed(new Runnable() { 200205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler public void run() { 2010e78de6c0fadd70277eb29f56ccce97c1dffc4f2Daniel Sandler mNM.notify(NOTIFY_TAG, id, n); 202205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } 203205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler }, mStartDelay); 2048d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 20546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 20672dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler private void cancelNotification(final int id) { 20772dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler mNM.cancel(NOTIFY_TAG, id); 20872dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler } 20972dcb913931e4390380398cfa899d1702790cd6aDaniel Sandler 210b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler private static CharSequence subst(CharSequence in, char ch, CharSequence sub) { 211b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler int i=0; 212b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler SpannableStringBuilder edit = new SpannableStringBuilder(in); 213b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler while (i<edit.length()) { 214b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler if (edit.charAt(i) == ch) { 215b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler edit.replace(i, i+1, sub); 216b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler i += sub.length(); 217b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler } else { 218b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler i ++; 219b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler } 220b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler } 221b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler return edit; 222b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler } 223b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler 2248d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private Notification buildNotification(int id) { 2258d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato Notification.Builder b = new Notification.Builder(this); 226561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 2278d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // when 2288d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_when)) { 22980a44401a22344f7eabce6976372ab144ef22893Joe Onorato case R.id.when_midnight: { 23080a44401a22344f7eabce6976372ab144ef22893Joe Onorato GregorianCalendar c = new GregorianCalendar(); 23180a44401a22344f7eabce6976372ab144ef22893Joe Onorato c.set(GregorianCalendar.HOUR_OF_DAY, 0); 23280a44401a22344f7eabce6976372ab144ef22893Joe Onorato c.set(GregorianCalendar.MINUTE, 0); 23380a44401a22344f7eabce6976372ab144ef22893Joe Onorato c.set(GregorianCalendar.SECOND, 0); 23480a44401a22344f7eabce6976372ab144ef22893Joe Onorato b.setWhen(c.getTimeInMillis()); 2358d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 23680a44401a22344f7eabce6976372ab144ef22893Joe Onorato } 2378d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.when_now: 2388d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setWhen(System.currentTimeMillis()); 2398d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2408d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.when_now_plus_1h: 2418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.when_tomorrow: 2438d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 24546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 2468d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // icon 2478d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_icon)) { 2488d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.icon_im: 2498d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setSmallIcon(R.drawable.icon1); 2508d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2518d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.icon_alert: 2528d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setSmallIcon(R.drawable.icon2); 2538d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2548d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.icon_surprise: 2558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setSmallIcon(R.drawable.emo_im_kissing); 2568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2578d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 25846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 2598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // title 260b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler final CharSequence title = getRadioTag(R.id.group_title); 2618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (!TextUtils.isEmpty(title)) { 2628d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setContentTitle(title); 2638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2648595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 2658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // text 266b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler final CharSequence text = getRadioTag(R.id.group_text); 2678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (!TextUtils.isEmpty(text)) { 268b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler if (getRadioChecked(R.id.group_text) == R.id.text_emoji) { 269b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler // UTF-16 for +1F335 270b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler b.setContentText(subst(text, 271b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler '_', "\ud83c\udf35")); 272b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler } else { 273b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler b.setContentText(text); 274b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler } 2758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2763f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 2778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // info 278b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler final CharSequence info = getRadioTag(R.id.group_info); 2798d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (!TextUtils.isEmpty(info)) { 2808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setContentInfo(info); 2818d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2823f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 2838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // number 2848d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setNumber(getRadioInt(R.id.group_number, 0)); 2853f76aa7755fbb2e77ca6a648bbfa1f75680788c9Joe Onorato 2868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // contentIntent 2878d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_intent)) { 2888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.intent_none: 2898d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2908d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.intent_alert: 2918d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setContentIntent(makeContentIntent(id)); 2928d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2938d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 2948595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 2958d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // deleteIntent 2968d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_delete)) { 2978d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.delete_none: 2988d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 2998d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.delete_alert: 3008d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setDeleteIntent(makeDeleteIntent(id)); 3018d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3028d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3038595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 3048d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // fullScreenIntent TODO 3058595a3dd9a6feff70f8ddbad924d79b591d611e4Joe Onorato 3068d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // ticker 3078d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_ticker)) { 3088d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_none: 3098d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3108d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_short: 3118d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_wrap: 3128d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_haiku: 3138d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setTicker(getRadioTag(R.id.group_ticker)); 3148d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 315b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler case R.id.ticker_emoji: 316b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler // UTF-16 for +1F335 317b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler b.setTicker(subst(getRadioTag(R.id.group_ticker), 318b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler '_', "\ud83c\udf35")); 319b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler break; 3208d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.ticker_custom: 3218d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // TODO 3228d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3238d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 32446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 3258d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // largeIcon 3268d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_large_icon)) { 3278d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.large_icon_none: 3288d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3298d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.large_icon_pineapple: 3308d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setLargeIcon(loadBitmap(R.drawable.pineapple)); 3318d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 33280a44401a22344f7eabce6976372ab144ef22893Joe Onorato case R.id.large_icon_pineapple2: 33380a44401a22344f7eabce6976372ab144ef22893Joe Onorato b.setLargeIcon(loadBitmap(R.drawable.pineapple2)); 33480a44401a22344f7eabce6976372ab144ef22893Joe Onorato break; 335a3850b68399ab49032e1fc2a2eab129fe3a7e69eDaniel Sandler case R.id.large_icon_small: 336a3850b68399ab49032e1fc2a2eab129fe3a7e69eDaniel Sandler b.setLargeIcon(loadBitmap(R.drawable.icon2)); 337a3850b68399ab49032e1fc2a2eab129fe3a7e69eDaniel Sandler break; 3388d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 339561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 3408d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // sound TODO 341561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 3428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // vibrate 3438d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_vibrate)) { 3448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_none: 345205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setVibrate(null); 3468d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 347205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.vibrate_zero: 348205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setVibrate(new long[] { 0 }); 3498d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 350205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.vibrate_short: 351205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setVibrate(new long[] { 0, 100 }); 3528d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3538d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_long: 3548d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setVibrate(new long[] { 0, 1000 }); 3558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.vibrate_pattern: 357205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setVibrate(new long[] { 0, 50, 200, 50, 200, 50, 500, 358205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler 500, 200, 500, 200, 500, 500, 359205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler 50, 200, 50, 200, 50 }); 3608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3628d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 3638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // lights 364205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler final int color = getRadioHex(R.id.group_lights_color, 0xff0000); 3658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato int onMs; 3668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato int offMs; 3678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato switch (getRadioChecked(R.id.group_lights_blink)) { 3688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_slow: 3698d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 1300; 3708d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 1300; 3718d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3728d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_fast: 3738d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 300; 3748d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 300; 3758d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3768d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_on: 3778d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 1; 3788d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 0; 3798d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3808d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato case R.id.lights_off: 3818d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato default: 3828d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato onMs = 0; 3838d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato offMs = 0; 3848d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato break; 3858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (onMs != 0 && offMs != 0) { 3878d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setLights(color, onMs, offMs); 3888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 3898d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 390205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler // priority 391205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler switch (getRadioChecked(R.id.group_priority)) { 392205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.pri_min: 393205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setPriority(Notification.PRIORITY_MIN); 394205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler break; 395205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.pri_low: 396205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setPriority(Notification.PRIORITY_LOW); 397205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler break; 398205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.pri_default: 399205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setPriority(Notification.PRIORITY_DEFAULT); 400205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler break; 401205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.pri_high: 402205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setPriority(Notification.PRIORITY_HIGH); 403205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler break; 404205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.pri_max: 405205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler b.setPriority(Notification.PRIORITY_MAX); 406205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler break; 407205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } 408205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler 409205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler // start delay 410205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler switch (getRadioChecked(R.id.group_delay)) { 411205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.delay_none: 412205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler mStartDelay = 0; 413205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler break; 414205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler case R.id.delay_5: 415205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler mStartDelay = 5000; 416205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler break; 417205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } 418205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler 4198d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // flags 4208d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setOngoing(getChecked(R.id.flag_ongoing)); 4218d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setOnlyAlertOnce(getChecked(R.id.flag_once)); 4228d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setAutoCancel(getChecked(R.id.flag_auto_cancel)); 4238d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 4248d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato // defaults 4258d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato int defaults = 0; 4268d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (getChecked(R.id.default_sound)) { 4278d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato defaults |= Notification.DEFAULT_SOUND; 4288d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4298d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (getChecked(R.id.default_vibrate)) { 4308d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato defaults |= Notification.DEFAULT_VIBRATE; 4318d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4328d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (getChecked(R.id.default_lights)) { 4338d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato defaults |= Notification.DEFAULT_LIGHTS; 4348d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4358d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setDefaults(defaults); 4368d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 437205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler return b.build(); 438561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato } 439561d3858bb9409b999a19f7ba93f0b12e1db835fJoe Onorato 4408d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private void setChecked(int id) { 4418d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final CompoundButton b = (CompoundButton)findViewById(id); 4428d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato b.setChecked(true); 4438d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4448d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 4458d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private int getRadioChecked(int id) { 4468d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final RadioGroup g = (RadioGroup)findViewById(id); 4478d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return g.getCheckedRadioButtonId(); 4488d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4498d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 450205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler private String getRadioTag(int id) { 4518d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final RadioGroup g = (RadioGroup)findViewById(id); 4528d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final View v = findViewById(g.getCheckedRadioButtonId()); 453205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler return (String) v.getTag(); 4548d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4558d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 4568d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private int getRadioInt(int id, int def) { 457205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler String str = getRadioTag(id); 4588d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato if (TextUtils.isEmpty(str)) { 4598d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return def; 4608d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } else { 4618d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato try { 462b9d36649ca458cb5326a144fd88e26b92efba728Daniel Sandler return Integer.parseInt(str.toString()); 4638d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } catch (NumberFormatException ex) { 4648d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return def; 4658d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4668d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4678d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4688d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 469205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler private int getRadioHex(int id, int def) { 470205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler String str = getRadioTag(id); 471205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler if (TextUtils.isEmpty(str)) { 472205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler return def; 473205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } else { 474205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler if (str.startsWith("0x")) { 475205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler str = str.substring(2); 476205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } 477205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler try { 478205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler return Integer.parseInt(str.toString(), 16); 479205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } catch (NumberFormatException ex) { 480205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler return def; 481205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } 482205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } 483205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler } 484205ec5a969963f563b30b37385362ccfebdd5e4cDaniel Sandler 4858d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private boolean getChecked(int id) { 4868d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final CompoundButton b = (CompoundButton)findViewById(id); 4878d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return b.isChecked(); 4888d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 4898d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 4908d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private Bitmap loadBitmap(int id) { 4918d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato final BitmapDrawable bd = (BitmapDrawable)getResources().getDrawable(id); 4928d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return Bitmap.createBitmap(bd.getBitmap()); 49346439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 49446439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 49546439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato private PendingIntent makeDeleteIntent(int id) { 49646439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 49746439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/delete/" + id, null)); 49846439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Delete intent"); 49946439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 50046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 50146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato } 5028d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato 5038d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato private PendingIntent makeContentIntent(int id) { 5048d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato Intent intent = new Intent(this, ConfirmationActivity.class); 5058d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato intent.setData(Uri.fromParts("content", "//status_bar_test/content/" + id, null)); 5068d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TITLE, "Content intent"); 5078d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato intent.putExtra(ConfirmationActivity.EXTRA_TEXT, "id: " + id); 5088d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato return PendingIntent.getActivity(this, 0, intent, 0); 5098d0b655c496e9125fc8d289c4e5bc9a78297ba3dJoe Onorato } 51046439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato} 51146439cec0eb0da4d0f853f2d8712d0c00c98475bJoe Onorato 512