DialogSmsDisplay.java revision 58a104a69871bd7e93afd768ceca5df1eac32ff9
158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor/*
258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * Copyright (C) 2011 The Android Open Source Project
358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor *
458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * Licensed under the Apache License, Version 2.0 (the "License");
558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * you may not use this file except in compliance with the License.
658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * You may obtain a copy of the License at
758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor *
858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor *      http://www.apache.org/licenses/LICENSE-2.0
958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor *
1058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * Unless required by applicable law or agreed to in writing, software
1158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * distributed under the License is distributed on an "AS IS" BASIS,
1258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * See the License for the specific language governing permissions and
1458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor * limitations under the License.
1558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor */
1658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
1758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorpackage com.android.basicsmsreceiver;
1858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
1958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport java.util.Locale;
2058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
2158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.app.Activity;
2258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.app.AlertDialog;
2358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.app.Dialog;
2458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.app.NotificationManager;
2558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.content.Context;
2658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.content.DialogInterface;
2758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.content.Intent;
2858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.os.Bundle;
2958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.util.Log;
3058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.view.KeyEvent;
3158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.view.View;
3258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorimport android.view.Window;
3358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
3458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylorpublic class DialogSmsDisplay extends Activity {
3558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    private static final String LOG_TAG = "SmsReceivedDialog";
3658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
3758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    private static final int DIALOG_SHOW_MESSAGE = 1;
3858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
3958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    public static final String SMS_FROM_ADDRESS_EXTRA =
4058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                                                "com.android.basicsmsreceiver.SMS_FROM_ADDRESS";
4158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    public static final String SMS_MESSAGE_EXTRA =
4258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                                                "com.android.basicsmsreceiver.SMS_MESSAGE";
4358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    public static final String SMS_NOTIFICATION_ID_EXTRA =
4458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                                                "com.android.basicsmsreceiver.NOTIFICATION_ID";
4558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
4658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    private String mFromAddress;
4758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    private String mMessage;
4858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
4958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    @Override
5058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    protected void onCreate(Bundle savedInstanceState) {
5158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        super.onCreate(savedInstanceState);
5258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
5358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        Bundle extras = getIntent().getExtras();
5458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        mFromAddress = extras.getString(SMS_FROM_ADDRESS_EXTRA);
5558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        mMessage = extras.getString(SMS_MESSAGE_EXTRA);
5658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        int notificationId = extras.getInt(SMS_NOTIFICATION_ID_EXTRA);
5758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
5858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        Log.i(LOG_TAG, "notificationId: " + notificationId);
5958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
6058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        // Dismiss the notification that brought us here.
6158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        NotificationManager notificationManager =
6258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor            (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
6358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        notificationManager.cancel(notificationId);
6458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
6558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        showDialog(DIALOG_SHOW_MESSAGE);
6658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    }
6758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor
6858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    @Override
6958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    protected Dialog onCreateDialog(int id) {
7058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        switch (id) {
7158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        case DIALOG_SHOW_MESSAGE:
7258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor            return new AlertDialog.Builder(this)
7358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    .setTitle(String.format(getString(R.string.sms_message_from_format),
7458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                            mFromAddress))
7558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    .setMessage(mMessage)
7658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    .setCancelable(true)
7758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    .setOnCancelListener(new AlertDialog.OnCancelListener() {
7858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                        public void onCancel(DialogInterface dialog) {
7958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                            dialog.dismiss();
8058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                            finish();
8158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                        }
8258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    })
8358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    .setNeutralButton(R.string.sms_done_button,
8458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                            new DialogInterface.OnClickListener() {
8558a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                        public void onClick(DialogInterface dialog, int whichButton) {
8658a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                            dialog.dismiss();
8758a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                            finish();
8858a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                        }
8958a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    })
9058a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor                    .create();
9158a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        }
9258a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor        return null;
9358a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor    }
9458a104a69871bd7e93afd768ceca5df1eac32ff9Tom Taylor}
95