This came up within the aSmack community (aSmack issue 27). RFC6121 4.7.2.1 states that "If no <show/> element is provided, the entity is assumed to be online and available." The show element has only 4 modes defined, namely "away", "chat", "dnd" and "xa". The "available" mode, not to be confused with status type "available", is an implicit one.
I am considering changing Prescence.getMode() to return Mode.available if mode is not set. This seems to be the better aproach compared to explicity setting mode to Mode.available in the Prescence(Type) constructor. Any comments or objections?