Fix UI glitch

This commit is contained in:
Niels Andriesse 2019-09-17 09:56:47 +10:00
parent bd309c4f6f
commit 4d5c12ad6e
5 changed files with 29 additions and 29 deletions

View File

@ -962,16 +962,18 @@ const CGFloat kMaxTextViewHeight = 98;
// It's key that we use the *raw/unstripped* text, so we can reconcile cursor position with the
// selectedRange.
NSString *_Nullable previewUrl = [OWSLinkPreview previewUrlForRawBodyText:self.inputTextView.text
selectedRange:self.inputTextView.selectedRange];
NSString *_Nullable previewUrl = [OWSLinkPreview previewUrlForRawBodyText:self.inputTextView.text selectedRange:self.inputTextView.selectedRange];
if ([previewUrl hasSuffix:@".gif"]) {
return [self clearLinkPreviewStateAndView];
}
if (previewUrl.length < 1) {
[self clearLinkPreviewStateAndView];
return;
return [self clearLinkPreviewStateAndView];
}
if (self.inputLinkPreview && [self.inputLinkPreview.previewUrl isEqualToString:previewUrl]) {
// No need to update.
return;
return; // No need to update.
}
InputLinkPreview *inputLinkPreview = [InputLinkPreview new];

View File

@ -4,7 +4,10 @@ import PromiseKit
public final class LokiAPI : NSObject {
internal static let storage = OWSPrimaryStorage.shared()
internal static var userHexEncodedPublicKey: String { return OWSIdentityManager.shared().identityKeyPair()!.hexEncodedPublicKey }
// MARK: Convenience
internal static var userHexEncodedPublicKey: String {
return OWSIdentityManager.shared().identityKeyPair()!.hexEncodedPublicKey
}
// MARK: Settings
private static let version = "v1"

View File

@ -338,7 +338,8 @@ public class OWSLinkPreview: MTLModel {
// Giphy
"giphy.com",
"media.giphy.com",
"gph.is",
"gph.is"
]
// For media domains, we DO NOT require an exact match - subdomains are allowed.
@ -360,7 +361,7 @@ public class OWSLinkPreview: MTLModel {
"pinimg.com",
// Giphy
"giphy.com",
"giphy.com"
]
private static let protocolWhitelist = [
@ -654,11 +655,13 @@ public class OWSLinkPreview: MTLModel {
return
}
if let contentType = response.allHeaderFields["Content-Type"] as? String {
/*
guard contentType.lowercased().hasPrefix("text/") else {
Logger.warn("Invalid content type: \(contentType).")
resolver.reject(LinkPreviewError.invalidContent)
return
}
*/
}
guard let data = value as? Data else {
Logger.warn("Result is not data: \(type(of: value)).")
@ -793,7 +796,7 @@ public class OWSLinkPreview: MTLModel {
return Promise(error: LinkPreviewError.invalidContent)
}
// Loki: If it's a GIF then ensure it's validity and don't download it as a JPG
// Loki: If it's a GIF then ensure its validity and don't download it as a JPG
if (imageMimeType == OWSMimeTypeImageGif && NSData(data: data).ows_isValidImage(withMimeType: OWSMimeTypeImageGif)) { return Promise.value(data) }
let maxImageSize: CGFloat = 1024
@ -864,7 +867,7 @@ public class OWSLinkPreview: MTLModel {
return Promise.value(OWSLinkPreviewDraft(urlString: linkUrlString, title: title))
}
} catch {
owsFailDebug("Could not parse link data: \(error).")
// owsFailDebug("Could not parse link data: \(error).")
return Promise(error: error)
}
}
@ -875,7 +878,7 @@ public class OWSLinkPreview: MTLModel {
// <meta property="og:image" content="https://i.ytimg.com/vi/tP-Ipsat90c/maxresdefault.jpg">
class func parse(linkData: Data) throws -> OWSLinkPreviewContents {
guard let linkText = String(bytes: linkData, encoding: .utf8) else {
owsFailDebug("Could not parse link text.")
// owsFailDebug("Could not parse link text.")
throw LinkPreviewError.invalidInput
}
@ -918,14 +921,10 @@ public class OWSLinkPreview: MTLModel {
class func fileExtension(forMimeType mimeType: String) -> String? {
switch mimeType {
case OWSMimeTypeImageGif:
return "gif"
case OWSMimeTypeImagePng:
return "png"
case OWSMimeTypeImageJpeg:
return "jpg"
default:
return nil
case OWSMimeTypeImageGif: return "gif"
case OWSMimeTypeImagePng: return "png"
case OWSMimeTypeImageJpeg: return "jpg"
default: return nil
}
}

View File

@ -516,7 +516,7 @@ static const NSUInteger OWSMessageSchemaVersion = 4;
- (void)generateLinkPreviewIfNeededFromURL:(NSString *)url {
// If we already havea link previews or attachment then don't bother
// If we already have a link preview or attachment then don't bother
if (self.linkPreview != nil || self.hasAttachments) { return; }
[OWSLinkPreview tryToBuildPreviewInfoObjcWithPreviewUrl:url]
.thenOn(dispatch_get_main_queue(), ^(OWSLinkPreviewDraft *linkPreviewDraft) {

View File

@ -267,14 +267,10 @@ typedef NS_ENUM(NSInteger, ImageFormat) {
{
ImageFormat format = [self ows_guessImageFormat];
switch (format) {
case ImageFormat_Gif:
return OWSMimeTypeImageGif;
case ImageFormat_Png:
return OWSMimeTypeImagePng;
case ImageFormat_Jpeg:
return OWSMimeTypeImageJpeg;
default:
return nil;
case ImageFormat_Gif: return OWSMimeTypeImageGif;
case ImageFormat_Png: return OWSMimeTypeImagePng;
case ImageFormat_Jpeg: return OWSMimeTypeImageJpeg;
default: return nil;
}
}