@Override
  public void onSubmit(ArrayList<String> array) {

    String titleCode = "";
    String currencyCode = "";
    String languageCode = "";

    for (GenericNameCode obj : mTitles) {
      if (StringUtils.equalsIgnoreCase(obj.getName(), array.get(0).toString())) {
        titleCode = obj.getCode();
        break;
      }
    }

    for (GenericNameCode obj : mCurrencies) {
      if (StringUtils.equalsIgnoreCase(obj.getName(), array.get(3).toString())) {
        currencyCode = obj.getIsocode();
        break;
      }
    }

    for (GenericNameCode obj : mLanguages) {
      if (StringUtils.equalsIgnoreCase(obj.getName(), array.get(4).toString())) {
        languageCode = obj.getIsocode();
        break;
      }
    }

    QueryCustomer query = new QueryCustomer();
    query.setFirstName(array.get(1));
    query.setLastName(array.get(2));
    query.setTitleCode(titleCode);
    query.setLanguage(languageCode);
    query.setCurrency(currencyCode);

    RESTLoader.execute(this, WebserviceMethodEnums.METHOD_UPDATE_PROFILE, query, this, true, true);
  }
  @SuppressWarnings("unchecked")
  @Override
  public void onReceiveResult(
      RESTLoaderResponse restLoaderResponse, WebserviceMethodEnums webserviceEnumMethod) {

    if (restLoaderResponse.getCode() == RESTLoaderResponse.SUCCESS) {

      List<GenericNameCode> response;
      Hashtable<String, Object> dict;

      switch (webserviceEnumMethod) {
        case METHOD_TITLES:
          response =
              JsonUtils.fromJsonList(restLoaderResponse.getData(), "titles", GenericNameCode.class);

          mTitles.addAll(response);

          List<String> titles = new ArrayList<String>();

          for (GenericNameCode genericNameCode : response) {
            titles.add(genericNameCode.getName());
          }

          dict = (Hashtable<String, Object>) entries.get(0);
          dict.put("values", titles);
          break;

        case METHOD_CURRENCIES:
          response =
              JsonUtils.fromJsonList(
                  restLoaderResponse.getData(), "currencies", GenericNameCode.class);

          mCurrencies.addAll(response);

          List<String> currencies = new ArrayList<String>();

          for (GenericNameCode genericNameCode : response) {
            currencies.add(genericNameCode.getName());
          }

          dict = (Hashtable<String, Object>) entries.get(3);
          dict.put("values", currencies);
          break;

        case METHOD_LANGUAGES:
          response =
              JsonUtils.fromJsonList(
                  restLoaderResponse.getData(), "languages", GenericNameCode.class);

          mLanguages.addAll(response);

          List<String> languages = new ArrayList<String>();

          for (GenericNameCode genericNameCode : response) {
            languages.add(genericNameCode.getName());
          }

          dict = (Hashtable<String, Object>) entries.get(4);
          dict.put("values", languages);
          break;

        case METHOD_UPDATE_PROFILE:
          Toast.makeText(
                  getApplicationContext(),
                  R.string.generic_success_message_popup,
                  Toast.LENGTH_SHORT)
              .show();
          finish();
          break;

        default:
          break;
      }
    } else if (restLoaderResponse.getCode() == RESTLoaderResponse.ERROR) {
      switch (webserviceEnumMethod) {
        case METHOD_UPDATE_PROFILE:
          Toast.makeText(getApplicationContext(), restLoaderResponse.getData(), Toast.LENGTH_LONG)
              .show();
          break;

        default:
          break;
      }
    }
  }