public void onEventMainThread(UserPortraitUploadEvent event) {
    if (!isValidEvent(event)) {
      return;
    }

    if (event.isFailed()) {
      try {
        storeToCacheAndLaunchEvent(false, event, event.getUserId(), event.getPicturePath());
      } catch (Exception e) {
        notifyError(event);
      }
    } else {
      if (event.isRemote()) {
        store(true, event.getUserId(), event.getPicturePath());
      }

      User oldLoggedUser = SessionContext.getLoggedUser();

      if (event.getJSONObject() != null) {
        User user = new User(event.getJSONObject());
        if (oldLoggedUser != null && user.getId() == oldLoggedUser.getId()) {
          SessionContext.setLoggedUser(user);
        }
      }

      try {
        getListener().onUserPortraitUploaded(oldLoggedUser.getId());
      } catch (Exception e) {
        getListener().onUserPortraitUploadFailure(e);
      }
    }
  }