Skip to content

Commit 8d01f6e

Browse files
committed
- OCClassSettings: thin registered metadata in low memory configuration
1 parent 86437b6 commit 8d01f6e

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

ownCloudSDK/Settings/OCClassSettings.m

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,37 @@ - (void)registerDefaults:(NSDictionary<OCClassSettingsKey, id> *)defaults metada
101101
_registeredMetaDataCollectionsByIdentifier[identifier] = registeredMetaDataCollections;
102102
}
103103

104-
[registeredMetaDataCollections addObject:metaData];
104+
if (OCPlatform.current.memoryConfiguration == OCPlatformMemoryConfigurationMinimum)
105+
{
106+
@autoreleasepool {
107+
NSMutableDictionary<OCClassSettingsKey,OCClassSettingsMetadata> *filteredCollection = [NSMutableDictionary new];
108+
109+
for (OCClassSettingsKey settingsKey in metaData)
110+
{
111+
OCClassSettingsMetadata settingsMetadata = metaData[settingsKey];
112+
id mdType = settingsMetadata[OCClassSettingsMetadataKeyType];
113+
id mdPossibleKeys = settingsMetadata[OCClassSettingsMetadataKeyPossibleKeys];
114+
115+
if ((mdType != nil) || (mdPossibleKeys != nil))
116+
{
117+
NSMutableDictionary<OCClassSettingsMetadataKey,id> *filteredMetadata = [NSMutableDictionary new];
118+
filteredMetadata[OCClassSettingsMetadataKeyType] = mdType;
119+
filteredMetadata[OCClassSettingsMetadataKeyPossibleKeys] = mdPossibleKeys;
120+
121+
filteredCollection[settingsKey] = [[NSDictionary alloc] initWithDictionary:filteredMetadata];
122+
}
123+
}
124+
125+
if (filteredCollection.count > 0)
126+
{
127+
[registeredMetaDataCollections addObject:[[NSDictionary alloc] initWithDictionary:filteredCollection]];
128+
}
129+
}
130+
}
131+
else
132+
{
133+
[registeredMetaDataCollections addObject:metaData];
134+
}
105135
}
106136

107137
[self clearSourceCache];

0 commit comments

Comments
 (0)