Fix watch app profile pics fetching

This commit is contained in:
Ilya Laktyushin 2019-11-07 20:03:33 +04:00
parent 1604a38548
commit 3d1555bfa2
2 changed files with 6 additions and 13 deletions

View File

@ -131,21 +131,14 @@
+ (SSignal *)_requestImageWithUrl:(NSString *)url subscription:(TGBridgeSubscription *)subscription
{
SSignal *remoteSignal = [[[[[TGBridgeClient instance] requestSignalWithSubscription:subscription] onStart:^
{
SSignal *remoteSignal = [[[[TGBridgeClient instance] requestSignalWithSubscription:subscription] onStart:^
{
if (![[self mediaManager] hasUrl:url])
[[self mediaManager] addUrl:url];
}] onDispose:^
}] then:[[self _downloadedFileWithUrl:url] onNext:^(id next)
{
[[self mediaManager] removeUrl:url];
}] mapToSignal:^SSignal *(id next)
{
return [[self _downloadedFileWithUrl:url] onNext:^(id next)
{
[[self mediaManager] removeUrl:url];
}];
}];
}]];
return [[self _cachedOrPendingWithUrl:url] catch:^SSignal *(id error)
{
return remoteSignal;

View File

@ -402,7 +402,7 @@ final class WatchMediaHandler: WatchRequestHandler {
if let peer = peer, let representation = peer.smallProfileImage {
let imageData = peerAvatarImageData(account: context.account, peer: peer, authorOfMessage: nil, representation: representation, synchronousLoad: false)
if let imageData = imageData {
return imageData |> deliverOn(Queue.concurrentDefaultQueue())
return imageData
|> map { data -> UIImage? in
if let data = data, let image = generateImage(targetSize, contextGenerator: { size, context -> Void in
if let imageSource = CGImageSourceCreateWithData(data as CFData, nil), let dataImage = CGImageSourceCreateImageAtIndex(imageSource, 0, nil) {
@ -429,7 +429,7 @@ final class WatchMediaHandler: WatchRequestHandler {
let disposable = signal.start(next: { image in
if let image = image, let imageData = image.jpegData(compressionQuality: compressionRate) {
sendData(manager: manager, data: imageData, key: key, ext: ".jpg", type: TGBridgeIncomingFileTypeImage)
sendData(manager: manager, data: imageData, key: key, ext: ".jpg", type: TGBridgeIncomingFileTypeImage, forceAsData: true)
}
subscriber?.putNext(key)
}, completed: {