// used by My
  public static SubscriptionData createOrUpdateSubscription(
      SubscriptionData inSubscription,
      VObjectData inObject,
      boolean isAmbiant,
      String isoCode,
      String inSrc,
      List<String> inTimeList)
      throws InvalidParameterException, InvalidSettingException, InvalidSchedulingsException,
          MissingSettingException {

    final Map<String, Object> theSettings = new HashMap<String, Object>();
    theSettings.put(AirHandler.LANGUAGE_SETTING, isoCode);
    theSettings.put(AirHandler.SOURCE_SETTING, inSrc);

    final List<Map<String, Object>> theSchedulings = new ArrayList<Map<String, Object>>();

    if (isAmbiant) {
      final Map<String, Object> scheduling = new HashMap<String, Object>();
      scheduling.put(SchedulingType.TYPE_KEY, SchedulingType.SCHEDULING_TYPE.Ambiant.getLabel());
      theSchedulings.add(scheduling);
    }

    final Map<String, Object> scheduling = new HashMap<String, Object>();
    scheduling.put(SchedulingType.TYPE_KEY, SchedulingType.SCHEDULING_TYPE.VoiceTrigger.getLabel());
    scheduling.put(KeywordHandler.KEYWORD, AbstractRecoService.SMOG);
    theSchedulings.add(scheduling);

    theSchedulings.addAll(
        ApplicationHandlerHelper.generateDailySchedulings(
            inTimeList, inObject.getReference().getTimeZone().getJavaTimeZone(), true));

    if (inSubscription == null) {
      return SubscriptionManager.createSubscription(
          AirHandler.AIR_APPLICATION, inObject, theSettings, theSchedulings, null);
    }

    SubscriptionManager.updateSubscription(inSubscription, theSettings, theSchedulings, null);
    return inSubscription;
  }