Telephony.java revision 440b44eb71b8d5afeeaa5fda8912f3a61b4c1588
10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage android.provider;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.annotation.SdkConstant;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.annotation.SdkConstant.SdkConstantType;
215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport android.content.ComponentName;
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentResolver;
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentValues;
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context;
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Intent;
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.Cursor;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.sqlite.SqliteWrapper;
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.Uri;
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.SmsMessage;
30a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.SubscriptionManager;
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.text.TextUtils;
3299c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Savilleimport android.telephony.Rlog;
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Patterns;
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
35a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.PhoneConstants;
365c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport com.android.internal.telephony.SmsApplication;
375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.HashSet;
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Set;
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Matcher;
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Pattern;
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
45b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The Telephony provider contains data related to phone operation, specifically SMS and MMS
46b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * messages and access to the APN list, including the MMSC to use.
4729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
4829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p class="note"><strong>Note:</strong> These APIs are not available on all Android-powered
4929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * devices. If your app depends on telephony features such as for managing SMS messages, include
5029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * a <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}
5129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </a> element in your manifest that declares the {@code "android.hardware.telephony"} hardware
5229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * feature. Alternatively, you can check for telephony availability at runtime using either
5329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.pm.PackageManager#hasSystemFeature
5429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * hasSystemFeature(PackageManager.FEATURE_TELEPHONY)} or {@link
5529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#getPhoneType}.</p>
5629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
5729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <h3>Creating an SMS app</h3>
5829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
5929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Only the default SMS app (selected by the user in system settings) is able to write to the
6029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * SMS Provider (the tables defined within the {@code Telephony} class) and only the default SMS
6129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * app receives the {@link android.provider.Telephony.Sms.Intents#SMS_DELIVER_ACTION} broadcast
6229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * when the user receives an SMS or the {@link
6329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.provider.Telephony.Sms.Intents#WAP_PUSH_DELIVER_ACTION} broadcast when the user
6429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * receives an MMS.</p>
6529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
6629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Any app that wants to behave as the user's default SMS app must handle the following intents:
6729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <ul>
6829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link Sms.Intents#SMS_DELIVER_ACTION}
6929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.provider.Telephony.SMS_DELIVER"</code>). The broadcast receiver must also
7029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * require the {@link android.Manifest.permission#BROADCAST_SMS} permission.
7129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming SMS messages.</p></li>
7229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link
7329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#WAP_PUSH_DELIVER_ACTION}} ({@code "android.provider.Telephony.WAP_PUSH_DELIVER"})
7429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * with the MIME type <code>"application/vnd.wap.mms-message"</code>.
7529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * The broadcast receiver must also require the {@link
7629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#BROADCAST_WAP_PUSH} permission.
7729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming MMS messages.</p></li>
7829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In your activity that delivers new messages, include an intent filter for
7929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.Intent#ACTION_SENDTO} (<code>"android.intent.action.SENDTO"
8029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </code>) with schemas, <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and
8129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>mmsto:</code>.
8229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to receive intents from other apps that want to deliver a
8329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * message.</p></li>
8429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a service, include an intent filter for {@link
8529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE}
8629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.intent.action.RESPOND_VIA_MESSAGE"</code>) with schemas,
8729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and <code>mmsto:</code>.
8829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * This service must also require the {@link
8929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#SEND_RESPOND_VIA_MESSAGE} permission.
9029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows users to respond to incoming phone calls with an immediate text message
9129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * using your app.</p></li>
9229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </ul>
9329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
9429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Other apps that are not selected as the default SMS app can only <em>read</em> the SMS
9529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Provider, but may also be notified when a new SMS arrives by listening for the {@link
9629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#SMS_RECEIVED_ACTION}
9729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast, which is a non-abortable broadcast that may be delivered to multiple apps. This
9829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast is intended for apps that&mdash;while not selected as the default SMS app&mdash;need to
9929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * read special incoming messages such as to perform phone number verification.</p>
10029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
10129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>For more information about building SMS apps, read the blog post, <a
10229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * href="http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html"
10329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * >Getting Your SMS Apps Ready for KitKat</a>.</p>
10429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic final class Telephony {
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final String TAG = "Telephony";
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
110b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Not instantiable.
111b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
113b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    private Telephony() {
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
117b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Base columns for tables that contain text-based SMSs.
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface TextBasedSmsColumns {
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: all messages. */
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_ALL    = 0;
123b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: inbox. */
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_INBOX  = 1;
126b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: sent messages. */
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_SENT   = 2;
129b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: drafts. */
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_DRAFT  = 3;
132b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: outbox. */
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_OUTBOX = 4;
135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: failed outgoing message. */
137b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_FAILED = 5;
138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: queued to send later. */
140b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_QUEUED = 6;
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
143b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The type of message.
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
146b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String TYPE = "type";
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
149b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
152b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
155b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The address of the other party.
156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
158b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String ADDRESS = "address";
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
161b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was received.
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
167b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was sent.
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
173b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
179b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a notification.
181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code TP-Status} value for the message, or -1 if no status has been received.
187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "status";
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
191b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: no status received. */
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_NONE = -1;
193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: complete. */
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_COMPLETE = 0;
195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: pending. */
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_PENDING = 32;
197b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: failed. */
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_FAILED = 64;
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
201b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The subject of the message, if present.
2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "subject";
2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
207b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The body of the message.
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BODY = "body";
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
213b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The ID of the sender of the conversation, if present.
214b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (reference to item in {@code content://contacts/people})</P>
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PERSON = "person";
2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol identifier code.
2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the {@code TP-Reply-Path} flag set?
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: BOOLEAN</P>
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_PATH_PRESENT = "reply_path_present";
2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The service center (SC) through which to send the message, if present.
2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CENTER = "service_center";
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
243a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * The sub_id to which the message belongs to
244a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER (long) </p>
245a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
246a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
247a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        public static final String SUB_ID = "sub_id";
248a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
249a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
250e9701717e43cc5aacbcf624f77a53be92350662cw         * The MTU size of the mobile interface to which the APN connected
251e9701717e43cc5aacbcf624f77a53be92350662cw         * @hide
252e9701717e43cc5aacbcf624f77a53be92350662cw         */
253e9701717e43cc5aacbcf624f77a53be92350662cw        public static final String MTU = "mtu";
254e9701717e43cc5aacbcf624f77a53be92350662cw
255e9701717e43cc5aacbcf624f77a53be92350662cw        /**
256a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Error code associated with sending or receiving this message
2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR_CODE = "error_code";
260b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen
261b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        /**
262b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         * The creator of a sent or imported message
263b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         */
264b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        public static final String CREATOR = "creator";
2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
268b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Contains all text-based SMS messages.
2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Sms implements BaseColumns, TextBasedSmsColumns {
271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
272b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
274b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Sms() {
277b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
278b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
27968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        /**
28068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * Used to determine the currently configured default SMS package.
28168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @param context context of the requesting application
28268b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @return package name for the default SMS package or null
28368b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         */
28468b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        public static String getDefaultSmsPackage(Context context) {
28568b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            ComponentName component = SmsApplication.getDefaultSmsApplication(context, false);
28668b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            if (component != null) {
28768b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun                return component.getPackageName();
28868b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            }
28968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            return null;
29068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        }
29168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun
292b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
294b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
295b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection) {
2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
301b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
302b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
303b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection,
3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, where,
307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
313b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://sms");
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Add an SMS to the given URI.
3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
332b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport) {
337440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville            return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
338a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    resolver, uri, address, body, subject, date, read, deliveryReport, -1L);
339a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        }
340a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
341a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
342a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Add an SMS to the given URI.
343a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         *
344a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param resolver the content resolver to use
345a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param uri the URI to add the message to
346a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param address the address of the sender
347a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param body the body of the message
348a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subject the psuedo-subject of the message
349a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param date the timestamp for the message
350a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param read true if the message has been read, false if not
351a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param deliveryReport true if a delivery report was requested, false if not
352a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subId the sub_id which the message belongs to
353a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @return the URI for the new message
354a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
355a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
356a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        public static Uri addMessageToUri(long subId, ContentResolver resolver,
357a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Uri uri, String address, String body, String subject,
358a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Long date, boolean read, boolean deliveryReport) {
359a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            return addMessageToUri(subId, resolver, uri, address, body, subject,
3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    date, read, deliveryReport, -1L);
3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Add an SMS to the given URI with the specified thread ID.
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
370b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param threadId the thread_id of the message
3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
376b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport, long threadId) {
381440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville            return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
382a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    resolver, uri, address, body, subject,
383a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    date, read, deliveryReport, threadId);
384a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        }
385a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
386a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
387a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Add an SMS to the given URI with thread_id specified.
388a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         *
389a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param resolver the content resolver to use
390a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param uri the URI to add the message to
391a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param address the address of the sender
392a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param body the body of the message
393a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subject the psuedo-subject of the message
394a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param date the timestamp for the message
395a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param read true if the message has been read, false if not
396a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param deliveryReport true if a delivery report was requested, false if not
397a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param threadId the thread_id of the message
398a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subId the sub_id which the message belongs to
399a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @return the URI for the new message
400a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
401a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
402a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        public static Uri addMessageToUri(long subId, ContentResolver resolver,
403a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Uri uri, String address, String body, String subject,
404a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Long date, boolean read, boolean deliveryReport, long threadId) {
405a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            ContentValues values = new ContentValues(8);
406a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            Rlog.v(TAG,"Telephony addMessageToUri sub id: " + subId);
4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
408a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            values.put(SUB_ID, subId);
4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ADDRESS, address);
4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (date != null) {
4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(DATE, date);
4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(READ, read ? Integer.valueOf(1) : Integer.valueOf(0));
4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(SUBJECT, subject);
4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(BODY, body);
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (deliveryReport) {
4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(STATUS, STATUS_PENDING);
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (threadId != -1L) {
4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(THREAD_ID, threadId);
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return resolver.insert(uri, values);
4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Move a message to the given folder.
4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param context the context to use
4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the message to move
4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param folder the folder to move to
4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return true if the operation succeeded
432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean moveMessageToFolder(Context context,
4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, int folder, int error) {
4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (uri == null) {
4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsUnread = false;
4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsRead = false;
4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            switch(folder) {
4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_INBOX:
4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_DRAFT:
4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_OUTBOX:
4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_SENT:
4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsRead = true;
4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_FAILED:
4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_QUEUED:
4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsUnread = true;
4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            ContentValues values = new ContentValues(3);
4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(TYPE, folder);
4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (markAsUnread) {
462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 0);
4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else if (markAsRead) {
464b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 1);
4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ERROR_CODE, error);
4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return 1 == SqliteWrapper.update(context, context.getContentResolver(),
4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                            uri, values, null, null);
4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Returns true iff the folder (message type) identifies an
4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * outgoing message.
475b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isOutgoingFolder(int messageType) {
4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return  (messageType == MESSAGE_TYPE_FAILED)
4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_OUTBOX)
4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_SENT)
4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_QUEUED);
4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
485b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all text-based SMS messages in the SMS app inbox.
4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseColumns, TextBasedSmsColumns {
488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
490b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
493b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
494b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
498b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/inbox");
500b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
501b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
502b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
512b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param read true if the message has been read, false if not
5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean read) {
521440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
522a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, read, false);
523a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
524a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
525a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
526a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
527a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
528a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
529a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
530a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
531a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
532a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
533a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param read true if the message has been read, false if not
534a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subId the sub_id which the message belongs to
535a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
536a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
537a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
538a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static Uri addMessage(long subId, ContentResolver resolver,
539a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date, boolean read) {
540a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, read, false);
5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
546b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseColumns, TextBasedSmsColumns {
549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
550b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
552b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
554b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
555b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
556b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
560b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/sent");
5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
563b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date) {
580440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
581a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, true, false);
582a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
583a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
584a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
585a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
586a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
587a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
588a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
589a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
590a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
591a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
592a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subId the sub_id which the message belongs to
593a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
594a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
595a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
596a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static Uri addMessage(long subId, ContentResolver resolver,
597a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
598a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, false);
6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
604b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseColumns, TextBasedSmsColumns {
6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
613b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
616b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/draft");
6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
620a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville           /**
621a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            * @hide
622a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            */
623a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static Uri addMessage(ContentResolver resolver,
624a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
625440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
626a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, true, false);
627a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
628a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
629a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
630a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
631a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
632a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
633a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
634a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
635a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
636a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
637a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subId the sub_id which the message belongs to
638a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
639a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
640a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
641a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static Uri addMessage(long subId, ContentResolver resolver,
642a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
643a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
644a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        subject, date, true, false);
645a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
646a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
6470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
648b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
649b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
650b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String DEFAULT_SORT_ORDER = "date DESC";
6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
6520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
654b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all pending outgoing text-based SMS messages.
6550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseColumns, TextBasedSmsColumns {
657b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
658b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
659b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
660b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
661b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
662b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
663b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
664b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
6650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
666b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
6670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/outbox");
6690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
671b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
6720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
676b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Add an SMS to the outbox.
6770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
6790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
6800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
681b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param deliveryReport whether a delivery report was requested for the message
6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
685b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
6860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean deliveryReport, long threadId) {
690440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
691a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date,
692a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        true, deliveryReport, threadId);
693a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
694a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
695a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
696a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Out box.
697a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
698a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
699a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
700a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
701a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
702a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
703a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param deliveryReport whether a delivery report was requested for the message
704a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subId the sub_id which the message belongs to
705a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
706a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
707a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
708a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static Uri addMessage(long subId, ContentResolver resolver,
709a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date,
710a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    boolean deliveryReport, long threadId) {
711a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
7120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, deliveryReport, threadId);
7130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
7140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
7150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
717b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Conversations
7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                implements BaseColumns, TextBasedSmsColumns {
721b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
723b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
724b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
726b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Conversations() {
727b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
728b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
729b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
730b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
731b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
732b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/conversations");
7330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
735b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
740b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The first 45 characters of the body of the message.
7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SNIPPET = "snippet";
7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
746b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The number of messages in the conversation.
7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MESSAGE_COUNT = "msg_count";
7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
753b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains constants for SMS related Intents that are broadcast.
7540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
756b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
758b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
759b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
760b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
761b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
762b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
763b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
765b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message was handled
7660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * successfully.
7670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_HANDLED = 1;
7690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
771b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a generic error while
7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * processing the message.
7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_GENERIC_ERROR = 2;
7750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
777b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate insufficient memory to store
7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * the message.
7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_OUT_OF_MEMORY = 3;
7810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
783b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message, while
7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * possibly valid, is of a format or encoding that is not
7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * supported.
7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_UNSUPPORTED = 4;
7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
790b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a duplicate incoming message.
79190271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi             */
79290271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            public static final int RESULT_SMS_DUPLICATED = 5;
79390271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi
79490271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            /**
7955c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Activity action: Ask the user to change the default
7965c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application. This will show a dialog that asks the
7975c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * user whether they want to replace the current default
7985c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application with the one specified in
7995c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #EXTRA_PACKAGE_NAME}.
8005c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8015c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
8025c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String ACTION_CHANGE_DEFAULT =
8035c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.ACTION_CHANGE_DEFAULT";
8045c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8055c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
8065c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * The PackageName string passed in as an
8075c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * extra for {@link #ACTION_CHANGE_DEFAULT}
8085c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8095c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * @see #ACTION_CHANGE_DEFAULT
8105c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8115c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String EXTRA_PACKAGE_NAME = "package";
8125c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8135c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
814b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
8155c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will only be delivered to the default
8165c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
8175c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
8185c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8195c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
82029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   that make up the message.</li>
8225c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
8235c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8245c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The extra values can be extracted using
8255c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #getMessagesFromIntent(Intent)}.</p>
8265c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8275c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
8285c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
82929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
83029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
83129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
83229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_SMS} as a required permission in
83329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
83429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * &lt;receiver>}</a> tag.
8355c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8365c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String SMS_DELIVER_ACTION =
8385c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.SMS_DELIVER";
8395c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8405c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
841b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
842c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * by the device. This intent will only be delivered to a
843913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * carrier app which is responsible for filtering the message.
844913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * If the carrier app wants to drop a message, it should set the result
845913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * code to {@link android.app.Activity#RESULT_CANCELED}. The carrier app can
846913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * also modify the SMS PDU by setting the "pdus" value in result extras.</p>
847913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
848913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * The intent will have the following extra values:</p>
849913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
850913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * <ul>
851913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
852913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   that make up the message.</li>
853913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   <li><em>"format"</em> - A String describing the format of the PDUs. It can
854913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   be either "3gpp" or "3gpp2".</li>
855913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   <li><em>"destport"</em> - An int describing the destination port of a data
856913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   SMS. It will be -1 for text SMS.</li>
857913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * </ul>
858913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
859913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * <p>The extra values can be extracted using
860913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * {@link #getMessagesFromIntent(Intent)}.</p>
861913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
862913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * <p class="note"><strong>Note:</strong>
863c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * The broadcast receiver that filters for this intent must be a carrier privileged app.
8645889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * It must also declare {@link android.Manifest.permission#BROADCAST_SMS} as a required
8655889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * permission in the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">
8665889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * {@code &lt;receiver>}</a> tag.
867913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             */
868913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
869913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang            public static final String SMS_FILTER_ACTION =
870913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang                    "android.provider.Telephony.SMS_FILTER";
871913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang
872913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang            /**
873913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * Broadcast Action: A new text-based SMS message has been received
8745c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
8755c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
8765c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
88029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_RECEIVED_ACTION =
8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_RECEIVED";
8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new data based SMS message has been received
8965c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
8975c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. The intent will have the following extra
8980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
90129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
9020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
9030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
9060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
9070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
9090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
9100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DATA_SMS_RECEIVED_ACTION =
9130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.intent.action.DATA_SMS_RECEIVED";
9140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new WAP PUSH message has been received by the
9175c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will only be delivered to the default
9185c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
9195c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
9205c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
92229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
92329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
92429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
92529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
92629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters" </em>
92729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   -(HashMap&lt;String,String&gt;) Any parameters associated with the content type
9285c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   (decoded from the WSP Content-Type header)</li>
9295c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
9305c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9315c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
9325c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
9335c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9345c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The contentTypeParameters extra value is map of content parameters keyed by
9355c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * their names.</p>
9365c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If any unassigned well-known parameters are encountered, the key of the map will
9385c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
9395c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * a parameter has No-Value the value in the map will be null.</p>
94029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
94129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
94229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
94329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_WAP_PUSH} as a required permission in
94429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
94529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * &lt;receiver>}</a> tag.
9465c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
9475c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9485c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String WAP_PUSH_DELIVER_ACTION =
9495c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.WAP_PUSH_DELIVER";
9505c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
9515c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
9525c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Broadcast Action: A new WAP PUSH message has been received by the
9535c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will be delivered to all registered
9545c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
9555c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
9560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
9570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
95929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
96029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
96129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
96229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
96329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters"</em>
96429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   - (HashMap&lt;String,String&gt;) Any parameters associated with the content type
9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   (decoded from the WSP Content-Type header)</li>
9660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The contentTypeParameters extra value is map of content parameters keyed by
9720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * their names.</p>
9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If any unassigned well-known parameters are encountered, the key of the map will
9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
9760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * a parameter has No-Value the value in the map will be null.</p>
9770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String WAP_PUSH_RECEIVED_ACTION =
9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.WAP_PUSH_RECEIVED";
9810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Cell Broadcast message has been received
9840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
9850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
9860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
98829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data. This is not an emergency alert, so ETWS and CMAS data will be null.</li>
9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
9930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
9940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
9960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
9970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_CB_RECEIVED_ACTION =
10000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_CB_RECEIVED";
10010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Emergency Broadcast message has been received
10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
10050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
10060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
100829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
10090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data, including ETWS or CMAS warning notification info if present.</li>
10100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION =
10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
10210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new CDMA SMS has been received containing Service Category
10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Program Data (updates the list of enabled broadcast channels). The intent will
10250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * have the following extra values:</p>
10260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
102829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"operations"</em> - An array of CdmaSmsCbProgramData objects containing
10290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   the service category operations (add/delete/clear) to perform.</li>
10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION =
10400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED";
10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: The SIM storage for SMS messages is full.  If
10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * space is not freed, messages targeted for the SIM (class 2) may
10450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * not be saved.
10460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SIM_FULL_ACTION =
10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SIM_FULL";
10500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: An incoming SMS has been rejected by the
10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * telephony framework.  This intent is sent in lieu of any
10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * of the RECEIVED_ACTION intents.  The intent will have the
10550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * following extra value:</p>
10560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
105829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"result"</em> - An int result code, e.g. {@link #RESULT_SMS_OUT_OF_MEMORY}
10590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   indicating the error returned to the network.</li>
10600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_REJECTED_ACTION =
10640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "android.provider.Telephony.SMS_REJECTED";
10650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10678d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * Broadcast Action: A new SMS PDU needs to be sent from
1068c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * the device. This intent will only be delivered to a
10698d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * carrier app. That app is responsible for sending the PDU.
10708d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * The intent will have the following extra values:</p>
10718d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *
10728d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * <ul>
10738d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *   <li><em>"pdu"</em> - (byte[]) The PDU to send.</li>
10748d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *   <li><em>"smsc"</em> - (byte[]) The service center address (for GSM PDU only).</li>
10758d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *   <li><em>"format"</em> - (String) The format of the PDU. Either 3gpp or 3gpp2. </li>
107678d39a9fab86a26f4f39585af5cfe2a07c756fceShishir Agrawal             *   <li><em>"concat.refNumber"</em> - (int) If the SMS is part of a multi-part SMS, the
107778d39a9fab86a26f4f39585af5cfe2a07c756fceShishir Agrawal             *   ref number used in the SMS header.</li>
107878d39a9fab86a26f4f39585af5cfe2a07c756fceShishir Agrawal             *   <li><em>"concat.seqNumber"</em> - (int) If the SMS is part of a multi-part SMS, the
107978d39a9fab86a26f4f39585af5cfe2a07c756fceShishir Agrawal             *   sequence number of this SMS.</li>
108078d39a9fab86a26f4f39585af5cfe2a07c756fceShishir Agrawal             *   <li><em>"concat.msgCount"</em> - (int) If the SMS is part of a multi-part SMS, the
108178d39a9fab86a26f4f39585af5cfe2a07c756fceShishir Agrawal             *   total number of SMSes in the multi-part SMS.</li>
10828d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * </ul>
10838d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *
10848d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * <p>If a BroadcastReceiver is trying to send the message,
10858d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *  it should set the result code to {@link android.app.Activity#RESULT_OK} and set
10868d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *  the following in the result extra values:</p>
10878d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *
10888d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * <ul>
10898d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *   <li><em>"messageref"</em> - (int) The new message reference number which will be
10908d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *   later used in the updateSmsSendStatus call.</li>
10918d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * </ul>
10928d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *
10938d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * <p>If a BroadcastReceiver cannot send the message, it should not set the result
10948d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *  code and the platform will send it via the normal pathway.
10958d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * </p>
10968d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             *
10978d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             * <p class="note"><strong>Note:</strong>
1098c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * The broadcast receiver that filters for this intent must be a carrier privileged app.
10995889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * It must also declare {@link android.Manifest.permission#BROADCAST_SMS} as a required
11005889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * permission in the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">
11015889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * {@code &lt;receiver>}</a> tag.
11028d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang             */
11038d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
11048d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang            public static final String SMS_SEND_ACTION =
11058d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang                "android.provider.Telephony.SMS_SEND";
11068d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang
11078d8e8f45200d17b78d196d8cba389fd9c547ac11Cheuksan Wang            /**
11080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Read the PDUs out of an {@link #SMS_RECEIVED_ACTION} or a
11090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #DATA_SMS_RECEIVED_ACTION} intent.
11100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
11110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param intent the intent to read from
11120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return an array of SmsMessages for the PDUs
11130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
1114b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static SmsMessage[] getMessagesFromIntent(Intent intent) {
11150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
11160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String format = intent.getStringExtra("format");
1117440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                long subId = intent.getLongExtra(PhoneConstants.SUBSCRIPTION_KEY,
1118440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                        SubscriptionManager.getDefaultSmsSubId());
1119a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1120a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Rlog.v(TAG, " getMessagesFromIntent sub_id : " + subId);
11210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                int pduCount = messages.length;
11230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SmsMessage[] msgs = new SmsMessage[pduCount];
1124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
11250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                for (int i = 0; i < pduCount; i++) {
1126b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    byte[] pdu = (byte[]) messages[i];
1127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    msgs[i] = SmsMessage.createFromPdu(pdu, format);
1128a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    msgs[i].setSubId(subId);
11290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
11300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return msgs;
11310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
11320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
11330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Base columns for tables that contain MMSs.
11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface BaseMmsColumns extends BaseColumns {
11390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1140b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: all messages. */
11410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_ALL    = 0;
1142b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: inbox. */
11430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_INBOX  = 1;
1144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: sent messages. */
11450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_SENT   = 2;
1146b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: drafts. */
11470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_DRAFTS = 3;
1148b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: outbox. */
11490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_OUTBOX = 4;
1150370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        /** Message box: failed. */
1151370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        public static final int MESSAGE_BOX_FAILED = 5;
11520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1154b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
1155b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
1156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1157b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1158b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1159b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
11600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was received.
11610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
11620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
11640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was sent.
11670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
11680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1172b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The box which the message belongs to, e.g. {@link #MESSAGE_BOX_INBOX}.
11730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BOX = "msg_box";
11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1178b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
11790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
11800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
11820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1184b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
1185b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a new message notification.
1186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
11870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
11890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1191b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Does the message have only a text part (can also have a subject) with
1192b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * no picture, slideshow, sound, etc. parts?
1193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
11947a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor         */
11957a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        public static final String TEXT_ONLY = "text_only";
11967a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor
11977a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        /**
1198b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Message-ID} of the message.
11990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_ID = "m_id";
12020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The subject of the message, if present.
12050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "sub";
12080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the subject, if present.
12110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT_CHARSET = "sub_cs";
12140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1216b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Type} of the message.
12170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_TYPE = "ct_t";
12200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1222b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Location} of the message.
12230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_LOCATION = "ct_l";
12260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The expiry time of the message.
1229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
12300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String EXPIRY = "exp";
12320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The class of the message.
12350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_CLASS = "m_cls";
12380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The type of the message defined by MMS spec.
12410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_TYPE = "m_type";
12440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1246b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The version of the specification that this message conforms to.
12470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMS_VERSION = "v";
12500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The size of the message.
12530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_SIZE = "m_size";
12560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The priority of the message.
1259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
12600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PRIORITY = "pri";
12620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-report} of the message.
1265b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_REPORT = "rr";
12680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1270b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is read report allowed?
1271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPORT_ALLOWED = "rpt_a";
12740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-status} of the message.
12770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_STATUS = "resp_st";
12800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status} of the message.
12830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "st";
12860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1288b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code transaction-id} of the message.
12890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TRANSACTION_ID = "tr_id";
12920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1294b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-status} of the message.
12950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_STATUS = "retr_st";
12980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-text} of the message.
13010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
13020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT = "retr_txt";
13040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
13060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the retrieve-text.
1307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
13080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT_CHARSET = "retr_txt_cs";
13100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1312b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-status} of the message.
13130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_STATUS = "read_status";
13160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1318b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content-class} of the message.
13190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_CLASS = "ct_cls";
13220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1324b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-report} of the message.
13250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_REPORT = "d_rpt";
13280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1330b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time-token} of the message.
13310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1332b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1335b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME_TOKEN = "d_tm_tok";
13370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1339b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time} of the message.
13400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "d_tm";
13430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1345b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-text} of the message.
13460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
13470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_TEXT = "resp_txt";
13490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code sender-visibility} of the message.
13520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1353b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1354b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SENDER_VISIBILITY = "s_vis";
13580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1360b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging} of the message.
13610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1362b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1365b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING = "r_chg";
13670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline-token} of the message.
13700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1371b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1372b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1374b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE_TOKEN = "r_chg_dl_tok";
13760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1378b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline} of the message.
13790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1380b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1383b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE = "r_chg_dl";
13850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1387b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-id} of the message.
13880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1389b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1390b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1392b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_ID = "r_chg_id";
13940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1396b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-size} of the message.
13970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1398b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1399b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1401b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_SIZE = "r_chg_sz";
14030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1405b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-by} of the message.
14060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1408b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1410b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_BY = "p_s_by";
14120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-date} of the message.
14150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1416b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1419b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_DATE = "p_s_d";
14210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store} of the message.
14240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1428b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE = "store";
14300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-state} of the message.
14330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1435b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1437b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_STATE = "mm_st";
14390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1441b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags-token} of the message.
14420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1443b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1446b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS_TOKEN = "mm_flg_tok";
14480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1450b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags} of the message.
14510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1452b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1453b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1455b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS = "mm_flg";
14570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status} of the message.
14600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1461b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1464b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS = "store_st";
14660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status-text} of the message.
14690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1470b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1473b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS_TEXT = "store_st_txt";
14750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1477b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code stored} of the message.
14780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1479b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1480b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1482b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORED = "stored";
14840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1486b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code totals} of the message.
14870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1489b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TOTALS = "totals";
14930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1495b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals} of the message.
14960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1498b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1500b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS = "mb_t";
15020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals-token} of the message.
15050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1506b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1507b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1509b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS_TOKEN = "mb_t_tok";
15110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code quotas} of the message.
15140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1515b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String QUOTAS = "qt";
15200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1522b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas} of the message.
15230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1524b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1525b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS = "mb_qt";
15290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas-token} of the message.
15320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1533b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1534b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS_TOKEN = "mb_qt_tok";
15380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1540b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code message-count} of the message.
15410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1542b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1543b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1545b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "m_cnt";
15470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code start} of the message.
15500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1552b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1554b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String START = "start";
15560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code distribution-indicator} of the message.
15590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1560b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1561b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1563b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DISTRIBUTION_INDICATOR = "d_ind";
15650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1567b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code element-descriptor} of the message.
15680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1569b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ELEMENT_DESCRIPTOR = "e_des";
15740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code limit} of the message.
15770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1581b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LIMIT = "limit";
15830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1585b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode} of the message.
15860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1588b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1590b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE = "r_r_mod";
15920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode-text} of the message.
15950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1596b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1597b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1599b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE_TEXT = "r_r_mod_txt";
16010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1603b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status-text} of the message.
16040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1605b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS_TEXT = "st_txt";
16100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code applic-id} of the message.
16130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1614b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1615b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1617b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APPLIC_ID = "apl_id";
16190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1621b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-applic-id} of the message.
16220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1623b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1624b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1626b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_APPLIC_ID = "r_apl_id";
16280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1630b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code aux-applic-id} of the message.
16310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1632b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1633b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1635b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUX_APPLIC_ID = "aux_apl_id";
16370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1639b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code drm-content} of the message.
16400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1641b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1642b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1644b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DRM_CONTENT = "drm_c";
16460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1648b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code adaptation-allowed} of the message.
16490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1650b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1651b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1653b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADAPTATION_ALLOWED = "adp_a";
16550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1657b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code replace-id} of the message.
16580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1659b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1660b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1662b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLACE_ID = "repl_id";
16640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1666b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-id} of the message.
16670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1669b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1671b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_ID = "cl_id";
16730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1675b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-status} of the message.
16760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1677b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1678b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1680b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_STATUS = "cl_st";
16820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1684b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
16850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
16860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
1688a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1689a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
1690a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * The sub id to which message belongs to
1691a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER</p>
1692a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
1693a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
1694a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        public static final String SUB_ID = "sub_id";
1695a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1696b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        /**
1697b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         * The creator of a sent or imported message
1698b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         */
1699b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        public static final String CREATOR = "creator";
17000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
17010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1703b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Columns for the "canonical_addresses" table used by MMS and SMS.
17040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface CanonicalAddressesColumns extends BaseColumns {
17060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * An address used in MMS or SMS.  Email addresses are
17080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * converted to lower case and are compared by string
17090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * equality.  Other addresses are compared using
17100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * PHONE_NUMBERS_EQUAL.
17110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADDRESS = "address";
17140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
17150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Columns for the "threads" table used by MMS and SMS.
17180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface ThreadsColumns extends BaseColumns {
1720b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date at which the thread was created.
17230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
17240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
17260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * A string encoding of the recipient IDs of the recipients of
17290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * the message, in numerical order and separated by spaces.
17300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECIPIENT_IDS = "recipient_ids";
17330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The message count of the thread.
17360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "message_count";
1739b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether all messages of the thread have been read.
17420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
17450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The snippet of the latest message in the thread.
17480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET = "snippet";
1751b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The charset of the snippet.
17540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET_CHARSET = "snippet_cs";
1757b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1759b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Type of the thread, either {@link Threads#COMMON_THREAD} or
1760b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link Threads#BROADCAST_THREAD}.
17610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
1764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether there is a transmission error in the thread.
17670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR = "error";
1770b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether this thread contains any attachments.
17730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String HAS_ATTACHMENT = "has_attachment";
1776e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen
1777e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        /**
1778e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         * If the thread is archived
1779e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         */
1780e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        public static final String ARCHIVED = "archived";
17810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
17820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Helper functions for the "threads" table used by MMS and SMS.
17850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Threads implements ThreadsColumns {
1787b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final String[] ID_PROJECTION = { BaseColumns._ID };
1789b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1790b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1791b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Private {@code content://} style URL for this table. Used by
1792b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link #getOrCreateThreadId(android.content.Context, java.util.Set)}.
1793b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final Uri THREAD_ID_CONTENT_URI = Uri.parse(
17950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/threadID");
1796b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1797b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1798b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
1799b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.withAppendedPath(
18010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MmsSms.CONTENT_URI, "conversations");
1802b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1803b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1804b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, for obsolete threads.
1805b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri OBSOLETE_THREADS_URI = Uri.withAppendedPath(
18070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CONTENT_URI, "obsolete");
18080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1809b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: common thread. */
18100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int COMMON_THREAD    = 0;
1811b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1812b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: broadcast thread. */
18130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int BROADCAST_THREAD = 1;
18140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1815b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1816b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1817b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1818b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private Threads() {
18200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1823b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This is a single-recipient version of {@code getOrCreateThreadId}.
1824b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * It's convenient for use with SMS messages.
1825b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param context the context object to use.
1826b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param recipient the recipient to send to.
1827b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
18280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(Context context, String recipient) {
18300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Set<String> recipients = new HashSet<String>();
18310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            recipients.add(recipient);
18330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return getOrCreateThreadId(context, recipients);
18340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
18370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Given the recipients list and subject of an unsaved message,
18380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * return its thread ID.  If the message starts a new thread,
18390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * allocate a new thread ID.  Otherwise, use the appropriate
18400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * existing thread ID.
18410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1842b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <p>Find the thread ID of the same set of recipients (in any order,
1843b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * without any additions). If one is found, return it. Otherwise,
1844b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * return a unique thread ID.</p>
1845b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
18460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(
18480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Context context, Set<String> recipients) {
18490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
18500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            for (String recipient : recipients) {
18520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if (Mms.isEmailAddress(recipient)) {
18530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    recipient = Mms.extractAddrSpec(recipient);
18540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
18550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                uriBuilder.appendQueryParameter("recipient", recipient);
18570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
18580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri uri = uriBuilder.build();
186099c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville            //if (DEBUG) Rlog.v(TAG, "getOrCreateThreadId uri: " + uri);
18610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(),
18630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    uri, ID_PROJECTION, null, null, null);
18640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (cursor != null) {
18650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                try {
18660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    if (cursor.moveToFirst()) {
18670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        return cursor.getLong(0);
18680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    } else {
186999c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville                        Rlog.e(TAG, "getOrCreateThreadId returned no rows!");
18700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    }
18710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                } finally {
18720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    cursor.close();
18730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
18740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
18750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
187699c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville            Rlog.e(TAG, "getOrCreateThreadId failed with uri " + uri.toString());
18770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            throw new IllegalArgumentException("Unable to find or allocate a thread ID.");
18780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
18800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
18820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS messages.
18830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
18840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Mms implements BaseMmsColumns {
1885b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1887b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1888b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1889b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1890b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Mms() {
1891b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
1892b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1893b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1894b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
18950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms");
18970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1898b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1899b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report requests.
1900b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_REQUEST_URI = Uri.withAppendedPath(
19020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-request");
19030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1904b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1905b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report status.
1906b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_STATUS_URI = Uri.withAppendedPath(
19080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-status");
19090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1911b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
19120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
19140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1916b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Regex pattern for names and email addresses.
1917b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
1918b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>mailbox</em> = {@code name-addr}</li>
1919b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>name-addr</em> = {@code [display-name] angle-addr}</li>
1920b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>angle-addr</em> = {@code [CFWS] "<" addr-spec ">" [CFWS]}</li>
1921b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
1922b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Pattern NAME_ADDR_EMAIL_PATTERN =
19250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
19260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1928b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1929b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1931b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
19320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection) {
19330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
19340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1936b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1937b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1938b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1939b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1940b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
19410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection,
19420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
19430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection,
19440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    where, null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
19450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1947b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1948b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to extract email address from address string.
1949b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1950b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static String extractAddrSpec(String address) {
19520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address);
19530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (match.matches()) {
19550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return match.group(2);
19560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return address;
19580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1961b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified address an email address?
19620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1963b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param address the input address to test
1964b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if address is an email address; false otherwise.
1965b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isEmailAddress(String address) {
19680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(address)) {
19690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
19700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String s = extractAddrSpec(address);
19730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
19740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
19750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1978b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified number a phone number?
19790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1980b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param number the input number to test
1981b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if number is a phone number; false otherwise.
1982b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isPhoneNumber(String number) {
19850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(number)) {
19860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
19870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.PHONE.matcher(number);
19900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
19910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1994b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app inbox.
19950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseMmsColumns {
1997b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1998b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1999b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2000b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2001b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2002b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
2003b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2004b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2006b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/inbox");
20100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2012b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2018b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app sent folder.
20190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseMmsColumns {
2021b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2023b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2024b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2025b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2026b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
2027b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2028b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2029b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2030b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/sent");
20340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2036b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2042b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app drafts folder.
20430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseMmsColumns {
2045b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2047b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2048b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2049b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2050b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
2051b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2052b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2053b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2054b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/drafts");
20580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2060b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2066b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app outbox.
20670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseMmsColumns {
2069b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2072b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2073b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2074b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
2075b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2076b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2077b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2078b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/outbox");
20820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2084b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2089b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2090b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains address information for an MMS message.
2091b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Addr implements BaseColumns {
2093b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2094b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2095b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2096b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2097b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2098b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Addr() {
2099b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2100b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of MM which this address entry belongs to.
2103b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
21040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
21060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of contact entry in Phone Book.
2109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
21100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTACT_ID = "contact_id";
21120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The address text.
2115b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
21160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ADDRESS = "address";
21180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2120b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Type of address: must be one of {@code PduHeaders.BCC},
2121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * {@code PduHeaders.CC}, {@code PduHeaders.FROM}, {@code PduHeaders.TO}.
2122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
21230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TYPE = "type";
21250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Character set of this entry (MMS charset value).
2128b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
21290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "charset";
21310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
21320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2134b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains message parts.
2135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Part implements BaseColumns {
2137b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2140b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2142b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Part() {
2143b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The identifier of the message which this part belongs to.
21470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "mid";
21500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The order of the part.
21530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SEQ = "seq";
21560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content type of the part.
21590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_TYPE = "ct";
21620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The name of the part.
21650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String NAME = "name";
21680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The charset of the part.
21710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "chset";
21740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The file name of the part.
21770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String FILENAME = "fn";
21800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content disposition of the part.
21830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_DISPOSITION = "cd";
21860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content ID of the part.
21890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_ID = "cid";
21920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content location of the part.
21950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_LOCATION = "cl";
21980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The start of content-type of the message.
22010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
22020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_START = "ctt_s";
22040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of content-type of the message.
22070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
22080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_TYPE = "ctt_t";
22100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2212b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The location (on filesystem) of the binary data of the part.
22130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
22140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String _DATA = "_data";
22160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2217b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2218b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The message text.
2219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2220b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TEXT = "text";
22220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2224b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message send rate table.
2226b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Rate {
2228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2230b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2232b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2233b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Rate() {
2234b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2235b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2236b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
2238b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
22400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    Mms.CONTENT_URI, "rate");
2241b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * When a message was successfully sent.
2244b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
22450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SENT_TIME = "sent_time";
22470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2249b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2250b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Intents class.
2251b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
22530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2255b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2256b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
22570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2258b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
2259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2260b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Indicates that the contents of specified URIs were changed.
22630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The application which is showing or caching these contents
22640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * should be updated.
22650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2266b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
2267b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String CONTENT_CHANGED_ACTION
2268b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    = "android.intent.action.CONTENT_CHANGED";
2269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2271982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * Broadcast Action: A new MMS PDU needs to be sent from
2272c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * the device. This intent will only be delivered to a
2273982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * carrier app. That app is responsible for sending the PDU.
2274982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * The intent will have the following extra values:</p>
2275982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2276982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <ul>
2277982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   <li><em>"pdu"</em> - (byte[]) The PDU to send.</li>
2278982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   <li><em>"url"</em> - (String) The optional url to send this MMS PDU.
2279982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   If this is not specified, PDU should be sent to the default MMSC url.</li>
2280982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * </ul>
2281982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2282982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <p>If a BroadcastReceiver is trying to send the message,
2283982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *  it should set the result code to {@link android.app.Activity#RESULT_OK} and set
2284982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *  the following in the result extra values:</p>
2285982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2286982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <ul>
2287982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   <li><em>"messageref"</em> - (int) The new message reference number which will be
2288982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   later used in the updateMmsSendStatus call.</li>
2289982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * </ul>
2290982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2291982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <p>If a BroadcastReceiver cannot send the message, it should not set the result
2292982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *  code and the platform will send it via the normal pathway.
2293982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * </p>
2294982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2295982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <p class="note"><strong>Note:</strong>
2296c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * The broadcast receiver that filters for this intent must be a carrier privileged app.
22975889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * It must also declare {@link android.Manifest.permission#BROADCAST_WAP_PUSH} as a required
22985889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * permission in the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">
22995889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * {@code &lt;receiver>}</a> tag.
2300982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             */
2301982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
2302982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen            public static final String MMS_SEND_ACTION =
2303982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen                    "android.provider.Telephony.MMS_SEND";
2304982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen
2305982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen            /**
2306982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * Broadcast Action: A new MMS needs to be downloaded.
2307c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * This intent will only be delivered to a
2308982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * carrier app. That app is responsible for downloading the message at the URL.
2309982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * The intent will have the following extra values:</p>
2310982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2311982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <ul>
2312982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   <li><em>"url"</em> - (String) The message URL to be downloaded.</li>
2313982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * </ul>
2314982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2315982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <p>If a BroadcastReceiver is trying to download the message,
2316982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *  it should set the result code to {@link android.app.Activity#RESULT_OK} and set
2317982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *  the following in the result extra values:</p>
2318982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2319982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <ul>
2320982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   <li><em>"messageref"</em> - (int) The new message reference number which will be
2321982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *   later used in the updateMmsDownloadStatus call.</li>
2322982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * </ul>
2323982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2324982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <p>If a BroadcastReceiver cannot download the message, it should not set the result
2325982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *  code and the platform will download it via the normal pathway.
2326982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * </p>
2327982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             *
2328982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             * <p class="note"><strong>Note:</strong>
2329c9394399180abbc32d04f6a3652ce22d5931e0b8Shishir Agrawal             * The broadcast receiver that filters for this intent must be a carrier privileged app.
23305889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * It must also declare {@link android.Manifest.permission#BROADCAST_WAP_PUSH} as a required
23315889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * permission in the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">
23325889fd6e26caa9b8164666cd8c29df973fd7c265Shishir Agrawal             * {@code &lt;receiver>}</a> tag.
2333982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen             */
2334982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
2335982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen            public static final String MMS_DOWNLOAD_ACTION =
2336982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen                    "android.provider.Telephony.MMS_DOWNLOAD";
2337982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen
2338982c5004a49b57a1f9ca7b054df5a7c0bb3bda20Ye Wen            /**
23390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * An extra field which stores the URI of deleted contents.
23400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DELETED_CONTENTS = "deleted_contents";
23420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
23430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
23440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
23460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS and SMS messages.
23470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
23480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class MmsSms implements BaseColumns {
2349b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2350b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2352b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2353b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2354b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private MmsSms() {
2355b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
2356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2358b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The column to distinguish SMS and MMS messages in query results.
23590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
23600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE_DISCRIMINATOR_COLUMN =
23610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "transport_type";
23620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
2365b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms-sms/");
23670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2368b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
2370b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_CONVERSATIONS_URI = Uri.parse(
23720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/conversations");
23730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2374b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2375b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by phone number.
2376b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_FILTER_BYPHONE_URI = Uri.parse(
23780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/messages/byphone");
23790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2380b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for undelivered messages in this table.
2382b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_UNDELIVERED_URI = Uri.parse(
23840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/undelivered");
23850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2386b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2387b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for draft messages in this table.
2388b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_DRAFT_URI = Uri.parse(
23900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/draft");
23910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2392b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2393b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for locked messages in this table.
2394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_LOCKED_URI = Uri.parse(
23960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/locked");
23970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2398b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2399b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Pass in a query parameter called "pattern" which is the text to search for.
2400b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The sort order is fixed to be: {@code thread_id ASC, date DESC}.
24010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri SEARCH_URI = Uri.parse(
24030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/search");
24040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for message protocol types.
2406b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** SMS protocol type. */
24080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int SMS_PROTO = 0;
2409b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2410b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** MMS protocol type. */
24110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MMS_PROTO = 1;
24120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for error types of pending messages.
2414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: no error. */
24160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int NO_ERROR                      = 0;
2417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: generic transient error. */
24190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC              = 1;
2420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol transient error. */
24220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_TRANSIENT  = 2;
2423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2424b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol transient error. */
24250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_TRANSIENT  = 3;
2426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2427b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: transport failure. */
24280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_TRANSPORT_FAILURE    = 4;
2429b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: permanent error (along with all higher error values). */
24310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC_PERMANENT    = 10;
2432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol permanent error. */
24340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_PERMANENT  = 11;
2435b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2436b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol permanent error. */
24370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_PERMANENT  = 12;
24380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2439b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2440b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains pending messages info.
2441b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class PendingMessages implements BaseColumns {
2443b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2445b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2446b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2447b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private PendingMessages() {
2449b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2450b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
24520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    MmsSms.CONTENT_URI, "pending");
2453b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2455b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The type of transport protocol (MMS or SMS).
24560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
24570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String PROTO_TYPE = "proto_type";
2459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of the message to be sent or downloaded.
2462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
24630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
2465b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the message to be sent or downloaded.
2468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * This field is only valid for MM. For SM, its value is always set to 0.
2469b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
24700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_TYPE = "msg_type";
2472b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the error code.
24750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
24760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_TYPE = "err_type";
2478b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The error code of sending/retrieving process.
2481b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
24820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_CODE = "err_code";
2484b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * How many times we tried to send or download the message.
2487b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
24880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String RETRY_INDEX = "retry_index";
2490b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time to do next retry.
2493b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
24940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DUE_TIME = "due_time";
2496b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time we last tried to send or download the message.
2499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
25000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
25010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String LAST_TRY = "last_try";
2502a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2503a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
2504a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * The sub_id to which the pending message belongs to
2505a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * <p>Type: INTEGER (long) </p>
2506a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
2507a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
2508a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static final String SUB_ID = "pending_sub_id";
25090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
25100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2511b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2512b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Words table used by provider for full-text searches.
2513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2514b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class WordsTable {
2516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2519b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2520b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2521b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private WordsTable() {}
2522b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2523b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2524b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Primary key.
2525b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ID = "_id";
2528b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2529b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2530b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Source row ID.
2531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2532b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SOURCE_ROW_ID = "source_id";
2534b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2535b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Table ID (either 1 or 2).
2537b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
2538b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TABLE_ID = "table_to_use";
2540b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2541b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2542b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The words to index.
2543b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2544b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String INDEXED_TEXT = "index_text";
25460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
25470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
25480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
2550b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Carriers class contains information about APNs, including MMSC information.
2551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
25520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Carriers implements BaseColumns {
2553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2554b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2555b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2556b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2557b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Carriers() {}
2559b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
25600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2561b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
25620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2563b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://telephony/carriers");
25640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2566b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
25670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "name ASC";
25690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Entry name.
2572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NAME = "name";
25750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2577b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN name.
2578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APN = "apn";
25810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2582b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2583b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy address.
2584b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2585b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROXY = "proxy";
25870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2588b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2589b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy port.
2590b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2591b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PORT = "port";
25930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2595b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy address.
2596b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2597b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPROXY = "mmsproxy";
25990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2601b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy port.
2602b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2603b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPORT = "mmsport";
26050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Server address.
2608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVER = "server";
26110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2613b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN username.
2614b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2615b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String USER = "user";
26170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2619b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN password.
2620b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2621b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PASSWORD = "password";
26230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2624b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2625b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMSC URL.
2626b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2627b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSC = "mmsc";
26290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2630b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2631b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Country Code (MCC).
2632b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2633b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MCC = "mcc";
26350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2636b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2637b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Network Code (MNC).
2638b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2639b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MNC = "mnc";
26410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2642b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2643b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Numeric operator ID (as String). Usually {@code MCC + MNC}.
2644b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2645b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NUMERIC = "numeric";
26470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2648b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2649b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Authentication type.
2650b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type:  INTEGER</P>
2651b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUTH_TYPE = "authtype";
26530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2654b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2655b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Comma-delimited list of APN types.
2656b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2657b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
26590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2661b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN.
26620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
2663b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * One of the {@code PDP_type} values in TS 27.007 section 10.1.1.
2664b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * For example: {@code IP}, {@code IPV6}, {@code IPV4V6}, or {@code PPP}.
2665b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
26660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
26670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
26680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2670b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN when roaming.
2671b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The syntax is the same as protocol.
2672b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2673b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ROAMING_PROTOCOL = "roaming_protocol";
26750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2676b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2677b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this the current APN?
2678b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2679b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CURRENT = "current";
26810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2683b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this APN enabled?
2684b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2685b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CARRIER_ENABLED = "carrier_enabled";
26870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2689b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Radio Access Technology info.
2690b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * To check what values are allowed, refer to {@link android.telephony.ServiceState}.
2691b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This should be spread to other technologies,
2692b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * but is currently only used for LTE (14) and eHRPD (13).
2693b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
2694b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BEARER = "bearer";
2696a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2697a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2698b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO type:
2699b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}.
2700b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2701b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2702a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_TYPE = "mvno_type";
2703a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2704a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2705b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO data.
2706b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Use the following examples.
2707b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
2708b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>SPN: A MOBILE, BEN NL, ...</li>
2709b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>IMSI: 302720x94, 2060188, ...</li>
2710b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>GID: 4E, 33, ...</li>
2711b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
2712b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2713b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2714a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_MATCH_DATA = "mvno_match_data";
2715a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2716a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
2717a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * The sub_id to which the APN belongs to
2718a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER (long) </p>
2719a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
2720a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
2721a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        public static final String SUB_ID = "sub_id";
2722a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
27239d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27249d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The profile_id to which the APN saved in modem
27259d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27269d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27279d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27289d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String PROFILE_ID = "profile_id";
27299d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27309d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27319d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * Is the apn setting to be set in modem
27329d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <P>Type: INTEGER (boolean)</P>
27339d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27349d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27359d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MODEM_COGNITIVE = "modem_cognitive";
27369d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27379d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27389d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The max connections of this apn
27399d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27409d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27419d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27429d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS = "max_conns";
27439d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27449d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27459d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The wait time for retry of the apn
27469d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27479d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27489d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27499d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String WAIT_TIME = "wait_time";
27509d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27519d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27529d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The time to limit max connection for the apn
27539d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27549d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27559d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27569d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS_TIME = "max_conns_time";
27579d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
2758e9701717e43cc5aacbcf624f77a53be92350662cw        /**
2759e9701717e43cc5aacbcf624f77a53be92350662cw         * The MTU size of the mobile interface to  which the APN connected
2760e9701717e43cc5aacbcf624f77a53be92350662cw         * <p>Type: INTEGER </p>
2761e9701717e43cc5aacbcf624f77a53be92350662cw         * @hide
2762e9701717e43cc5aacbcf624f77a53be92350662cw         */
2763e9701717e43cc5aacbcf624f77a53be92350662cw        public static final String MTU = "mtu";
27640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
27650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
27670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains received SMS cell broadcast messages.
2768b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
27690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
27700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class CellBroadcasts implements BaseColumns {
27710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2772b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2773b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2774b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2775b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
27760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private CellBroadcasts() {}
27770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2779b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
27800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2781b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts");
27820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message geographical scope.
27850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String GEOGRAPHICAL_SCOPE = "geo_scope";
27880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message serial number.
27910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERIAL_NUMBER = "serial_number";
27940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2796b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * PLMN of broadcast sender. {@code SERIAL_NUMBER + PLMN + LAC + CID} uniquely identifies
2797b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * a broadcast for duplicate detection purposes.
27980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
27990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PLMN = "plmn";
28010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Location Area (GSM) or Service Area (UMTS) of broadcast sender. Unused for CDMA.
28040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Only included if Geographical Scope of message is not PLMN wide (01).
28050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LAC = "lac";
28080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Cell ID of message sender (GSM/UMTS). Unused for CDMA. Only included when the
28110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Geographical Scope of message is cell wide (00 or 11).
28120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CID = "cid";
28150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2817b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message code. <em>OBSOLETE: merged into SERIAL_NUMBER.</em>
28180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_CODE = "message_code";
28210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2823b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message identifier. <em>OBSOLETE: renamed to SERVICE_CATEGORY.</em>
28240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_IDENTIFIER = "message_id";
28270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2829b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Service category (GSM/UMTS: message identifier; CDMA: service category).
28300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CATEGORY = "service_category";
28330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message language code.
28360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
28370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LANGUAGE_CODE = "language";
28390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message body.
28420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
28430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BODY = "body";
28450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message delivery time.
28480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
28490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "date";
28510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Has the message been viewed?
28540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
28550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_READ = "read";
28570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message format (3GPP or 3GPP2).
28600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_FORMAT = "format";
28630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message priority (including emergency).
28660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_PRIORITY = "priority";
28690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * ETWS warning type (ETWS alerts only).
28720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ETWS_WARNING_TYPE = "etws_warning_type";
28750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS message class (CMAS alerts only).
28780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_MESSAGE_CLASS = "cmas_message_class";
28810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS category (CMAS alerts only).
28840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CATEGORY = "cmas_category";
28870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS response type (CMAS alerts only).
28900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_RESPONSE_TYPE = "cmas_response_type";
28930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS severity (CMAS alerts only).
28960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_SEVERITY = "cmas_severity";
28990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS urgency (CMAS alerts only).
29020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_URGENCY = "cmas_urgency";
29050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS certainty (CMAS alerts only).
29080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CERTAINTY = "cmas_certainty";
29110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2912b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** The default sort order for this table. */
29130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = DELIVERY_TIME + " DESC";
29140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects.
29170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String[] QUERY_COLUMNS = {
29190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                _ID,
29200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                GEOGRAPHICAL_SCOPE,
29210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                PLMN,
29220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LAC,
29230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CID,
29240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERIAL_NUMBER,
29250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERVICE_CATEGORY,
29260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LANGUAGE_CODE,
29270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_BODY,
29280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                DELIVERY_TIME,
29290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_READ,
29300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_FORMAT,
29310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_PRIORITY,
29320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ETWS_WARNING_TYPE,
29330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_MESSAGE_CLASS,
29340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CATEGORY,
29350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_RESPONSE_TYPE,
29360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_SEVERITY,
29370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_URGENCY,
29380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CERTAINTY
29390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        };
29400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
29410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
2942