10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage android.provider;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
190825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.annotation.SdkConstant;
200825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.annotation.SdkConstant.SdkConstantType;
215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport android.content.ComponentName;
220825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentResolver;
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentValues;
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context;
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Intent;
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.Cursor;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.sqlite.SqliteWrapper;
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.Uri;
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.SmsMessage;
30a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.SubscriptionManager;
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.text.TextUtils;
3299c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Savilleimport android.telephony.Rlog;
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Patterns;
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
35a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.PhoneConstants;
365c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport com.android.internal.telephony.SmsApplication;
375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.HashSet;
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Set;
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Matcher;
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Pattern;
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
45b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The Telephony provider contains data related to phone operation, specifically SMS and MMS
46b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * messages and access to the APN list, including the MMSC to use.
4729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
4829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p class="note"><strong>Note:</strong> These APIs are not available on all Android-powered
4929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * devices. If your app depends on telephony features such as for managing SMS messages, include
5029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * a <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature>}
5129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </a> element in your manifest that declares the {@code "android.hardware.telephony"} hardware
5229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * feature. Alternatively, you can check for telephony availability at runtime using either
5329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.pm.PackageManager#hasSystemFeature
5429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * hasSystemFeature(PackageManager.FEATURE_TELEPHONY)} or {@link
5529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#getPhoneType}.</p>
5629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
5729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <h3>Creating an SMS app</h3>
5829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
5929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Only the default SMS app (selected by the user in system settings) is able to write to the
6029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * SMS Provider (the tables defined within the {@code Telephony} class) and only the default SMS
6129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * app receives the {@link android.provider.Telephony.Sms.Intents#SMS_DELIVER_ACTION} broadcast
6229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * when the user receives an SMS or the {@link
6329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.provider.Telephony.Sms.Intents#WAP_PUSH_DELIVER_ACTION} broadcast when the user
6429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * receives an MMS.</p>
6529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
6629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Any app that wants to behave as the user's default SMS app must handle the following intents:
6729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <ul>
6829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link Sms.Intents#SMS_DELIVER_ACTION}
6929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.provider.Telephony.SMS_DELIVER"</code>). The broadcast receiver must also
7029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * require the {@link android.Manifest.permission#BROADCAST_SMS} permission.
7129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming SMS messages.</p></li>
7229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link
7329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#WAP_PUSH_DELIVER_ACTION}} ({@code "android.provider.Telephony.WAP_PUSH_DELIVER"})
7429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * with the MIME type <code>"application/vnd.wap.mms-message"</code>.
7529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * The broadcast receiver must also require the {@link
7629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#BROADCAST_WAP_PUSH} permission.
7729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming MMS messages.</p></li>
7829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In your activity that delivers new messages, include an intent filter for
7929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.Intent#ACTION_SENDTO} (<code>"android.intent.action.SENDTO"
8029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </code>) with schemas, <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and
8129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>mmsto:</code>.
8229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to receive intents from other apps that want to deliver a
8329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * message.</p></li>
8429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a service, include an intent filter for {@link
8529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE}
8629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.intent.action.RESPOND_VIA_MESSAGE"</code>) with schemas,
8729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and <code>mmsto:</code>.
8829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * This service must also require the {@link
8929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#SEND_RESPOND_VIA_MESSAGE} permission.
9029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows users to respond to incoming phone calls with an immediate text message
9129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * using your app.</p></li>
9229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </ul>
9329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
9429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Other apps that are not selected as the default SMS app can only <em>read</em> the SMS
9529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Provider, but may also be notified when a new SMS arrives by listening for the {@link
9629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#SMS_RECEIVED_ACTION}
9729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast, which is a non-abortable broadcast that may be delivered to multiple apps. This
9829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast is intended for apps that&mdash;while not selected as the default SMS app&mdash;need to
9929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * read special incoming messages such as to perform phone number verification.</p>
10029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
10129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>For more information about building SMS apps, read the blog post, <a
10229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * href="http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html"
10329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * >Getting Your SMS Apps Ready for KitKat</a>.</p>
10429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
1050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic final class Telephony {
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final String TAG = "Telephony";
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
110b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Not instantiable.
111b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
113b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    private Telephony() {
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
117b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Base columns for tables that contain text-based SMSs.
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface TextBasedSmsColumns {
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: all messages. */
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_ALL    = 0;
123b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: inbox. */
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_INBOX  = 1;
126b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: sent messages. */
1280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_SENT   = 2;
129b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: drafts. */
1310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_DRAFT  = 3;
132b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: outbox. */
1340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_OUTBOX = 4;
135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: failed outgoing message. */
137b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_FAILED = 5;
138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: queued to send later. */
140b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_QUEUED = 6;
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
143b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The type of message.
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
146b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String TYPE = "type";
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
149b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
152b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
155b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The address of the other party.
156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
158b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String ADDRESS = "address";
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
161b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was received.
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
167b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was sent.
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
173b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
179b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a notification.
181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code TP-Status} value for the message, or -1 if no status has been received.
187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "status";
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
191b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: no status received. */
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_NONE = -1;
193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: complete. */
1940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_COMPLETE = 0;
195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: pending. */
1960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_PENDING = 32;
197b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: failed. */
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_FAILED = 64;
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
201b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The subject of the message, if present.
2020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "subject";
2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
207b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The body of the message.
2080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BODY = "body";
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
213b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The ID of the sender of the conversation, if present.
214b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (reference to item in {@code content://contacts/people})</P>
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PERSON = "person";
2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol identifier code.
2200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the {@code TP-Reply-Path} flag set?
2260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: BOOLEAN</P>
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_PATH_PRESENT = "reply_path_present";
2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The service center (SC) through which to send the message, if present.
2320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CENTER = "service_center";
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2434b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the message belongs to. Its value will be
244dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville         * < 0 if the sub id cannot be determined.
245a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER (long) </p>
246a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
2474b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
248a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
249a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
250e9701717e43cc5aacbcf624f77a53be92350662cw         * The MTU size of the mobile interface to which the APN connected
251e9701717e43cc5aacbcf624f77a53be92350662cw         * @hide
252e9701717e43cc5aacbcf624f77a53be92350662cw         */
253e9701717e43cc5aacbcf624f77a53be92350662cw        public static final String MTU = "mtu";
254e9701717e43cc5aacbcf624f77a53be92350662cw
255e9701717e43cc5aacbcf624f77a53be92350662cw        /**
256a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Error code associated with sending or receiving this message
2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR_CODE = "error_code";
260b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen
261b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        /**
262dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * The identity of the sender of a sent message. It is
263dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * usually the package name of the app which sends the message.
2643824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * <p class="note"><strong>Note:</strong>
2653824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * This column is read-only. It is set by the provider and can not be changed by apps.
266dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <p>Type: TEXT</p>
267b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         */
268b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        public static final String CREATOR = "creator";
2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
272b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Contains all text-based SMS messages.
2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Sms implements BaseColumns, TextBasedSmsColumns {
275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
277b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
278b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
279b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Sms() {
281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
28368b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        /**
28468b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * Used to determine the currently configured default SMS package.
28568b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @param context context of the requesting application
28668b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @return package name for the default SMS package or null
28768b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         */
28868b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        public static String getDefaultSmsPackage(Context context) {
28968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            ComponentName component = SmsApplication.getDefaultSmsApplication(context, false);
29068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            if (component != null) {
29168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun                return component.getPackageName();
29268b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            }
29368b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            return null;
29468b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        }
29568b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun
296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
297b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection) {
3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
305b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
306b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
308b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection,
3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, where,
311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
315b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
317b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://sms");
3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
320b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Add an SMS to the given URI.
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
331b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
336b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport) {
341440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville            return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
342a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    resolver, uri, address, body, subject, date, read, deliveryReport, -1L);
343a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        }
344a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
345a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
346a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Add an SMS to the given URI.
347a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         *
348a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param resolver the content resolver to use
349a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param uri the URI to add the message to
350a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param address the address of the sender
351a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param body the body of the message
352a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subject the psuedo-subject of the message
353a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param date the timestamp for the message
354a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param read true if the message has been read, false if not
355a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3564b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * @param subId the subscription which the message belongs to
357a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @return the URI for the new message
358a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
359a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
360b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville        public static Uri addMessageToUri(int subId, ContentResolver resolver,
361a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Uri uri, String address, String body, String subject,
362a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Long date, boolean read, boolean deliveryReport) {
363a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            return addMessageToUri(subId, resolver, uri, address, body, subject,
3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    date, read, deliveryReport, -1L);
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
368b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Add an SMS to the given URI with the specified thread ID.
3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
374b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param threadId the thread_id of the message
3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
380b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport, long threadId) {
385440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville            return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
386a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    resolver, uri, address, body, subject,
387a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    date, read, deliveryReport, threadId);
388a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        }
389a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
390a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
391a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Add an SMS to the given URI with thread_id specified.
392a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         *
393a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param resolver the content resolver to use
394a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param uri the URI to add the message to
395a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param address the address of the sender
396a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param body the body of the message
397a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subject the psuedo-subject of the message
398a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param date the timestamp for the message
399a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param read true if the message has been read, false if not
400a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param deliveryReport true if a delivery report was requested, false if not
401a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param threadId the thread_id of the message
4024b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * @param subId the subscription which the message belongs to
403a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @return the URI for the new message
404a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
405a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
406b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville        public static Uri addMessageToUri(int subId, ContentResolver resolver,
407a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Uri uri, String address, String body, String subject,
408a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Long date, boolean read, boolean deliveryReport, long threadId) {
409a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            ContentValues values = new ContentValues(8);
410a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            Rlog.v(TAG,"Telephony addMessageToUri sub id: " + subId);
4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4124b09dff383ae7dfca595aeeea886a594a1947340Wink Saville            values.put(SUBSCRIPTION_ID, subId);
4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ADDRESS, address);
4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (date != null) {
4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(DATE, date);
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(READ, read ? Integer.valueOf(1) : Integer.valueOf(0));
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(SUBJECT, subject);
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(BODY, body);
4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (deliveryReport) {
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(STATUS, STATUS_PENDING);
4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (threadId != -1L) {
4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(THREAD_ID, threadId);
4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return resolver.insert(uri, values);
4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Move a message to the given folder.
4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param context the context to use
4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the message to move
4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param folder the folder to move to
4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return true if the operation succeeded
436b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean moveMessageToFolder(Context context,
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, int folder, int error) {
4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (uri == null) {
4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsUnread = false;
4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsRead = false;
4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            switch(folder) {
4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_INBOX:
4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_DRAFT:
4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_OUTBOX:
4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_SENT:
4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsRead = true;
4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_FAILED:
4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_QUEUED:
4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsUnread = true;
4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            ContentValues values = new ContentValues(3);
4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(TYPE, folder);
4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (markAsUnread) {
466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 0);
4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else if (markAsRead) {
468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 1);
4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ERROR_CODE, error);
4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return 1 == SqliteWrapper.update(context, context.getContentResolver(),
4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                            uri, values, null, null);
4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Returns true iff the folder (message type) identifies an
4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * outgoing message.
479b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isOutgoingFolder(int messageType) {
4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return  (messageType == MESSAGE_TYPE_FAILED)
4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_OUTBOX)
4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_SENT)
4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_QUEUED);
4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
489b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all text-based SMS messages in the SMS app inbox.
4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseColumns, TextBasedSmsColumns {
492b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
494b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
495b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
498b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
4990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
501b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
502b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
503b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/inbox");
504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
505b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
506b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param read true if the message has been read, false if not
5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
520b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean read) {
525440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
526a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, read, false);
527a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
528a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
529a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
530a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
531a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
532a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
533a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
534a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
535a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
536a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
537a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param read true if the message has been read, false if not
5384b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
539a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
540a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
541a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
542b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
543a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date, boolean read) {
544a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, read, false);
5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
550b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseColumns, TextBasedSmsColumns {
553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
554b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
555b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
556b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
557b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
559b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
560b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
562b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
564b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/sent");
5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
567b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
577b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
580b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date) {
584440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
585a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, true, false);
586a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
587a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
588a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
589a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
590a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
591a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
592a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
593a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
594a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
595a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
5964b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
597a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
598a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
599a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
600b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
601a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
602a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, false);
6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseColumns, TextBasedSmsColumns {
6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
613b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
614b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
616b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
617b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
620b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
622b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/draft");
6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
624a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville           /**
625a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            * @hide
626a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            */
627a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static Uri addMessage(ContentResolver resolver,
628a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
629440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
630a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, true, false);
631a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
632a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
633a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
634a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
635a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
636a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
637a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
638a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
639a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
640a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
6414b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
642a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
643a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
644a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
645b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
646a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
647a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
648a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        subject, date, true, false);
649a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
650a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
652b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
653b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
654b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String DEFAULT_SORT_ORDER = "date DESC";
6550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
658b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all pending outgoing text-based SMS messages.
6590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
6600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseColumns, TextBasedSmsColumns {
661b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
662b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
663b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
664b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
665b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
666b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
667b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
6690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
670b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
6710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
672b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/outbox");
6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
675b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
6760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
680b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Add an SMS to the outbox.
6810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
685b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
6860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param deliveryReport whether a delivery report was requested for the message
6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
689b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
6900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
6920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean deliveryReport, long threadId) {
694440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                return addMessageToUri(SubscriptionManager.getDefaultSmsSubId(),
695a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date,
696a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        true, deliveryReport, threadId);
697a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
698a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
699a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
700a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Out box.
701a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
702a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
703a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
704a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
705a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
706a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
707a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param deliveryReport whether a delivery report was requested for the message
7084b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
709a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
710a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
711a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
712b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
713a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date,
714a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    boolean deliveryReport, long threadId) {
715a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
7160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, deliveryReport, threadId);
7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
721b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
7230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Conversations
7240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                implements BaseColumns, TextBasedSmsColumns {
725b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
7260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
727b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
728b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
7290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
730b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Conversations() {
731b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
732b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
733b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
734b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
735b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
736b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/conversations");
7370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
739b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
744b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The first 45 characters of the body of the message.
7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SNIPPET = "snippet";
7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
750b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The number of messages in the conversation.
7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MESSAGE_COUNT = "msg_count";
7540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
757b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains constants for SMS related Intents that are broadcast.
7580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
760b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
762b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
763b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
765b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
766b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
767b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
768b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
769b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message was handled
7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * successfully.
7710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_HANDLED = 1;
7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
775b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a generic error while
7760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * processing the message.
7770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_GENERIC_ERROR = 2;
7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
781b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate insufficient memory to store
7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * the message.
7830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_OUT_OF_MEMORY = 3;
7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
787b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message, while
7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * possibly valid, is of a format or encoding that is not
7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * supported.
7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_UNSUPPORTED = 4;
7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
794b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a duplicate incoming message.
79590271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi             */
79690271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            public static final int RESULT_SMS_DUPLICATED = 5;
79790271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi
79890271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            /**
7995c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Activity action: Ask the user to change the default
8005c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application. This will show a dialog that asks the
8015c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * user whether they want to replace the current default
8025c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application with the one specified in
8035c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #EXTRA_PACKAGE_NAME}.
8045c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8055c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
8065c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String ACTION_CHANGE_DEFAULT =
8075c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.ACTION_CHANGE_DEFAULT";
8085c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8095c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
8105c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * The PackageName string passed in as an
8115c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * extra for {@link #ACTION_CHANGE_DEFAULT}
8125c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8135c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * @see #ACTION_CHANGE_DEFAULT
8145c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8155c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String EXTRA_PACKAGE_NAME = "package";
8165c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8175c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
818b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
8195c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will only be delivered to the default
8205c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
8215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
8225c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8235c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
82429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8255c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   that make up the message.</li>
82654f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"format"</em> - A String describing the format of the PDUs. It can
82754f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   be either "3gpp" or "3gpp2".</li>
82854f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"subscription"</em> - An optional long value of the subscription id which
82954f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   received the message.</li>
83054f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"slot"</em> - An optional int value of the SIM slot containing the
83154f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
83254f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"phone"</em> - An optional int value of the phone id associated with the
83354f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
83454f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"errorCode"</em> - An optional int error code associated with receiving
83554f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   the message.</li>
8365c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
8375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8385c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The extra values can be extracted using
8395c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #getMessagesFromIntent(Intent)}.</p>
8405c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8415c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
8425c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
84329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
84429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
84529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
84629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_SMS} as a required permission in
84729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
84829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * &lt;receiver>}</a> tag.
8495c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8505c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8515c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String SMS_DELIVER_ACTION =
8525c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.SMS_DELIVER";
8535c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8545c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
855b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
8565c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
8575c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
8585c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
8590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
86229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
8640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_RECEIVED_ACTION =
8740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_RECEIVED";
8750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new data based SMS message has been received
8785c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
8795c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. The intent will have the following extra
8800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
88329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DATA_SMS_RECEIVED_ACTION =
8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.intent.action.DATA_SMS_RECEIVED";
8960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new WAP PUSH message has been received by the
8995c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will only be delivered to the default
9005c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
9015c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
9025c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9035c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
90429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
90529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
90629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
90729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
90829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters" </em>
90929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   -(HashMap&lt;String,String&gt;) Any parameters associated with the content type
9105c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   (decoded from the WSP Content-Type header)</li>
91154f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"subscription"</em> - An optional long value of the subscription id which
91254f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   received the message.</li>
91354f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"slot"</em> - An optional int value of the SIM slot containing the
91454f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
91554f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"phone"</em> - An optional int value of the phone id associated with the
91654f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
9175c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
9185c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9195c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
9205c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
9215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9225c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The contentTypeParameters extra value is map of content parameters keyed by
9235c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * their names.</p>
9245c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9255c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If any unassigned well-known parameters are encountered, the key of the map will
9265c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
9275c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * a parameter has No-Value the value in the map will be null.</p>
92829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
92929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
93029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
93129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_WAP_PUSH} as a required permission in
93229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
93329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * &lt;receiver>}</a> tag.
9345c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
9355c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9365c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String WAP_PUSH_DELIVER_ACTION =
9375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.WAP_PUSH_DELIVER";
9385c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
9395c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
9405c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Broadcast Action: A new WAP PUSH message has been received by the
9415c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will be delivered to all registered
9425c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
9435c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
9440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
9450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
94729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
94829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
94929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
95029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
95129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters"</em>
95229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   - (HashMap&lt;String,String&gt;) Any parameters associated with the content type
9530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   (decoded from the WSP Content-Type header)</li>
9540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
9570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
9580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The contentTypeParameters extra value is map of content parameters keyed by
9600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * their names.</p>
9610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If any unassigned well-known parameters are encountered, the key of the map will
9630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
9640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * a parameter has No-Value the value in the map will be null.</p>
9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String WAP_PUSH_RECEIVED_ACTION =
9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.WAP_PUSH_RECEIVED";
9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Cell Broadcast message has been received
9720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
97629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
9770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data. This is not an emergency alert, so ETWS and CMAS data will be null.</li>
9780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
9810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
9840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
9850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_CB_RECEIVED_ACTION =
9880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_CB_RECEIVED";
9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Emergency Broadcast message has been received
9920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
9930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
9940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
99629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
9970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data, including ETWS or CMAS warning notification info if present.</li>
9980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION =
10080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
10090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new CDMA SMS has been received containing Service Category
10120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Program Data (updates the list of enabled broadcast channels). The intent will
10130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * have the following extra values:</p>
10140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
101629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"operations"</em> - An array of CdmaSmsCbProgramData objects containing
10170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   the service category operations (add/delete/clear) to perform.</li>
10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION =
10280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED";
10290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: The SIM storage for SMS messages is full.  If
10320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * space is not freed, messages targeted for the SIM (class 2) may
10330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * not be saved.
10340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SIM_FULL_ACTION =
10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SIM_FULL";
10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: An incoming SMS has been rejected by the
10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * telephony framework.  This intent is sent in lieu of any
10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * of the RECEIVED_ACTION intents.  The intent will have the
10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * following extra value:</p>
10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
104629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"result"</em> - An int result code, e.g. {@link #RESULT_SMS_OUT_OF_MEMORY}
10470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   indicating the error returned to the network.</li>
10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_REJECTED_ACTION =
10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "android.provider.Telephony.SMS_REJECTED";
10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1055c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * Broadcast Action: An incoming MMS has been downloaded. The intent is sent to all
1056c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * users, except for secondary users where SMS has been disabled and to managed
1057c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * profiles.
1058c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * @hide
1059c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             */
1060c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
1061c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            public static final String MMS_DOWNLOADED_ACTION =
1062c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor                "android.provider.Telephony.MMS_DOWNLOADED";
1063c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor
1064c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            /**
10650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Read the PDUs out of an {@link #SMS_RECEIVED_ACTION} or a
10660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #DATA_SMS_RECEIVED_ACTION} intent.
10670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param intent the intent to read from
10690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return an array of SmsMessages for the PDUs
10700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
1071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static SmsMessage[] getMessagesFromIntent(Intent intent) {
10720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
10730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String format = intent.getStringExtra("format");
1074b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville                int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
1075440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                        SubscriptionManager.getDefaultSmsSubId());
1076a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1077a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Rlog.v(TAG, " getMessagesFromIntent sub_id : " + subId);
10780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1079b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                int pduCount = messages.length;
10800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SmsMessage[] msgs = new SmsMessage[pduCount];
1081b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
10820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                for (int i = 0; i < pduCount; i++) {
1083b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    byte[] pdu = (byte[]) messages[i];
1084b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    msgs[i] = SmsMessage.createFromPdu(pdu, format);
1085a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    msgs[i].setSubId(subId);
10860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
10870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return msgs;
10880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
10890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
10900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
10910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Base columns for tables that contain MMSs.
10940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface BaseMmsColumns extends BaseColumns {
10960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1097b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: all messages. */
10980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_ALL    = 0;
1099b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: inbox. */
11000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_INBOX  = 1;
1101b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: sent messages. */
11020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_SENT   = 2;
1103b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: drafts. */
11040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_DRAFTS = 3;
1105b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: outbox. */
11060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_OUTBOX = 4;
1107370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        /** Message box: failed. */
1108370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        public static final int MESSAGE_BOX_FAILED = 5;
11090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1111b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
1112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
1113b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1114b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1115b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1116b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
11170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was received.
11180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
11190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
11210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was sent.
11240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
11250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
11270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1129b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The box which the message belongs to, e.g. {@link #MESSAGE_BOX_INBOX}.
11300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BOX = "msg_box";
11330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1135b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
11390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
1142b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a new message notification.
1143b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
11440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
11460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1148b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Does the message have only a text part (can also have a subject) with
1149b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * no picture, slideshow, sound, etc. parts?
1150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
11517a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor         */
11527a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        public static final String TEXT_ONLY = "text_only";
11537a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor
11547a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        /**
1155b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Message-ID} of the message.
11560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_ID = "m_id";
11590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The subject of the message, if present.
11620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "sub";
11650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the subject, if present.
11680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT_CHARSET = "sub_cs";
11710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1173b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Type} of the message.
11740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_TYPE = "ct_t";
11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1179b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Location} of the message.
11800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_LOCATION = "ct_l";
11830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The expiry time of the message.
1186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
11870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String EXPIRY = "exp";
11890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The class of the message.
11920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_CLASS = "m_cls";
11950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The type of the message defined by MMS spec.
11980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_TYPE = "m_type";
12010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1203b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The version of the specification that this message conforms to.
12040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMS_VERSION = "v";
12070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The size of the message.
12100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_SIZE = "m_size";
12130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The priority of the message.
1216b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
12170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PRIORITY = "pri";
12190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1221b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-report} of the message.
1222b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_REPORT = "rr";
12250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1227b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is read report allowed?
1228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPORT_ALLOWED = "rpt_a";
12310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1233b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-status} of the message.
12340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_STATUS = "resp_st";
12370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1239b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status} of the message.
12400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "st";
12430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1245b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code transaction-id} of the message.
12460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TRANSACTION_ID = "tr_id";
12490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1251b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-status} of the message.
12520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_STATUS = "retr_st";
12550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1257b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-text} of the message.
12580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT = "retr_txt";
12610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the retrieve-text.
1264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
12650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT_CHARSET = "retr_txt_cs";
12670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-status} of the message.
12700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_STATUS = "read_status";
12730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content-class} of the message.
12760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_CLASS = "ct_cls";
12790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-report} of the message.
12820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_REPORT = "d_rpt";
12850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time-token} of the message.
12880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1289b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1290b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
12910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1292b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
12930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME_TOKEN = "d_tm_tok";
12940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time} of the message.
12970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "d_tm";
13000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1302b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-text} of the message.
13030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
13040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_TEXT = "resp_txt";
13060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1308b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code sender-visibility} of the message.
13090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1310b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1313b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SENDER_VISIBILITY = "s_vis";
13150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1317b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging} of the message.
13180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1319b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1320b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING = "r_chg";
13240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1326b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline-token} of the message.
13270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1329b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1331b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE_TOKEN = "r_chg_dl_tok";
13330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1335b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline} of the message.
13360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1337b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1338b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE = "r_chg_dl";
13420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1344b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-id} of the message.
13450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1346b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1347b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1349b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_ID = "r_chg_id";
13510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1353b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-size} of the message.
13540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1355b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1358b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_SIZE = "r_chg_sz";
13600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1362b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-by} of the message.
13630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1365b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1367b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_BY = "p_s_by";
13690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1371b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-date} of the message.
13720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1373b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1374b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1376b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_DATE = "p_s_d";
13780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1380b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store} of the message.
13810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1382b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1383b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE = "store";
13870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1389b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-state} of the message.
13900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1391b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1392b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_STATE = "mm_st";
13960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1398b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags-token} of the message.
13990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1400b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1401b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1403b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS_TOKEN = "mm_flg_tok";
14050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags} of the message.
14080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1409b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1410b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1412b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS = "mm_flg";
14140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1416b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status} of the message.
14170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1419b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS = "store_st";
14230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status-text} of the message.
14260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1427b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1428b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS_TEXT = "store_st_txt";
14320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code stored} of the message.
14350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1436b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1437b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1439b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORED = "stored";
14410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1443b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code totals} of the message.
14440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1445b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1446b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TOTALS = "totals";
14500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1452b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals} of the message.
14530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1454b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1455b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1457b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS = "mb_t";
14590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1461b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals-token} of the message.
14620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1463b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1464b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS_TOKEN = "mb_t_tok";
14680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1470b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code quotas} of the message.
14710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1472b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1473b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1475b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String QUOTAS = "qt";
14770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1479b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas} of the message.
14800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1481b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1482b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1484b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS = "mb_qt";
14860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas-token} of the message.
14890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1490b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1493b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS_TOKEN = "mb_qt_tok";
14950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code message-count} of the message.
14980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1500b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1502b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "m_cnt";
15040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1506b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code start} of the message.
15070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1509b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1511b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String START = "start";
15130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1515b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code distribution-indicator} of the message.
15160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1520b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DISTRIBUTION_INDICATOR = "d_ind";
15220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1524b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code element-descriptor} of the message.
15250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1529b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ELEMENT_DESCRIPTOR = "e_des";
15310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1533b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code limit} of the message.
15340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1535b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1538b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LIMIT = "limit";
15400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1542b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode} of the message.
15430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1544b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1545b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1547b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE = "r_r_mod";
15490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode-text} of the message.
15520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1554b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1556b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE_TEXT = "r_r_mod_txt";
15580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1560b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status-text} of the message.
15610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1562b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1563b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1565b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS_TEXT = "st_txt";
15670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1569b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code applic-id} of the message.
15700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1574b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APPLIC_ID = "apl_id";
15760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-applic-id} of the message.
15790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1580b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1581b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1583b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_APPLIC_ID = "r_apl_id";
15850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code aux-applic-id} of the message.
15880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1589b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1590b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1592b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUX_APPLIC_ID = "aux_apl_id";
15940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1596b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code drm-content} of the message.
15970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1598b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1599b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1601b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DRM_CONTENT = "drm_c";
16030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1605b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code adaptation-allowed} of the message.
16060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADAPTATION_ALLOWED = "adp_a";
16120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1614b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code replace-id} of the message.
16150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1616b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1617b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1619b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLACE_ID = "repl_id";
16210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1623b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-id} of the message.
16240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1625b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1626b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1628b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_ID = "cl_id";
16300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1632b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-status} of the message.
16330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1634b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1635b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1637b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_STATUS = "cl_st";
16390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1641b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
16420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
16430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
1645a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1646a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
16474b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the message belongs to. Its value will be
1648dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville         * < 0 if the sub id cannot be determined.
16494e71df52b26f87087327819c53570f60262a9c6aShri Borde         * <p>Type: INTEGER (long)</p>
1650a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
16514b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
1652a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1653b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        /**
1654dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * The identity of the sender of a sent message. It is
1655dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * usually the package name of the app which sends the message.
16563824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * <p class="note"><strong>Note:</strong>
16573824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * This column is read-only. It is set by the provider and can not be changed by apps.
1658dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <p>Type: TEXT</p>
1659b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         */
1660b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        public static final String CREATOR = "creator";
16610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
16620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1664b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Columns for the "canonical_addresses" table used by MMS and SMS.
16650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface CanonicalAddressesColumns extends BaseColumns {
16670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * An address used in MMS or SMS.  Email addresses are
16690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * converted to lower case and are compared by string
16700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * equality.  Other addresses are compared using
16710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * PHONE_NUMBERS_EQUAL.
16720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
16730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADDRESS = "address";
16750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
16760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Columns for the "threads" table used by MMS and SMS.
16790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface ThreadsColumns extends BaseColumns {
1681b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
16820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date at which the thread was created.
16840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
16850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
16870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * A string encoding of the recipient IDs of the recipients of
16900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * the message, in numerical order and separated by spaces.
16910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
16920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECIPIENT_IDS = "recipient_ids";
16940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The message count of the thread.
16970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
16980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "message_count";
1700b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether all messages of the thread have been read.
17030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
17060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The snippet of the latest message in the thread.
17090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET = "snippet";
1712b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The charset of the snippet.
17150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET_CHARSET = "snippet_cs";
1718b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1720b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Type of the thread, either {@link Threads#COMMON_THREAD} or
1721b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link Threads#BROADCAST_THREAD}.
17220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
1725b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether there is a transmission error in the thread.
17280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR = "error";
1731b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether this thread contains any attachments.
17340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String HAS_ATTACHMENT = "has_attachment";
1737e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen
1738e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        /**
1739e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         * If the thread is archived
1740dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <P>Type: INTEGER (boolean)</P>
1741e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         */
1742e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        public static final String ARCHIVED = "archived";
17430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
17440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Helper functions for the "threads" table used by MMS and SMS.
17470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Threads implements ThreadsColumns {
1749b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final String[] ID_PROJECTION = { BaseColumns._ID };
1751b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1752b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1753b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Private {@code content://} style URL for this table. Used by
1754b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link #getOrCreateThreadId(android.content.Context, java.util.Set)}.
1755b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final Uri THREAD_ID_CONTENT_URI = Uri.parse(
17570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/threadID");
1758b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1759b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1760b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
1761b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.withAppendedPath(
17630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MmsSms.CONTENT_URI, "conversations");
1764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1765b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1766b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, for obsolete threads.
1767b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri OBSOLETE_THREADS_URI = Uri.withAppendedPath(
17690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CONTENT_URI, "obsolete");
17700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1771b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: common thread. */
17720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int COMMON_THREAD    = 0;
1773b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1774b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: broadcast thread. */
17750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int BROADCAST_THREAD = 1;
17760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1777b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1778b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1779b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1780b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private Threads() {
17820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1785b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This is a single-recipient version of {@code getOrCreateThreadId}.
1786b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * It's convenient for use with SMS messages.
1787b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param context the context object to use.
1788b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param recipient the recipient to send to.
1789b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(Context context, String recipient) {
17920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Set<String> recipients = new HashSet<String>();
17930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            recipients.add(recipient);
17950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return getOrCreateThreadId(context, recipients);
17960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Given the recipients list and subject of an unsaved message,
18000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * return its thread ID.  If the message starts a new thread,
18010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * allocate a new thread ID.  Otherwise, use the appropriate
18020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * existing thread ID.
18030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1804b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <p>Find the thread ID of the same set of recipients (in any order,
1805b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * without any additions). If one is found, return it. Otherwise,
1806b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * return a unique thread ID.</p>
1807b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
18080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(
18100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Context context, Set<String> recipients) {
18110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
18120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            for (String recipient : recipients) {
18140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if (Mms.isEmailAddress(recipient)) {
18150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    recipient = Mms.extractAddrSpec(recipient);
18160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
18170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                uriBuilder.appendQueryParameter("recipient", recipient);
18190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
18200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri uri = uriBuilder.build();
182299c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville            //if (DEBUG) Rlog.v(TAG, "getOrCreateThreadId uri: " + uri);
18230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(),
18250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    uri, ID_PROJECTION, null, null, null);
18260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (cursor != null) {
18270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                try {
18280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    if (cursor.moveToFirst()) {
18290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        return cursor.getLong(0);
18300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    } else {
183199c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville                        Rlog.e(TAG, "getOrCreateThreadId returned no rows!");
18320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    }
18330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                } finally {
18340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    cursor.close();
18350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
18360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
18370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18383824f44a039a5be05b86acfba427638b3b1e587aYe Wen            Rlog.e(TAG, "getOrCreateThreadId failed with " + recipients.size() + " recipients");
18390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            throw new IllegalArgumentException("Unable to find or allocate a thread ID.");
18400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
18420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
18440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS messages.
18450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
18460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Mms implements BaseMmsColumns {
1847b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1849b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1850b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1851b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1852b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Mms() {
1853b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
1854b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1855b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1856b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
18570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms");
18590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1860b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1861b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report requests.
1862b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_REQUEST_URI = Uri.withAppendedPath(
18640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-request");
18650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1866b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1867b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report status.
1868b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_STATUS_URI = Uri.withAppendedPath(
18700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-status");
18710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1873b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
18740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
18760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1878b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Regex pattern for names and email addresses.
1879b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
1880b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>mailbox</em> = {@code name-addr}</li>
1881b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>name-addr</em> = {@code [display-name] angle-addr}</li>
1882b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>angle-addr</em> = {@code [CFWS] "<" addr-spec ">" [CFWS]}</li>
1883b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
1884b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
18850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Pattern NAME_ADDR_EMAIL_PATTERN =
18870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
18880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1890b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1891b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
18920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1893b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
18940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection) {
18950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
18960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1898b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1899b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1900b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1901b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1902b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
19030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection,
19040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
19050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection,
19060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    where, null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
19070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1909b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1910b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to extract email address from address string.
1911b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1912b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static String extractAddrSpec(String address) {
19140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address);
19150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (match.matches()) {
19170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return match.group(2);
19180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return address;
19200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1923b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified address an email address?
19240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1925b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param address the input address to test
1926b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if address is an email address; false otherwise.
1927b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isEmailAddress(String address) {
19300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(address)) {
19310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
19320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String s = extractAddrSpec(address);
19350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
19360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
19370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1940b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified number a phone number?
19410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1942b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param number the input number to test
1943b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if number is a phone number; false otherwise.
1944b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isPhoneNumber(String number) {
19470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(number)) {
19480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
19490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.PHONE.matcher(number);
19520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
19530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1956b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app inbox.
19570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseMmsColumns {
1959b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1960b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1961b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1962b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1963b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1964b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
1965b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1966b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
19670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1968b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
19690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
19710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/inbox");
19720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1974b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
19750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
19770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1980b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app sent folder.
19810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseMmsColumns {
1983b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
19840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1985b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1986b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1987b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1988b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
1989b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1990b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1991b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1992b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
19930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
19950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/sent");
19960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1998b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
19990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2004b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app drafts folder.
20050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseMmsColumns {
2007b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2009b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2010b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2011b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2012b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
2013b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2014b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2015b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2016b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/drafts");
20200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2022b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2028b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app outbox.
20290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseMmsColumns {
2031b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2033b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2034b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2035b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2036b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
2037b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2038b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2039b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2040b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/outbox");
20440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2046b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2051b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2052b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains address information for an MMS message.
2053b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Addr implements BaseColumns {
2055b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2056b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2057b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2058b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2059b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2060b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Addr() {
2061b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2062b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of MM which this address entry belongs to.
2065b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
20660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
20680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of contact entry in Phone Book.
2071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
20720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTACT_ID = "contact_id";
20740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The address text.
2077b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
20780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ADDRESS = "address";
20800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2082b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Type of address: must be one of {@code PduHeaders.BCC},
2083b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * {@code PduHeaders.CC}, {@code PduHeaders.FROM}, {@code PduHeaders.TO}.
2084b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
20850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TYPE = "type";
20870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2089b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Character set of this entry (MMS charset value).
2090b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
20910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "charset";
20930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2095b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2096b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains message parts.
2097b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Part implements BaseColumns {
2099b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2100b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2101b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2102b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2103b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2104b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Part() {
2105b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2106b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The identifier of the message which this part belongs to.
21090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "mid";
21120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The order of the part.
21150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SEQ = "seq";
21180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content type of the part.
21210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_TYPE = "ct";
21240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The name of the part.
21270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String NAME = "name";
21300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The charset of the part.
21330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "chset";
21360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The file name of the part.
21390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String FILENAME = "fn";
21420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content disposition of the part.
21450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_DISPOSITION = "cd";
21480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content ID of the part.
21510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_ID = "cid";
21540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content location of the part.
21570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_LOCATION = "cl";
21600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The start of content-type of the message.
21630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_START = "ctt_s";
21660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of content-type of the message.
21690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_TYPE = "ctt_t";
21720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2174b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The location (on filesystem) of the binary data of the part.
21750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String _DATA = "_data";
21780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2179b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The message text.
2181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2182b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
21830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TEXT = "text";
21840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
21850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message send rate table.
2188b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Rate {
2190b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2191b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2192b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2194b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Rate() {
2196b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2197b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2198b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
2200b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
22020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    Mms.CONTENT_URI, "rate");
2203b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * When a message was successfully sent.
2206b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
22070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SENT_TIME = "sent_time";
22090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2211b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2212b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Intents class.
2213b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
22150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2217b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2218b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
22190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2220b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
2221b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2222b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Indicates that the contents of specified URIs were changed.
22250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The application which is showing or caching these contents
22260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * should be updated.
22270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
2229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String CONTENT_CHANGED_ACTION
2230b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    = "android.intent.action.CONTENT_CHANGED";
2231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * An extra field which stores the URI of deleted contents.
22340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DELETED_CONTENTS = "deleted_contents";
22360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
22380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
22400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS and SMS messages.
22410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
22420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class MmsSms implements BaseColumns {
2243b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2244b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2245b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2246b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2247b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2248b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private MmsSms() {
2249b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
2250b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The column to distinguish SMS and MMS messages in query results.
22530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
22540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE_DISCRIMINATOR_COLUMN =
22550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "transport_type";
22560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2257b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2258b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
2259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms-sms/");
22610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2262b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2263b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
2264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_CONVERSATIONS_URI = Uri.parse(
22660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/conversations");
22670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2268b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by phone number.
2270b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_FILTER_BYPHONE_URI = Uri.parse(
22720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/messages/byphone");
22730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2274b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for undelivered messages in this table.
2276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_UNDELIVERED_URI = Uri.parse(
22780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/undelivered");
22790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for draft messages in this table.
2282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_DRAFT_URI = Uri.parse(
22840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/draft");
22850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2286b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for locked messages in this table.
2288b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_LOCKED_URI = Uri.parse(
22900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/locked");
22910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2292b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Pass in a query parameter called "pattern" which is the text to search for.
2294b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The sort order is fixed to be: {@code thread_id ASC, date DESC}.
22950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
22960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri SEARCH_URI = Uri.parse(
22970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/search");
22980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for message protocol types.
2300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2301b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** SMS protocol type. */
23020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int SMS_PROTO = 0;
2303b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** MMS protocol type. */
23050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MMS_PROTO = 1;
23060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for error types of pending messages.
2308b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2309b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: no error. */
23100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int NO_ERROR                      = 0;
2311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2312b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: generic transient error. */
23130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC              = 1;
2314b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2315b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol transient error. */
23160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_TRANSIENT  = 2;
2317b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2318b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol transient error. */
23190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_TRANSIENT  = 3;
2320b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2321b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: transport failure. */
23220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_TRANSPORT_FAILURE    = 4;
2323b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2324b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: permanent error (along with all higher error values). */
23250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC_PERMANENT    = 10;
2326b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol permanent error. */
23280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_PERMANENT  = 11;
2329b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2330b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol permanent error. */
23310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_PERMANENT  = 12;
23320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains pending messages info.
2335b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class PendingMessages implements BaseColumns {
2337b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2338b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2339b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2341b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2342b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private PendingMessages() {
2343b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2344b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
23460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    MmsSms.CONTENT_URI, "pending");
2347b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2349b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The type of transport protocol (MMS or SMS).
23500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
23510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String PROTO_TYPE = "proto_type";
2353b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of the message to be sent or downloaded.
2356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
23570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
2359b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the message to be sent or downloaded.
2362b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * This field is only valid for MM. For SM, its value is always set to 0.
2363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
23640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_TYPE = "msg_type";
2366b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the error code.
23690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
23700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_TYPE = "err_type";
2372b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The error code of sending/retrieving process.
2375b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
23760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_CODE = "err_code";
2378b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * How many times we tried to send or download the message.
2381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
23820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String RETRY_INDEX = "retry_index";
2384b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time to do next retry.
2387b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
23880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DUE_TIME = "due_time";
2390b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time we last tried to send or download the message.
2393b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
23940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String LAST_TRY = "last_try";
2396a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2397a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
23984b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * The subscription to which the message belongs to. Its value will be
2399dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville             * < 0 if the sub id cannot be determined.
2400a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * <p>Type: INTEGER (long) </p>
2401a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
24024b09dff383ae7dfca595aeeea886a594a1947340Wink Saville            public static final String SUBSCRIPTION_ID = "pending_sub_id";
24030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
24040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2405b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2406b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Words table used by provider for full-text searches.
2407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2408b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class WordsTable {
2410b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2411b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2412b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2413b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private WordsTable() {}
2416b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Primary key.
2419b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ID = "_id";
2422b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2424b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Source row ID.
2425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SOURCE_ROW_ID = "source_id";
2428b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2429b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Table ID (either 1 or 2).
2431b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
2432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TABLE_ID = "table_to_use";
2434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2435b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2436b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The words to index.
2437b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2438b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String INDEXED_TEXT = "index_text";
24400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
24410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
24420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2443b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
2444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Carriers class contains information about APNs, including MMSC information.
2445b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
24460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Carriers implements BaseColumns {
2447b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2449b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2450b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2451b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2452b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Carriers() {}
2453b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2455b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
24560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2457b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://telephony/carriers");
24580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2460b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
24610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "name ASC";
24630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2464b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2465b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Entry name.
2466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2467b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NAME = "name";
24690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2470b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN name.
2472b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2473b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APN = "apn";
24750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2476b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2477b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy address.
2478b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2479b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROXY = "proxy";
24810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2482b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2483b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy port.
2484b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2485b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PORT = "port";
24870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2489b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy address.
2490b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPROXY = "mmsproxy";
24930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2494b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2495b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy port.
2496b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPORT = "mmsport";
24990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2500b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2501b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Server address.
2502b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2503b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVER = "server";
25050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2506b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2507b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN username.
2508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2509b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String USER = "user";
25110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2512b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN password.
2514b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2515b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PASSWORD = "password";
25170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2519b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMSC URL.
2520b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2521b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSC = "mmsc";
25230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2524b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2525b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Country Code (MCC).
2526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MCC = "mcc";
25290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2530b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Network Code (MNC).
2532b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2533b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MNC = "mnc";
25350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2537b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Numeric operator ID (as String). Usually {@code MCC + MNC}.
2538b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2539b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NUMERIC = "numeric";
25410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2542b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2543b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Authentication type.
2544b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type:  INTEGER</P>
2545b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUTH_TYPE = "authtype";
25470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2548b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Comma-delimited list of APN types.
2550b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
25530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2555b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN.
25560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
2557b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * One of the {@code PDP_type} values in TS 27.007 section 10.1.1.
2558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * For example: {@code IP}, {@code IPV6}, {@code IPV4V6}, or {@code PPP}.
2559b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
25600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
25620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2564b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN when roaming.
2565b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The syntax is the same as protocol.
2566b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2567b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ROAMING_PROTOCOL = "roaming_protocol";
25690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this the current APN?
2572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CURRENT = "current";
25750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2577b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this APN enabled?
2578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CARRIER_ENABLED = "carrier_enabled";
25810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2583b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Radio Access Technology info.
2584b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * To check what values are allowed, refer to {@link android.telephony.ServiceState}.
2585b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This should be spread to other technologies,
2586b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * but is currently only used for LTE (14) and eHRPD (13).
2587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
2588b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BEARER = "bearer";
2590a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2591a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2592b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO type:
2593b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}.
2594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2595b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2596a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_TYPE = "mvno_type";
2597a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2598a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2599b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO data.
2600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Use the following examples.
2601b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
2602b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>SPN: A MOBILE, BEN NL, ...</li>
2603b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>IMSI: 302720x94, 2060188, ...</li>
2604b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>GID: 4E, 33, ...</li>
2605b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
2606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2608a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_MATCH_DATA = "mvno_match_data";
2609a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2610a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
26114b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the APN belongs to
2612a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER (long) </p>
2613a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
26144b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
2615a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
26169d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26179d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The profile_id to which the APN saved in modem
26189d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26199d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26209d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26219d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String PROFILE_ID = "profile_id";
26229d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26239d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26249d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * Is the apn setting to be set in modem
26259d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <P>Type: INTEGER (boolean)</P>
26269d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26279d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26289d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MODEM_COGNITIVE = "modem_cognitive";
26299d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26309d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26319d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The max connections of this apn
26329d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26339d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26349d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26359d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS = "max_conns";
26369d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26379d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26389d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The wait time for retry of the apn
26399d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26409d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26419d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26429d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String WAIT_TIME = "wait_time";
26439d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26449d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26459d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The time to limit max connection for the apn
26469d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26479d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26489d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26499d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS_TIME = "max_conns_time";
26509d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
2651e9701717e43cc5aacbcf624f77a53be92350662cw        /**
2652e9701717e43cc5aacbcf624f77a53be92350662cw         * The MTU size of the mobile interface to  which the APN connected
2653e9701717e43cc5aacbcf624f77a53be92350662cw         * <p>Type: INTEGER </p>
2654e9701717e43cc5aacbcf624f77a53be92350662cw         * @hide
2655e9701717e43cc5aacbcf624f77a53be92350662cw         */
2656e9701717e43cc5aacbcf624f77a53be92350662cw        public static final String MTU = "mtu";
26570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
26580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
26600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains received SMS cell broadcast messages.
2661b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
26620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
26630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class CellBroadcasts implements BaseColumns {
26640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2665b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2666b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2667b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private CellBroadcasts() {}
26700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2672b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
26730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2674b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts");
26750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
26770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message geographical scope.
26780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
26790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
26800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String GEOGRAPHICAL_SCOPE = "geo_scope";
26810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
26830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message serial number.
26840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
26850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
26860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERIAL_NUMBER = "serial_number";
26870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2689b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * PLMN of broadcast sender. {@code SERIAL_NUMBER + PLMN + LAC + CID} uniquely identifies
2690b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * a broadcast for duplicate detection purposes.
26910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
26920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
26930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PLMN = "plmn";
26940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
26960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Location Area (GSM) or Service Area (UMTS) of broadcast sender. Unused for CDMA.
26970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Only included if Geographical Scope of message is not PLMN wide (01).
26980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
26990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LAC = "lac";
27010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Cell ID of message sender (GSM/UMTS). Unused for CDMA. Only included when the
27040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Geographical Scope of message is cell wide (00 or 11).
27050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CID = "cid";
27080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2710b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message code. <em>OBSOLETE: merged into SERIAL_NUMBER.</em>
27110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_CODE = "message_code";
27140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2716b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message identifier. <em>OBSOLETE: renamed to SERVICE_CATEGORY.</em>
27170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_IDENTIFIER = "message_id";
27200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2722b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Service category (GSM/UMTS: message identifier; CDMA: service category).
27230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CATEGORY = "service_category";
27260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message language code.
27290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
27300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LANGUAGE_CODE = "language";
27320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message body.
27350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
27360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BODY = "body";
27380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message delivery time.
27410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
27420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "date";
27440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Has the message been viewed?
27470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
27480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_READ = "read";
27500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message format (3GPP or 3GPP2).
27530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_FORMAT = "format";
27560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message priority (including emergency).
27590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_PRIORITY = "priority";
27620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * ETWS warning type (ETWS alerts only).
27650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ETWS_WARNING_TYPE = "etws_warning_type";
27680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS message class (CMAS alerts only).
27710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_MESSAGE_CLASS = "cmas_message_class";
27740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS category (CMAS alerts only).
27770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CATEGORY = "cmas_category";
27800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS response type (CMAS alerts only).
27830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_RESPONSE_TYPE = "cmas_response_type";
27860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS severity (CMAS alerts only).
27890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_SEVERITY = "cmas_severity";
27920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS urgency (CMAS alerts only).
27950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_URGENCY = "cmas_urgency";
27980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS certainty (CMAS alerts only).
28010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CERTAINTY = "cmas_certainty";
28040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2805b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** The default sort order for this table. */
28060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = DELIVERY_TIME + " DESC";
28070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects.
28100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String[] QUERY_COLUMNS = {
28120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                _ID,
28130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                GEOGRAPHICAL_SCOPE,
28140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                PLMN,
28150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LAC,
28160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CID,
28170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERIAL_NUMBER,
28180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERVICE_CATEGORY,
28190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LANGUAGE_CODE,
28200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_BODY,
28210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                DELIVERY_TIME,
28220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_READ,
28230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_FORMAT,
28240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_PRIORITY,
28250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ETWS_WARNING_TYPE,
28260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_MESSAGE_CLASS,
28270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CATEGORY,
28280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_RESPONSE_TYPE,
28290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_SEVERITY,
28300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_URGENCY,
28310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CERTAINTY
28320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        };
28330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
28340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
2835