Add support for encoding and decoding SMS 7 bit user data using the
national language shift tables defined in 3GPP TS 23.038 (GSM/UMTS only),
including the new tables added in Release 9 for Indic languages.
Decoding is always supported, but encoding is only enabled for the
specific language tables added to the new integer array resources
"config_sms_enabled_single_shift_tables" and
"config_sms_enabled_locking_shift_tables" defined in
frameworks/base/core/res/res/values/config.xml. The default empty arrays
should be overridden in an OEM overlay for the specific nationalities where
SMS national language shift table encoding is allowed/mandated (e.g. Turkey).
GsmAlphabet.countGsmSeptets() will try to find the most efficient encoding
among all combinations of enabled locking shift and single shift tables.
If no 7 bit encoding is possible, 16 bit UCS-2 encoding will be used.
This change also fixes a bug in the decoder: when an escape septet
is followed by a septet with no entry in the extension (single shift)
table, TS 23.038 Table 6.2.1.1 states that the MS shall display
the character in the main GSM 7 bit default alphabet table, or the
active national language locking shift table. Previously, we were
decoding this sequence as a space character. Two consecutive escape
septets will continue to decode as a space character, according to
Note 1 of table 6.2.1.1.
Change-Id: I4dab3f0ffe39f3df2064ed93c9c05f26e274d18b
Although our first tablet doesn't support SMS messages there are testing
scenarios where they can be used. To preserve proper behavior now that
getPhoneType can return PHONE_TYPE_NONE use getCurrentPhoneType.
bug: 3198435
Change-Id: I48ef294f563351c66971b4e89e6dcb3326b0ae92
- Fixed a bunch of typos in comments (plus a few variable names)
- Removed unused import lines from telephony classes
- Added @Override attribute to overriding methods
- Made SmsMessage.PduParser inner class private & deleted unused constructor
- Added type specifiers to declarations of ArrayList and HashMap
- SimulatedCommands.getRegistrationState() had an ArrayIndexOutOfBoundsException
trying to write to index 14 of a 14-element array. I removed the
out-of-bounds assignment.
Change-Id: I054b5156aa64ab6639028d5b45a7e688b2deee08
Fixed some comment typos and cleaned up logging of unexpected calls to
CDMA-specific methods on a non-CDMA device.
Change-Id: Ia6e5fba765122cbf3186fd9fecca7a3931a76dcc
When trying to view the saved sms messages on my SIM, I ran into a null ref.
With this fix, we don't try and wrap a null message, but just skip it.
This is part one of three fixes for BC-triaged bug 2205782.
Change-Id: Ie7105dae7e3134b98681deabcc14f5db555902f3
Previously pdu creation was haphazardly done sometimes by the app and
sometimes centrally by the phone process -- specifically the phone
process did creation for multipart texts. This change gets rid of the
previous IPC interface for sending raw pdus to SMSDispatch in the
phone process, and instead makes everything work like multipart
messages worked before, namely the structured data is passed and pdu
encoding done centrally.
The motivation for this was the need to ensure that CDMA message id
numbers were strictly monotonic, including across reboots, which
necessitated central state in the form of a system property, which
could in turn only be modified by the phone process.
Hence, this (in part) addresses issue: http://buganizer/issue?id=2075760
Change-Id: I94ca207b6e657c465e8472534704db8646ee277c
See http://b/issue?id=1751571
Changes the semantics of SmsHeader from containing only opaque data
to exposing occurs-once frequently-used fields together with a list
of opaque fields. Also changes the coding to and from byte array to
be symmetrical, whereas previous encoding had an extra length field.
Cdma SmsMessage -- cleanup of code paths along with adjustments to
match the new header semantics, which should address at least some
of the issues with concatenated messages. See http://b/issue?id=1809759