This implements the getMmscInfoForReceptionAck method
in MmsReceiver which is according to android-smsmms
library required for some carriers, since otherwise
MMS would be duplicated. Unfortunately,
accessing MMSC information is more restricted with
each version of Android and this implementation relies
on system database on older versions and uses APN database
included with android-smsmms for newer versions, which will
work only on the default SIM card.
Adds a "Properties" menu button in conversation, when one message
is selected, which displays details about the message:
- Type (SMS or MMS)
- Sender phone number (or receiver if it is a sent message)
- Used SIM
- Date sent at
- Date received at (if it is an incoming message)
This closes#19
This adds support for filtering incoming messages based on
message body by checking if it contains any of the blocked keywords
(case insensitive). Regex and patterns are not supported at the moment.
NOTE: This does not currently support MMS, only SMS.
This closes#33
Application was always picking first participant when tapping on avatars
in conversations. It was also using first participant for MMS notifications.
This stores sender's phone number in the database, so it can be used to look
up correct participant in the list of participants. If matching on number fails,
matching on name is attempted. If both of these fail, it falls back to previous
behavior, which is just picking the first participant.
This may also be connected to #32, but I am not sure, since this should just
be related to behavior when tapping on avatars. Mixing up avatars in the
conversation should be a different issue.
This closes#433, closes#500, closes#384
The previous implementation assumed that each JSON object would have an
"SMS" key and a "MMS" key, and in that order. This caused an exception
when it tried to read the next NAME token because the next token is
actually the closing bracket of the object. This commit fixes this issue
by checking that the next token is actually a NAME. If it is, we consume
the token and handle it according to its value, which may be either
"sms" or "mms". If it's neither of those, we skip it.
Fixes#646
all mms are always loaded, the number of messages only concerns sms, so only reference sms to determine the oldest loaded message
this should load all sms messages when there are mms messages in between
Fixes: #535