Telephony.java revision 913880b94d8b29d8dec34b2307c313e2180eb6f0
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;
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.text.TextUtils;
3199c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Savilleimport android.telephony.Rlog;
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Patterns;
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
345c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport com.android.internal.telephony.SmsApplication;
355c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.HashSet;
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Set;
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Matcher;
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Pattern;
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
43b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The Telephony provider contains data related to phone operation, specifically SMS and MMS
44b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * messages and access to the APN list, including the MMSC to use.
4529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
4629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p class="note"><strong>Note:</strong> These APIs are not available on all Android-powered
4729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * devices. If your app depends on telephony features such as for managing SMS messages, include
4829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * a <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}
4929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </a> element in your manifest that declares the {@code "android.hardware.telephony"} hardware
5029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * feature. Alternatively, you can check for telephony availability at runtime using either
5129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.pm.PackageManager#hasSystemFeature
5229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * hasSystemFeature(PackageManager.FEATURE_TELEPHONY)} or {@link
5329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#getPhoneType}.</p>
5429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
5529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <h3>Creating an SMS app</h3>
5629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
5729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Only the default SMS app (selected by the user in system settings) is able to write to the
5829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * SMS Provider (the tables defined within the {@code Telephony} class) and only the default SMS
5929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * app receives the {@link android.provider.Telephony.Sms.Intents#SMS_DELIVER_ACTION} broadcast
6029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * when the user receives an SMS or the {@link
6129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.provider.Telephony.Sms.Intents#WAP_PUSH_DELIVER_ACTION} broadcast when the user
6229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * receives an MMS.</p>
6329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
6429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Any app that wants to behave as the user's default SMS app must handle the following intents:
6529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <ul>
6629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link Sms.Intents#SMS_DELIVER_ACTION}
6729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.provider.Telephony.SMS_DELIVER"</code>). The broadcast receiver must also
6829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * require the {@link android.Manifest.permission#BROADCAST_SMS} permission.
6929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming SMS messages.</p></li>
7029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link
7129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#WAP_PUSH_DELIVER_ACTION}} ({@code "android.provider.Telephony.WAP_PUSH_DELIVER"})
7229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * with the MIME type <code>"application/vnd.wap.mms-message"</code>.
7329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * The broadcast receiver must also require the {@link
7429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#BROADCAST_WAP_PUSH} permission.
7529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming MMS messages.</p></li>
7629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In your activity that delivers new messages, include an intent filter for
7729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.Intent#ACTION_SENDTO} (<code>"android.intent.action.SENDTO"
7829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </code>) with schemas, <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and
7929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>mmsto:</code>.
8029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to receive intents from other apps that want to deliver a
8129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * message.</p></li>
8229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a service, include an intent filter for {@link
8329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE}
8429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.intent.action.RESPOND_VIA_MESSAGE"</code>) with schemas,
8529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and <code>mmsto:</code>.
8629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * This service must also require the {@link
8729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#SEND_RESPOND_VIA_MESSAGE} permission.
8829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows users to respond to incoming phone calls with an immediate text message
8929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * using your app.</p></li>
9029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </ul>
9129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
9229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Other apps that are not selected as the default SMS app can only <em>read</em> the SMS
9329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Provider, but may also be notified when a new SMS arrives by listening for the {@link
9429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#SMS_RECEIVED_ACTION}
9529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast, which is a non-abortable broadcast that may be delivered to multiple apps. This
9629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast is intended for apps that&mdash;while not selected as the default SMS app&mdash;need to
9729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * read special incoming messages such as to perform phone number verification.</p>
9829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
9929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>For more information about building SMS apps, read the blog post, <a
10029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * href="http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html"
10129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * >Getting Your SMS Apps Ready for KitKat</a>.</p>
10229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
1040825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic final class Telephony {
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final String TAG = "Telephony";
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
107b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
108b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Not instantiable.
109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
110b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
111b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    private Telephony() {
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
115b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Base columns for tables that contain text-based SMSs.
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface TextBasedSmsColumns {
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
119b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: all messages. */
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_ALL    = 0;
121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: inbox. */
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_INBOX  = 1;
124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
125b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: sent messages. */
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_SENT   = 2;
127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
128b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: drafts. */
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_DRAFT  = 3;
130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
131b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: outbox. */
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_OUTBOX = 4;
133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
134b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: failed outgoing message. */
135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_FAILED = 5;
136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
137b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: queued to send later. */
138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_QUEUED = 6;
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The type of message.
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String TYPE = "type";
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
147b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
148b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
153b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The address of the other party.
154b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String ADDRESS = "address";
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
159b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was received.
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
165b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was sent.
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
171b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
177b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
178b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a notification.
179b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
184b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code TP-Status} value for the message, or -1 if no status has been received.
185b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "status";
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
189b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: no status received. */
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_NONE = -1;
191b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: complete. */
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_COMPLETE = 0;
193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: pending. */
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_PENDING = 32;
195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: failed. */
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_FAILED = 64;
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The subject of the message, if present.
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "subject";
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
205b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The body of the message.
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BODY = "body";
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
211b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The ID of the sender of the conversation, if present.
212b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (reference to item in {@code content://contacts/people})</P>
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PERSON = "person";
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
217b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol identifier code.
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
223b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the {@code TP-Reply-Path} flag set?
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: BOOLEAN</P>
2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_PATH_PRESENT = "reply_path_present";
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The service center (SC) through which to send the message, if present.
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CENTER = "service_center";
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
235b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
241b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Error code associated with sending or receiving this message.
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR_CODE = "error_code";
2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
248b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Contains all text-based SMS messages.
2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Sms implements BaseColumns, TextBasedSmsColumns {
251b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
253b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
254b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
255b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
256b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Sms() {
257b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
258b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
25968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        /**
26068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * Used to determine the currently configured default SMS package.
26168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @param context context of the requesting application
26268b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @return package name for the default SMS package or null
26368b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         */
26468b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        public static String getDefaultSmsPackage(Context context) {
26568b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            ComponentName component = SmsApplication.getDefaultSmsApplication(context, false);
26668b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            if (component != null) {
26768b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun                return component.getPackageName();
26868b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            }
26968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            return null;
27068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        }
27168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun
272b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
274b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection) {
2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
283b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
284b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection,
2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, where,
287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
291b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://sms");
2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Add an SMS to the given URI.
3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
312b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport) {
3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return addMessageToUri(resolver, uri, address, body, subject,
3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    date, read, deliveryReport, -1L);
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Add an SMS to the given URI with the specified thread ID.
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param threadId the thread_id of the message
3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport, long threadId) {
3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            ContentValues values = new ContentValues(7);
3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ADDRESS, address);
3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (date != null) {
3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(DATE, date);
3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(READ, read ? Integer.valueOf(1) : Integer.valueOf(0));
3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(SUBJECT, subject);
3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(BODY, body);
3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (deliveryReport) {
3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(STATUS, STATUS_PENDING);
3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (threadId != -1L) {
3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(THREAD_ID, threadId);
3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return resolver.insert(uri, values);
3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Move a message to the given folder.
3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param context the context to use
3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the message to move
3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param folder the folder to move to
3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return true if the operation succeeded
364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean moveMessageToFolder(Context context,
3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, int folder, int error) {
3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (uri == null) {
3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsUnread = false;
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsRead = false;
3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            switch(folder) {
3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_INBOX:
3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_DRAFT:
3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_OUTBOX:
3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_SENT:
3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsRead = true;
3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_FAILED:
3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_QUEUED:
3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsUnread = true;
3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            ContentValues values = new ContentValues(3);
3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(TYPE, folder);
3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (markAsUnread) {
394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 0);
3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else if (markAsRead) {
396b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 1);
3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ERROR_CODE, error);
3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return 1 == SqliteWrapper.update(context, context.getContentResolver(),
4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                            uri, values, null, null);
4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Returns true iff the folder (message type) identifies an
4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * outgoing message.
407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isOutgoingFolder(int messageType) {
4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return  (messageType == MESSAGE_TYPE_FAILED)
4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_OUTBOX)
4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_SENT)
4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_QUEUED);
4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all text-based SMS messages in the SMS app inbox.
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseColumns, TextBasedSmsColumns {
420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
422b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
429b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
431b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/inbox");
432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param read true if the message has been read, false if not
4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean read) {
4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return addMessageToUri(resolver, CONTENT_URI, address, body,
4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, read, false);
4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseColumns, TextBasedSmsColumns {
462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
463b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
464b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
465b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
467b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
469b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
473b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/sent");
4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
476b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
486b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
489b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date) {
4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return addMessageToUri(resolver, CONTENT_URI, address, body,
4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, false);
4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseColumns, TextBasedSmsColumns {
5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
505b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
507b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
511b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/draft");
5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String DEFAULT_SORT_ORDER = "date DESC";
5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
522b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all pending outgoing text-based SMS messages.
5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseColumns, TextBasedSmsColumns {
525b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
528b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
529b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
530b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
532b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
534b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/outbox");
5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
539b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
544b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Add an SMS to the outbox.
5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param deliveryReport whether a delivery report was requested for the message
5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean deliveryReport, long threadId) {
5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return addMessageToUri(resolver, CONTENT_URI, address, body,
5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, deliveryReport, threadId);
5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
564b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Conversations
5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                implements BaseColumns, TextBasedSmsColumns {
568b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Conversations() {
574b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
575b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
577b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/conversations");
5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
582b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The first 45 characters of the body of the message.
5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SNIPPET = "snippet";
5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
593b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The number of messages in the conversation.
5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MESSAGE_COUNT = "msg_count";
5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains constants for SMS related Intents that are broadcast.
6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
603b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
605b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
611b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message was handled
6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * successfully.
6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_HANDLED = 1;
6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a generic error while
6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * processing the message.
6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_GENERIC_ERROR = 2;
6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
624b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate insufficient memory to store
6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * the message.
6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_OUT_OF_MEMORY = 3;
6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
630b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message, while
6310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * possibly valid, is of a format or encoding that is not
6320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * supported.
6330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_UNSUPPORTED = 4;
6350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
637b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a duplicate incoming message.
63890271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi             */
63990271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            public static final int RESULT_SMS_DUPLICATED = 5;
64090271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi
64190271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            /**
6425c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Activity action: Ask the user to change the default
6435c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application. This will show a dialog that asks the
6445c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * user whether they want to replace the current default
6455c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application with the one specified in
6465c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #EXTRA_PACKAGE_NAME}.
6475c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
6485c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
6495c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String ACTION_CHANGE_DEFAULT =
6505c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.ACTION_CHANGE_DEFAULT";
6515c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
6525c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
6535c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * The PackageName string passed in as an
6545c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * extra for {@link #ACTION_CHANGE_DEFAULT}
6555c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
6565c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * @see #ACTION_CHANGE_DEFAULT
6575c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
6585c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String EXTRA_PACKAGE_NAME = "package";
6595c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
6605c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
661b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
6625c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will only be delivered to the default
6635c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
6645c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
6655c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
6665c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
66729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
6685c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   that make up the message.</li>
6695c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
6705c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
6715c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The extra values can be extracted using
6725c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #getMessagesFromIntent(Intent)}.</p>
6735c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
6745c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
6755c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
67629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
67729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
67829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
67929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_SMS} as a required permission in
68029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
68129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * &lt;receiver>}</a> tag.
6825c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
6835c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
6845c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String SMS_DELIVER_ACTION =
6855c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.SMS_DELIVER";
6865c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
6875c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
688b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
689913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * by the device. This intent will only be delivered to the default
690913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * carrier app which is responsible for filtering the message.
691913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * If the carrier app wants to drop a message, it should set the result
692913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * code to {@link android.app.Activity#RESULT_CANCELED}. The carrier app can
693913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * also modify the SMS PDU by setting the "pdus" value in result extras.</p>
694913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
695913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * The intent will have the following extra values:</p>
696913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
697913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * <ul>
698913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
699913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   that make up the message.</li>
700913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   <li><em>"format"</em> - A String describing the format of the PDUs. It can
701913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   be either "3gpp" or "3gpp2".</li>
702913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   <li><em>"destport"</em> - An int describing the destination port of a data
703913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *   SMS. It will be -1 for text SMS.</li>
704913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * </ul>
705913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
706913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * <p>The extra values can be extracted using
707913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * {@link #getMessagesFromIntent(Intent)}.</p>
708913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             *
709913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * <p class="note"><strong>Note:</strong>
710913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * The broadcast receiver that filters for this intent must declare
711913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * {@link android.Manifest.permission#BROADCAST_SMS} as a required permission in
712913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
713913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * &lt;receiver>}</a> tag.
714913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * @hide
715913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             */
716913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
717913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang            public static final String SMS_FILTER_ACTION =
718913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang                    "android.provider.Telephony.SMS_FILTER";
719913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang
720913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang            /**
721913880b94d8b29d8dec34b2307c313e2180eb6f0Cheuksan Wang             * Broadcast Action: A new text-based SMS message has been received
7225c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
7235c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
7245c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
7260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
7270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
72829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
7290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
7300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
7310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
7320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
7330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
7340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
7350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
7360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_RECEIVED_ACTION =
7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_RECEIVED";
7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new data based SMS message has been received
7445c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
7455c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. The intent will have the following extra
7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
74929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
7540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
7560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
7580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DATA_SMS_RECEIVED_ACTION =
7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.intent.action.DATA_SMS_RECEIVED";
7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new WAP PUSH message has been received by the
7655c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will only be delivered to the default
7665c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
7675c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
7685c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
7695c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
77029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
77129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
77229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
77329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
77429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters" </em>
77529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   -(HashMap&lt;String,String&gt;) Any parameters associated with the content type
7765c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   (decoded from the WSP Content-Type header)</li>
7775c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
7785c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
7795c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
7805c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
7815c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
7825c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The contentTypeParameters extra value is map of content parameters keyed by
7835c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * their names.</p>
7845c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
7855c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If any unassigned well-known parameters are encountered, the key of the map will
7865c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
7875c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * a parameter has No-Value the value in the map will be null.</p>
78829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
78929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
79029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
79129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_WAP_PUSH} as a required permission in
79229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
79329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * &lt;receiver>}</a> tag.
7945c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
7955c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
7965c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String WAP_PUSH_DELIVER_ACTION =
7975c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.WAP_PUSH_DELIVER";
7985c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
7995c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
8005c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Broadcast Action: A new WAP PUSH message has been received by the
8015c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will be delivered to all registered
8025c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
8035c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
8040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
80729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
80829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
80929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
81029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
81129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters"</em>
81229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   - (HashMap&lt;String,String&gt;) Any parameters associated with the content type
8130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   (decoded from the WSP Content-Type header)</li>
8140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The contentTypeParameters extra value is map of content parameters keyed by
8200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * their names.</p>
8210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If any unassigned well-known parameters are encountered, the key of the map will
8230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
8240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * a parameter has No-Value the value in the map will be null.</p>
8250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String WAP_PUSH_RECEIVED_ACTION =
8280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.WAP_PUSH_RECEIVED";
8290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Cell Broadcast message has been received
8320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
8330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
83629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
8370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data. This is not an emergency alert, so ETWS and CMAS data will be null.</li>
8380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_CB_RECEIVED_ACTION =
8480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_CB_RECEIVED";
8490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Emergency Broadcast message has been received
8520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
8530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
85629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
8570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data, including ETWS or CMAS warning notification info if present.</li>
8580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION =
8680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
8690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new CDMA SMS has been received containing Service Category
8720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Program Data (updates the list of enabled broadcast channels). The intent will
8730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * have the following extra values:</p>
8740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
87629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"operations"</em> - An array of CdmaSmsCbProgramData objects containing
8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   the service category operations (add/delete/clear) to perform.</li>
8780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION =
8880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED";
8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: The SIM storage for SMS messages is full.  If
8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * space is not freed, messages targeted for the SIM (class 2) may
8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * not be saved.
8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SIM_FULL_ACTION =
8970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SIM_FULL";
8980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: An incoming SMS has been rejected by the
9010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * telephony framework.  This intent is sent in lieu of any
9020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * of the RECEIVED_ACTION intents.  The intent will have the
9030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * following extra value:</p>
9040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
90629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"result"</em> - An int result code, e.g. {@link #RESULT_SMS_OUT_OF_MEMORY}
9070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   indicating the error returned to the network.</li>
9080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_REJECTED_ACTION =
9120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "android.provider.Telephony.SMS_REJECTED";
9130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Read the PDUs out of an {@link #SMS_RECEIVED_ACTION} or a
9160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #DATA_SMS_RECEIVED_ACTION} intent.
9170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param intent the intent to read from
9190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return an array of SmsMessages for the PDUs
9200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
921b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static SmsMessage[] getMessagesFromIntent(Intent intent) {
9220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
9230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String format = intent.getStringExtra("format");
9240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
925b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                int pduCount = messages.length;
9260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SmsMessage[] msgs = new SmsMessage[pduCount];
927b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
9280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                for (int i = 0; i < pduCount; i++) {
929b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    byte[] pdu = (byte[]) messages[i];
930b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    msgs[i] = SmsMessage.createFromPdu(pdu, format);
9310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
9320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return msgs;
9330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
9340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
9350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
9360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Base columns for tables that contain MMSs.
9390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface BaseMmsColumns extends BaseColumns {
9410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
942b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: all messages. */
9430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_ALL    = 0;
944b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: inbox. */
9450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_INBOX  = 1;
946b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: sent messages. */
9470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_SENT   = 2;
948b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: drafts. */
9490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_DRAFTS = 3;
950b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: outbox. */
9510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_OUTBOX = 4;
9520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
954b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
955b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
956b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
957b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
958b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
959b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
9600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was received.
9610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
9620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
9630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
9640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
9660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was sent.
9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
972b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The box which the message belongs to, e.g. {@link #MESSAGE_BOX_INBOX}.
9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BOX = "msg_box";
9760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
978b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
9790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
9810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
984b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
985b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a new message notification.
986b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
9880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
991b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Does the message have only a text part (can also have a subject) with
992b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * no picture, slideshow, sound, etc. parts?
993b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
9947a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor         */
9957a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        public static final String TEXT_ONLY = "text_only";
9967a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor
9977a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        /**
998b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Message-ID} of the message.
9990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
10000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_ID = "m_id";
10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The subject of the message, if present.
10050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
10060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "sub";
10080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
10100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the subject, if present.
10110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
10120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT_CHARSET = "sub_cs";
10140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1016b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Type} of the message.
10170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_TYPE = "ct_t";
10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1022b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Location} of the message.
10230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_LOCATION = "ct_l";
10260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
10280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The expiry time of the message.
1029b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String EXPIRY = "exp";
10320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
10340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The class of the message.
10350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_CLASS = "m_cls";
10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
10400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The type of the message defined by MMS spec.
10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_TYPE = "m_type";
10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1046b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The version of the specification that this message conforms to.
10470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMS_VERSION = "v";
10500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The size of the message.
10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_SIZE = "m_size";
10560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
10580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The priority of the message.
1059b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
10600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PRIORITY = "pri";
10620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1064b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-report} of the message.
1065b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
10660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_REPORT = "rr";
10680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1070b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is read report allowed?
1071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
10720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPORT_ALLOWED = "rpt_a";
10740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1076b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-status} of the message.
10770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
10780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_STATUS = "resp_st";
10800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1082b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status} of the message.
10830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
10840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "st";
10860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1088b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code transaction-id} of the message.
10890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
10900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TRANSACTION_ID = "tr_id";
10920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1094b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-status} of the message.
10950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
10960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
10970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_STATUS = "retr_st";
10980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1100b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-text} of the message.
11010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT = "retr_txt";
11040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the retrieve-text.
1107b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
11080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT_CHARSET = "retr_txt_cs";
11100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-status} of the message.
11130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_STATUS = "read_status";
11160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1118b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content-class} of the message.
11190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_CLASS = "ct_cls";
11220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-report} of the message.
11250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_REPORT = "d_rpt";
11280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time-token} of the message.
11310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1132b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
11340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME_TOKEN = "d_tm_tok";
11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time} of the message.
11400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "d_tm";
11430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1145b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-text} of the message.
11460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_TEXT = "resp_txt";
11490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1151b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code sender-visibility} of the message.
11520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1153b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1154b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
11550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
11570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SENDER_VISIBILITY = "s_vis";
11580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1160b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging} of the message.
11610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1162b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1163b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
11640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1165b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
11660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING = "r_chg";
11670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1169b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline-token} of the message.
11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1171b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1172b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
11730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1174b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE_TOKEN = "r_chg_dl_tok";
11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1178b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline} of the message.
11790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
11820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1183b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
11840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE = "r_chg_dl";
11850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-id} of the message.
11880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1189b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1190b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
11910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1192b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
11930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_ID = "r_chg_id";
11940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1196b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-size} of the message.
11970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1198b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1201b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_SIZE = "r_chg_sz";
12030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1205b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-by} of the message.
12060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1207b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1208b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1210b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_BY = "p_s_by";
12120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1214b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-date} of the message.
12150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1216b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1217b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_DATE = "p_s_d";
12210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1223b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store} of the message.
12240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1226b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE = "store";
12300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1232b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-state} of the message.
12330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1234b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1235b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_STATE = "mm_st";
12390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1241b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags-token} of the message.
12420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1243b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1244b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1246b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS_TOKEN = "mm_flg_tok";
12480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1250b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags} of the message.
12510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1253b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1255b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS = "mm_flg";
12570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status} of the message.
12600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1261b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1262b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS = "store_st";
12660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1268b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status-text} of the message.
12690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1270b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS_TEXT = "store_st_txt";
12750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1277b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code stored} of the message.
12780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1279b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORED = "stored";
12840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1286b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code totals} of the message.
12870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1288b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1289b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1291b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TOTALS = "totals";
12930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1295b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals} of the message.
12960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1297b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS = "mb_t";
13020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals-token} of the message.
13050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1306b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1309b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS_TOKEN = "mb_t_tok";
13110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1313b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code quotas} of the message.
13140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1315b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1318b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String QUOTAS = "qt";
13200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas} of the message.
13230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1324b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1325b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS = "mb_qt";
13290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1331b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas-token} of the message.
13320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1336b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS_TOKEN = "mb_qt_tok";
13380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code message-count} of the message.
13410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1342b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1343b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1345b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "m_cnt";
13470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1349b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code start} of the message.
13500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1352b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1354b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String START = "start";
13560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1358b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code distribution-indicator} of the message.
13590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1360b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1361b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DISTRIBUTION_INDICATOR = "d_ind";
13650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1367b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code element-descriptor} of the message.
13680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1370b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1372b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ELEMENT_DESCRIPTOR = "e_des";
13740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1376b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code limit} of the message.
13770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1378b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1379b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LIMIT = "limit";
13830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode} of the message.
13860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1387b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1388b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1390b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE = "r_r_mod";
13920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode-text} of the message.
13950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1396b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1397b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1399b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE_TEXT = "r_r_mod_txt";
14010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1403b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status-text} of the message.
14040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1405b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1406b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1408b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS_TEXT = "st_txt";
14100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1412b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code applic-id} of the message.
14130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APPLIC_ID = "apl_id";
14190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-applic-id} of the message.
14220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1424b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_APPLIC_ID = "r_apl_id";
14280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code aux-applic-id} of the message.
14310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1435b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUX_APPLIC_ID = "aux_apl_id";
14370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1439b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code drm-content} of the message.
14400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1441b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1442b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DRM_CONTENT = "drm_c";
14460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code adaptation-allowed} of the message.
14490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1450b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1451b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1453b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADAPTATION_ALLOWED = "adp_a";
14550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1457b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code replace-id} of the message.
14580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1460b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLACE_ID = "repl_id";
14640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-id} of the message.
14670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1469b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_ID = "cl_id";
14730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1475b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-status} of the message.
14760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1477b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1478b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1480b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_STATUS = "cl_st";
14820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1484b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
14850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
14860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
14870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
14880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
14890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Columns for the "canonical_addresses" table used by MMS and SMS.
14920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface CanonicalAddressesColumns extends BaseColumns {
14940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
14950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * An address used in MMS or SMS.  Email addresses are
14960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * converted to lower case and are compared by string
14970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * equality.  Other addresses are compared using
14980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * PHONE_NUMBERS_EQUAL.
14990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
15000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADDRESS = "address";
15020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
15030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Columns for the "threads" table used by MMS and SMS.
15060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface ThreadsColumns extends BaseColumns {
1508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
15090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date at which the thread was created.
15110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
15120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
15140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * A string encoding of the recipient IDs of the recipients of
15170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * the message, in numerical order and separated by spaces.
15180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
15190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECIPIENT_IDS = "recipient_ids";
15210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The message count of the thread.
15240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
15250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "message_count";
1527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
15280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether all messages of the thread have been read.
15300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
15310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
15330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The snippet of the latest message in the thread.
15360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
15370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET = "snippet";
1539b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
15400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The charset of the snippet.
15420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
15430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET_CHARSET = "snippet_cs";
1545b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
15460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1547b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Type of the thread, either {@link Threads#COMMON_THREAD} or
1548b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link Threads#BROADCAST_THREAD}.
15490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
15500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
1552b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
15530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether there is a transmission error in the thread.
15550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
15560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR = "error";
1558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
15590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
15600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether this thread contains any attachments.
15610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
15620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
15630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String HAS_ATTACHMENT = "has_attachment";
15640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
15650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Helper functions for the "threads" table used by MMS and SMS.
15680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Threads implements ThreadsColumns {
1570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
15710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final String[] ID_PROJECTION = { BaseColumns._ID };
1572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1574b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Private {@code content://} style URL for this table. Used by
1575b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link #getOrCreateThreadId(android.content.Context, java.util.Set)}.
1576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
15770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final Uri THREAD_ID_CONTENT_URI = Uri.parse(
15780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/threadID");
1579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1580b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1581b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
1582b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
15830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.withAppendedPath(
15840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MmsSms.CONTENT_URI, "conversations");
1585b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1586b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, for obsolete threads.
1588b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
15890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri OBSOLETE_THREADS_URI = Uri.withAppendedPath(
15900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CONTENT_URI, "obsolete");
15910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1592b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: common thread. */
15930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int COMMON_THREAD    = 0;
1594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1595b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: broadcast thread. */
15960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int BROADCAST_THREAD = 1;
15970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1598b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1599b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1601b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
16020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private Threads() {
16030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
16040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This is a single-recipient version of {@code getOrCreateThreadId}.
1607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * It's convenient for use with SMS messages.
1608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param context the context object to use.
1609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param recipient the recipient to send to.
1610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(Context context, String recipient) {
16130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Set<String> recipients = new HashSet<String>();
16140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            recipients.add(recipient);
16160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return getOrCreateThreadId(context, recipients);
16170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
16180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Given the recipients list and subject of an unsaved message,
16210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * return its thread ID.  If the message starts a new thread,
16220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * allocate a new thread ID.  Otherwise, use the appropriate
16230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * existing thread ID.
16240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1625b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <p>Find the thread ID of the same set of recipients (in any order,
1626b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * without any additions). If one is found, return it. Otherwise,
1627b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * return a unique thread ID.</p>
1628b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(
16310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Context context, Set<String> recipients) {
16320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
16330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            for (String recipient : recipients) {
16350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if (Mms.isEmailAddress(recipient)) {
16360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    recipient = Mms.extractAddrSpec(recipient);
16370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
16380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                uriBuilder.appendQueryParameter("recipient", recipient);
16400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
16410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri uri = uriBuilder.build();
164399c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville            //if (DEBUG) Rlog.v(TAG, "getOrCreateThreadId uri: " + uri);
16440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(),
16460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    uri, ID_PROJECTION, null, null, null);
16470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (cursor != null) {
16480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                try {
16490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    if (cursor.moveToFirst()) {
16500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        return cursor.getLong(0);
16510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    } else {
165299c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville                        Rlog.e(TAG, "getOrCreateThreadId returned no rows!");
16530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    }
16540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                } finally {
16550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    cursor.close();
16560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
16570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
16580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
165999c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville            Rlog.e(TAG, "getOrCreateThreadId failed with uri " + uri.toString());
16600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            throw new IllegalArgumentException("Unable to find or allocate a thread ID.");
16610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
16620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
16630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS messages.
16660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Mms implements BaseMmsColumns {
1668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
16690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1670b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1671b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1672b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1673b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Mms() {
1674b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
1675b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1676b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1677b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
16780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms");
16800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1681b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1682b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report requests.
1683b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
16840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_REQUEST_URI = Uri.withAppendedPath(
16850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-request");
16860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1687b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1688b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report status.
1689b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
16900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_STATUS_URI = Uri.withAppendedPath(
16910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-status");
16920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1694b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
16950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
16970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1699b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Regex pattern for names and email addresses.
1700b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
1701b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>mailbox</em> = {@code name-addr}</li>
1702b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>name-addr</em> = {@code [display-name] angle-addr}</li>
1703b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>angle-addr</em> = {@code [CFWS] "<" addr-spec ">" [CFWS]}</li>
1704b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
1705b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Pattern NAME_ADDR_EMAIL_PATTERN =
17080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
17090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1711b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1712b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1714b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
17150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection) {
17160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
17170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1719b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1720b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1721b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1722b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1723b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
17240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection,
17250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
17260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection,
17270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    where, null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
17280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1730b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1731b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to extract email address from address string.
1732b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1733b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static String extractAddrSpec(String address) {
17350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address);
17360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (match.matches()) {
17380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return match.group(2);
17390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
17400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return address;
17410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1744b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified address an email address?
17450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1746b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param address the input address to test
1747b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if address is an email address; false otherwise.
1748b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isEmailAddress(String address) {
17510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(address)) {
17520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
17530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
17540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String s = extractAddrSpec(address);
17560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
17570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
17580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1761b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified number a phone number?
17620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1763b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param number the input number to test
1764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if number is a phone number; false otherwise.
1765b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isPhoneNumber(String number) {
17680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(number)) {
17690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
17700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
17710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.PHONE.matcher(number);
17730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
17740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1777b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app inbox.
17780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseMmsColumns {
1780b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1781b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1782b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1783b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1784b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1785b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
1786b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1787b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1789b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
17900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
17910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
17920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/inbox");
17930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1795b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
17960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
17970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
17980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1801b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app sent folder.
18020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseMmsColumns {
1804b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1806b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1807b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1808b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1809b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
1810b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1811b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1812b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1813b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
18140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
18160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/sent");
18170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1819b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
18200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
18220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1825b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app drafts folder.
18260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseMmsColumns {
1828b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1830b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1831b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1832b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1833b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
1834b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1835b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1836b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1837b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
18380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
18400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/drafts");
18410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1843b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
18440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
18460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1849b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app outbox.
18500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseMmsColumns {
1852b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1854b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1855b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1856b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1857b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
1858b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1859b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1860b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1861b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
18620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
18640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/outbox");
18650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1867b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
18680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
18700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1872b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1873b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains address information for an MMS message.
1874b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Addr implements BaseColumns {
1876b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1877b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1878b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1879b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1880b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1881b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Addr() {
1882b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1883b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
18850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of MM which this address entry belongs to.
1886b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
18870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
18890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
18910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of contact entry in Phone Book.
1892b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
18930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
18940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTACT_ID = "contact_id";
18950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
18970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The address text.
1898b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
18990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ADDRESS = "address";
19010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1903b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Type of address: must be one of {@code PduHeaders.BCC},
1904b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * {@code PduHeaders.CC}, {@code PduHeaders.FROM}, {@code PduHeaders.TO}.
1905b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
19060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TYPE = "type";
19080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1910b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Character set of this entry (MMS charset value).
1911b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
19120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "charset";
19140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1916b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1917b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains message parts.
1918b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Part implements BaseColumns {
1920b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1921b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1922b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1923b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1924b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1925b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Part() {
1926b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1927b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
19280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The identifier of the message which this part belongs to.
19300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
19310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "mid";
19330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The order of the part.
19360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
19370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SEQ = "seq";
19390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content type of the part.
19420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
19430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_TYPE = "ct";
19450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The name of the part.
19480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
19490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String NAME = "name";
19510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The charset of the part.
19540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
19550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "chset";
19570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The file name of the part.
19600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
19610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String FILENAME = "fn";
19630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content disposition of the part.
19660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
19670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_DISPOSITION = "cd";
19690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content ID of the part.
19720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
19730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_ID = "cid";
19750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content location of the part.
19780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
19790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_LOCATION = "cl";
19810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The start of content-type of the message.
19840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
19850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_START = "ctt_s";
19870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
19890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of content-type of the message.
19900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
19910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_TYPE = "ctt_t";
19930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1995b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The location (on filesystem) of the binary data of the part.
19960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
19970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String _DATA = "_data";
19990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2000b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2001b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The message text.
2002b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2003b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
20040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TEXT = "text";
20050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2007b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2008b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message send rate table.
2009b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Rate {
2011b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2012b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2013b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2014b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2015b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2016b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Rate() {
2017b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2018b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2019b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2020b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
2021b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
20220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
20230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    Mms.CONTENT_URI, "rate");
2024b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * When a message was successfully sent.
2027b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
20280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SENT_TIME = "sent_time";
20300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2032b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2033b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Intents class.
2034b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
20360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2038b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2039b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
20400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2041b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
2042b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2043b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Indicates that the contents of specified URIs were changed.
20460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The application which is showing or caching these contents
20470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * should be updated.
20480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2049b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
2050b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String CONTENT_CHANGED_ACTION
2051b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    = "android.intent.action.CONTENT_CHANGED";
2052b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * An extra field which stores the URI of deleted contents.
20550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DELETED_CONTENTS = "deleted_contents";
20570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
20590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
20610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS and SMS messages.
20620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
20630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class MmsSms implements BaseColumns {
2064b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2065b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2066b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2067b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2068b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2069b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private MmsSms() {
2070b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
2071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2073b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The column to distinguish SMS and MMS messages in query results.
20740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE_DISCRIMINATOR_COLUMN =
20760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "transport_type";
20770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2078b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2079b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
2080b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms-sms/");
20820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2083b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2084b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
2085b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_CONVERSATIONS_URI = Uri.parse(
20870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/conversations");
20880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2089b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2090b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by phone number.
2091b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_FILTER_BYPHONE_URI = Uri.parse(
20930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/messages/byphone");
20940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2095b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2096b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for undelivered messages in this table.
2097b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_UNDELIVERED_URI = Uri.parse(
20990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/undelivered");
21000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2101b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2102b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for draft messages in this table.
2103b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_DRAFT_URI = Uri.parse(
21050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/draft");
21060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2107b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2108b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for locked messages in this table.
2109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_LOCKED_URI = Uri.parse(
21110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/locked");
21120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2113b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2114b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Pass in a query parameter called "pattern" which is the text to search for.
2115b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The sort order is fixed to be: {@code thread_id ASC, date DESC}.
21160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
21170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri SEARCH_URI = Uri.parse(
21180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/search");
21190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for message protocol types.
2121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** SMS protocol type. */
21230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int SMS_PROTO = 0;
2124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2125b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** MMS protocol type. */
21260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MMS_PROTO = 1;
21270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for error types of pending messages.
2129b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: no error. */
21310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int NO_ERROR                      = 0;
2132b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: generic transient error. */
21340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC              = 1;
2135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol transient error. */
21370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_TRANSIENT  = 2;
2138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol transient error. */
21400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_TRANSIENT  = 3;
2141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2142b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: transport failure. */
21430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_TRANSPORT_FAILURE    = 4;
2144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2145b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: permanent error (along with all higher error values). */
21460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC_PERMANENT    = 10;
2147b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2148b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol permanent error. */
21490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_PERMANENT  = 11;
2150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2151b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol permanent error. */
21520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_PERMANENT  = 12;
21530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2154b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2155b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains pending messages info.
2156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class PendingMessages implements BaseColumns {
2158b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2159b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2160b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2161b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2162b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2163b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private PendingMessages() {
2164b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2165b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
21670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    MmsSms.CONTENT_URI, "pending");
2168b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2170b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The type of transport protocol (MMS or SMS).
21710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String PROTO_TYPE = "proto_type";
2174b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of the message to be sent or downloaded.
2177b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
21780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
2180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the message to be sent or downloaded.
2183b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * This field is only valid for MM. For SM, its value is always set to 0.
2184b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
21850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_TYPE = "msg_type";
2187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the error code.
21900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_TYPE = "err_type";
2193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The error code of sending/retrieving process.
2196b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
21970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_CODE = "err_code";
2199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * How many times we tried to send or download the message.
2202b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
22030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String RETRY_INDEX = "retry_index";
2205b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time to do next retry.
2208b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
22090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DUE_TIME = "due_time";
2211b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time we last tried to send or download the message.
2214b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
22150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String LAST_TRY = "last_try";
22170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2220b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Words table used by provider for full-text searches.
2221b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2222b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class WordsTable {
2224b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2226b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2227b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private WordsTable() {}
2230b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2232b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Primary key.
2233b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2234b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ID = "_id";
2236b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2238b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Source row ID.
2239b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2240b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SOURCE_ROW_ID = "source_id";
2242b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2243b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2244b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Table ID (either 1 or 2).
2245b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
2246b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TABLE_ID = "table_to_use";
2248b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2249b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2250b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The words to index.
2251b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String INDEXED_TEXT = "index_text";
22540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
22560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2257b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
2258b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Carriers class contains information about APNs, including MMSC information.
2259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
22600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Carriers implements BaseColumns {
2261b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2262b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2263b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2265b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2266b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Carriers() {}
2267b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
22700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://telephony/carriers");
22720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2274b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
22750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
22760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "name ASC";
22770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2278b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2279b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Entry name.
2280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NAME = "name";
22830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2284b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2285b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN name.
2286b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APN = "apn";
22890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2290b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2291b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy address.
2292b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROXY = "proxy";
22950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2297b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy port.
2298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PORT = "port";
23010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2302b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2303b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy address.
2304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2305b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPROXY = "mmsproxy";
23070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2308b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2309b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy port.
2310b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPORT = "mmsport";
23130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2314b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2315b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Server address.
2316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2317b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVER = "server";
23190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2320b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2321b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN username.
2322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2323b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String USER = "user";
23250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2326b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN password.
2328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2329b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PASSWORD = "password";
23310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2332b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMSC URL.
2334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2335b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSC = "mmsc";
23370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2338b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2339b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Country Code (MCC).
2340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2341b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MCC = "mcc";
23430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2344b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2345b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Network Code (MNC).
2346b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2347b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MNC = "mnc";
23490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2350b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Numeric operator ID (as String). Usually {@code MCC + MNC}.
2352b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2353b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NUMERIC = "numeric";
23550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2357b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Authentication type.
2358b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type:  INTEGER</P>
2359b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUTH_TYPE = "authtype";
23610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2362b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Comma-delimited list of APN types.
2364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2365b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
23670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN.
23700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
2371b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * One of the {@code PDP_type} values in TS 27.007 section 10.1.1.
2372b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * For example: {@code IP}, {@code IPV6}, {@code IPV4V6}, or {@code PPP}.
2373b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
23740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
23750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
23760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2378b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN when roaming.
2379b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The syntax is the same as protocol.
2380b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ROAMING_PROTOCOL = "roaming_protocol";
23830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2384b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this the current APN?
2386b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2387b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CURRENT = "current";
23890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2391b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this APN enabled?
2392b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2393b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CARRIER_ENABLED = "carrier_enabled";
23950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2397b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Radio Access Technology info.
2398b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * To check what values are allowed, refer to {@link android.telephony.ServiceState}.
2399b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This should be spread to other technologies,
2400b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * but is currently only used for LTE (14) and eHRPD (13).
2401b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
2402b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BEARER = "bearer";
2404a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2405a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2406b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO type:
2407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}.
2408b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2409b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2410a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_TYPE = "mvno_type";
2411a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2412a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2413b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO data.
2414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Use the following examples.
2415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
2416b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>SPN: A MOBILE, BEN NL, ...</li>
2417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>IMSI: 302720x94, 2060188, ...</li>
2418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>GID: 4E, 33, ...</li>
2419b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
2420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2422a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_MATCH_DATA = "mvno_match_data";
24230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
24240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
24260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains received SMS cell broadcast messages.
2427b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
24280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
24290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class CellBroadcasts implements BaseColumns {
24300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2431b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private CellBroadcasts() {}
24360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2438b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
24390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2440b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts");
24410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
24430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message geographical scope.
24440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
24450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String GEOGRAPHICAL_SCOPE = "geo_scope";
24470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
24490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message serial number.
24500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
24510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERIAL_NUMBER = "serial_number";
24530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2455b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * PLMN of broadcast sender. {@code SERIAL_NUMBER + PLMN + LAC + CID} uniquely identifies
2456b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * a broadcast for duplicate detection purposes.
24570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
24580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PLMN = "plmn";
24600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
24620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Location Area (GSM) or Service Area (UMTS) of broadcast sender. Unused for CDMA.
24630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Only included if Geographical Scope of message is not PLMN wide (01).
24640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
24650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LAC = "lac";
24670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
24690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Cell ID of message sender (GSM/UMTS). Unused for CDMA. Only included when the
24700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Geographical Scope of message is cell wide (00 or 11).
24710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
24720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CID = "cid";
24740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2476b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message code. <em>OBSOLETE: merged into SERIAL_NUMBER.</em>
24770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
24780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_CODE = "message_code";
24800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2482b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message identifier. <em>OBSOLETE: renamed to SERVICE_CATEGORY.</em>
24830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
24840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_IDENTIFIER = "message_id";
24860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Service category (GSM/UMTS: message identifier; CDMA: service category).
24890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
24900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CATEGORY = "service_category";
24920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
24940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message language code.
24950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
24960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LANGUAGE_CODE = "language";
24980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message body.
25010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
25020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BODY = "body";
25040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message delivery time.
25070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
25080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "date";
25100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Has the message been viewed?
25130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
25140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_READ = "read";
25160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message format (3GPP or 3GPP2).
25190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_FORMAT = "format";
25220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message priority (including emergency).
25250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_PRIORITY = "priority";
25280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * ETWS warning type (ETWS alerts only).
25310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ETWS_WARNING_TYPE = "etws_warning_type";
25340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS message class (CMAS alerts only).
25370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_MESSAGE_CLASS = "cmas_message_class";
25400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS category (CMAS alerts only).
25430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CATEGORY = "cmas_category";
25460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS response type (CMAS alerts only).
25490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_RESPONSE_TYPE = "cmas_response_type";
25520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS severity (CMAS alerts only).
25550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_SEVERITY = "cmas_severity";
25580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS urgency (CMAS alerts only).
25610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_URGENCY = "cmas_urgency";
25640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS certainty (CMAS alerts only).
25670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
25680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CERTAINTY = "cmas_certainty";
25700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** The default sort order for this table. */
25720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = DELIVERY_TIME + " DESC";
25730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
25750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects.
25760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String[] QUERY_COLUMNS = {
25780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                _ID,
25790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                GEOGRAPHICAL_SCOPE,
25800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                PLMN,
25810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LAC,
25820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CID,
25830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERIAL_NUMBER,
25840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERVICE_CATEGORY,
25850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LANGUAGE_CODE,
25860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_BODY,
25870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                DELIVERY_TIME,
25880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_READ,
25890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_FORMAT,
25900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_PRIORITY,
25910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ETWS_WARNING_TYPE,
25920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_MESSAGE_CLASS,
25930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CATEGORY,
25940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_RESPONSE_TYPE,
25950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_SEVERITY,
25960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_URGENCY,
25970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CERTAINTY
25980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        };
25990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
26000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
2601