@Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {

    // Changing the backend url selection (internal, external, etc.)
    if (StringUtils.equals(key, getString(R.string.preference_key_key_base_url))
        || StringUtils.equals(key, getString(R.string.preference_key_value_base_url))) {
      String keyValue = sharedPreferences.getString(key, "");
      Preference keyPreference = findPreference(key);

      String[] keysTab = getResources().getStringArray(R.array.backend_url_keys);
      String[] valuesTab = getResources().getStringArray(R.array.backend_url_values);

      boolean resetBackendEndConnectors = true;

      if (StringUtils.equals(key, getString(R.string.preference_key_key_base_url))) {
        int indexKey = ArrayUtils.indexOf(keysTab, keyValue);

        // Setting the description to the right key
        keyPreference.setSummary(keyValue);

        // For custom key don't empty the field
        if (indexKey < keysTab.length - 1) {

          // If something changed
          if (!StringUtils.equals(
              valuesTab[indexKey],
              mSharedPreferences.getString(
                  getString(R.string.preference_key_value_base_url), ""))) {
            Preference prefValueBackendUrl =
                findPreference(getString(R.string.preference_key_value_base_url));
            prefValueBackendUrl.setSummary(valuesTab[indexKey]);
            ((EditTextPreference) prefValueBackendUrl).setText(valuesTab[indexKey]);

            // Saving the value on the settings
            SharedPreferences.Editor editor = mSharedPreferences.edit();
            editor.putString(
                getString(R.string.preference_key_value_base_url), valuesTab[indexKey]);
            editor.commit();
          } else {
            resetBackendEndConnectors = false;
          }
        }
      }
      // Changing the backend url value
      else {
        // Updating the description (Or custom if no value found)
        Preference prefKeyBackendUrl =
            findPreference(getString(R.string.preference_key_key_base_url));
        prefKeyBackendUrl.setSummary(keysTab[ArrayUtils.indexOf(valuesTab, keyValue)]);
        keyPreference.setSummary(keyValue);
      }

      // Update the url of the backend
      if (resetBackendEndConnectors) {
        B2BApplication.updateUrl(
            mSharedPreferences.getString(getString(R.string.preference_key_value_base_url), ""));
      }
    }
  }