public void setSleepTime(SleepTime inSleepTime, boolean inUpdateState) { final Map<String, Object> theUpdateMap = new HashMap<String, Object>(); Factories.OBJECT_SLEEP.setObjectSleepTime(this, inSleepTime); if (inUpdateState) { // calcul s'il est en veille ou pas final boolean isSleeping = ObjectSleep.ObjectSleepCommon.asleep(this); if (isXMPP()) { final List<String> resources = getResources(); // IQResourcesQuery.getClientResources(getXmppAddress()); if (isSleeping) { if (!resources.contains("asleep")) { sendXmppStatus(Message.MODE_VEILLE, JabberMessageFactory.IQ_STATUS_IDLE_MODE); } else { setObject_state(theUpdateMap, VObject.STATUS_VEILLE); } } else { if (resources.contains("asleep")) { sendXmppStatus(Message.MODE.ACTIF.getId(), JabberMessageFactory.IQ_STATUS_ASLEEP_MODE); } else { setObject_state(theUpdateMap, VObject.STATUS_ACTIF); } } } else { setObject_state(theUpdateMap, (isSleeping ? VObject.STATUS_VEILLE : VObject.STATUS_ACTIF)); } } update(theUpdateMap); }