|Summary||incremental PHOTO download, avoid sync if no change|
Tracked as one issue, because it affects the same code. The first part, incremental PHOTO download, has the goal of making the text-only properties available sooner. This can be done by doing the initial sync with a filter that excludes PHOTO data, then do the next sync with PHOTO data. The second part is meant to avoid expensive work (syncing) and thus save CPU cycles: by checksumming the downloaded data, it becomes possible to detect the case where nothing changed and avoid the syncing. Some complications: - When switching between downloads with and without PHOTO, then two checksums are needed. - If the checksum without PHOTO data matches, then we still need to download with PHOTO data, because the PHOTOs might have changed. - At the moment, doing a sync without PHOTO after a sync with PHOTO will remove the PHOTO data from the local cache. The engine would have to be configured so that it knows whether PHOTOs are part of the sync or not (relevant also for other issues, see feature request/bug #54998). A simpler solution would be the following: - If a phone has never been synced before, do a sync without PHOTO data. This will add the text-only properties quickly. - Immediately do a sync with PHOTOs, to add that data. Keep a checksum of that sync. - In all future syncs, download with PHOTO data and compare the checksum to avoid syncing when nothing changed. This logic can be implemented entirely in the PBAP backend.