@Override
  public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
    if (data.moveToFirst()) {
      detailString = convertCursorRowToUXFormat(data);
      if (shareProvider != null) {
        shareProvider.setShareIntent(createForecastShareIntent());
      }
      mWeatherId = data.getInt(COL_WEATHER_ID);

      long date = data.getLong(ForecastFragment.COL_WEATHER_DATE);
      // POPULATE THE text views
      mDay.setText(Utility.getDayName(getActivity(), date));
      mDate.setText(Utility.getFormattedMonthDay(getActivity(), date));

      mHigh.setText(
          getString(R.string.format_degrees, data.getFloat(ForecastFragment.COL_WEATHER_MAX_TEMP)));
      mLow.setText(
          getString(R.string.format_degrees, data.getFloat(ForecastFragment.COL_WEATHER_MIN_TEMP)));
      mHumidity.setText(getString(R.string.format_humidity, data.getFloat(COL_HUMIDITY)));
      mPressure.setText(getString(R.string.format_pressure, data.getFloat(COL_PRESSURE)));
      mIcon.setImageResource(Utility.weatherCodeToArtPath(mWeatherId));

      float windSpeed = data.getFloat(COL_WIND_SPEED);
      String windDirection = getWindDirection(data.getFloat(COL_DEGREES));
      mWind.setText(getString(R.string.format_wind_kmh, windSpeed, windDirection));
      if (mCompass != null) {
        mCompass.setAngle(degreesToRadians(data.getFloat(COL_DEGREES)));
      }

      mDescription.setText(data.getString(ForecastFragment.COL_WEATHER_DESC));
    }
  }