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;
213af57fefff3fc28e8f1f7e6431d1228009c5210cJeff Sharkeyimport android.annotation.TestApi;
225c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport android.content.ComponentName;
230825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentResolver;
240825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.ContentValues;
250825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Context;
260825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.content.Intent;
270825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.Cursor;
280825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.database.sqlite.SqliteWrapper;
290825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.net.Uri;
300825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.telephony.SmsMessage;
31a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport android.telephony.SubscriptionManager;
320825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.text.TextUtils;
3399c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Savilleimport android.telephony.Rlog;
340825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport android.util.Patterns;
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
36a8467dd0c524787104b1ccdddc5e8af10ba729edWink Savilleimport com.android.internal.telephony.PhoneConstants;
375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braunimport com.android.internal.telephony.SmsApplication;
385c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.HashSet;
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.Set;
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Matcher;
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport java.util.regex.Pattern;
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
46b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * The Telephony provider contains data related to phone operation, specifically SMS and MMS
47b47af9b263628c00b1c890f102091098a31463c0Jake Hamby * messages and access to the APN list, including the MMSC to use.
4829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
4929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p class="note"><strong>Note:</strong> These APIs are not available on all Android-powered
5029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * devices. If your app depends on telephony features such as for managing SMS messages, include
51801f831458747c55b58dc0c33d156267339eb822Neil Fuller * a <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}
5229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </a> element in your manifest that declares the {@code "android.hardware.telephony"} hardware
5329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * feature. Alternatively, you can check for telephony availability at runtime using either
5429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.pm.PackageManager#hasSystemFeature
5529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * hasSystemFeature(PackageManager.FEATURE_TELEPHONY)} or {@link
5629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#getPhoneType}.</p>
5729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
5829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <h3>Creating an SMS app</h3>
5929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
6029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Only the default SMS app (selected by the user in system settings) is able to write to the
6129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * SMS Provider (the tables defined within the {@code Telephony} class) and only the default SMS
6229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * app receives the {@link android.provider.Telephony.Sms.Intents#SMS_DELIVER_ACTION} broadcast
6329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * when the user receives an SMS or the {@link
6429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.provider.Telephony.Sms.Intents#WAP_PUSH_DELIVER_ACTION} broadcast when the user
6529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * receives an MMS.</p>
6629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
6729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Any app that wants to behave as the user's default SMS app must handle the following intents:
6829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <ul>
6929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link Sms.Intents#SMS_DELIVER_ACTION}
7029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.provider.Telephony.SMS_DELIVER"</code>). The broadcast receiver must also
7129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * require the {@link android.Manifest.permission#BROADCAST_SMS} permission.
7229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming SMS messages.</p></li>
7329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a broadcast receiver, include an intent filter for {@link
7429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#WAP_PUSH_DELIVER_ACTION}} ({@code "android.provider.Telephony.WAP_PUSH_DELIVER"})
7529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * with the MIME type <code>"application/vnd.wap.mms-message"</code>.
7629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * The broadcast receiver must also require the {@link
7729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#BROADCAST_WAP_PUSH} permission.
7829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to directly receive incoming MMS messages.</p></li>
7929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In your activity that delivers new messages, include an intent filter for
8029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * {@link android.content.Intent#ACTION_SENDTO} (<code>"android.intent.action.SENDTO"
8129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </code>) with schemas, <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and
8229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>mmsto:</code>.
8329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows your app to receive intents from other apps that want to deliver a
8429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * message.</p></li>
8529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <li>In a service, include an intent filter for {@link
8629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.telephony.TelephonyManager#ACTION_RESPOND_VIA_MESSAGE}
8729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * (<code>"android.intent.action.RESPOND_VIA_MESSAGE"</code>) with schemas,
8829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <code>sms:</code>, <code>smsto:</code>, <code>mms:</code>, and <code>mmsto:</code>.
8929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * This service must also require the {@link
9029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * android.Manifest.permission#SEND_RESPOND_VIA_MESSAGE} permission.
9129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>This allows users to respond to incoming phone calls with an immediate text message
9229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * using your app.</p></li>
9329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * </ul>
9429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
9529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>Other apps that are not selected as the default SMS app can only <em>read</em> the SMS
9629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Provider, but may also be notified when a new SMS arrives by listening for the {@link
9729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * Sms.Intents#SMS_RECEIVED_ACTION}
9829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast, which is a non-abortable broadcast that may be delivered to multiple apps. This
9929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * broadcast is intended for apps that&mdash;while not selected as the default SMS app&mdash;need to
10029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * read special incoming messages such as to perform phone number verification.</p>
10129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
10229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * <p>For more information about building SMS apps, read the blog post, <a
10329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * href="http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html"
10429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main * >Getting Your SMS Apps Ready for KitKat</a>.</p>
10529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main *
1060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
1070825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic final class Telephony {
1080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    private static final String TAG = "Telephony";
1090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
110b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
111b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Not instantiable.
112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
113b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
114b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    private Telephony() {
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
118b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Base columns for tables that contain text-based SMSs.
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface TextBasedSmsColumns {
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
122b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: all messages. */
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_ALL    = 0;
124b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
125b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: inbox. */
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_INBOX  = 1;
127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
128b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: sent messages. */
1290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_SENT   = 2;
130b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
131b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: drafts. */
1320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_DRAFT  = 3;
133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
134b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: outbox. */
1350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_TYPE_OUTBOX = 4;
136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
137b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: failed outgoing message. */
138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_FAILED = 5;
139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
140b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message type: queued to send later. */
141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final int MESSAGE_TYPE_QUEUED = 6;
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
144b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The type of message.
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
147b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String TYPE = "type";
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
150b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
151b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
153b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
156b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The address of the other party.
157b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
159b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String ADDRESS = "address";
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
162b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was received.
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
168b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The date the message was sent.
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
174b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a notification.
182b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code TP-Status} value for the message, or -1 if no status has been received.
188b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "status";
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
192b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: no status received. */
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_NONE = -1;
194b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: complete. */
1950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_COMPLETE = 0;
196b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: pending. */
1970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_PENDING = 32;
198b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** TP-Status: failed. */
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int STATUS_FAILED = 64;
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
202b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The subject of the message, if present.
2030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "subject";
2060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
208b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The body of the message.
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BODY = "body";
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
214b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The ID of the sender of the conversation, if present.
215b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (reference to item in {@code content://contacts/people})</P>
2160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PERSON = "person";
2180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
220b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol identifier code.
2210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
2240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
226b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the {@code TP-Reply-Path} flag set?
2270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: BOOLEAN</P>
2280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_PATH_PRESENT = "reply_path_present";
2300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
232b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The service center (SC) through which to send the message, if present.
2330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
2340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CENTER = "service_center";
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
238b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2444b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the message belongs to. Its value will be
245dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville         * < 0 if the sub id cannot be determined.
246a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER (long) </p>
247a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
2484b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
249a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
250a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
251e9701717e43cc5aacbcf624f77a53be92350662cw         * The MTU size of the mobile interface to which the APN connected
252e9701717e43cc5aacbcf624f77a53be92350662cw         * @hide
253e9701717e43cc5aacbcf624f77a53be92350662cw         */
254e9701717e43cc5aacbcf624f77a53be92350662cw        public static final String MTU = "mtu";
255e9701717e43cc5aacbcf624f77a53be92350662cw
256e9701717e43cc5aacbcf624f77a53be92350662cw        /**
257a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Error code associated with sending or receiving this message
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR_CODE = "error_code";
261b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen
262b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        /**
263dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * The identity of the sender of a sent message. It is
264dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * usually the package name of the app which sends the message.
2653824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * <p class="note"><strong>Note:</strong>
2663824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * This column is read-only. It is set by the provider and can not be changed by apps.
267dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <p>Type: TEXT</p>
268b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         */
269b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        public static final String CREATOR = "creator";
2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Contains all text-based SMS messages.
2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Sms implements BaseColumns, TextBasedSmsColumns {
276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
277b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
278b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
279b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Sms() {
282b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
283b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
28468b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        /**
28568b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * Used to determine the currently configured default SMS package.
28668b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @param context context of the requesting application
28768b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         * @return package name for the default SMS package or null
28868b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun         */
28968b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        public static String getDefaultSmsPackage(Context context) {
29068b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            ComponentName component = SmsApplication.getDefaultSmsApplication(context, false);
29168b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            if (component != null) {
29268b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun                return component.getPackageName();
29368b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            }
29468b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun            return null;
29568b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun        }
29668b1cdcce7ac53015c8b5ecbcfb9ce9d1ad5d172David Braun
297b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
300b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
301b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection) {
3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
305b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
306b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Return cursor for table query.
307b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
308b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
309b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(ContentResolver cr, String[] projection,
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, where,
312b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
318b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://sms");
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
321b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Add an SMS to the given URI.
3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
332b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
337b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport) {
342960c250fc2afee078852df1f37a887cec848ec5dShishir Agrawal            return addMessageToUri(SubscriptionManager.getDefaultSmsSubscriptionId(),
343a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    resolver, uri, address, body, subject, date, read, deliveryReport, -1L);
344a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        }
345a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
346a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
347a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Add an SMS to the given URI.
348a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         *
349a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param resolver the content resolver to use
350a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param uri the URI to add the message to
351a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param address the address of the sender
352a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param body the body of the message
353a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subject the psuedo-subject of the message
354a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param date the timestamp for the message
355a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param read true if the message has been read, false if not
356a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3574b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * @param subId the subscription which the message belongs to
358a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @return the URI for the new message
359a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
360a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
361b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville        public static Uri addMessageToUri(int subId, ContentResolver resolver,
362a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Uri uri, String address, String body, String subject,
363a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Long date, boolean read, boolean deliveryReport) {
364a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            return addMessageToUri(subId, resolver, uri, address, body, subject,
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    date, read, deliveryReport, -1L);
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Add an SMS to the given URI with the specified thread ID.
3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param resolver the content resolver to use
3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the URI to add the message to
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param address the address of the sender
3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param body the body of the message
375b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param subject the pseudo-subject of the message
3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param date the timestamp for the message
3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param read true if the message has been read, false if not
3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param deliveryReport true if a delivery report was requested, false if not
3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param threadId the thread_id of the message
3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return the URI for the new message
381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static Uri addMessageToUri(ContentResolver resolver,
3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, String address, String body, String subject,
3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Long date, boolean read, boolean deliveryReport, long threadId) {
386960c250fc2afee078852df1f37a887cec848ec5dShishir Agrawal            return addMessageToUri(SubscriptionManager.getDefaultSmsSubscriptionId(),
387a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    resolver, uri, address, body, subject,
388a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    date, read, deliveryReport, threadId);
389a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        }
390a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
391a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
392a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * Add an SMS to the given URI with thread_id specified.
393a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         *
394a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param resolver the content resolver to use
395a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param uri the URI to add the message to
396a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param address the address of the sender
397a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param body the body of the message
398a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param subject the psuedo-subject of the message
399a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param date the timestamp for the message
400a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param read true if the message has been read, false if not
401a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param deliveryReport true if a delivery report was requested, false if not
402a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @param threadId the thread_id of the message
4034b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * @param subId the subscription which the message belongs to
404a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @return the URI for the new message
405a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * @hide
406a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
407b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville        public static Uri addMessageToUri(int subId, ContentResolver resolver,
408a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Uri uri, String address, String body, String subject,
409a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Long date, boolean read, boolean deliveryReport, long threadId) {
410a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            ContentValues values = new ContentValues(8);
411a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            Rlog.v(TAG,"Telephony addMessageToUri sub id: " + subId);
4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4134b09dff383ae7dfca595aeeea886a594a1947340Wink Saville            values.put(SUBSCRIPTION_ID, subId);
4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ADDRESS, address);
4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (date != null) {
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(DATE, date);
4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(READ, read ? Integer.valueOf(1) : Integer.valueOf(0));
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(SUBJECT, subject);
4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(BODY, body);
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (deliveryReport) {
4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(STATUS, STATUS_PENDING);
4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (threadId != -1L) {
4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                values.put(THREAD_ID, threadId);
4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return resolver.insert(uri, values);
4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Move a message to the given folder.
4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param context the context to use
4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param uri the message to move
4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @param folder the folder to move to
4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * @return true if the operation succeeded
437b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean moveMessageToFolder(Context context,
4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Uri uri, int folder, int error) {
4410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (uri == null) {
4420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
4430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsUnread = false;
4460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            boolean markAsRead = false;
4470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            switch(folder) {
4480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_INBOX:
4490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_DRAFT:
4500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_OUTBOX:
4520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_SENT:
4530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsRead = true;
4540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_FAILED:
4560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            case MESSAGE_TYPE_QUEUED:
4570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                markAsUnread = true;
4580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                break;
4590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            default:
4600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
4610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            ContentValues values = new ContentValues(3);
4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(TYPE, folder);
4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (markAsUnread) {
467b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 0);
4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            } else if (markAsRead) {
469b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                values.put(READ, 1);
4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            values.put(ERROR_CODE, error);
4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return 1 == SqliteWrapper.update(context, context.getContentResolver(),
4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                            uri, values, null, null);
4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Returns true iff the folder (message type) identifies an
4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * outgoing message.
480b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isOutgoingFolder(int messageType) {
4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return  (messageType == MESSAGE_TYPE_FAILED)
4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_OUTBOX)
4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_SENT)
4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    || (messageType == MESSAGE_TYPE_QUEUED);
4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
490b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all text-based SMS messages in the SMS app inbox.
4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseColumns, TextBasedSmsColumns {
493b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
495b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
496b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
498b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
502b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
503b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/inbox");
505b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
506b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
507b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
5160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param read true if the message has been read, false if not
5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
521b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean read) {
526960c250fc2afee078852df1f37a887cec848ec5dShishir Agrawal                return addMessageToUri(SubscriptionManager.getDefaultSmsSubscriptionId(),
527a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, read, false);
528a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
529a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
530a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
531a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
532a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
533a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
534a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
535a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
536a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
537a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
538a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param read true if the message has been read, false if not
5394b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
540a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
541a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
542a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
543b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
544a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date, boolean read) {
545a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, read, false);
5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseColumns, TextBasedSmsColumns {
554b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
555b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
556b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
557b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
559b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
560b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
561b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
563b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
565b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/sent");
5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
568b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Add an SMS to the Draft box.
5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
581b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date) {
585960c250fc2afee078852df1f37a887cec848ec5dShishir Agrawal                return addMessageToUri(SubscriptionManager.getDefaultSmsSubscriptionId(),
586a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, true, false);
587a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
588a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
589a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
590a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
591a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
592a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
593a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
594a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
595a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
596a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
5974b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
598a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
599a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
600a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
601b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
602a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
603a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, false);
6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseColumns, TextBasedSmsColumns {
6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
614b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
615b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
617b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
621b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
623b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/draft");
6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
625a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville           /**
626a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            * @hide
627a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            */
628a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            public static Uri addMessage(ContentResolver resolver,
629a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
630960c250fc2afee078852df1f37a887cec848ec5dShishir Agrawal                return addMessageToUri(SubscriptionManager.getDefaultSmsSubscriptionId(),
631a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date, true, false);
632a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
633a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
634a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
635a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Draft box.
636a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
637a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
638a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
639a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
640a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
641a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
6424b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
643a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
644a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
645a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
646b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
647a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date) {
648a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
649a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        subject, date, true, false);
650a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
651a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
6520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
653b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
654b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
655b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String DEFAULT_SORT_ORDER = "date DESC";
6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
6570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
659b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all pending outgoing text-based SMS messages.
6600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
6610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseColumns, TextBasedSmsColumns {
662b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
663b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
664b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
665b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
666b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
667b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
669b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
671b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
6720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
673b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/outbox");
6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
676b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
6770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
6790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
681b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Add an SMS to the outbox.
6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param resolver the content resolver to use
6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param address the address of the sender
6850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param body the body of the message
686b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @param subject the pseudo-subject of the message
6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param date the timestamp for the message
6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param deliveryReport whether a delivery report was requested for the message
6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return the URI for the new message
690b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
6920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static Uri addMessage(ContentResolver resolver,
6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    String address, String body, String subject, Long date,
6940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    boolean deliveryReport, long threadId) {
695960c250fc2afee078852df1f37a887cec848ec5dShishir Agrawal                return addMessageToUri(SubscriptionManager.getDefaultSmsSubscriptionId(),
696a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        resolver, CONTENT_URI, address, body, subject, date,
697a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                        true, deliveryReport, threadId);
698a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            }
699a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
700a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
701a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * Add an SMS to the Out box.
702a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             *
703a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param resolver the content resolver to use
704a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param address the address of the sender
705a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param body the body of the message
706a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param subject the psuedo-subject of the message
707a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param date the timestamp for the message
708a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @param deliveryReport whether a delivery report was requested for the message
7094b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * @param subId the subscription which the message belongs to
710a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @return the URI for the new message
711a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * @hide
712a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
713b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville            public static Uri addMessage(int subId, ContentResolver resolver,
714a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    String address, String body, String subject, Long date,
715a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                    boolean deliveryReport, long threadId) {
716a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                return addMessageToUri(subId, resolver, CONTENT_URI, address, body,
7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        subject, date, true, deliveryReport, threadId);
7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
722b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all sent text-based SMS messages in the SMS app.
7230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
7240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Conversations
7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                implements BaseColumns, TextBasedSmsColumns {
726b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
7270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
728b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
729b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
7300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
731b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Conversations() {
732b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
733b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
734b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
735b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
736b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
737b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final Uri CONTENT_URI = Uri.parse("content://sms/conversations");
7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
740b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
745b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The first 45 characters of the body of the message.
7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SNIPPET = "snippet";
7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
751b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The number of messages in the conversation.
7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MESSAGE_COUNT = "msg_count";
7550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
7560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
758b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains constants for SMS related Intents that are broadcast.
7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
761b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
763b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
765b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
766b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
767b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
768b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
769b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
770b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message was handled
7710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * successfully.
7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_HANDLED = 1;
7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
776b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a generic error while
7770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * processing the message.
7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_GENERIC_ERROR = 2;
7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
782b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate insufficient memory to store
7830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * the message.
7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_OUT_OF_MEMORY = 3;
7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
788b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate that the message, while
7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * possibly valid, is of a format or encoding that is not
7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * supported.
7910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final int RESULT_SMS_UNSUPPORTED = 4;
7930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
795b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Set by BroadcastReceiver to indicate a duplicate incoming message.
79690271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi             */
79790271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            public static final int RESULT_SMS_DUPLICATED = 5;
79890271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi
79990271d9ef1377b25b78359039fb2e87f32aba25bSungmin Choi            /**
8005c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Activity action: Ask the user to change the default
8015c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application. This will show a dialog that asks the
8025c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * user whether they want to replace the current default
8035c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * SMS application with the one specified in
8045c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #EXTRA_PACKAGE_NAME}.
8055c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8065c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
8075c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String ACTION_CHANGE_DEFAULT =
8085c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.ACTION_CHANGE_DEFAULT";
8095c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8105c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
8115c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * The PackageName string passed in as an
8125c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * extra for {@link #ACTION_CHANGE_DEFAULT}
8135c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8145c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * @see #ACTION_CHANGE_DEFAULT
8155c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8165c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String EXTRA_PACKAGE_NAME = "package";
8175c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8185c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
819b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
8205c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will only be delivered to the default
8215c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
8225c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
8235c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8245c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
82529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8265c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   that make up the message.</li>
82754f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"format"</em> - A String describing the format of the PDUs. It can
82854f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   be either "3gpp" or "3gpp2".</li>
82954f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"subscription"</em> - An optional long value of the subscription id which
83054f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   received the message.</li>
83154f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"slot"</em> - An optional int value of the SIM slot containing the
83254f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
83354f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"phone"</em> - An optional int value of the phone id associated with the
83454f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
83554f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"errorCode"</em> - An optional int error code associated with receiving
83654f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   the message.</li>
8375c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
8385c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8395c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The extra values can be extracted using
8405c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * {@link #getMessagesFromIntent(Intent)}.</p>
8415c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
8425c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
8435c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
84429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
84529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
84629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
84729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_SMS} as a required permission in
84829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
849801f831458747c55b58dc0c33d156267339eb822Neil Fuller             * <receiver>}</a> tag.
8503f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
8513f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_SMS} to receive.</p>
8525c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
8535c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8545c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String SMS_DELIVER_ACTION =
8555c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.SMS_DELIVER";
8565c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
8575c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
858b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Broadcast Action: A new text-based SMS message has been received
8595c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
8605c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
8615c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
8620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
86529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
8670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8743f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
8753f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_SMS} to receive.</p>
8760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
8780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_RECEIVED_ACTION =
8790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_RECEIVED";
8800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new data based SMS message has been received
8835c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * by the device. This intent will be delivered to all registered
8845c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. The intent will have the following extra
8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
8860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
88829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pdus"</em> - An Object[] of byte[]s containing the PDUs
8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   that make up the message.</li>
8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
8910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
8960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
8973f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
8983f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_SMS} to receive.</p>
8990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DATA_SMS_RECEIVED_ACTION =
9020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.intent.action.DATA_SMS_RECEIVED";
9030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new WAP PUSH message has been received by the
9065c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will only be delivered to the default
9075c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * sms app. That app is responsible for writing the message and notifying
9085c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * the user. The intent will have the following extra values:</p>
9095c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9105c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <ul>
91129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
91229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
91329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
91429305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
91529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters" </em>
91629305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   -(HashMap&lt;String,String&gt;) Any parameters associated with the content type
9175c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *   (decoded from the WSP Content-Type header)</li>
91854f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"subscription"</em> - An optional long value of the subscription id which
91954f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   received the message.</li>
92054f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"slot"</em> - An optional int value of the SIM slot containing the
92154f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
92254f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   <li><em>"phone"</em> - An optional int value of the phone id associated with the
92354f09e2a595c872800e061c6212265c26aef9a3dShri Borde             *   subscription.</li>
9245c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * </ul>
9255c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9265c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If a BroadcastReceiver encounters an error while processing
9275c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * this intent it should set the result code appropriately.</p>
9285c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9295c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>The contentTypeParameters extra value is map of content parameters keyed by
9305c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * their names.</p>
9315c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             *
9325c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * <p>If any unassigned well-known parameters are encountered, the key of the map will
9335c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
9345c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * a parameter has No-Value the value in the map will be null.</p>
93529305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *
9363f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_MMS} or
9373f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * {@link android.Manifest.permission#RECEIVE_WAP_PUSH} (depending on WAP PUSH type) to
9383f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * receive.</p>
9393f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
94029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * <p class="note"><strong>Note:</strong>
94129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * The broadcast receiver that filters for this intent must declare
94229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * {@link android.Manifest.permission#BROADCAST_WAP_PUSH} as a required permission in
94329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             * the <a href="{@docRoot}guide/topics/manifest/receiver-element.html">{@code
944801f831458747c55b58dc0c33d156267339eb822Neil Fuller             * <receiver>}</a> tag.
9455c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             */
9465c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9475c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            public static final String WAP_PUSH_DELIVER_ACTION =
9485c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun                    "android.provider.Telephony.WAP_PUSH_DELIVER";
9495c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun
9505c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun            /**
9515c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * Broadcast Action: A new WAP PUSH message has been received by the
9525c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * device. This intent will be delivered to all registered
9535c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * receivers as a notification. These apps are not expected to write the
9545c3b6658d82f3af57161d5a34385dd95ea0f1abbDavid Braun             * message or notify the user. The intent will have the following extra
9550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
9560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
95829305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"transactionId"</em> - (Integer) The WAP transaction ID</li>
95929305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"pduType"</em> - (Integer) The WAP PDU type</li>
96029305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"header"</em> - (byte[]) The header of the message</li>
96129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"data"</em> - (byte[]) The data payload of the message</li>
96229305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"contentTypeParameters"</em>
96329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   - (HashMap&lt;String,String&gt;) Any parameters associated with the content type
9640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   (decoded from the WSP Content-Type header)</li>
9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The contentTypeParameters extra value is map of content parameters keyed by
9710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * their names.</p>
9720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If any unassigned well-known parameters are encountered, the key of the map will
9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * be 'unassigned/0x...', where '...' is the hex value of the unassigned parameter.  If
9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * a parameter has No-Value the value in the map will be null.</p>
9763f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
9773f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_MMS} or
9783f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * {@link android.Manifest.permission#RECEIVE_WAP_PUSH} (depending on WAP PUSH type) to
9793f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * receive.</p>
9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
9810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String WAP_PUSH_RECEIVED_ACTION =
9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.WAP_PUSH_RECEIVED";
9840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
9860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Cell Broadcast message has been received
9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
9880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
99129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
9920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data. This is not an emergency alert, so ETWS and CMAS data will be null.</li>
9930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
9940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
9960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
9970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
9980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
9990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10003f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
10013f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_SMS} to receive.</p>
10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_CB_RECEIVED_ACTION =
10050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_CB_RECEIVED";
10060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10083817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             * Action: A SMS based carrier provision intent. Used to identify default
10093817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             * carrier provisioning app on the device.
10103817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             * @hide
10113817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu             */
10123817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10133af57fefff3fc28e8f1f7e6431d1228009c5210cJeff Sharkey            @TestApi
10143817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu            public static final String SMS_CARRIER_PROVISION_ACTION =
10153817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu                    "android.provider.Telephony.SMS_CARRIER_PROVISION";
10163817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu
10173817cc94c781b78c9f52d9483e8426bbb9c5d1b5Junda Liu            /**
10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new Emergency Broadcast message has been received
10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * by the device. The intent will have the following extra
10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * values:</p>
10210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
102329305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"message"</em> - An SmsCbMessage object containing the broadcast message
10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   data, including ETWS or CMAS warning notification info if present.</li>
10250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
103240d4a848248bb4f6af6aeb32a849f33413f0c521Amit Mahajan             *
10333f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_EMERGENCY_BROADCAST} to
10343f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * receive.</p>
103540d4a848248bb4f6af6aeb32a849f33413f0c521Amit Mahajan             * @removed
10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_EMERGENCY_CB_RECEIVED_ACTION =
10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_EMERGENCY_CB_RECEIVED";
10400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: A new CDMA SMS has been received containing Service Category
10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Program Data (updates the list of enabled broadcast channels). The intent will
10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * have the following extra values:</p>
10450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
104729305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"operations"</em> - An array of CdmaSmsCbProgramData objects containing
10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   the service category operations (add/delete/clear) to perform.</li>
10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>The extra values can be extracted using
10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #getMessagesFromIntent(Intent)}.</p>
10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <p>If a BroadcastReceiver encounters an error while processing
10550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * this intent it should set the result code appropriately.</p>
10563f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
10573f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_SMS} to receive.</p>
10580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED_ACTION =
10610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SMS_SERVICE_CATEGORY_PROGRAM_DATA_RECEIVED";
10620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: The SIM storage for SMS messages is full.  If
10650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * space is not freed, messages targeted for the SIM (class 2) may
10660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * not be saved.
10673f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
10683f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_SMS} to receive.</p>
10690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SIM_FULL_ACTION =
10720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    "android.provider.Telephony.SIM_FULL";
10730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
10750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Broadcast Action: An incoming SMS has been rejected by the
10760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * telephony framework.  This intent is sent in lieu of any
10770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * of the RECEIVED_ACTION intents.  The intent will have the
10780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * following extra value:</p>
10790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
10800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <ul>
108129305a0d8e45e8b6731ab91e59fcba7a4d6ff766Scott Main             *   <li><em>"result"</em> - An int result code, e.g. {@link #RESULT_SMS_OUT_OF_MEMORY}
10820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *   indicating the error returned to the network.</li>
10830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * </ul>
10843f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             *
10853f3c4d9f3ba369a5a067d5e56529d9bb6978a445Amit Mahajan             * <p>Requires {@link android.Manifest.permission#RECEIVE_SMS} to receive.</p>
10860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
10870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
10880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SMS_REJECTED_ACTION =
10890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "android.provider.Telephony.SMS_REJECTED";
10900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
1092c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * Broadcast Action: An incoming MMS has been downloaded. The intent is sent to all
1093c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * users, except for secondary users where SMS has been disabled and to managed
1094c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * profiles.
1095c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             * @hide
1096c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor             */
1097c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
1098c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            public static final String MMS_DOWNLOADED_ACTION =
1099c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor                "android.provider.Telephony.MMS_DOWNLOADED";
1100c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor
1101c1fd61bf259f192afbbdb58db15d64fa95c0befbTom Taylor            /**
11027a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * Broadcast action: When the default SMS package changes,
11037a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * the previous default SMS package and the new default SMS
11047a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * package are sent this broadcast to notify them of the change.
11057a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * A boolean is specified in {@link #EXTRA_IS_DEFAULT_SMS_APP} to
11067a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * indicate whether the package is the new default SMS package.
11077a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            */
11087a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
11097a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            public static final String ACTION_DEFAULT_SMS_PACKAGE_CHANGED =
11107a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor                            "android.provider.action.DEFAULT_SMS_PACKAGE_CHANGED";
11117a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor
11127a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            /**
11137a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * The IsDefaultSmsApp boolean passed as an
11147a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * extra for {@link #ACTION_DEFAULT_SMS_PACKAGE_CHANGED} to indicate whether the
11157a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * SMS app is becoming the default SMS app or is no longer the default.
11167a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             *
11177a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * @see #ACTION_DEFAULT_SMS_PACKAGE_CHANGED
11187a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             */
11197a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            public static final String EXTRA_IS_DEFAULT_SMS_APP =
11207a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor                    "android.provider.extra.IS_DEFAULT_SMS_APP";
11217a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor
11227a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            /**
11237a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * Broadcast action: When a change is made to the SmsProvider or
11247a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * MmsProvider by a process other than the default SMS application,
11257a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * this intent is broadcast to the default SMS application so it can
11267a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * re-sync or update the change. The uri that was used to call the provider
11277a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * can be retrieved from the intent with getData(). The actual affected uris
11287a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor             * (which would depend on the selection specified) are not included.
11297a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            */
11307a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
11317a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor            public static final String ACTION_EXTERNAL_PROVIDER_CHANGE =
11327a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor                          "android.provider.action.EXTERNAL_PROVIDER_CHANGE";
11337a68be31d1fedbc97d712c6114d4585370f0c399Tom Taylor
1134676e73ec8586d1a8f2b471780d198e556ea95ecfAmit Mahajan            /**
11350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Read the PDUs out of an {@link #SMS_RECEIVED_ACTION} or a
11360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * {@link #DATA_SMS_RECEIVED_ACTION} intent.
11370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             *
11380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @param intent the intent to read from
11390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * @return an array of SmsMessages for the PDUs
11400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
1141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static SmsMessage[] getMessagesFromIntent(Intent intent) {
1142aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                Object[] messages;
1143aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                try {
1144aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                    messages = (Object[]) intent.getSerializableExtra("pdus");
1145aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                }
1146aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                catch (ClassCastException e) {
1147aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                    Rlog.e(TAG, "getMessagesFromIntent: " + e);
1148aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                    return null;
1149aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                }
1150aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu
1151aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                if (messages == null) {
1152aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                    Rlog.e(TAG, "pdus does not exist in the intent");
1153aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                    return null;
1154aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu                }
1155aa58ad8d8254ca547897d33c8bd3627d47edf55aJack Yu
11560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String format = intent.getStringExtra("format");
1157b237a11044ed842d2865ff8c8716befb06b6ca25Wink Saville                int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY,
1158960c250fc2afee078852df1f37a887cec848ec5dShishir Agrawal                        SubscriptionManager.getDefaultSmsSubscriptionId());
1159a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1160a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville                Rlog.v(TAG, " getMessagesFromIntent sub_id : " + subId);
11610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1162b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                int pduCount = messages.length;
11630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SmsMessage[] msgs = new SmsMessage[pduCount];
1164b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
11650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                for (int i = 0; i < pduCount; i++) {
1166b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    byte[] pdu = (byte[]) messages[i];
1167b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    msgs[i] = SmsMessage.createFromPdu(pdu, format);
1168676e73ec8586d1a8f2b471780d198e556ea95ecfAmit Mahajan                    if (msgs[i] != null) msgs[i].setSubId(subId);
11690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return msgs;
11710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
11720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
11730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
11740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Base columns for tables that contain MMSs.
11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface BaseMmsColumns extends BaseColumns {
11790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: all messages. */
11810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_ALL    = 0;
1182b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: inbox. */
11830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_INBOX  = 1;
1184b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: sent messages. */
11850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_SENT   = 2;
1186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: drafts. */
11870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_DRAFTS = 3;
1188b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Message box: outbox. */
11890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MESSAGE_BOX_OUTBOX = 4;
1190370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        /** Message box: failed. */
1191370971c25973d9d8061b76e756df2fb8c1ebd990Ye Wen        public static final int MESSAGE_BOX_FAILED = 5;
11920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1194b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The thread ID of the message.
1195b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
1196b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1197b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final String THREAD_ID = "thread_id";
1198b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1199b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
12000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was received.
12010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
12020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
12040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date the message was sent.
12070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
12080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE_SENT = "date_sent";
12100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1212b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The box which the message belongs to, e.g. {@link #MESSAGE_BOX_INBOX}.
12130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BOX = "msg_box";
12160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1218b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been read?
12190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
12200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
12220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1224b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Has the message been seen by the user? The "seen" flag determines
1225b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * whether we need to show a new message notification.
1226b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SEEN = "seen";
12290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1231b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Does the message have only a text part (can also have a subject) with
1232b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * no picture, slideshow, sound, etc. parts?
1233b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
12347a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor         */
12357a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        public static final String TEXT_ONLY = "text_only";
12367a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor
12377a299a45d1132bfecfee02a1a71427dfbbadc72eTom Taylor        /**
1238b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Message-ID} of the message.
12390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_ID = "m_id";
12420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The subject of the message, if present.
12450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT = "sub";
12480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the subject, if present.
12510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SUBJECT_CHARSET = "sub_cs";
12540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1256b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Type} of the message.
12570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_TYPE = "ct_t";
12600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1262b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code Content-Location} of the message.
12630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_LOCATION = "ct_l";
12660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The expiry time of the message.
1269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (long)</P>
12700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String EXPIRY = "exp";
12720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The class of the message.
12750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
12760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_CLASS = "m_cls";
12780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The type of the message defined by MMS spec.
12810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_TYPE = "m_type";
12840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1286b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The version of the specification that this message conforms to.
12870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMS_VERSION = "v";
12900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The size of the message.
12930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
12940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
12950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_SIZE = "m_size";
12960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
12980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The priority of the message.
1299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
13000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PRIORITY = "pri";
13020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1304b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-report} of the message.
1305b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
13060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_REPORT = "rr";
13080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1310b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is read report allowed?
1311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
13120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPORT_ALLOWED = "rpt_a";
13140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1316b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-status} of the message.
13170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_STATUS = "resp_st";
13200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1322b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status} of the message.
13230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS = "st";
13260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code transaction-id} of the message.
13290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
13300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TRANSACTION_ID = "tr_id";
13320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1334b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-status} of the message.
13350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_STATUS = "retr_st";
13380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code retrieve-text} of the message.
13410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
13420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT = "retr_txt";
13440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
13460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The character set of the retrieve-text.
1347b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
13480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RETRIEVE_TEXT_CHARSET = "retr_txt_cs";
13500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1352b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code read-status} of the message.
13530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ_STATUS = "read_status";
13560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1358b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content-class} of the message.
13590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CONTENT_CLASS = "ct_cls";
13620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1364b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-report} of the message.
13650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_REPORT = "d_rpt";
13680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1370b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time-token} of the message.
13710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1372b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1373b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1375b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME_TOKEN = "d_tm_tok";
13770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1379b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code delivery-time} of the message.
13800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
13810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "d_tm";
13830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code response-text} of the message.
13860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
13870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
13880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RESPONSE_TEXT = "resp_txt";
13890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1391b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code sender-visibility} of the message.
13920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1393b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1394b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
13950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1396b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
13970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SENDER_VISIBILITY = "s_vis";
13980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1400b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging} of the message.
14010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1402b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1403b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1405b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING = "r_chg";
14070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1409b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline-token} of the message.
14100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1411b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1412b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE_TOKEN = "r_chg_dl_tok";
14160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-deadline} of the message.
14190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_DEADLINE = "r_chg_dl";
14250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1427b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-id} of the message.
14280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1429b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1432b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_ID = "r_chg_id";
14340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1436b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-charging-size} of the message.
14370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1438b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1439b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1441b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_CHARGING_SIZE = "r_chg_sz";
14430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1445b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-by} of the message.
14460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1447b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1448b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1450b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_BY = "p_s_by";
14520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1454b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code previously-sent-date} of the message.
14550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1456b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1457b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PREVIOUSLY_SENT_DATE = "p_s_d";
14610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1463b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store} of the message.
14640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1465b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1466b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE = "store";
14700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1472b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-state} of the message.
14730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1474b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1475b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1477b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_STATE = "mm_st";
14790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1481b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags-token} of the message.
14820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1483b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1484b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1486b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS_TOKEN = "mm_flg_tok";
14880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1490b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mm-flags} of the message.
14910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1492b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1493b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
14940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1495b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
14960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MM_FLAGS = "mm_flg";
14970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status} of the message.
15000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1501b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1502b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS = "store_st";
15060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1508b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code store-status-text} of the message.
15090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1510b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1511b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORE_STATUS_TEXT = "store_st_txt";
15150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code stored} of the message.
15180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1519b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1520b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1522b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STORED = "stored";
15240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code totals} of the message.
15270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1528b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1529b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TOTALS = "totals";
15330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1535b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals} of the message.
15360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1537b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1538b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1540b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS = "mb_t";
15420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1544b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-totals-token} of the message.
15450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1546b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1547b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1549b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_TOTALS_TOKEN = "mb_t_tok";
15510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code quotas} of the message.
15540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1555b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1556b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String QUOTAS = "qt";
15600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1562b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas} of the message.
15630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1564b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1565b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1567b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS = "mb_qt";
15690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code mbox-quotas-token} of the message.
15720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1573b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1574b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MBOX_QUOTAS_TOKEN = "mb_qt_tok";
15780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1580b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code message-count} of the message.
15810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1582b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1583b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1585b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "m_cnt";
15870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1589b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code start} of the message.
15900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1591b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1592b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
15930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
15950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String START = "start";
15960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1598b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code distribution-indicator} of the message.
15990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1601b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1603b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DISTRIBUTION_INDICATOR = "d_ind";
16050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code element-descriptor} of the message.
16080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1609b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1610b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ELEMENT_DESCRIPTOR = "e_des";
16140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1616b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code limit} of the message.
16170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1619b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1621b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LIMIT = "limit";
16230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1625b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode} of the message.
16260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1627b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1628b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1630b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE = "r_r_mod";
16320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1634b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code recommended-retrieval-mode-text} of the message.
16350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1636b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1637b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1639b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECOMMENDED_RETRIEVAL_MODE_TEXT = "r_r_mod_txt";
16410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1643b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code status-text} of the message.
16440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1645b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1646b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1648b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String STATUS_TEXT = "st_txt";
16500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1652b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code applic-id} of the message.
16530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1654b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1655b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1657b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APPLIC_ID = "apl_id";
16590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1661b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code reply-applic-id} of the message.
16620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1663b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1664b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1666b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLY_APPLIC_ID = "r_apl_id";
16680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1670b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code aux-applic-id} of the message.
16710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1672b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1673b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1675b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUX_APPLIC_ID = "aux_apl_id";
16770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1679b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code drm-content} of the message.
16800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1681b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1682b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1684b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DRM_CONTENT = "drm_c";
16860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1688b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code adaptation-allowed} of the message.
16890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1690b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1691b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
16920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1693b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
16940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADAPTATION_ALLOWED = "adp_a";
16950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1697b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code replace-id} of the message.
16980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1699b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1700b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1702b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
17030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String REPLACE_ID = "repl_id";
17040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1706b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-id} of the message.
17070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
1708b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1709b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1711b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
17120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_ID = "cl_id";
17130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1715b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code cancel-status} of the message.
17160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
1717b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @deprecated this column is no longer supported.
1718b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
17190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1720b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        @Deprecated
17210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CANCEL_STATUS = "cl_st";
17220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1724b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the message locked?
17250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
17260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LOCKED = "locked";
1728a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1729a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
17304b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the message belongs to. Its value will be
1731dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville         * < 0 if the sub id cannot be determined.
17324e71df52b26f87087327819c53570f60262a9c6aShri Borde         * <p>Type: INTEGER (long)</p>
1733a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
17344b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
1735a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1736b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        /**
1737dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * The identity of the sender of a sent message. It is
1738dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * usually the package name of the app which sends the message.
17393824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * <p class="note"><strong>Note:</strong>
17403824f44a039a5be05b86acfba427638b3b1e587aYe Wen         * This column is read-only. It is set by the provider and can not be changed by apps.
1741dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <p>Type: TEXT</p>
1742b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen         */
1743b29851580bba4a13ddbf7a534d8b09295eb2c60fYe Wen        public static final String CREATOR = "creator";
17440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
17450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1747b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Columns for the "canonical_addresses" table used by MMS and SMS.
17480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface CanonicalAddressesColumns extends BaseColumns {
17500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * An address used in MMS or SMS.  Email addresses are
17520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * converted to lower case and are compared by string
17530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * equality.  Other addresses are compared using
17540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * PHONE_NUMBERS_EQUAL.
17550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ADDRESS = "address";
17580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
17590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Columns for the "threads" table used by MMS and SMS.
17620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public interface ThreadsColumns extends BaseColumns {
1764b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The date at which the thread was created.
17670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
17680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DATE = "date";
17700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * A string encoding of the recipient IDs of the recipients of
17730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * the message, in numerical order and separated by spaces.
17740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String RECIPIENT_IDS = "recipient_ids";
17770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The message count of the thread.
17800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_COUNT = "message_count";
1783b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether all messages of the thread have been read.
17860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String READ = "read";
17890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The snippet of the latest message in the thread.
17920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
17930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
17940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET = "snippet";
1795b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
17960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
17970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * The charset of the snippet.
17980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
17990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SNIPPET_CHARSET = "snippet_cs";
1801b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1803b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Type of the thread, either {@link Threads#COMMON_THREAD} or
1804b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link Threads#BROADCAST_THREAD}.
18050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
18060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
1808b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
18100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether there is a transmission error in the thread.
18110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
18120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ERROR = "error";
1814b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
18160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Indicates whether this thread contains any attachments.
18170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
18180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String HAS_ATTACHMENT = "has_attachment";
1820e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen
1821e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        /**
1822e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         * If the thread is archived
1823dac6bb4a3b2046e1ac943c661563b6daebf49a8fYe Wen         * <P>Type: INTEGER (boolean)</P>
1824e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen         */
1825e58ff3bd4399dfe68517b100169e01e6b93dc7b6Ye Wen        public static final String ARCHIVED = "archived";
18260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
18270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
18290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Helper functions for the "threads" table used by MMS and SMS.
18300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
18310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Threads implements ThreadsColumns {
1832b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
18330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final String[] ID_PROJECTION = { BaseColumns._ID };
1834b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1835b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1836b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Private {@code content://} style URL for this table. Used by
1837b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@link #getOrCreateThreadId(android.content.Context, java.util.Set)}.
1838b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private static final Uri THREAD_ID_CONTENT_URI = Uri.parse(
18400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/threadID");
1841b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1842b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1843b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
1844b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.withAppendedPath(
18460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MmsSms.CONTENT_URI, "conversations");
1847b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1848b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1849b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, for obsolete threads.
1850b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri OBSOLETE_THREADS_URI = Uri.withAppendedPath(
18520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CONTENT_URI, "obsolete");
18530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1854b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: common thread. */
18550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int COMMON_THREAD    = 0;
1856b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1857b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Thread type: broadcast thread. */
18580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int BROADCAST_THREAD = 1;
18590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1860b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1861b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1862b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1863b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
18640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private Threads() {
18650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1868b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This is a single-recipient version of {@code getOrCreateThreadId}.
1869b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * It's convenient for use with SMS messages.
1870b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param context the context object to use.
1871b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param recipient the recipient to send to.
18720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(Context context, String recipient) {
18740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Set<String> recipients = new HashSet<String>();
18750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            recipients.add(recipient);
18770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return getOrCreateThreadId(context, recipients);
18780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
18790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
18810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Given the recipients list and subject of an unsaved message,
18820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * return its thread ID.  If the message starts a new thread,
18830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * allocate a new thread ID.  Otherwise, use the appropriate
18840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * existing thread ID.
18850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
1886b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <p>Find the thread ID of the same set of recipients (in any order,
1887b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * without any additions). If one is found, return it. Otherwise,
1888b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * return a unique thread ID.</p>
18890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
18900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static long getOrCreateThreadId(
18910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Context context, Set<String> recipients) {
18920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri.Builder uriBuilder = THREAD_ID_CONTENT_URI.buildUpon();
18930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            for (String recipient : recipients) {
18950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                if (Mms.isEmailAddress(recipient)) {
18960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    recipient = Mms.extractAddrSpec(recipient);
18970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
18980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
18990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                uriBuilder.appendQueryParameter("recipient", recipient);
19000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Uri uri = uriBuilder.build();
190399c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville            //if (DEBUG) Rlog.v(TAG, "getOrCreateThreadId uri: " + uri);
19040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Cursor cursor = SqliteWrapper.query(context, context.getContentResolver(),
19060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    uri, ID_PROJECTION, null, null, null);
19070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (cursor != null) {
19080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                try {
19090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    if (cursor.moveToFirst()) {
19100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                        return cursor.getLong(0);
19110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    } else {
191299c2e1d6749cfad2a8ca94a47857d8c3bfc09454Wink Saville                        Rlog.e(TAG, "getOrCreateThreadId returned no rows!");
19130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    }
19140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                } finally {
19150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    cursor.close();
19160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                }
19170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
19180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19193824f44a039a5be05b86acfba427638b3b1e587aYe Wen            Rlog.e(TAG, "getOrCreateThreadId failed with " + recipients.size() + " recipients");
19200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            throw new IllegalArgumentException("Unable to find or allocate a thread ID.");
19210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
19230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
19250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS messages.
19260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
19270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Mms implements BaseMmsColumns {
1928b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
19290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1930b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
1931b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1932b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1933b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Mms() {
1934b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
1935b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
1936b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1937b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
19380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms");
19400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1941b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1942b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report requests.
1943b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_REQUEST_URI = Uri.withAppendedPath(
19450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-request");
19460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1947b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1948b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Content URI for getting MMS report status.
1949b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri REPORT_STATUS_URI = Uri.withAppendedPath(
19510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                                            CONTENT_URI, "report-status");
19520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1954b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
19550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "date DESC";
19570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1959b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Regex pattern for names and email addresses.
1960b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
1961b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>mailbox</em> = {@code name-addr}</li>
1962b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>name-addr</em> = {@code [display-name] angle-addr}</li>
1963b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li><em>angle-addr</em> = {@code [CFWS] "<" addr-spec ">" [CFWS]}</li>
1964b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
1965b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
19670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Pattern NAME_ADDR_EMAIL_PATTERN =
19680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                Pattern.compile("\\s*(\"[^\"]*\"|[^<>\"]+)\\s*<([^<>]+)>\\s*");
19690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
1971b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1972b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
19730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
1974b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
19750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection) {
19760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection, null, null, DEFAULT_SORT_ORDER);
19770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1979b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1980b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to query this table.
1981b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1982b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
1983b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static Cursor query(
19840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ContentResolver cr, String[] projection,
19850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String where, String orderBy) {
19860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return cr.query(CONTENT_URI, projection,
19870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    where, null, orderBy == null ? DEFAULT_SORT_ORDER : orderBy);
19880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
19890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1990b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
1991b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Helper method to extract email address from address string.
1992b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
1993b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
19940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static String extractAddrSpec(String address) {
19950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = NAME_ADDR_EMAIL_PATTERN.matcher(address);
19960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
19970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (match.matches()) {
19980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return match.group(2);
19990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
20000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return address;
20010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2004b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified address an email address?
20050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
2006b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param address the input address to test
2007b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if address is an email address; false otherwise.
2008b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
20090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isEmailAddress(String address) {
20110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(address)) {
20120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
20130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
20140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String s = extractAddrSpec(address);
20160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.EMAIL_ADDRESS.matcher(s);
20170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
20180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2021b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is the specified number a phone number?
20220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
2023b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @param number the input number to test
2024b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @return true if number is a phone number; false otherwise.
2025b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
20260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static boolean isPhoneNumber(String number) {
20280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            if (TextUtils.isEmpty(number)) {
20290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                return false;
20300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            }
20310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            Matcher match = Patterns.PHONE.matcher(number);
20330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return match.matches();
20340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2037b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app inbox.
20380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Inbox implements BaseMmsColumns {
2040b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2041b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2042b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2043b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2044b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2045b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Inbox() {
2046b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2047b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2049b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/inbox");
20530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2055b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2061b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app sent folder.
20620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Sent implements BaseMmsColumns {
2064b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2066b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2067b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2068b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2069b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Sent() {
2070b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2071b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2072b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2073b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
20760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/sent");
20770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2079b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
20800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
20820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
20830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
20840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2085b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app drafts folder.
20860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
20870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Draft implements BaseMmsColumns {
2088b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
20890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2090b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2091b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2092b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2093b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Draft() {
2094b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2095b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2096b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2097b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
20980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
20990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
21000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/drafts");
21010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2103b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
21040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
21060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
21070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2109b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains all MMS messages in the MMS app outbox.
21100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
21110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Outbox implements BaseMmsColumns {
2112b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2114b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2115b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2116b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2117b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Outbox() {
2118b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2119b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2120b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2121b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
21220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri
21240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    CONTENT_URI = Uri.parse("content://mms/outbox");
21250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2127b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The default sort order for this table.
21280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DEFAULT_SORT_ORDER = "date DESC";
21300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
21310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2132b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2133b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains address information for an MMS message.
2134b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Addr implements BaseColumns {
2136b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2137b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2138b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2139b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2140b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2141b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Addr() {
2142b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2143b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of MM which this address entry belongs to.
2146b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
21470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
21490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of contact entry in Phone Book.
2152b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
21530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTACT_ID = "contact_id";
21550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The address text.
2158b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
21590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ADDRESS = "address";
21610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2163b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Type of address: must be one of {@code PduHeaders.BCC},
2164b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * {@code PduHeaders.CC}, {@code PduHeaders.FROM}, {@code PduHeaders.TO}.
2165b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
21660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TYPE = "type";
21680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2170b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Character set of this entry (MMS charset value).
2171b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
21720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "charset";
21740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
21750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2176b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2177b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains message parts.
2178b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
21790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Part implements BaseColumns {
2180b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2181b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2182b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2183b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2184b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2185b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Part() {
2186b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2187b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
21880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The identifier of the message which this part belongs to.
21900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "mid";
21930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
21940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
21950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The order of the part.
21960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
21970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
21980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SEQ = "seq";
21990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content type of the part.
22020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
22030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_TYPE = "ct";
22050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The name of the part.
22080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
22090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String NAME = "name";
22110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The charset of the part.
22140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
22150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CHARSET = "chset";
22170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The file name of the part.
22200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
22210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String FILENAME = "fn";
22230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content disposition of the part.
22260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
22270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_DISPOSITION = "cd";
22290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content ID of the part.
22320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
22330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_ID = "cid";
22350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The content location of the part.
22380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
22390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CONTENT_LOCATION = "cl";
22410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The start of content-type of the message.
22440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
22450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_START = "ctt_s";
22470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of content-type of the message.
22500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: TEXT</P>
22510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String CT_TYPE = "ctt_t";
22530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2255b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The location (on filesystem) of the binary data of the part.
22560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
22570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String _DATA = "_data";
22590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2260b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2261b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The message text.
2262b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2263b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TEXT = "text";
22650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2267b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2268b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message send rate table.
2269b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Rate {
2271b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2272b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2273b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2274b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2275b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2276b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Rate() {
2277b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2278b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2279b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2280b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The {@code content://} style URL for this table.
2281b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
22820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
22830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    Mms.CONTENT_URI, "rate");
2284b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
22850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
22860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * When a message was successfully sent.
2287b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
22880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
22890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SENT_TIME = "sent_time";
22900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
22910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2292b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2293b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Intents class.
2294b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
22950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class Intents {
22960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
22970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2298b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2299b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
23000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2301b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private Intents() {
2302b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2303b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * Indicates that the contents of specified URIs were changed.
23060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The application which is showing or caching these contents
23070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * should be updated.
23080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
2309b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
2310b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            public static final String CONTENT_CHANGED_ACTION
2311b47af9b263628c00b1c890f102091098a31463c0Jake Hamby                    = "android.intent.action.CONTENT_CHANGED";
2312b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
23140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * An extra field which stores the URI of deleted contents.
23150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
23160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DELETED_CONTENTS = "deleted_contents";
23170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
23180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
23190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
23210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains all MMS and SMS messages.
23220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
23230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class MmsSms implements BaseColumns {
2324b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2325b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2326b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2327b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2328b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2329b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private MmsSms() {
2330b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        }
2331b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
23320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2333b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The column to distinguish SMS and MMS messages in query results.
23340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
23350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE_DISCRIMINATOR_COLUMN =
23360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "transport_type";
23370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2338b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2339b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
2340b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_URI = Uri.parse("content://mms-sms/");
23420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2343b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2344b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by conversation.
2345b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_CONVERSATIONS_URI = Uri.parse(
23470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/conversations");
23480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2349b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2350b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table, by phone number.
2351b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_FILTER_BYPHONE_URI = Uri.parse(
23530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/messages/byphone");
23540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2355b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2356b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for undelivered messages in this table.
2357b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_UNDELIVERED_URI = Uri.parse(
23590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/undelivered");
23600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2361b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2362b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for draft messages in this table.
2363b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_DRAFT_URI = Uri.parse(
23650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/draft");
23660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2367b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2368b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for locked messages in this table.
2369b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
23700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri CONTENT_LOCKED_URI = Uri.parse(
23710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/locked");
23720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2373b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2374b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Pass in a query parameter called "pattern" which is the text to search for.
2375b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The sort order is fixed to be: {@code thread_id ASC, date DESC}.
23760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
23770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final Uri SEARCH_URI = Uri.parse(
23780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                "content://mms-sms/search");
23790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for message protocol types.
2381b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2382b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** SMS protocol type. */
23830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int SMS_PROTO = 0;
2384b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2385b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** MMS protocol type. */
23860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int MMS_PROTO = 1;
23870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
23880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        // Constants for error types of pending messages.
2389b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2390b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: no error. */
23910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int NO_ERROR                      = 0;
2392b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2393b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: generic transient error. */
23940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC              = 1;
2395b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2396b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol transient error. */
23970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_TRANSIENT  = 2;
2398b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2399b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol transient error. */
24000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_TRANSIENT  = 3;
2401b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2402b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: transport failure. */
24030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_TRANSPORT_FAILURE    = 4;
2404b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2405b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: permanent error (along with all higher error values). */
24060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_GENERIC_PERMANENT    = 10;
2407b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2408b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: SMS protocol permanent error. */
24090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_SMS_PROTO_PERMANENT  = 11;
2410b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2411b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** Error type: MMS protocol permanent error. */
24120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final int ERR_TYPE_MMS_PROTO_PERMANENT  = 12;
24130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2414b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2415b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Contains pending messages info.
2416b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class PendingMessages implements BaseColumns {
2418b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2419b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2420b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2421b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2422b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2423b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private PendingMessages() {
2424b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            }
2425b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final Uri CONTENT_URI = Uri.withAppendedPath(
24270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                    MmsSms.CONTENT_URI, "pending");
2428b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
2430b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The type of transport protocol (MMS or SMS).
24310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
24320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String PROTO_TYPE = "proto_type";
2434b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The ID of the message to be sent or downloaded.
2437b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
24380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_ID = "msg_id";
2440b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the message to be sent or downloaded.
2443b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * This field is only valid for MM. For SM, its value is always set to 0.
2444b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
24450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String MSG_TYPE = "msg_type";
2447b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The type of the error code.
24500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * <P>Type: INTEGER</P>
24510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_TYPE = "err_type";
2453b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The error code of sending/retrieving process.
2456b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
24570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ERROR_CODE = "err_code";
2459b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * How many times we tried to send or download the message.
2462b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
24630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String RETRY_INDEX = "retry_index";
2465b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time to do next retry.
2468b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
24690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String DUE_TIME = "due_time";
2471b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
24720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            /**
24730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             * The time we last tried to send or download the message.
2474b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
24750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville             */
24760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String LAST_TRY = "last_try";
2477a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2478a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            /**
24794b09dff383ae7dfca595aeeea886a594a1947340Wink Saville             * The subscription to which the message belongs to. Its value will be
2480dfdf9c40ebaaed15b5020ad6bce898fadd32dd58Wink Saville             * < 0 if the sub id cannot be determined.
2481a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             * <p>Type: INTEGER (long) </p>
2482a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville             */
24834b09dff383ae7dfca595aeeea886a594a1947340Wink Saville            public static final String SUBSCRIPTION_ID = "pending_sub_id";
24840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
24850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2486b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2487b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Words table used by provider for full-text searches.
2488b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2489b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
24900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final class WordsTable {
2491b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2492b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2493b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Not instantiable.
2494b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * @hide
2495b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
2496b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            private WordsTable() {}
2497b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2498b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2499b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Primary key.
2500b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2501b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String ID = "_id";
2503b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2504b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2505b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Source row ID.
2506b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER (long)</P>
2507b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String SOURCE_ROW_ID = "source_id";
2509b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2510b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2511b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * Table ID (either 1 or 2).
2512b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: INTEGER</P>
2513b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String TABLE_ID = "table_to_use";
2515b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2516b47af9b263628c00b1c890f102091098a31463c0Jake Hamby            /**
2517b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * The words to index.
2518b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             * <P>Type: TEXT</P>
2519b47af9b263628c00b1c890f102091098a31463c0Jake Hamby             */
25200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            public static final String INDEXED_TEXT = "index_text";
25210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
25220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
25230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2524b47af9b263628c00b1c890f102091098a31463c0Jake Hamby    /**
2525b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * Carriers class contains information about APNs, including MMSC information.
2526b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     */
25270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class Carriers implements BaseColumns {
2528b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
2529b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2530b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2531b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2532b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2533b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        private Carriers() {}
2534b47af9b263628c00b1c890f102091098a31463c0Jake Hamby
25350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2536b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} style URL for this table.
25370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2538b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://telephony/carriers");
25390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
25400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2541b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The default sort order for this table.
25420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
25430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = "name ASC";
25440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2545b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2546b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Entry name.
2547b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2548b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NAME = "name";
25500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2551b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2552b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN name.
2553b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2554b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String APN = "apn";
25560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2557b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2558b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy address.
2559b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2560b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROXY = "proxy";
25620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2563b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2564b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Proxy port.
2565b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2566b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PORT = "port";
25680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2569b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2570b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy address.
2571b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2572b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPROXY = "mmsproxy";
25740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2575b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2576b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMS proxy port.
2577b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2578b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSPORT = "mmsport";
25800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2581b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2582b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Server address.
2583b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2584b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVER = "server";
25860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2587b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2588b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN username.
2589b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2590b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String USER = "user";
25920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2593b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2594b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * APN password.
2595b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2596b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
25970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PASSWORD = "password";
25980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2599b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2600b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MMSC URL.
2601b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2602b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MMSC = "mmsc";
26040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2605b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2606b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Country Code (MCC).
2607b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2608b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MCC = "mcc";
26100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2611b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2612b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Mobile Network Code (MNC).
2613b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2614b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MNC = "mnc";
26160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2617b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2618b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Numeric operator ID (as String). Usually {@code MCC + MNC}.
2619b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2620b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String NUMERIC = "numeric";
26220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2623b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2624b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Authentication type.
2625b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type:  INTEGER</P>
2626b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String AUTH_TYPE = "authtype";
26280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2629b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2630b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Comma-delimited list of APN types.
2631b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2632b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String TYPE = "type";
26340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2636b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN.
26370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         *
2638b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * One of the {@code PDP_type} values in TS 27.007 section 10.1.1.
2639b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * For example: {@code IP}, {@code IPV6}, {@code IPV4V6}, or {@code PPP}.
2640b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
26410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
26420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PROTOCOL = "protocol";
26430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2645b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The protocol to use to connect to this APN when roaming.
2646b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The syntax is the same as protocol.
2647b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2648b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ROAMING_PROTOCOL = "roaming_protocol";
26500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2651b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2652b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this the current APN?
2653b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2654b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CURRENT = "current";
26560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2658b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Is this APN enabled?
2659b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER (boolean)</P>
2660b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CARRIER_ENABLED = "carrier_enabled";
26620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
26630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2664b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Radio Access Technology info.
2665b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * To check what values are allowed, refer to {@link android.telephony.ServiceState}.
2666b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * This should be spread to other technologies,
2667b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * but is currently only used for LTE (14) and eHRPD (13).
2668b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: INTEGER</P>
2669b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
26700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String BEARER = "bearer";
2671a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2672a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2673aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * Radio Access Technology bitmask.
2674aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * To check what values can be contained, refer to {@link android.telephony.ServiceState}.
2675aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * 0 indicates all techs otherwise first bit refers to RAT/bearer 1, second bit refers to
2676aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * RAT/bearer 2 and so on.
2677aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * Bitmask for a radio tech R is (1 << (R - 1))
2678aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         * <P>Type: INTEGER</P>
2679760b9b8e6659562de17d774f6f799ef08c1898f8Amit Mahajan         * @hide
2680aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan         */
2681aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan        public static final String BEARER_BITMASK = "bearer_bitmask";
2682aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan
2683aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan        /**
2684b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO type:
2685b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}.
2686b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2687b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2688a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_TYPE = "mvno_type";
2689a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi
2690a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        /**
2691b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * MVNO data.
2692b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Use the following examples.
2693b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <ul>
2694b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>SPN: A MOBILE, BEN NL, ...</li>
2695b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>IMSI: 302720x94, 2060188, ...</li>
2696b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         *     <li>GID: 4E, 33, ...</li>
2697b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * </ul>
2698b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * <P>Type: TEXT</P>
2699b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
2700a796ca5b3f8501630405f1ce2635dde9011b7373Sungmin Choi        public static final String MVNO_MATCH_DATA = "mvno_match_data";
2701a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2702a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville        /**
27034b09dff383ae7dfca595aeeea886a594a1947340Wink Saville         * The subscription to which the APN belongs to
2704a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         * <p>Type: INTEGER (long) </p>
2705a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville         */
27064b09dff383ae7dfca595aeeea886a594a1947340Wink Saville        public static final String SUBSCRIPTION_ID = "sub_id";
2707a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
27089d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27099d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The profile_id to which the APN saved in modem
27109d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27119d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27129d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27139d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String PROFILE_ID = "profile_id";
27149d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27159d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27169d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * Is the apn setting to be set in modem
27179d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <P>Type: INTEGER (boolean)</P>
27189d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27199d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27209d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MODEM_COGNITIVE = "modem_cognitive";
27219d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27229d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27239d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The max connections of this apn
27249d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27259d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27269d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27279d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS = "max_conns";
27289d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27299d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27309d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The wait time for retry of the apn
27319d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27329d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27339d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27349d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String WAIT_TIME = "wait_time";
27359d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
27369d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        /**
27379d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * The time to limit max connection for the apn
27389d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         * <p>Type: INTEGER</p>
27399d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         *@hide
27409d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan         */
27419d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan        public static final String MAX_CONNS_TIME = "max_conns_time";
27429d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
2743e9701717e43cc5aacbcf624f77a53be92350662cw        /**
2744e9701717e43cc5aacbcf624f77a53be92350662cw         * The MTU size of the mobile interface to  which the APN connected
2745e9701717e43cc5aacbcf624f77a53be92350662cw         * <p>Type: INTEGER </p>
2746e9701717e43cc5aacbcf624f77a53be92350662cw         * @hide
2747e9701717e43cc5aacbcf624f77a53be92350662cw         */
2748e9701717e43cc5aacbcf624f77a53be92350662cw        public static final String MTU = "mtu";
2749325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan
2750325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan        /**
2751a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * Is this APN added/edited/deleted by a user or carrier?
2752325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan         * <p>Type: INTEGER </p>
2753325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan         * @hide
2754325cdf5bb7b1ff6ccc0291613c2e30b133bb3258Amit Mahajan         */
2755aaf0e8d623b1e94004557573aef9235177ca19e3Amit Mahajan        public static final String EDITED = "edited";
2756a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan
2757a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
27587302701dea2259cb436da6c248d4b6aa398182ddAmit Mahajan         * Is this APN visible to the user?
27597302701dea2259cb436da6c248d4b6aa398182ddAmit Mahajan         * <p>Type: INTEGER (boolean) </p>
27607302701dea2259cb436da6c248d4b6aa398182ddAmit Mahajan         * @hide
27617302701dea2259cb436da6c248d4b6aa398182ddAmit Mahajan         */
27627302701dea2259cb436da6c248d4b6aa398182ddAmit Mahajan        public static final String USER_VISIBLE = "user_visible";
27637302701dea2259cb436da6c248d4b6aa398182ddAmit Mahajan
27647302701dea2259cb436da6c248d4b6aa398182ddAmit Mahajan        /**
2765a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * Following are possible values for the EDITED field
2766a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * @hide
2767a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2768a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int UNEDITED = 0;
2769a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2770a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2771a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2772a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int USER_EDITED = 1;
2773a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2774a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2775a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2776a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int USER_DELETED = 2;
2777a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2778a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * DELETED_BUT_PRESENT is an intermediate value used to indicate that an entry deleted
2779a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * by the user is still present in the new APN database and therefore must remain tagged
2780a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * as user deleted rather than completely removed from the database
2781a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * @hide
2782a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2783a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int USER_DELETED_BUT_PRESENT_IN_XML = 3;
2784a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2785a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2786a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2787a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int CARRIER_EDITED = 4;
2788a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2789a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * CARRIER_DELETED values are currently not used as there is no usecase. If they are used,
2790a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * delete() will have to change accordingly. Currently it is hardcoded to USER_DELETED.
2791a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         * @hide
2792a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2793a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int CARRIER_DELETED = 5;
2794a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        /**
2795a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         *  @hide
2796a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan         */
2797a0ed9793719185862e18f33cb9c5447b85549174Amit Mahajan        public static final int CARRIER_DELETED_BUT_PRESENT_IN_XML = 6;
27980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
27990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
28010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Contains received SMS cell broadcast messages.
2802b47af9b263628c00b1c890f102091098a31463c0Jake Hamby     * @hide
28030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
28040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public static final class CellBroadcasts implements BaseColumns {
28050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2806b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /**
2807b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Not instantiable.
2808b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * @hide
2809b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         */
28100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        private CellBroadcasts() {}
28110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2813b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * The {@code content://} URI for this table.
28140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
2815b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        public static final Uri CONTENT_URI = Uri.parse("content://cellbroadcasts");
28160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message geographical scope.
28190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String GEOGRAPHICAL_SCOPE = "geo_scope";
28220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message serial number.
28250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERIAL_NUMBER = "serial_number";
28280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2830b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * PLMN of broadcast sender. {@code SERIAL_NUMBER + PLMN + LAC + CID} uniquely identifies
2831b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * a broadcast for duplicate detection purposes.
28320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
28330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String PLMN = "plmn";
28350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Location Area (GSM) or Service Area (UMTS) of broadcast sender. Unused for CDMA.
28380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Only included if Geographical Scope of message is not PLMN wide (01).
28390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LAC = "lac";
28420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Cell ID of message sender (GSM/UMTS). Unused for CDMA. Only included when the
28450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Geographical Scope of message is cell wide (00 or 11).
28460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CID = "cid";
28490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2851b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message code. <em>OBSOLETE: merged into SERIAL_NUMBER.</em>
28520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_CODE = "message_code";
28550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2857b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Message identifier. <em>OBSOLETE: renamed to SERVICE_CATEGORY.</em>
28580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String V1_MESSAGE_IDENTIFIER = "message_id";
28610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
2863b47af9b263628c00b1c890f102091098a31463c0Jake Hamby         * Service category (GSM/UMTS: message identifier; CDMA: service category).
28640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String SERVICE_CATEGORY = "service_category";
28670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message language code.
28700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
28710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String LANGUAGE_CODE = "language";
28730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message body.
28760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: TEXT</P>
28770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_BODY = "body";
28790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message delivery time.
28820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (long)</P>
28830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DELIVERY_TIME = "date";
28850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Has the message been viewed?
28880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER (boolean)</P>
28890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_READ = "read";
28910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message format (3GPP or 3GPP2).
28940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
28950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
28960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_FORMAT = "format";
28970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
28980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
28990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Message priority (including emergency).
29000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String MESSAGE_PRIORITY = "priority";
29030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * ETWS warning type (ETWS alerts only).
29060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String ETWS_WARNING_TYPE = "etws_warning_type";
29090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS message class (CMAS alerts only).
29120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_MESSAGE_CLASS = "cmas_message_class";
29150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS category (CMAS alerts only).
29180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CATEGORY = "cmas_category";
29210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS response type (CMAS alerts only).
29240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_RESPONSE_TYPE = "cmas_response_type";
29270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS severity (CMAS alerts only).
29300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_SEVERITY = "cmas_severity";
29330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS urgency (CMAS alerts only).
29360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_URGENCY = "cmas_urgency";
29390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * CMAS certainty (CMAS alerts only).
29420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * <P>Type: INTEGER</P>
29430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String CMAS_CERTAINTY = "cmas_certainty";
29450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2946b47af9b263628c00b1c890f102091098a31463c0Jake Hamby        /** The default sort order for this table. */
29470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String DEFAULT_SORT_ORDER = DELIVERY_TIME + " DESC";
29480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
29490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        /**
29500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         * Query columns for instantiating {@link android.telephony.CellBroadcastMessage} objects.
29510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville         */
29520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public static final String[] QUERY_COLUMNS = {
29530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                _ID,
29540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                GEOGRAPHICAL_SCOPE,
29550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                PLMN,
29560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LAC,
29570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CID,
29580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERIAL_NUMBER,
29590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                SERVICE_CATEGORY,
29600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                LANGUAGE_CODE,
29610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_BODY,
29620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                DELIVERY_TIME,
29630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_READ,
29640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_FORMAT,
29650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                MESSAGE_PRIORITY,
29660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                ETWS_WARNING_TYPE,
29670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_MESSAGE_CLASS,
29680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CATEGORY,
29690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_RESPONSE_TYPE,
29700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_SEVERITY,
29710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_URGENCY,
29720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                CMAS_CERTAINTY
29730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        };
29740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
29750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
2976