Store materialised file metadata in file provider settings controller

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-09-28 19:59:45 +08:00
parent c3490db271
commit fec9902a25
No known key found for this signature in database
GPG Key ID: C839200C384636B0
2 changed files with 8 additions and 0 deletions

View File

@ -207,16 +207,22 @@ private:
}
const NSUInteger usage = storageUseObserver.usage;
NSSet<id<NSFileProviderItem>> *const items = storageUseObserver.materialisedItems;
Q_ASSERT(items != nil);
// Remember that OCC::Account::userIdAtHost == domain.identifier for us
NSMutableDictionary<NSString *, NSNumber *> *const mutableStorageDictCopy = _storageUsage.mutableCopy;
NSMutableDictionary<NSString *, NSSet<id<NSFileProviderItem>> *> *const mutableFilesDictCopy = _materialisedFiles.mutableCopy;
qCDebug(lcFileProviderSettingsController) << "Local storage use for"
<< domain.identifier
<< usage;
[mutableStorageDictCopy setObject:@(usage) forKey:domain.identifier];
[mutableFilesDictCopy setObject:items forKey:domain.identifier];
_storageUsage = mutableStorageDictCopy.copy;
_materialisedFiles = mutableFilesDictCopy.copy;
const auto qDomainIdentifier = QString::fromNSString(domain.identifier);
emit q->localStorageUsageForAccountChanged(qDomainIdentifier);
@ -252,6 +258,7 @@ private:
NSUserDefaults *_userDefaults = NSUserDefaults.standardUserDefaults;
NSString *_accountsKey = [NSString stringWithUTF8String:enabledAccountsSettingsKey];
NSDictionary <NSString *, NSNumber *> *_storageUsage = @{};
NSDictionary <NSString *, NSSet<id<NSFileProviderItem>> *> *_materialisedFiles = @{};
};
FileProviderSettingsController *FileProviderSettingsController::instance()

View File

@ -22,6 +22,7 @@
self = [super init];
if (self) {
_usage = 0ULL;
_materialisedItems = [NSSet set];
}
return self;
}