string Info::GetSubtitle() const { if (!IsFeature()) { if (IsBookmark()) return m_bookmarkCategoryName; return {}; } vector<string> values; // Bookmark category. if (IsBookmark()) values.push_back(m_bookmarkCategoryName); // Type. values.push_back(GetLocalizedType()); // Flats. string const flats = GetFlats(); if (!flats.empty()) values.push_back(flats); // Cuisines. for (string const & cuisine : GetLocalizedCuisines()) values.push_back(cuisine); // Stars. string const stars = FormatStars(); if (!stars.empty()) values.push_back(stars); // Operator. string const op = GetOperator(); if (!op.empty()) values.push_back(op); // Elevation. string const eleStr = GetElevationFormatted(); if (!eleStr.empty()) values.push_back(kMountainSymbol + eleStr); if (HasWifi()) values.push_back(m_localizedWifiString); return strings::JoinStrings(values, kSubtitleSeparator); }
string Info::FormatSubtitle(bool withType) const { std::vector<std::string> subtitle; if (IsBookmark()) subtitle.push_back(m_bookmarkCategoryName); if (withType) subtitle.push_back(GetLocalizedType()); // Flats. string const flats = GetFlats(); if (!flats.empty()) subtitle.push_back(flats); // Cuisines. for (string const & cuisine : GetLocalizedCuisines()) subtitle.push_back(cuisine); // Airport IATA code. string const iata = GetAirportIata(); if (!iata.empty()) subtitle.push_back(iata); // Stars. string const stars = FormatStars(); if (!stars.empty()) subtitle.push_back(stars); // Operator. string const op = GetOperator(); if (!op.empty()) subtitle.push_back(op); // Elevation. string const eleStr = GetElevationFormatted(); if (!eleStr.empty()) subtitle.push_back(kMountainSymbol + eleStr); if (HasWifi()) subtitle.push_back(m_localizedWifiString); // Wheelchair if (GetWheelchairType() == ftraits::WheelchairAvailability::Yes) subtitle.push_back(kWheelchairSymbol); return strings::JoinStrings(subtitle, kSubtitleSeparator); }