diff --git a/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift b/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift index c972da599d..753ea23172 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift @@ -176,7 +176,7 @@ final class YoutubeEmbedImplementation: WebEmbedImplementation { updateStatus(self.status) let html = String(format: htmlTemplate, paramsJson) - webView.loadHTMLString(html, baseURL: URL(string: "https://telegram.youtube.com")) + webView.loadHTMLString(html, baseURL: URL(string: "https://ph.telegra.Telegraph")) // webView.isUserInteractionEnabled = false userContentController.addUserScript(WKUserScript(source: userScript, injectionTime: .atDocumentEnd, forMainFrameOnly: false)) diff --git a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIViewController+Navigation.m b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIViewController+Navigation.m index 11b0a7530d..ec5224bb81 100644 --- a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIViewController+Navigation.m +++ b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIViewController+Navigation.m @@ -196,33 +196,38 @@ static void replacement_backdropLayerDidChangeLuma(UIView *self, SEL selector, C original_backdropLayerDidChangeLuma(self, selector, layer, luma); } +static NSString *TGEncodeText(NSString *string, int key) { + NSMutableString *result = [[NSMutableString alloc] init]; + + for (int i = 0; i < (int)[string length]; i++) { + unichar c = [string characterAtIndex:i]; + c += key; + [result appendString:[NSString stringWithCharacters:&c length:1]]; + } + + return result; +} + static void registerEffectViewOverrides(void) { - int classCount = objc_getClassList(NULL, 0); - if (classCount > 0) { - __unsafe_unretained Class *classList = (Class *)malloc(classCount * sizeof(Class)); - objc_getClassList(classList, classCount); - - NSString *searchString = [@"UISD" stringByAppendingString:@"FBackdropView"]; - NSString *selectorString = [@"backdropLayer" stringByAppendingString:@":didChangeLuma:"]; - - for (int i = 0; i < classCount; i++) - { - const char *className = class_getName(classList[i]); - NSString *name = [[NSString alloc] initWithCString:className encoding:NSASCIIStringEncoding]; - if ([name hasSuffix:searchString]) { - Method method = (Method)[RuntimeUtils getMethodOfClass:classList[i] selector:NSSelectorFromString(selectorString)]; - if (method) { - const char *typeEncoding = method_getTypeEncoding(method); - if (strcmp(typeEncoding, "v32@0:8@16d24") == 0) { - original_backdropLayerDidChangeLuma = (id (*)(id, SEL, CALayer *, double))method_getImplementation(method); - [RuntimeUtils replaceMethodImplementationOfClass:classList[i] selector:NSSelectorFromString(selectorString) replacement:(IMP)&replacement_backdropLayerDidChangeLuma]; - } - } - break; - } + NSMutableArray *nameList = [[NSMutableArray alloc] init]; + [nameList addObject:TGEncodeText(@"_TtC5UIKitP33_ACD4A08F4BE9D00246F2A9C24A80CA8817UISDFBackdropView", 0)]; + NSString *selectorString = [@"backdropLayer" stringByAppendingString:@":didChangeLuma:"]; + + for (NSString *name in nameList) { + Class classValue = NSClassFromString(name); + if (classValue == nil) { + continue; } - free(classList); + Method method = (Method)[RuntimeUtils getMethodOfClass:classValue selector:NSSelectorFromString(selectorString)]; + if (method) { + const char *typeEncoding = method_getTypeEncoding(method); + if (strcmp(typeEncoding, "v32@0:8@16d24") == 0) { + original_backdropLayerDidChangeLuma = (id (*)(id, SEL, CALayer *, double))method_getImplementation(method); + [RuntimeUtils replaceMethodImplementationOfClass:classValue selector:NSSelectorFromString(selectorString) replacement:(IMP)&replacement_backdropLayerDidChangeLuma]; + } + } + break; } }