Commit Graph

43 Commits

Author SHA1 Message Date
Jake Hamby
929ca5e497 Fix bug in CDMA WDP datagram handling (fixes incoming MMS).
CDMA WDP datagram handling was refactored to use the same method
that handles concatenated SMS messages. WDP datagram sequence numbers
start at 0, but GSM/CDMA concatenated sequence numbers start at 1.
Changed SMSDispatcher.processMessagePart() to count from 0 when
handling WDP datagrams.

Also changed CdmaSMSDispatcher.processCdmaWapPdu() to correctly
decode segment numbers > 127 (signed byte conversion bug)
and to reject PDUs with an out-of-range segment number (invalid
ranges are already rejected for regular concatenated messages).

Bug: 5433331
Change-Id: I25c9567769de8edca789c0d1707d4916a4c46885
2011-10-11 19:15:32 -07:00
Jake Hamby
b7945cae5a Enable support for multiple SMSDispatchers in CDMALTEPhone.
Refactor framework to support multiple SMSDispatcher objects on
dual-mode devices that require support for both 3GPP and 3GPP2
format SMS messages. Each dispatcher registers to receive events for
the appropriate message format.

Note: All applications which handle incoming SMS messages by processing the
SMS_RECEIVED_ACTION broadcast intent MUST pass the "format" extra from the intent
into the new createPdu() method in android.telephony.SmsMessage that takes an
extra format parameter. This is required in order to correctly decode the PDU on
devices which require support for both 3GPP and 3GPP2 formats at the same time,
such as CDMA/LTE devices and GSM/CDMA world phones.

 - moved code to manage device storage events from SMSDispatcher to a
   new class, SmsStorageMonitor, which is shared among all dispatchers.

 - moved code to monitor per-application outgoing SMS usage from
   SMSDispatcher.SmsCounter to a new class, SmsUsageMonitor, which
   is shared among all dispatchers.

 - fixed a bug that prevented CDMALTEPhone from setting the MCC/MNC
   operator numeric value in the telephony provider from the UICC,
   as GSMPhone does, when the SIM records have loaded.

Change-Id: I2789ac07b6ca2948138bca7f75481f9b31514f20
2011-10-04 17:16:06 -07:00
Jake Hamby
d4f1bacca5 resolved conflicts for merge of 7ca13deb to master
Change-Id: If34814d6c70cf63eca9bd816845389f6785518ae
2011-06-08 23:20:09 -07:00
Jake Hamby
7d259626d0 resolved conflicts for merge of 0cb17a52 to honeycomb-plus-aosp
Change-Id: I784e6d1946fa708f63becece070c7090cec6f1e2
2011-06-07 15:01:50 -07:00
Jake Hamby
ab79ee4adc Enable full support for SMS Cell Broadcast.
Implement full support for SMS Cell Broadcast (3GPP TS 23.041).
Includes support for ETWS and CMAS emergency message types.
Includes GSM and UMTS support (CDMA will be added later).

Note: the change to GsmAlphabet.java is only necessary if the
SMS national languages support patch has been applied. If that
change has not been applied, then the changes to GsmAlphabet.java
in this patch set can safely be ignored.

Change-Id: Ia0362c53695b8ef9a0982f558f1cffa912def34b
2011-06-01 15:54:20 -07:00
Joe Onorato
43a17654cf Remove the deprecated things from Config.java. These haven't been working since before 1.0.
Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
2011-04-07 19:23:05 -07:00
Wink Saville
9d7d62801d Do not merge: Revert the revert of "LTE Changes for Telephony including Multiple PDN support and IPV6 support"
This reverts commit eca208fae6
and is the first of the LTE commits in master being back ported
to the LTE branch.

Change-Id: I17d4a1b779ed74bc7dfb409d2c1a30f60fdb27c7
2011-03-14 12:25:04 -07:00
Wink Saville
eca208fae6 DO NOT MERGE: Revert "LTE Changes for Telephony including Multiple PDN support and IPV6 support"
This reverts commit 2b8bcfe5b7.

Change-Id: Ifc4e9aaccb54e065a36380710694cd6e4d347636
2011-03-03 09:53:52 -08:00
Wink Saville
2b8bcfe5b7 LTE Changes for Telephony including Multiple PDN support and IPV6 support
Added init for CDMAPhone.java

Change-Id: I2392b5ad3382ee1993537b8477ef00dd036c6fe9
2011-02-24 18:23:36 -08:00
Wink Saville
48fe5c3a86 am bdce3d2c: am 01a5eba8: am 6e25789f: Merge "Telephony: Fix cb sms implementation"
* commit 'bdce3d2c3516612bfd3a9e5f259a892d1a595f19':
  Telephony: Fix cb sms implementation
2011-02-10 13:53:10 -08:00
Alex Yakavenka
f7de51cc4d Telephony: Fix cb sms implementation
Change-Id: Ie2a678e3ab99f0d5b9dd68cc4a79e1c5a58ecbe2
2011-02-08 17:18:46 -08:00
Jean-Baptiste Queru
db71bda6f6 Merge from gingerbread
Change-Id: I6b895012db6b96666dc3257b1f2e430925981188
2011-02-03 14:25:38 -08:00
Jean-Baptiste Queru
b6bf10e4bd Merge 917d9ea1
Change-Id: I7c92b0dbff44375b714e99b9cdc7052628db8ecb
2011-02-03 14:22:52 -08:00
Jean-Baptiste Queru
917d9ea1eb am 8444023f: Merge from open-source gingerbread
* commit '8444023f351b22816f6827d3314ff81b3533e3d9':
  Fix the Multi-page SMS sending error to several receipents
2011-02-03 14:09:34 -08:00
Sang-Jun Park
b9ef00ea2f Fix the Multi-page SMS sending error to several receipents
Change-Id: Iefde94b638413e3c1761f17c3065b20a044e5958
Signed-off-by: Sang-Jun Park <sj2202.park@samsung.com>
2011-02-03 13:39:31 -08:00
Wink Saville
cde0233512 Add telephony.sms.receive and telephony.sms.send properties.
The purpose of these properties is to allow, at boot time, the
enable and disabling of receiving and sending of SMS messages.
These properties are used to initialize two booleans within
[Gsm|Cdma]SMSDispatcher code. The two booleans are initialized
to the value of config_sms_capable and when config_sms_capable
is false the device can neither receive nor send SMS.

Under some conditions, such as testing, it could be desirable
to send and or receive SMS messages on a device where config_sms_capable
is false. With the addition of these two properties it is now possible
to use /data/local.prop to control the booleans independently.

bug: 3315489
Change-Id: I83fe6f2da7d66ff720f28b696d8d76ec388706c0
2011-01-06 21:24:34 -08:00
John Wang
c049f9ad5b Block SMS service for non-sms-capable device.
If device doesn't support sms service, SMSDispatcher
will ignore incoming SMS in dispatching messge and return
ERROR_NO_SERVICE in sending sms messgae.

bug: 3250029
bug: 3038102
Change-Id: Ic72a9192aa128c43cf31da04907620bc680656c6
2010-12-10 15:29:03 -08:00
Jean-Baptiste Queru
8503144665 resolved conflicts for merge of 8484e57f to master
Change-Id: I6a8cc70250fd2be9a1e9a728940a1e9f5721a653
2010-11-22 16:43:59 -08:00
Jean-Baptiste Queru
8484e57f30 resolved conflicts for merge of e4ae7fc3 to gingerbread-plus-aosp
Change-Id: I2e0a0ed622bc4c32d79936b30ebbf9068b3bdee8
2010-11-22 16:32:34 -08:00
Henrik Hall
95bc625e29 Enabling cell broadcast (SMS-CB) support in the platform.
Adding a simple API enabling applications to control SMS-CB reception.
Implementing parsing, assembly and dispatching of SMS-CB messages over GSM.

Change-Id: Iee841605a45a3af60c7602af175056afb03a38da
2010-11-19 15:00:00 +01:00
Jake Hamby
94bf9431e5 am e7578344: am 5872e9d7: Merge "Allow incoming SMS until internal storage is almost full." into gingerbread
Merge commit 'e75783440a55fb0a5ef75066be94a11898f652f0'

* commit 'e75783440a55fb0a5ef75066be94a11898f652f0':
  Allow incoming SMS until internal storage is almost full.
2010-09-08 14:38:15 -07:00
Jake Hamby
bb37163323 Allow incoming SMS until internal storage is almost full.
Fix for bug 2382830: new incoming SMS should not be rejected when
running low on internal phone storage.

Testing revealed that the /data partition should have at least 256 KiB
available in order to prevent random app crashes (including system apps)
due to SQLite transaction failures. With 256 KiB free, the device should
safely boot without storage full errors. This takes into account the
36-40 KiB that the YAFFS2 filesystem reports as available even after
the partition has been completely filled. I've set the default full
threshold to 1 MiB to provide a generous safety margin.

For this bug, I changed the DeviceStorageMonitorService demon to send
two new hidden notifications for device storage "full" and "not full",
when the free space falls below the full threshold (default 1 MiB,
but configurable as a system setting), in addition to the existing
storage low/okay notifications sent when the storage crosses the threshold
of 90% full (also configurable).

The SMS code was changed to use these new notifications so that it can
accept messages until the data partition has been filled to the maximum
safe capacity rather than stopping when it hits 90% full. There should
be no negative impact on battery life because the additional check in
the storage polling service should be offset by an optimization to cache
the free threshold values which were previously being computed every time
through the loop.

While testing this change, I discovered that SMSDispatcher was being
instantiated twice, the first time in GSMPhone/CDMAPhone, and the second
time in SimSmsInterfaceManager / RuimSmsInterfaceManager. Changed the code
to pass the original SMSDispatcher to the Sim/RuimSmsInterfaceManager
constructor.

Change-Id: Ie0c6d05294778ab6ee42e0fa01313af96d824c77
2010-09-08 12:37:18 -07:00
Jake Hamby
d218526bf6 am d457053a: am 07936528: Merge "Cosmetic cleanups to SMSDispatcher classes." into gingerbread
Merge commit 'd457053aab0763764da5b9c3e6e84e5b2935ea88'

* commit 'd457053aab0763764da5b9c3e6e84e5b2935ea88':
  Cosmetic cleanups to SMSDispatcher classes.
2010-08-23 12:01:35 -07:00
Jake Hamby
059fe88115 Cosmetic cleanups to SMSDispatcher classes.
Cleaned up some typos and other small fixes in SMSDispatcher in
preparation for checking in my SMS bug fixes. This change doesn't
fix any bugs, but it shouldn't introduce any either.

- Removed unused import statements
- Removed unused private constants and fields
- Fixed typos in Java comments and private constants
- Added generic type parameter to mSTrackers ArrayList
- Removed unnecessary casts
- Fixed indentation of mResultReceiver in SMSDispatcher
- Removed call to get unused smsc in CDMA sendSMS()
- Changed "|=" to "=" in boolean assignment where the variable
  was initialized to false (thus the two operators are equivalent)

Change-Id: Ic19a63a7ef5cdccc7be86043c2a1b863ec8af652
2010-08-19 17:40:37 -07:00
The Android Open Source Project
24d9c149c8 am fc97669a: am 72a6af1a: am 7d952644: merge from open-source master 2010-05-12 14:16:50 -07:00
The Android Open Source Project
7d9526445c merge from open-source master
Change-Id: Ib5ea9745c2b652d64646e3e28c12e63815321ff9
2010-05-12 14:10:23 -07:00
Naveen Kalla
18573e9281 Support to display message when operation is blocked due to FDN being enabled
The terminal disallows USSD, SMS, Voice Call and Supplementary services
operations for numbers not in the Fixed Dialing Number (FDN) list when the
FDN service is enabled. FDN_CHECK_FAILURE error is sent from the RIL and the
message needs to be displayed to indicate the failure.

Change-Id: I49bd63f69a3f0201125b17cd16db2e8fcf93ddc3
2010-05-11 09:12:00 -07:00
Jake Hamby
145ff609de Spelling corrections and other minor cosmetic cleanups.
- 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
2010-04-15 15:23:12 -07:00
The Android Open Source Project
02034d3568 merge from open-source master
Change-Id: Ie60db5faf407344b8fbe3d5c1e7c01e927ff251e
2010-03-22 15:55:38 -07:00
Naveen Kalla
1a61b586b5 Retry pending memory status update to modem when radio is ON.
When radio is powered off / airplane mode, memory status updates are
ignored by RIL. With this fix, pending memory status updates are sent
again when radio is powered back on.
2010-03-03 18:54:36 -08:00
Doug Zongker
edc5189c33 change remaining frameworks/base Gservices to Secure settings
Change-Id: I61bdb05a2526523700c2833154d5a4133881ef10
2010-01-07 15:00:37 -08:00
jsh
4219797afc Log exception if we hit an error parsing an incoming SMS message.
This will help debug b/2197566.  We should have been logging the error
anyway.
2009-10-19 16:11:37 -07:00
jsh
a01726a7fd Some fixes to SMS processing in the framework.
Always process class 0 and other unstored SMS (eg, MWI).  We were
rejecting all SMS messages in storage full situations, but certain
messages do not require storage.

Also, notify apps when the framework rejects MT SMS, with new
SMS_REJECTED_ACTION intent.

b/2066775
b/2015906
2009-09-01 13:35:20 -07:00
Tammo Spalink
1f952a178d Move SMS pdu creation fully into the central Phone process.
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
2009-09-01 13:37:03 +08:00
Yong Liu
51b2b33219 MO SMS fail after sending 100 messages
After sending 100 messages, SMSDispatcher always displays dialog to user to
confirm the sending. If the user sends messages too fast then there will be more
than one dialogs waiting for the response, but SMSDisptcher can only handle one.
2009-08-28 11:58:38 -07:00
jsh
d1cb1d22af Bubble up SMS send fail error code to the app.
Framework portion of the fix for http://b/1978375:
We'll pass up the error code returned by the RIL on send failure.
2009-08-06 13:23:04 -07:00
David Krause
5c7d9e8194 CDMA incoming MMS fixes
Need to correctly interpret WAP Datagram data. Specifically the
source and destination ports are only included in the 1st segment,
not subsequent segments but the original implementation was looking
for the ports for all segments.
2009-06-25 21:56:24 -07:00
jsh
3960ced463 Fix SMS Ack.
There were a few places where we were not sending SMS ack.  This change fixes that, and helps ensure that we don't miss any others.

Also fix a bug I introduced in RIL.java for CDMA SMS ACK (it uses RIL_CDMA_SMS_Ack and not int[]).
2009-06-25 13:08:08 -07:00
Wink Saville
2563a3ac05 Cleanup whitespace. 2009-06-09 10:30:03 -07:00
jsh
52f2825c29 Report device storage status (for SMS) to RIL.
Indicate SMS memory available/not available based on DEVICE_STORAGE_OK/FULL
intents, and immediately NAK with MEMORY_FULL if we've received a
DEVICE_STORAGE_FULL notification.

This may end up being a short term solution, as the messaging app is
getting re-worked in Eclair, which may change the way we want to handle
memory full reporting (ie, more app involvement).
2009-06-08 16:05:00 -07:00
jsh
867641ece3 Telephony support for SMS memory reporting to the network.
- Use ordered broadcast to allow receivers to set a result code.
- Ack SMS with result code.
- New RIL command to report memory status.
- Fixed a typo in a Gservices setting.
- Merge in CL 137895 (hold a wake lock while broadcasting SMS_RECEIVED).
2009-05-29 14:22:36 -07:00
Tammo Spalink
64c499113a SmsHeader rewrite, in preparation for migration to public API.
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
2009-05-20 09:27:10 +08:00
Wink Saville
767a662ecd AI 144185: Integrate cdma into the main code base.
Automated import of CL 144185
2009-04-02 01:37:02 -07:00