Issue:
The class com.urbanairship.push.ChannelRegistrationPayload serializes itself to JSON in the method toJsonValue() by utilizing the JsonMap class. This class skips empty properties. If the 'alias' property is an empty String, it will not be set in the resulting JSON string.
When deserializing in the parseJson() method, the 'alias' property is set to null since it's not present in the JSON string as stored in the SharedPreferences.
The net result of this is that in the class com.urbanairship.push.PushManagerJobHandler the method shouldUpdateRegistration() always returns true, even if the payload that was received, should be regarded as the same as the payload that was stored.
This effectively results in the channel being updated way too often.
Issue: The class com.urbanairship.push.ChannelRegistrationPayload serializes itself to JSON in the method toJsonValue() by utilizing the JsonMap class. This class skips empty properties. If the 'alias' property is an empty String, it will not be set in the resulting JSON string. When deserializing in the parseJson() method, the 'alias' property is set to null since it's not present in the JSON string as stored in the SharedPreferences.
The net result of this is that in the class com.urbanairship.push.PushManagerJobHandler the method shouldUpdateRegistration() always returns true, even if the payload that was received, should be regarded as the same as the payload that was stored.
This effectively results in the channel being updated way too often.