CarrierConfigValuesLoader.java revision 461a34b466cb4b13dbbc2ec6330b31e217b2ac4e
1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.support.v7.mms;
18
19import android.os.Bundle;
20
21/**
22 * Loader for carrier dependent configuration values
23 */
24public interface CarrierConfigValuesLoader {
25    /**
26     * Get the carrier config values in a bundle
27     *
28     * @param subId the associated subscription ID for the carrier configuration
29     * @return a bundle of all the values
30     */
31    Bundle get(int subId);
32
33    // Configuration keys and default values
34
35    /** Boolean value: if MMS is enabled */
36    public static final String CONFIG_ENABLED_MMS = "enabledMMS";
37    public static final boolean CONFIG_ENABLED_MMS_DEFAULT = true;
38    /**
39     * Boolean value: if transaction ID should be appended to
40     * the download URL of a single segment WAP push message
41     */
42    public static final String CONFIG_ENABLED_TRANS_ID = "enabledTransID";
43    public static final boolean CONFIG_ENABLED_TRANS_ID_DEFAULT = false;
44    /**
45     * Boolean value: if acknowledge or notify response to a download
46     * should be sent to the WAP push message's download URL
47     */
48    public static final String CONFIG_ENABLED_NOTIFY_WAP_MMSC = "enabledNotifyWapMMSC";
49    public static final boolean CONFIG_ENABLED_NOTIFY_WAP_MMSC_DEFAULT = false;
50    /**
51     * Boolean value: if phone number alias can be used
52     */
53    public static final String CONFIG_ALIAS_ENABLED = "aliasEnabled";
54    public static final boolean CONFIG_ALIAS_ENABLED_DEFAULT = false;
55    /**
56     * Boolean value: if audio is allowed in attachment
57     */
58    public static final String CONFIG_ALLOW_ATTACH_AUDIO = "allowAttachAudio";
59    public static final boolean CONFIG_ALLOW_ATTACH_AUDIO_DEFAULT = true;
60    /**
61     * Boolean value: if true, long sms messages are always sent as multi-part sms
62     * messages, with no checked limit on the number of segments. If false, then
63     * as soon as the user types a message longer than a single segment (i.e. 140 chars),
64     * the message will turn into and be sent as an mms message or separate,
65     * independent SMS messages (dependent on CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES flag).
66     * This feature exists for carriers that don't support multi-part sms.
67     */
68    public static final String CONFIG_ENABLE_MULTIPART_SMS = "enableMultipartSMS";
69    public static final boolean CONFIG_ENABLE_MULTIPART_SMS_DEFAULT = true;
70    /**
71     * Boolean value: if SMS delivery report is supported
72     */
73    public static final String CONFIG_ENABLE_SMS_DELIVERY_REPORTS = "enableSMSDeliveryReports";
74    public static final boolean CONFIG_ENABLE_SMS_DELIVERY_REPORTS_DEFAULT = true;
75    /**
76     * Boolean value: if group MMS is supported
77     */
78    public static final String CONFIG_ENABLE_GROUP_MMS = "enableGroupMms";
79    public static final boolean CONFIG_ENABLE_GROUP_MMS_DEFAULT = true;
80    /**
81     * Boolean value: if the content_disposition field of an MMS part should be parsed
82     * Check wap-230-wsp-20010705-a.pdf, chapter 8.4.2.21. Most carriers support it except some.
83     */
84    public static final String CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION =
85            "supportMmsContentDisposition";
86    public static final boolean CONFIG_SUPPORT_MMS_CONTENT_DISPOSITION_DEFAULT = true;
87    /**
88     * Boolean value: if the sms app should support a link to the system settings
89     * where amber alerts are configured.
90     */
91    public static final String CONFIG_CELL_BROADCAST_APP_LINKS = "config_cellBroadcastAppLinks";
92    public static final boolean CONFIG_CELL_BROADCAST_APP_LINKS_DEFAULT = true;
93    /**
94     * Boolean value: if multipart SMS should be sent as separate SMS messages
95     */
96    public static final String CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES =
97            "sendMultipartSmsAsSeparateMessages";
98    public static final boolean CONFIG_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES_DEFAULT = false;
99    /**
100     * Boolean value: if MMS read report is supported
101     */
102    public static final String CONFIG_ENABLE_MMS_READ_REPORTS = "enableMMSReadReports";
103    public static final boolean CONFIG_ENABLE_MMS_READ_REPORTS_DEFAULT = false;
104    /**
105     * Boolean value: if MMS delivery report is supported
106     */
107    public static final String CONFIG_ENABLE_MMS_DELIVERY_REPORTS = "enableMMSDeliveryReports";
108    public static final boolean CONFIG_ENABLE_MMS_DELIVERY_REPORTS_DEFAULT = false;
109    /**
110     * Boolean value: if "charset" value is supported in the "Content-Type" HTTP header
111     */
112    public static final String CONFIG_SUPPORT_HTTP_CHARSET_HEADER = "supportHttpCharsetHeader";
113    public static final boolean CONFIG_SUPPORT_HTTP_CHARSET_HEADER_DEFAULT = false;
114    /**
115     * Integer value: maximal MMS message size in bytes
116     */
117    public static final String CONFIG_MAX_MESSAGE_SIZE = "maxMessageSize";
118    public static final int CONFIG_MAX_MESSAGE_SIZE_DEFAULT = 300 * 1024;
119    /**
120     * Integer value: maximal MMS image height in pixels
121     */
122    public static final String CONFIG_MAX_IMAGE_HEIGHT = "maxImageHeight";
123    public static final int CONFIG_MAX_IMAGE_HEIGHT_DEFAULT = 480;
124    /**
125     * Integer value: maximal MMS image width in pixels
126     */
127    public static final String CONFIG_MAX_IMAGE_WIDTH = "maxImageWidth";
128    public static final int CONFIG_MAX_IMAGE_WIDTH_DEFAULT = 640;
129    /**
130     * Integer value: limit on recipient list of an MMS message
131     */
132    public static final String CONFIG_RECIPIENT_LIMIT = "recipientLimit";
133    public static final int CONFIG_RECIPIENT_LIMIT_DEFAULT = Integer.MAX_VALUE;
134    /**
135     * Integer value: HTTP socket timeout in milliseconds for MMS
136     */
137    public static final String CONFIG_HTTP_SOCKET_TIMEOUT = "httpSocketTimeout";
138    public static final int CONFIG_HTTP_SOCKET_TIMEOUT_DEFAULT = 60 * 1000;
139    /**
140     * Integer value: minimal number of characters of an alias
141     */
142    public static final String CONFIG_ALIAS_MIN_CHARS = "aliasMinChars";
143    public static final int CONFIG_ALIAS_MIN_CHARS_DEFAULT = 2;
144    /**
145     * Integer value: maximal number of characters of an alias
146     */
147    public static final String CONFIG_ALIAS_MAX_CHARS = "aliasMaxChars";
148    public static final int CONFIG_ALIAS_MAX_CHARS_DEFAULT = 48;
149    /**
150     * Integer value: the threshold of number of SMS parts when an multipart SMS will be
151     * converted into an MMS, e.g. if this is "4", when an multipart SMS message has 5
152     * parts, then it will be sent as MMS message instead. "-1" indicates no such conversion
153     * can happen.
154     */
155    public static final String CONFIG_SMS_TO_MMS_TEXT_THRESHOLD = "smsToMmsTextThreshold";
156    public static final int CONFIG_SMS_TO_MMS_TEXT_THRESHOLD_DEFAULT = -1;
157    /**
158     * Integer value: the threshold of SMS length when it will be converted into an MMS.
159     * "-1" indicates no such conversion can happen.
160     */
161    public static final String CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD =
162            "smsToMmsTextLengthThreshold";
163    public static final int CONFIG_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD_DEFAULT = -1;
164    /**
165     * Integer value: maximal length in bytes of SMS message
166     */
167    public static final String CONFIG_MAX_MESSAGE_TEXT_SIZE = "maxMessageTextSize";
168    public static final int CONFIG_MAX_MESSAGE_TEXT_SIZE_DEFAULT = -1;
169    /**
170     * Integer value: maximum number of characters allowed for mms subject
171     */
172    public static final String CONFIG_MAX_SUBJECT_LENGTH = "maxSubjectLength";
173    public static final int CONFIG_MAX_SUBJECT_LENGTH_DEFAULT = 40;
174    /**
175     * String value: name for the user agent profile HTTP header
176     */
177    public static final String CONFIG_UA_PROF_TAG_NAME = "mUaProfTagName";
178    public static final String CONFIG_UA_PROF_TAG_NAME_DEFAULT = "x-wap-profile";
179    /**
180     * String value: additional HTTP headers for MMS HTTP requests.
181     * The format is
182     * header_1:header_value_1|header_2:header_value_2|...
183     * Each value can contain macros.
184     */
185    public static final String CONFIG_HTTP_PARAMS = "httpParams";
186    public static final String CONFIG_HTTP_PARAMS_DEFAULT = null;
187    /**
188     * String value: number of email gateway
189     */
190    public static final String CONFIG_EMAIL_GATEWAY_NUMBER = "emailGatewayNumber";
191    public static final String CONFIG_EMAIL_GATEWAY_NUMBER_DEFAULT = null;
192    /**
193     * String value: suffix for the NAI HTTP header value, e.g. ":pcs"
194     * (NAI is used as authentication in HTTP headers for some carriers)
195     */
196    public static final String CONFIG_NAI_SUFFIX = "naiSuffix";
197    public static final String CONFIG_NAI_SUFFIX_DEFAULT = null;
198}
199