Semantics of KUidInboxStatus notification changed in S60 5th Edition
S60 5th Edition
KIS000386_-_Information_retrieved_using_the_Publish_and_Subscribe_keys_defined_in_SaCls.h_is_incorrect describes an adjustment that is made to the value returned by the KUidSystemCategory/KUidInboxStatus Publish&Subscribe key that can be used to check for unread messages, as well as other keys.
However, this adjustment is no longer applied for KUidInboxStatus on 5th Edition (not tested for other keys). Therefore, the values returned by RProperty::Get() are now 0 and 1, respectively, rather than 1 and 2. In addition KErrUnknown (-19) is also a valid return value if the key has not yet been set, e.g. during early startup.
As there is no other documented way of querying the presence of unread messages in the inbox, checking the status of this key has to be performed in two different ways depending on the platform of your application: on 3rd Edition, check for ESAInboxEmpty/ESADocumentInInbox, while on 5th Edition one needs to check between 0 (meaning there are unread messages) and KErrNotFound. As the value ranges are overlapping, this requires an explicit check of the platform / device version, and would break if the above discrepancy is ever fixed.
A possible, though much less efficient, alternative could be to check the unread count using the code given in How_to_get_the_count_of_unread_messages_from_Inbox.