FileProvider: File badge and status icon not refreshed

ISSUE:
"testL2R" is a local folder added. After uploaded to server, I set its meta as isUploaded=YES and set the badge as SyncDone, and signal its parent. Through fileproviderctl tool, I can see the badge name is correctly set. But finderUI never update unless I go to root folder and reenter Private folder again.

I also tried signal workingSet, signal multiple times. Neither of them work. How can I get FinderUI updated?

Replies

Are you receiving enumerateChanges request to the working set after you signal? Are you sending the updated metadata for that item on the working set’s enumerateChanges observer?

If you’re doing all that, then file a feedback with Feedback Assistant. Include a sysdiagnose, and preferably install the iCloud Drive logging profile and reproduce again after installing.

Logging profile: https://developer.apple.com/bug-reporting/profiles-and-logs/?name=Drive

  • I have done all these things above, and filed a feedback a month ago. When will there be any reply?

  • Could you post the feedback number here?

    You’re receiving a createItem call for the directory creation, correct? And you call the completionHandler after the upload completes with the updated NSFileProviderItem metadata for the directory, including the decoration updates and isUploading=NO, isUploaded=YES ?

  • Thank you clenart.

This is what I do and neither the badge nor the decoration updates:
I call the completionHandler before the upload completes, and isUploaded=NO at that time. Since we use thrift to upload data to remote server, and we need to support both old version(no FileProvider) and new version(FileProvider), and the upload logic is in host App, I store NSFileProviderItem metadata in DB, then after uploading done, update isUploaded=YES and decoration, then signal workingSet.

Working solution from clenart:
After uploading data done, and isUploaded=YES and update decoration, then call completionHandler.