      if (current_destination && *destination == *current_destination) return;
      current_destination = std::move(destination);
      current_widget->set(current_destination.get(), true);
    } else {
      current_destination.reset(nullptr);
      current_widget->unset("", true);
    }
    if (isVisible()) refresh();
  }
  
 
</s> remove     auto destination = std::make_unique<NavDestination>(doc.object());
    if (current_destination && *destination == *current_destination) return;
    current_destination = std::move(destination);
    current_widget->set(current_destination.get(), true);
 </s> add     current_destination = doc.object();
    current_widget->set(current_destination, true); </s> remove void MapSettings::parseResponse(const QString &response, bool success) {
  if (!success || response == cur_destinations) return;
  cur_destinations = response;
 </s> add void MapSettings::updateLocations(const QJsonArray &locations) {
  current_locations = locations; </s> remove   bool has_home = false, has_work = false;
  auto destinations = std::vector<std::unique_ptr<NavDestination>>();

  auto destinations_str = cur_destinations.trimmed();
  if (!destinations_str.isEmpty()) {
    QJsonDocument doc = QJsonDocument::fromJson(destinations_str.toUtf8());
    if (doc.isNull()) {
      qWarning() << "JSON Parse failed on navigation locations" << cur_destinations;
      return;
    }

    for (auto el : doc.array()) {
      auto destination = std::make_unique<NavDestination>(el.toObject());

      // add home and work later if they are missing
      if (destination->isFavorite()) {
        if (destination->label() == NAV_FAVORITE_LABEL_HOME) has_home = true;
        else if (destination->label() == NAV_FAVORITE_LABEL_WORK) has_work = true;
      }

      // skip current destination
      if (current_destination && *destination == *current_destination) continue;
      destinations.push_back(std::move(destination));
    }
  }

 </s> add   setUpdatesEnabled(false); </s> remove     int index = !has_home || (current_destination && current_destination->isFavorite() && current_destination->label() == NAV_FAVORITE_LABEL_HOME) ? 0 : 1;
 </s> add     int index = !has_home || (current_destination["save_type"] == NAV_TYPE_FAVORITE && current_destination["label"] == NAV_FAVORITE_LABEL_HOME) ? 0 : 1; </s> remove       subtitle_text = destination->name() + ", " + destination->details();
    } else if (destination->label() == NAV_FAVORITE_LABEL_WORK) {
 </s> add     } else if (destination["label"] == NAV_FAVORITE_LABEL_WORK) {
    current_destination = {};
      if (current_destination && *destination == *current_destination) return;
      current_destination = std::move(destination);
      current_widget->set(current_destination.get(), true);
    } else {
    current_destination = {};
      current_widget->unset("", true);
    }
    if (isVisible()) refresh();
  }
  
keep keep keep keep replace keep keep keep keep keep
 ui/MapSettings: sort location JsonArray inplace (#28886) 
selfdrive/ui/qt/maps/map_settings.cc