Theme fixes

This commit is contained in:
Ilya Laktyushin
2019-12-28 23:37:30 +03:00
parent 4909f957e1
commit 52fd480771
23 changed files with 215 additions and 140 deletions

View File

@@ -67,6 +67,8 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
private var statusDisposable: Disposable?
private var fetchDisposable = MetaDisposable()
private var dismissed = false
init(context: AccountContext, previewTheme: PresentationTheme, initialWallpaper: TelegramWallpaper?, dismiss: @escaping () -> Void, apply: @escaping () -> Void, isPreview: Bool, ready: Promise<Bool>) {
self.context = context
self.previewTheme = previewTheme
@@ -122,11 +124,8 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
self.toolbarNode = WallpaperGalleryToolbarNode(theme: self.previewTheme, strings: self.presentationData.strings, doneButtonType: .set)
if case let .file(file) = previewTheme.chat.defaultWallpaper, file.id == 0 {
self.remoteChatBackgroundNode.isHidden = false
if case let .file(file) = previewTheme.chat.defaultWallpaper {
self.toolbarNode.setDoneEnabled(false)
} else {
self.remoteChatBackgroundNode.isHidden = true
}
self.maskNode = ASImageNode()
@@ -175,11 +174,12 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
self.toolbarNode.cancel = {
dismiss()
}
var dismissed = false
self.toolbarNode.done = {
if !dismissed {
dismissed = true
apply()
self.toolbarNode.done = { [weak self] in
if let strongSelf = self {
if !strongSelf.dismissed {
strongSelf.dismissed = true
apply()
}
}
}
@@ -229,9 +229,9 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
var convertedRepresentations: [ImageRepresentationWithReference] = []
for representation in file.file.previewRepresentations {
convertedRepresentations.append(ImageRepresentationWithReference(representation: representation, reference: MediaResourceReference.media(media: .standalone(media: file.file), resource: representation.resource)))
convertedRepresentations.append(ImageRepresentationWithReference(representation: representation, reference: .wallpaper(wallpaper: .slug(file.slug), resource: representation.resource)))
}
convertedRepresentations.append(ImageRepresentationWithReference(representation: .init(dimensions: dimensions, resource: file.file.resource), reference: .media(media: .standalone(media: file.file), resource: file.file.resource)))
convertedRepresentations.append(ImageRepresentationWithReference(representation: .init(dimensions: dimensions, resource: file.file.resource), reference: .wallpaper(wallpaper: .slug(file.slug), resource: file.file.resource)))
let signal: Signal<(TransformImageArguments) -> DrawingContext?, NoError>
let fileReference = FileMediaReference.standalone(media: file.file)
@@ -249,9 +249,9 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
signal = .complete()
}
strongSelf.remoteChatBackgroundNode.setSignal(signal)
strongSelf.fetchDisposable.set(freeMediaFileInteractiveFetched(account: context.account, fileReference: .standalone(media: file.file)).start())
strongSelf.fetchDisposable.set(fetchedMediaResource(mediaBox: context.sharedContext.accountManager.mediaBox, reference: .wallpaper(wallpaper: .slug(file.slug), resource: file.file.resource)).start())
let account = strongSelf.context.account
let statusSignal = strongSelf.context.sharedContext.accountManager.mediaBox.resourceStatus(file.file.resource)
|> take(1)
@@ -270,7 +270,6 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
}
})
var patternArguments: PatternWallpaperArguments?
if let color = file.settings.color {
var patternIntensity: CGFloat = 0.5