1/*
2 * Copyright (C) 2007-2008 Esmertec AG.
3 * Copyright (C) 2007-2008 The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18package com.android.mms.transaction;
19
20import android.app.Notification;
21import android.app.NotificationManager;
22import android.app.PendingIntent;
23import android.content.BroadcastReceiver;
24import android.content.Context;
25import android.content.Intent;
26import android.provider.Settings;
27import android.provider.Telephony;
28
29import com.android.mms.R;
30import com.android.mms.ui.ManageSimMessages;
31
32/**
33 * Receive Intent.SIM_FULL_ACTION.  Handle notification that SIM is full.
34 */
35public class SimFullReceiver extends BroadcastReceiver {
36
37    @Override
38    public void onReceive(Context context, Intent intent) {
39        if (Settings.Global.getInt(context.getContentResolver(),
40            Settings.Global.DEVICE_PROVISIONED, 0) == 1 &&
41            Telephony.Sms.Intents.SIM_FULL_ACTION.equals(intent.getAction())) {
42
43            NotificationManager nm = (NotificationManager)
44                context.getSystemService(Context.NOTIFICATION_SERVICE);
45
46            Intent viewSimIntent = new Intent(context, ManageSimMessages.class);
47            viewSimIntent.setAction(Intent.ACTION_VIEW);
48            viewSimIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
49            PendingIntent pendingIntent = PendingIntent.getActivity(
50                    context, 0, viewSimIntent, 0);
51
52            Notification notification = new Notification();
53            notification.icon = R.drawable.stat_sys_no_sim;
54            notification.tickerText = context.getString(R.string.sim_full_title);
55            notification.defaults = Notification.DEFAULT_ALL;
56
57            notification.setLatestEventInfo(
58                    context, context.getString(R.string.sim_full_title),
59                    context.getString(R.string.sim_full_body),
60                    pendingIntent);
61            nm.notify(ManageSimMessages.SIM_FULL_NOTIFICATION_ID, notification);
62       }
63    }
64
65}
66