@Override
    public void onTextChanged(CharSequence input, int start, int before, int count) {
      if (!destinationEditNumber.hasWindowFocus()
          || destinationEditNumber.hasFocus()
          || input == null) {
        return;
      }

      String str = input.toString();
      if ("".equals(str)) {
        destinationEditNumber.setText("");
        return;
      }

      try {
        double temp = Double.parseDouble(str);
        double result =
            (option == Option.C2F)
                ? TemperatureConverter.celsiusToFahrenheit(temp)
                : TemperatureConverter.fahrenheitToCelsius(temp);
        String resultString = String.format("%.2f", result);
        destinationEditNumber.setNumber(result);
        destinationEditNumber.setSelection(resultString.length());
      } catch (NumberFormatException ignore) {
        // WARNING this is generated whilst numbers are being entered,
        // for example just a '-' so we don't want to show the error just yet
      } catch (Exception e) {
        sourceEditNumber.setError("ERROR: " + e.getLocalizedMessage());
      }
    }