Exemplo n.º 1
0
  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);
  }