Skip to content

Commit

Permalink
Branding: (#1045)
Browse files Browse the repository at this point in the history
- add new `branding.user-defaults-default-values` class settings key to allow registration of alternative defaults for user defaults
  • Loading branch information
felix-schwarz authored Oct 11, 2021
1 parent bda5598 commit 88609b5
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 3 deletions.
3 changes: 3 additions & 0 deletions ownCloudAppFramework/Branding/Branding.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,16 @@ typedef NSString* BrandingImageName NS_TYPED_EXTENSIBLE_ENUM;
- (nullable id)computedValueForClassSettingsKey:(OCClassSettingsKey)classSettingsKey;
- (nullable NSURL *)urlForClassSettingsKey:(OCClassSettingsKey)settingsKey;

- (void)registerUserDefaultsDefaults;

@end

extern OCClassSettingsIdentifier OCClassSettingsIdentifierBranding;

extern BrandingKey BrandingKeyAppName;
extern BrandingKey BrandingKeyOrganizationName;
extern BrandingKey BrandingKeyDisabledImportMethods;
extern BrandingKey BrandingKeyUserDefaultsDefaultValues;

extern BrandingFileImportMethod BrandingFileImportMethodOpenWith;
extern BrandingFileImportMethod BrandingFileImportMethodShareExtension;
Expand Down
30 changes: 27 additions & 3 deletions ownCloudAppFramework/Branding/Branding.m
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,16 @@ - (instancetype)init
return (self);
}

- (void)registerUserDefaultsDefaults
{
// Register user defaults
NSDictionary *userDefaultsDefaults;
if ((userDefaultsDefaults = self.userDefaultsDefaultValues) != nil)
{
[OCAppIdentity.sharedAppIdentity.userDefaults registerDefaults:userDefaultsDefaults];
}
}

- (void)registerLegacyKeyPath:(BrandingLegacyKeyPath)keyPath forClassSettingsKey:(OCClassSettingsKey)classSettingsKey;
{
NSMutableDictionary<OCClassSettingsKey, BrandingLegacyKeyPath> *mutableLegacyKeyPathsByClassSettingsKeys = nil;
Expand All @@ -231,6 +241,11 @@ - (NSString *)organizationName
return ([self computedValueForClassSettingsKey:BrandingKeyOrganizationName]);
}

- (NSDictionary *)userDefaultsDefaultValues
{
return ([self computedValueForClassSettingsKey:BrandingKeyUserDefaultsDefaultValues]);
}

- (NSArray<BrandingFileImportMethod> *)disabledImportMethods
{
return ([self computedValueForClassSettingsKey:BrandingKeyDisabledImportMethods]);
Expand Down Expand Up @@ -349,6 +364,14 @@ + (OCClassSettingsMetadataCollection)classSettingsMetadata
BrandingFileImportMethodShareExtension : @"Disallow import through the Share Extension",
BrandingFileImportMethodFileProvider : @"Disallow import through the File Provider (Files.app)"
}
},

// User Defaults
BrandingKeyUserDefaultsDefaultValues : @{
OCClassSettingsMetadataKeyType : OCClassSettingsMetadataTypeDictionary,
OCClassSettingsMetadataKeyDescription : @"Default values for user defaults. Allows overriding default settings.",
OCClassSettingsMetadataKeyStatus : OCClassSettingsKeyStatusAdvanced,
OCClassSettingsMetadataKeyCategory : @"Branding"
}
});
}
Expand All @@ -357,9 +380,10 @@ + (OCClassSettingsMetadataCollection)classSettingsMetadata

OCClassSettingsIdentifier OCClassSettingsIdentifierBranding = @"branding";

OCClassSettingsKey BrandingKeyAppName = @"app-name";
OCClassSettingsKey BrandingKeyOrganizationName = @"organization-name"; // Legacy Branding Key: organizationName
OCClassSettingsKey BrandingKeyDisabledImportMethods = @"disabled-import-methods";
BrandingKey BrandingKeyAppName = @"app-name";
BrandingKey BrandingKeyOrganizationName = @"organization-name"; // Legacy Branding Key: organizationName
BrandingKey BrandingKeyDisabledImportMethods = @"disabled-import-methods";
BrandingKey BrandingKeyUserDefaultsDefaultValues = @"user-defaults-default-values";

BrandingFileImportMethod BrandingFileImportMethodOpenWith = @"open-with";
BrandingFileImportMethod BrandingFileImportMethodShareExtension = @"share-extension";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ @implementation BrandingClassSettingsSource
+ (void)load
{
[OCClassSettings.sharedSettings insertSource:[BrandingClassSettingsSource new] before:OCClassSettingsSourceIdentifierManaged after:nil];
[Branding.sharedBranding registerUserDefaultsDefaults];
}

- (OCClassSettingsSourceIdentifier)settingsSourceIdentifier
Expand Down

0 comments on commit 88609b5

Please sign in to comment.