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            /**
9913817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             * Action: A SMS based carrier provision intent. Used to identify default
9923817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             * carrier provisioning app on the device.
9933817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             * @hide
9943817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             */
9953817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9963817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu            public static final String SMS_CARRIER_PROVISION_ACTION =
9973817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu                    "android.provider.Telephony.SMS_CARRIER_PROVISION";
9983817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu
9993817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu            /**
10000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Emergency Broadcast message has been received
10010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
100529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
10060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data, including ETWS or CMAS warning notification info if present.</li>
10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION =
10170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new CDMA SMS has been received containing Service Category
10210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Program Data (updates the list of enabled broadcast channels). The intent will
10220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * have the following extra values:</p>
10230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
102529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"operations"</em> - An array of CdmaSmsCbProgramData objects containing
10260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   the service category operations (add/delete/clear) to perform.</li>
10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION =
10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED";
10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: The SIM storage for SMS messages is full.  If
10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * space is not freed, messages targeted for the SIM (class 2) may
10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * not be saved.
10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SIM_FULL_ACTION =
10460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SIM_FULL";
10470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: An incoming SMS has been rejected by the
10500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * telephony framework.  This intent is sent in lieu of any
10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * of the RECEIVED_ACTION intents.  The intent will have the
10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * following extra value:</p>
10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
105529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"result"</em> - An int result code, e.g. {@link #RESULT_SMS_OUT_OF_MEMORY}
10560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   indicating the error returned to the network.</li>
10570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_REJECTED_ACTION =
10610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "android.provider.Telephony.SMS_REJECTED";
10620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1064c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * Broadcast Action: An incoming MMS has been downloaded. The intent is sent to all
1065c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * users, except for secondary users where SMS has been disabled and to managed
1066c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * profiles.
1067c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * @hide
1068c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             */
1069c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
1070c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            public static final String MMS_DOWNLOADED_ACTION =
1071c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor                "android.provider.Telephony.MMS_DOWNLOADED";
1072c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor
1073c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            /**
10740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Read the PDUs out of an {@link #SMS_RECEIVED_ACTION} or a
10750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #DATA_SMS_RECEIVED_ACTION} intent.
10760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param intent the intent to read from
10780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return an array of SmsMessages for the PDUs
10790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
1080b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static SmsMessage[] getMessagesFromIntent(Intent intent) {
10810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
10820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String format = intent.getStringExtra("format");
1083b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville                int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
1084440b44eb71b8d5afeeaa5fda8912f3a61b4c1588Wink Saville                        SubscriptionManager.getDefaultSmsSubId());
1085a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1086a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Rlog.v(TAG, " getMessagesFromIntent sub_id : " + subId);
10870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1088b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                int pduCount = messages.length;
10890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SmsMessage[] msgs = new SmsMessage[pduCount];
1090b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
10910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                for (int i = 0; i < pduCount; i++) {
1092b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    byte[] pdu = (byte[]) messages[i];
1093b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    msgs[i] = SmsMessage.createFromPdu(pdu, format);
1094a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    msgs[i].setSubId(subId);
10950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
10960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return msgs;
10970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
10980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
10990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Base columns for tables that contain MMSs.
11030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface BaseMmsColumns extends BaseColumns {
11050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1106b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: all messages. */
11070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_ALL    = 0;
1108b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: inbox. */
11090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_INBOX  = 1;
1110b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: sent messages. */
11110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_SENT   = 2;
1112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: drafts. */
11130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_DRAFTS = 3;
1114b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: outbox. */
11150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_OUTBOX = 4;
1116370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        /** Message box: failed. */
1117370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        public static final int MESSAGE_BOX_FAILED = 5;
11180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1120b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
1121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
1122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1123b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1125b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
11260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was received.
11270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
11280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
11300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was sent.
11330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
11340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The box which the message belongs to, e.g. {@link #MESSAGE_BOX_INBOX}.
11390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BOX = "msg_box";
11420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
11450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
11460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
11480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
1151b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a new message notification.
1152b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
11530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
11550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1157b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Does the message have only a text part (can also have a subject) with
1158b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * no picture, slideshow, sound, etc. parts?
1159b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
11607a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor         */
11617a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        public static final String TEXT_ONLY = "text_only";
11627a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor
11637a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        /**
1164b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Message-ID} of the message.
11650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_ID = "m_id";
11680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The subject of the message, if present.
11710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "sub";
11740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the subject, if present.
11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
11780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT_CHARSET = "sub_cs";
11800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1182b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Type} of the message.
11830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_TYPE = "ct_t";
11860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1188b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Location} of the message.
11890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
11900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_LOCATION = "ct_l";
11920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
11940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The expiry time of the message.
1195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
11960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
11970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String EXPIRY = "exp";
11980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The class of the message.
12010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_CLASS = "m_cls";
12040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The type of the message defined by MMS spec.
12070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_TYPE = "m_type";
12100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1212b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The version of the specification that this message conforms to.
12130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMS_VERSION = "v";
12160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The size of the message.
12190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_SIZE = "m_size";
12220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The priority of the message.
1225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
12260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PRIORITY = "pri";
12280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1230b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-report} of the message.
1231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_REPORT = "rr";
12340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1236b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is read report allowed?
1237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPORT_ALLOWED = "rpt_a";
12400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1242b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-status} of the message.
12430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_STATUS = "resp_st";
12460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1248b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status} of the message.
12490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "st";
12520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1254b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code transaction-id} of the message.
12550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TRANSACTION_ID = "tr_id";
12580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1260b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-status} of the message.
12610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_STATUS = "retr_st";
12640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1266b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-text} of the message.
12670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT = "retr_txt";
12700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the retrieve-text.
1273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
12740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT_CHARSET = "retr_txt_cs";
12760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1278b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-status} of the message.
12790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_STATUS = "read_status";
12820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1284b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content-class} of the message.
12850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_CLASS = "ct_cls";
12880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1290b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-report} of the message.
12910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_REPORT = "d_rpt";
12940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1296b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time-token} of the message.
12970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1301b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME_TOKEN = "d_tm_tok";
13030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1305b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time} of the message.
13060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "d_tm";
13090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-text} of the message.
13120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
13130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_TEXT = "resp_txt";
13150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1317b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code sender-visibility} of the message.
13180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1319b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1320b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SENDER_VISIBILITY = "s_vis";
13240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1326b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging} 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 = "r_chg";
13330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1335b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline-token} 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_TOKEN = "r_chg_dl_tok";
13420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1344b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline} of the message.
13450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</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_DEADLINE = "r_chg_dl";
13510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1353b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-id} of the message.
13540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</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_ID = "r_chg_id";
13600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1362b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-size} of the message.
13630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1365b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1367b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_SIZE = "r_chg_sz";
13690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1371b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-by} of the message.
13720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</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_BY = "p_s_by";
13780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1380b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-date} of the message.
13810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1382b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1383b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_DATE = "p_s_d";
13870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1389b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store} of the message.
13900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1391b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1392b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE = "store";
13960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1398b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-state} 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_STATE = "mm_st";
14050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags-token} of the message.
14080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</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_TOKEN = "mm_flg_tok";
14140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1416b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags} 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 MM_FLAGS = "mm_flg";
14230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status} 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 = "store_st";
14320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status-text} 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 STORE_STATUS_TEXT = "store_st_txt";
14410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1443b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code stored} 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 STORED = "stored";
14500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1452b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code 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 TOTALS = "totals";
14590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1461b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals} of the message.
14620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</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 = "mb_t";
14680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1470b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals-token} of the message.
14710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1472b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1473b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1475b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS_TOKEN = "mb_t_tok";
14770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1479b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code 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 QUOTAS = "qt";
14860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas} of the message.
14890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</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 = "mb_qt";
14950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas-token} 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 MBOX_QUOTAS_TOKEN = "mb_qt_tok";
15040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1506b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code message-count} 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 MESSAGE_COUNT = "m_cnt";
15130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1515b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code start} of the message.
15160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1520b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String START = "start";
15220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1524b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code distribution-indicator} 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 DISTRIBUTION_INDICATOR = "d_ind";
15310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1533b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code element-descriptor} of the message.
15340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1535b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1538b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ELEMENT_DESCRIPTOR = "e_des";
15400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1542b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code limit} 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 LIMIT = "limit";
15490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode} of the message.
15520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</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 = "r_r_mod";
15580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1560b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode-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 RECOMMENDED_RETRIEVAL_MODE_TEXT = "r_r_mod_txt";
15670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1569b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status-text} 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 STATUS_TEXT = "st_txt";
15760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code 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 APPLIC_ID = "apl_id";
15850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-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 REPLY_APPLIC_ID = "r_apl_id";
15940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1596b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code aux-applic-id} 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 AUX_APPLIC_ID = "aux_apl_id";
16030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1605b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code drm-content} 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 DRM_CONTENT = "drm_c";
16120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1614b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code adaptation-allowed} 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 ADAPTATION_ALLOWED = "adp_a";
16210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1623b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code replace-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 REPLACE_ID = "repl_id";
16300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1632b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-id} of the message.
16330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</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_ID = "cl_id";
16390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1641b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-status} of the message.
16420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1643b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1644b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1646b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_STATUS = "cl_st";
16480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1650b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
16510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
16520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
1654a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1655a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
16564b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the message belongs to. Its value will be
1657dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville         * < 0 if the sub id cannot be determined.
16584e71df52b26f87087327819c53570f60262a9c6aShri Borde         * <p>Type: INTEGER (long)</p>
1659a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
16604b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
1661a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1662b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        /**
1663dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * The identity of the sender of a sent message. It is
1664dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * usually the package name of the app which sends the message.
16653824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * <p class="note"><strong>Note:</strong>
16663824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * This column is read-only. It is set by the provider and can not be changed by apps.
1667dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <p>Type: TEXT</p>
1668b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         */
1669b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        public static final String CREATOR = "creator";
16700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
16710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1673b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Columns for the "canonical_addresses" table used by MMS and SMS.
16740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface CanonicalAddressesColumns extends BaseColumns {
16760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * An address used in MMS or SMS.  Email addresses are
16780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * converted to lower case and are compared by string
16790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * equality.  Other addresses are compared using
16800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * PHONE_NUMBERS_EQUAL.
16810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
16820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADDRESS = "address";
16840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
16850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Columns for the "threads" table used by MMS and SMS.
16880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface ThreadsColumns extends BaseColumns {
1690b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
16910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date at which the thread was created.
16930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
16940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
16950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
16960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
16980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * A string encoding of the recipient IDs of the recipients of
16990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * the message, in numerical order and separated by spaces.
17000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECIPIENT_IDS = "recipient_ids";
17030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The message count of the thread.
17060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "message_count";
1709b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether all messages of the thread have been read.
17120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
17150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The snippet of the latest message in the thread.
17180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET = "snippet";
1721b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The charset of the snippet.
17240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET_CHARSET = "snippet_cs";
1727b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1729b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Type of the thread, either {@link Threads#COMMON_THREAD} or
1730b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link Threads#BROADCAST_THREAD}.
17310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
1734b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether there is a transmission error in the thread.
17370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR = "error";
1740b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether this thread contains any attachments.
17430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String HAS_ATTACHMENT = "has_attachment";
1746e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen
1747e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        /**
1748e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         * If the thread is archived
1749dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <P>Type: INTEGER (boolean)</P>
1750e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         */
1751e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        public static final String ARCHIVED = "archived";
17520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
17530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Helper functions for the "threads" table used by MMS and SMS.
17560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Threads implements ThreadsColumns {
1758b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final String[] ID_PROJECTION = { BaseColumns._ID };
1760b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1761b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1762b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Private {@code content://} style URL for this table. Used by
1763b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link #getOrCreateThreadId(android.content.Context, java.util.Set)}.
1764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final Uri THREAD_ID_CONTENT_URI = Uri.parse(
17660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/threadID");
1767b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1768b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1769b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
1770b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.withAppendedPath(
17720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MmsSms.CONTENT_URI, "conversations");
1773b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1774b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1775b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, for obsolete threads.
1776b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri OBSOLETE_THREADS_URI = Uri.withAppendedPath(
17780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CONTENT_URI, "obsolete");
17790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1780b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: common thread. */
17810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int COMMON_THREAD    = 0;
1782b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1783b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: broadcast thread. */
17840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int BROADCAST_THREAD = 1;
17850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1786b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1787b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1788b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1789b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
17900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private Threads() {
17910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
17920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1794b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This is a single-recipient version of {@code getOrCreateThreadId}.
1795b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * It's convenient for use with SMS messages.
1796b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param context the context object to use.
1797b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param recipient the recipient to send to.
17980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(Context context, String recipient) {
18000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Set<String> recipients = new HashSet<String>();
18010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            recipients.add(recipient);
18030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return getOrCreateThreadId(context, recipients);
18040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
18070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Given the recipients list and subject of an unsaved message,
18080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * return its thread ID.  If the message starts a new thread,
18090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * allocate a new thread ID.  Otherwise, use the appropriate
18100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * existing thread ID.
18110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1812b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <p>Find the thread ID of the same set of recipients (in any order,
1813b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * without any additions). If one is found, return it. Otherwise,
1814b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * return a unique thread ID.</p>
18150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(
18170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Context context, Set<String> recipients) {
18180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
18190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            for (String recipient : recipients) {
18210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if (Mms.isEmailAddress(recipient)) {
18220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    recipient = Mms.extractAddrSpec(recipient);
18230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
18240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                uriBuilder.appendQueryParameter("recipient", recipient);
18260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
18270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri uri = uriBuilder.build();
182999c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville            //if (DEBUG) Rlog.v(TAG, "getOrCreateThreadId uri: " + uri);
18300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(),
18320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    uri, ID_PROJECTION, null, null, null);
18330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (cursor != null) {
18340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                try {
18350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    if (cursor.moveToFirst()) {
18360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        return cursor.getLong(0);
18370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    } else {
183899c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville                        Rlog.e(TAG, "getOrCreateThreadId returned no rows!");
18390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    }
18400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                } finally {
18410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    cursor.close();
18420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
18430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
18440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18453824f44a039a5be05b86acfba427638b3b1e587aYe Wen            Rlog.e(TAG, "getOrCreateThreadId failed with " + recipients.size() + " recipients");
18460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            throw new IllegalArgumentException("Unable to find or allocate a thread ID.");
18470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
18490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
18510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS messages.
18520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
18530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Mms implements BaseMmsColumns {
1854b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1856b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1857b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1858b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1859b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Mms() {
1860b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
1861b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1862b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1863b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
18640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms");
18660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1867b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1868b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report requests.
1869b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_REQUEST_URI = Uri.withAppendedPath(
18710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-request");
18720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1873b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1874b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report status.
1875b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_STATUS_URI = Uri.withAppendedPath(
18770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-status");
18780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1880b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
18810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
18830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1885b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Regex pattern for names and email addresses.
1886b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
1887b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>mailbox</em> = {@code name-addr}</li>
1888b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>name-addr</em> = {@code [display-name] angle-addr}</li>
1889b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>angle-addr</em> = {@code [CFWS] "<" addr-spec ">" [CFWS]}</li>
1890b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
1891b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
18920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Pattern NAME_ADDR_EMAIL_PATTERN =
18940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
18950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1897b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1898b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
18990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1900b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
19010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection) {
19020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
19030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1905b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1906b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1907b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1908b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1909b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
19100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection,
19110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
19120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection,
19130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    where, null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
19140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1916b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1917b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to extract email address from address string.
1918b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1919b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static String extractAddrSpec(String address) {
19210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address);
19220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (match.matches()) {
19240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return match.group(2);
19250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return address;
19270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1930b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified address an email address?
19310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1932b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param address the input address to test
1933b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if address is an email address; false otherwise.
1934b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isEmailAddress(String address) {
19370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(address)) {
19380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
19390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String s = extractAddrSpec(address);
19420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
19430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
19440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1947b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified number a phone number?
19480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1949b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param number the input number to test
1950b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if number is a phone number; false otherwise.
1951b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isPhoneNumber(String number) {
19540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(number)) {
19550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
19560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.PHONE.matcher(number);
19590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
19600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1963b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app inbox.
19640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseMmsColumns {
1966b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1967b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1968b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1969b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1970b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1971b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
1972b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1973b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
19740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1975b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
19760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
19780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/inbox");
19790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1981b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
19820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
19830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
19840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1987b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app sent folder.
19880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseMmsColumns {
1990b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
19910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1992b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
1993b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
1994b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
1995b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
1996b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
1997b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1998b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
1999b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/sent");
20030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2005b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2011b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app drafts folder.
20120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseMmsColumns {
2014b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2016b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2017b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2018b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2019b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
2020b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2021b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2022b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2023b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/drafts");
20270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2029b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2035b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app outbox.
20360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseMmsColumns {
2038b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2040b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2041b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2042b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2043b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
2044b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2045b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2046b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2047b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/outbox");
20510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2053b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2058b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2059b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains address information for an MMS message.
2060b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
20610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Addr implements BaseColumns {
2062b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2063b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2064b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2065b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2066b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2067b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Addr() {
2068b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2069b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of MM which this address entry belongs to.
2072b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
20730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
20750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of contact entry in Phone Book.
2078b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
20790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTACT_ID = "contact_id";
20810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
20830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The address text.
2084b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
20850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ADDRESS = "address";
20870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2089b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Type of address: must be one of {@code PduHeaders.BCC},
2090b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * {@code PduHeaders.CC}, {@code PduHeaders.FROM}, {@code PduHeaders.TO}.
2091b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
20920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TYPE = "type";
20940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2096b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Character set of this entry (MMS charset value).
2097b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
20980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "charset";
21000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
21010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2102b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2103b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains message parts.
2104b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Part implements BaseColumns {
2106b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2107b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2108b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2110b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2111b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Part() {
2112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2113b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The identifier of the message which this part belongs to.
21160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "mid";
21190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The order of the part.
21220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SEQ = "seq";
21250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content type of the part.
21280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_TYPE = "ct";
21310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The name of the part.
21340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String NAME = "name";
21370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The charset of the part.
21400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "chset";
21430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The file name of the part.
21460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String FILENAME = "fn";
21490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content disposition of the part.
21520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_DISPOSITION = "cd";
21550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content ID of the part.
21580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_ID = "cid";
21610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content location of the part.
21640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_LOCATION = "cl";
21670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The start of content-type of the message.
21700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_START = "ctt_s";
21730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of content-type of the message.
21760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
21770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_TYPE = "ctt_t";
21790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The location (on filesystem) of the binary data of the part.
21820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String _DATA = "_data";
21850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The message text.
2188b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2189b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
21900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TEXT = "text";
21910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
21920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2193b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2194b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message send rate table.
2195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Rate {
2197b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2198b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2200b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2201b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2202b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Rate() {
2203b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2204b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2205b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2206b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
2207b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
22090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    Mms.CONTENT_URI, "rate");
2210b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * When a message was successfully sent.
2213b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
22140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SENT_TIME = "sent_time";
22160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2218b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2219b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Intents class.
2220b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
22220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2224b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
22260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2227b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
2228b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2229b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Indicates that the contents of specified URIs were changed.
22320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The application which is showing or caching these contents
22330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * should be updated.
22340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2235b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
2236b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String CONTENT_CHANGED_ACTION
2237b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    = "android.intent.action.CONTENT_CHANGED";
2238b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * An extra field which stores the URI of deleted contents.
22410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DELETED_CONTENTS = "deleted_contents";
22430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
22450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
22470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS and SMS messages.
22480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
22490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class MmsSms implements BaseColumns {
2250b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2251b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2252b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2253b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2254b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2255b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private MmsSms() {
2256b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
2257b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2259b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The column to distinguish SMS and MMS messages in query results.
22600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
22610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE_DISCRIMINATOR_COLUMN =
22620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "transport_type";
22630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2264b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2265b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
2266b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms-sms/");
22680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2270b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
2271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_CONVERSATIONS_URI = Uri.parse(
22730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/conversations");
22740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by phone number.
2277b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_FILTER_BYPHONE_URI = Uri.parse(
22790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/messages/byphone");
22800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for undelivered messages in this table.
2283b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_UNDELIVERED_URI = Uri.parse(
22850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/undelivered");
22860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2288b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for draft messages in this table.
2289b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_DRAFT_URI = Uri.parse(
22910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/draft");
22920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2294b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for locked messages in this table.
2295b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_LOCKED_URI = Uri.parse(
22970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/locked");
22980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Pass in a query parameter called "pattern" which is the text to search for.
2301b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The sort order is fixed to be: {@code thread_id ASC, date DESC}.
23020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
23030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri SEARCH_URI = Uri.parse(
23040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/search");
23050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for message protocol types.
2307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2308b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** SMS protocol type. */
23090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int SMS_PROTO = 0;
2310b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** MMS protocol type. */
23120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MMS_PROTO = 1;
23130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for error types of pending messages.
2315b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: no error. */
23170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int NO_ERROR                      = 0;
2318b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2319b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: generic transient error. */
23200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC              = 1;
2321b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol transient error. */
23230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_TRANSIENT  = 2;
2324b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2325b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol transient error. */
23260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_TRANSIENT  = 3;
2327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: transport failure. */
23290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_TRANSPORT_FAILURE    = 4;
2330b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2331b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: permanent error (along with all higher error values). */
23320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC_PERMANENT    = 10;
2333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol permanent error. */
23350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_PERMANENT  = 11;
2336b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2337b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol permanent error. */
23380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_PERMANENT  = 12;
23390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2341b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains pending messages info.
2342b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class PendingMessages implements BaseColumns {
2344b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2345b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2346b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2347b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2348b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2349b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private PendingMessages() {
2350b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
23530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    MmsSms.CONTENT_URI, "pending");
2354b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The type of transport protocol (MMS or SMS).
23570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
23580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String PROTO_TYPE = "proto_type";
2360b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of the message to be sent or downloaded.
2363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
23640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
2366b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the message to be sent or downloaded.
2369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * This field is only valid for MM. For SM, its value is always set to 0.
2370b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
23710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_TYPE = "msg_type";
2373b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the error code.
23760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
23770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_TYPE = "err_type";
2379b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The error code of sending/retrieving process.
2382b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
23830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_CODE = "err_code";
2385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * How many times we tried to send or download the message.
2388b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
23890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String RETRY_INDEX = "retry_index";
2391b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time to do next retry.
2394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
23950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DUE_TIME = "due_time";
2397b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time we last tried to send or download the message.
2400b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
24010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String LAST_TRY = "last_try";
2403a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2404a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
24054b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * The subscription to which the message belongs to. Its value will be
2406dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville             * < 0 if the sub id cannot be determined.
2407a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * <p>Type: INTEGER (long) </p>
2408a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
24094b09dff383ae7dfca595aeeea886a594a1947340Wink Saville            public static final String SUBSCRIPTION_ID = "pending_sub_id";
24100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
24110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2412b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2413b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Words table used by provider for full-text searches.
2414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class WordsTable {
2417b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2419b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2422b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private WordsTable() {}
2423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2424b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Primary key.
2426b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2427b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ID = "_id";
2429b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2431b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Source row ID.
2432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2433b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SOURCE_ROW_ID = "source_id";
2435b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2436b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2437b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Table ID (either 1 or 2).
2438b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
2439b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TABLE_ID = "table_to_use";
2441b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2442b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2443b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The words to index.
2444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2445b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
24460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String INDEXED_TEXT = "index_text";
24470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
24480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
24490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2450b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
2451b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Carriers class contains information about APNs, including MMSC information.
2452b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
24530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Carriers implements BaseColumns {
2454b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2455b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2456b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2457b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2458b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Carriers() {}
2460b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
24630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2464b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://telephony/carriers");
24650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
24660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2467b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
24680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
24690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "name ASC";
24700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2472b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Entry name.
2473b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2474b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NAME = "name";
24760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2477b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2478b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN name.
2479b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2480b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APN = "apn";
24820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2483b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2484b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy address.
2485b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2486b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROXY = "proxy";
24880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2489b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2490b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy port.
2491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2492b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PORT = "port";
24940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2495b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2496b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy address.
2497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2498b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPROXY = "mmsproxy";
25000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2501b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2502b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy port.
2503b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPORT = "mmsport";
25060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2507b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Server address.
2509b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2510b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVER = "server";
25120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2514b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN username.
2515b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String USER = "user";
25180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2519b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2520b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN password.
2521b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2522b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PASSWORD = "password";
25240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2525b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMSC URL.
2527b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2528b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSC = "mmsc";
25300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2532b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Country Code (MCC).
2533b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2534b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MCC = "mcc";
25360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2537b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2538b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Network Code (MNC).
2539b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2540b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MNC = "mnc";
25420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2543b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2544b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Numeric operator ID (as String). Usually {@code MCC + MNC}.
2545b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2546b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NUMERIC = "numeric";
25480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2550b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Authentication type.
2551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type:  INTEGER</P>
2552b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUTH_TYPE = "authtype";
25540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2555b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2556b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Comma-delimited list of APN types.
2557b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
25600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2562b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN.
25630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
2564b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * One of the {@code PDP_type} values in TS 27.007 section 10.1.1.
2565b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * For example: {@code IP}, {@code IPV6}, {@code IPV4V6}, or {@code PPP}.
2566b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
25670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
25690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN when roaming.
2572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The syntax is the same as protocol.
2573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2574b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ROAMING_PROTOCOL = "roaming_protocol";
25760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2577b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this the current APN?
2579b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2580b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CURRENT = "current";
25820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2584b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this APN enabled?
2585b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2586b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CARRIER_ENABLED = "carrier_enabled";
25880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2590b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Radio Access Technology info.
2591b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * To check what values are allowed, refer to {@link android.telephony.ServiceState}.
2592b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This should be spread to other technologies,
2593b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * but is currently only used for LTE (14) and eHRPD (13).
2594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
2595b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BEARER = "bearer";
2597a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2598a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2599aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * Radio Access Technology bitmask.
2600aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * To check what values can be contained, refer to {@link android.telephony.ServiceState}.
2601aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * 0 indicates all techs otherwise first bit refers to RAT/bearer 1, second bit refers to
2602aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * RAT/bearer 2 and so on.
2603aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * Bitmask for a radio tech R is (1 << (R - 1))
2604aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * <P>Type: INTEGER</P>
2605760b9b8e6659562de17d774f6f799ef08c1898f8Amit Mahajan         * @hide
2606aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         */
2607aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan        public static final String BEARER_BITMASK = "bearer_bitmask";
2608aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan
2609aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan        /**
2610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO type:
2611b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}.
2612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2613b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2614a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_TYPE = "mvno_type";
2615a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2616a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2617b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO data.
2618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Use the following examples.
2619b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
2620b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>SPN: A MOBILE, BEN NL, ...</li>
2621b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>IMSI: 302720x94, 2060188, ...</li>
2622b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>GID: 4E, 33, ...</li>
2623b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
2624b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2625b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2626a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_MATCH_DATA = "mvno_match_data";
2627a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2628a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
26294b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the APN belongs to
2630a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER (long) </p>
2631a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
26324b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
2633a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
26349d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26359d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The profile_id to which the APN saved in modem
26369d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26379d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26389d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26399d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String PROFILE_ID = "profile_id";
26409d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26419d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26429d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * Is the apn setting to be set in modem
26439d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <P>Type: INTEGER (boolean)</P>
26449d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26459d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26469d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MODEM_COGNITIVE = "modem_cognitive";
26479d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26489d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26499d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The max connections of this apn
26509d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26519d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26529d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26539d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS = "max_conns";
26549d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26559d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26569d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The wait time for retry of the apn
26579d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26589d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26599d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26609d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String WAIT_TIME = "wait_time";
26619d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
26629d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
26639d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The time to limit max connection for the apn
26649d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
26659d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
26669d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
26679d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS_TIME = "max_conns_time";
26689d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
2669e9701717e43cc5aacbcf624f77a53be92350662cw        /**
2670e9701717e43cc5aacbcf624f77a53be92350662cw         * The MTU size of the mobile interface to  which the APN connected
2671e9701717e43cc5aacbcf624f77a53be92350662cw         * <p>Type: INTEGER </p>
2672e9701717e43cc5aacbcf624f77a53be92350662cw         * @hide
2673e9701717e43cc5aacbcf624f77a53be92350662cw         */
2674e9701717e43cc5aacbcf624f77a53be92350662cw        public static final String MTU = "mtu";
2675325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan
2676325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan        /**
2677a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * Is this APN added/edited/deleted by a user or carrier?
2678325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan         * <p>Type: INTEGER </p>
2679325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan         * @hide
2680325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan         */
2681aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan        public static final String EDITED = "edited";
2682a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan
2683a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2684a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * Following are possible values for the EDITED field
2685a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * @hide
2686a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2687a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int UNEDITED = 0;
2688a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2689a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2690a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2691a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int USER_EDITED = 1;
2692a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2693a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2694a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2695a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int USER_DELETED = 2;
2696a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2697a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * DELETED_BUT_PRESENT is an intermediate value used to indicate that an entry deleted
2698a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * by the user is still present in the new APN database and therefore must remain tagged
2699a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * as user deleted rather than completely removed from the database
2700a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * @hide
2701a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2702a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int USER_DELETED_BUT_PRESENT_IN_XML = 3;
2703a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2704a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2705a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2706a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int CARRIER_EDITED = 4;
2707a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2708a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * CARRIER_DELETED values are currently not used as there is no usecase. If they are used,
2709a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * delete() will have to change accordingly. Currently it is hardcoded to USER_DELETED.
2710a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * @hide
2711a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2712a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int CARRIER_DELETED = 5;
2713a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2714a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2715a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2716a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int CARRIER_DELETED_BUT_PRESENT_IN_XML = 6;
27170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
27180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
27200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains received SMS cell broadcast messages.
2721b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
27220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
27230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class CellBroadcasts implements BaseColumns {
27240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2725b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2726b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2727b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2728b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
27290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private CellBroadcasts() {}
27300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2732b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
27330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2734b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts");
27350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message geographical scope.
27380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String GEOGRAPHICAL_SCOPE = "geo_scope";
27410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message serial number.
27440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERIAL_NUMBER = "serial_number";
27470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2749b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * PLMN of broadcast sender. {@code SERIAL_NUMBER + PLMN + LAC + CID} uniquely identifies
2750b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * a broadcast for duplicate detection purposes.
27510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
27520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PLMN = "plmn";
27540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Location Area (GSM) or Service Area (UMTS) of broadcast sender. Unused for CDMA.
27570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Only included if Geographical Scope of message is not PLMN wide (01).
27580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LAC = "lac";
27610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Cell ID of message sender (GSM/UMTS). Unused for CDMA. Only included when the
27640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Geographical Scope of message is cell wide (00 or 11).
27650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CID = "cid";
27680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2770b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message code. <em>OBSOLETE: merged into SERIAL_NUMBER.</em>
27710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_CODE = "message_code";
27740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2776b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message identifier. <em>OBSOLETE: renamed to SERVICE_CATEGORY.</em>
27770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_IDENTIFIER = "message_id";
27800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2782b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Service category (GSM/UMTS: message identifier; CDMA: service category).
27830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
27840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CATEGORY = "service_category";
27860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message language code.
27890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
27900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LANGUAGE_CODE = "language";
27920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
27940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message body.
27950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
27960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
27970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BODY = "body";
27980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
27990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message delivery time.
28010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
28020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "date";
28040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Has the message been viewed?
28070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
28080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_READ = "read";
28100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message format (3GPP or 3GPP2).
28130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_FORMAT = "format";
28160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message priority (including emergency).
28190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_PRIORITY = "priority";
28220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * ETWS warning type (ETWS alerts only).
28250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ETWS_WARNING_TYPE = "etws_warning_type";
28280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS message class (CMAS alerts only).
28310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_MESSAGE_CLASS = "cmas_message_class";
28340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS category (CMAS alerts only).
28370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CATEGORY = "cmas_category";
28400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS response type (CMAS alerts only).
28430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_RESPONSE_TYPE = "cmas_response_type";
28460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS severity (CMAS alerts only).
28490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_SEVERITY = "cmas_severity";
28520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS urgency (CMAS alerts only).
28550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_URGENCY = "cmas_urgency";
28580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS certainty (CMAS alerts only).
28610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CERTAINTY = "cmas_certainty";
28640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2865b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** The default sort order for this table. */
28660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = DELIVERY_TIME + " DESC";
28670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects.
28700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String[] QUERY_COLUMNS = {
28720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                _ID,
28730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                GEOGRAPHICAL_SCOPE,
28740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                PLMN,
28750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LAC,
28760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CID,
28770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERIAL_NUMBER,
28780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERVICE_CATEGORY,
28790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LANGUAGE_CODE,
28800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_BODY,
28810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                DELIVERY_TIME,
28820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_READ,
28830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_FORMAT,
28840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_PRIORITY,
28850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ETWS_WARNING_TYPE,
28860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_MESSAGE_CLASS,
28870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CATEGORY,
28880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_RESPONSE_TYPE,
28890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_SEVERITY,
28900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_URGENCY,
28910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CERTAINTY
28920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        };
28930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
28940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
2895