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