This commit is contained in:
2025-11-20 14:56:15 +08:00
parent 799b0f3989
commit bc1264e28f
2 changed files with 28 additions and 4 deletions

Binary file not shown.

View File

@@ -129,7 +129,11 @@ static void KBSkinDarwinCallback(CFNotificationCenterRef center, void *observer,
}
- (BOOL)applyImageSkinWithData:(NSData *)imageData skinId:(NSString *)skinId name:(NSString *)name {
// 使 App Group
// Skins/<skinId>/background.png Keychain
// App
if (imageData.length == 0) return NO;
// /
KBSkinTheme *base = self.current ?: [self.class defaultTheme];
KBSkinTheme *t = [KBSkinTheme new];
@@ -143,14 +147,34 @@ static void KBSkinDarwinCallback(CFNotificationCenterRef center, void *observer,
//
t.hiddenKeyTextIdentifiers = base.hiddenKeyTextIdentifiers;
t.keyIconMap = base.keyIconMap;
t.backgroundImageData = imageData;
// Keychain skinId
// App Group Skins/<skinId>/background.png
t.backgroundImageData = nil;
return [self applyTheme:t];
}
- (UIImage *)currentBackgroundImage {
NSData *d = self.current.backgroundImageData;
if (d.length == 0) return nil;
return [UIImage imageWithData:d scale:[UIScreen mainScreen].scale] ?: nil;
// App Group skinId
// AppGroup
// Keychain backgroundImageData
NSString *skinId = self.current.skinId;
if (skinId.length == 0) return nil;
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:AppGroup];
if (!containerURL) return nil;
NSString *relative = [NSString stringWithFormat:@"Skins/%@/background.png", skinId];
NSString *bgPath = [[containerURL.path stringByAppendingPathComponent:relative] stringByStandardizingPath];
NSFileManager *fm = [NSFileManager defaultManager];
BOOL isDir = NO;
if (![fm fileExistsAtPath:bgPath isDirectory:&isDir] || isDir) {
return nil;
}
NSData *data = [NSData dataWithContentsOfFile:bgPath];
if (data.length == 0) return nil;
return [UIImage imageWithData:data scale:[UIScreen mainScreen].scale] ?: nil;
}
- (BOOL)shouldHideKeyTextForIdentifier:(NSString *)identifier {