From df6e87cc3d1597bdd2ca7986ad56cb7c638ecd79 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 24 Jul 2022 18:18:59 +0200 Subject: [PATCH] Emoji fixes --- .../Sources/AnimationCache.swift | 4 ++ .../Resources/Animations/anim_botToKey.tgs | Bin 1774 -> 0 bytes .../Resources/Animations/anim_keyToBot.tgs | Bin 1763 -> 0 bytes .../Resources/Animations/anim_keyToSmile.tgs | Bin 1506 -> 0 bytes .../Animations/anim_keyToSticker.tgs | Bin 2072 -> 0 bytes ...botToKey.json => input_anim_botToKey.json} | 0 ...keyToBot.json => input_anim_keyToBot.json} | 0 ...oSmile.json => input_anim_keyToSmile.json} | 0 ...cker.json => input_anim_keyToSticker.json} | 0 ...eToKey.json => input_anim_smileToKey.json} | 0 ...er.json => input_anim_smileToSticker.json} | 0 ...oKey.json => input_anim_stickerToKey.json} | 0 ...le.json => input_anim_stickerToSmile.json} | 0 .../Sources/ChatTextInputPanelNode.swift | 32 ++++----- .../Source/UIKitRuntimeUtils/UIKitUtils.m | 63 +++++++----------- 15 files changed, 44 insertions(+), 55 deletions(-) delete mode 100644 submodules/TelegramUI/Resources/Animations/anim_botToKey.tgs delete mode 100644 submodules/TelegramUI/Resources/Animations/anim_keyToBot.tgs delete mode 100644 submodules/TelegramUI/Resources/Animations/anim_keyToSmile.tgs delete mode 100644 submodules/TelegramUI/Resources/Animations/anim_keyToSticker.tgs rename submodules/TelegramUI/Resources/Animations/{anim_botToKey.json => input_anim_botToKey.json} (100%) rename submodules/TelegramUI/Resources/Animations/{anim_keyToBot.json => input_anim_keyToBot.json} (100%) rename submodules/TelegramUI/Resources/Animations/{anim_keyToSmile.json => input_anim_keyToSmile.json} (100%) rename submodules/TelegramUI/Resources/Animations/{anim_keyToSticker.json => input_anim_keyToSticker.json} (100%) rename submodules/TelegramUI/Resources/Animations/{anim_smileToKey.json => input_anim_smileToKey.json} (100%) rename submodules/TelegramUI/Resources/Animations/{anim_smiletosticker.json => input_anim_smileToSticker.json} (100%) rename submodules/TelegramUI/Resources/Animations/{anim_stickerToKey.json => input_anim_stickerToKey.json} (100%) rename submodules/TelegramUI/Resources/Animations/{anim_stickertosmile.json => input_anim_stickerToSmile.json} (100%) diff --git a/submodules/TelegramUI/Components/AnimationCache/Sources/AnimationCache.swift b/submodules/TelegramUI/Components/AnimationCache/Sources/AnimationCache.swift index efb5fd4379..93d442d7f9 100644 --- a/submodules/TelegramUI/Components/AnimationCache/Sources/AnimationCache.swift +++ b/submodules/TelegramUI/Components/AnimationCache/Sources/AnimationCache.swift @@ -456,6 +456,10 @@ private final class AnimationCacheItemWriterImpl: AnimationCacheItemWriter { } func add(with drawingBlock: (AnimationCacheItemDrawingSurface) -> Double?, proposedWidth: Int, proposedHeight: Int) { + if proposedWidth == 0 || proposedHeight == 0 { + self.isFailed = true + return + } if self.isFailed || self.isFinished { return } diff --git a/submodules/TelegramUI/Resources/Animations/anim_botToKey.tgs b/submodules/TelegramUI/Resources/Animations/anim_botToKey.tgs deleted file mode 100644 index 20939237d65e0771360b3201dd1797e2184878b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1774 zcmVWlo*MOBq~+d4U!rNGSjj{b zN0)Up&3PQHZlWn%c5o3Yj=n}ynL_)@T(=vrIoq`#+ug_O#?&GKqWLCmKa$_U{B{29(cYu_$Qpz~GHFu!8a}tpkMgn&rY0+L!UQ~hs5az-m zt`^K@Jm%C`xyF5bhjwz@@P1B{OaU4Agh3WT49+D+;*^?DNuyx?jB0LFwZk3iHCKz9 zB>}I2jy~0Z?5ZU&wzLu`Xs#kR+;y`bH!+S`fEU`$W{F^23LOu`MGd(1JE?Du9%mzx zc+>~zf6@BbQA&kQ;p$AOFR`7Ve;!TS`t$O>zd&}ToE6p_@AX~Rg*|qb{r-5w+RhMK zB2F@vnMtNFpF}c2MnccO$jw|cD+{J;6XxDLDZee+tBHPAH(O}^^vlohCVwr@+g&~R zpjUj7Oy1YK&o`iO1&e&SST{=ySugeFIzrcjgo}k4CbNq>mIE_Pf;q1DOw7GJm|-Fq ziGB#YTo^tRyn7B5J;k7Uw!tZ3jK8kd>+u-h*NdC0)j33|bw-11+I>MvFUVe5(eZzM z-uMLrn;rxq0PAyl*8j%KW{qXh$Kyj=@2;2o5FxEmOj`Z$-wZJEa%)(IY!MnQKUjOX zhv#T1&L0L^*VpEH%t$Xmvlx>o`waY1FSgC)uHHl%#vy@hAyh#6+*DcvrKxcv2=D!W`yo&Rxlx6_+)mX zvlE^D=yaAJpU$!e=q!8HboT8hv!3CJ&fX@S!P!i7Y{qqG$7gUn%R4qB;fc>qe0Jiq z1NkgFKA)+O&;H!5cH4)j?5PPPACW*$=f}s?d7*N~m57C^7|*JX8KKZg@MA8HBdKXS z`_q@4oMqfNdm>vtfOG79TFhhkH^e>mKJ6M9miItVJXXZT!}V}9Z9{o(q9!0-n8i|k z#*)aXcm+O#+f-}iISm3=-RsfT7-z|E<}Ck}bcaBCd<1N$1OUZvL80*XMxPxPecF#+ z9y|KPOMt|!b&UNMm&9ep9u(AJD9Anv+5doo3)ZeUV&I^$xv>X<{21?udt7_kP#mzK zuq>|k66$z+i9Fm(klUBqOjss=hRuXsNy+0>c$x4f&bk=NEM+p6wxD!X278i$5X(xz zGNKb!mKBv0!E#qcOa_e~TMr&IV^rgyka0n$>xBBkQJ?eV*>0k}d$Vs%TQ%5pd07jZ z%a1w&Sc-}8-E#^5uo_~k@LE!o2nPo+#cac>lXhWIek21Key(+`ES-hYo zsA+95qRL&mx=r7M>Z2%_kg|5&dG;NXU*nd%TBo5;bV<{2w2_3?M%%a#1`Q@;naH>g zLkR=5J`EU252eJPRou~7X+i7aaXa&p0sO^;TCf0p4xK^!< zYS;=i11I4Cz2U>jk(0!Dp#c&*Leg*h+TN*Rj=%U8csP2}riGDlrq1U%}aEXmKiNpQRQLo3a-C#$&|@-P>j(EbtL7MDq>W`R+;H9 z#u2i7q6<6;eR}u=$oT0jF=H~yUS5{^0AA4xk&2}}BWn^#R@%Iln35)QGB2yO z2^wOYeoGq+k{Ywv4&xHospC-2Q(|2u{Wea5l;?Zj!9YInN+X(4-Qo(%Kq*}=(h4R$ z(I6eQ2mE4!SC7j^J+2)#M)g5LqEGAc(1cV)+{NQ1q~GsP=D!m%40D)|HjpF)_Axo> zVs$Ag;B=rDUO|4NQ|PF4hlFPt6Hb^Dg%Nc9WZ4-CeFqt*Orpj(ef(5`s0<7%lZ(ML z$RM#65Oqa9>1xI@^7*TOr)ES<*X-lH{`&E^%)bK~i|wcNa-veRaZX=u;|$`>qQ0j8 QT{XY|7Z*CJcgZyX04+~zO8@`> diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToBot.tgs b/submodules/TelegramUI/Resources/Animations/anim_keyToBot.tgs deleted file mode 100644 index 2cc3eed1040ecb071672b5497be60d50950139cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1763 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 Io^K%l0N2s+!2kdN diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToSticker.tgs b/submodules/TelegramUI/Resources/Animations/anim_keyToSticker.tgs deleted file mode 100644 index 8863943a7d6036c5ea9c41e9e5d27a7024c4c4e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2072 zcmV+z2 z=;f(E(c6n*1gfpXTd#Kwt(rCn^6#AsDN*unojR?PqD5j$B!|P9!{N-KlDF0C>b!EI z6{@PMmqT^#WnFFVt8;kl;h|hz{Z^eDT~{~!*xkX5+y2eZ`);^?G45X+#?94jKfwI! z>uZ|W9S;3?sLn4g>uTG*=?8p&I}LAk@Kkj*zNyY_QuyO;v)_S=!$3o~Fyn2t$6plS>zfaUjUSM0&@!xr=%($+e3I z{q>RAAp06+ecc#g3nr5-=(d3mxBJ=ZoE0egLk)s z)@NUQ{^i+E{nfZ1&b~(g&YH8YhyAbjAaDadzwEY$9-%DH&y0Y6egv|s3;_F|L1FhF z^Cd%gDFJh%6H-hVUizn=GBzUTg%ry*e02-xRGAiHX&{nyj}%lF%V`!w(E+I#oh z-Zw=6G}B(!)Sq!_rpR~%1@|-*+!_V{5m1<%%{xvQOwi=mcmx6eGz9z_f$;1I6osI% zMI02Rpb7682jOWbgf$B7M?hh6*3NM-mxCs}UmUc583FSA?hfbOQCTEq-}J+){tQ(f zj#t>PHrufuKq*NcRr+#Uk+Bch6tJO`b2BNL1c2A1gv6W@?D_eQ2FWZ~b$i^NuZQmb zW^)Awq0CWxMr1+v5A3;|aePSqGVv=YUm65UiJfH;bBYA}(@q9ddwXmWB6H}Djkvtu zKMdXO@Nz%gRY(LEw}2hqJV5>`5t{^IB6>%#TgS!agGHG4y}XRDS_Hcr z`rSy2e!>@%w4rb!rBk(!BEn+|i>KWS<{+ul&vTGo9yraaaxbri~1%Px&d zsc~Ln?bgce1te>{nuTQ(42AY);oC&>ly|}!m}u~e7J;P#=G;(gDHOGnNH9Vt38O_D z@SBelfp#E75j?o6q+oWaB5e261m#Y)v%L3077AfOB$&J&kInX^xeZv6wjWhDFh{v! z>A53Ymu3|Fbp72b1)meX1&vC>Q!~jykrwFj@s+HQLN3 zPZlSGv%M+qW}`ucRT1OPDnlQCFpvs+F}P9)%CrGdB4AM{UqqWi$5Po&Mo%`UXp>6V z7B5ax#MW})Dq(2zT_Ch#D}sSI4G^f2V%-P@9XMBO>H%S^YMj}+)HWDixkDSeu|U=n zbUIuRI)KU+?4@%FSh(7Pw4@v$g@$-4O3+Oq0D?+$1agE~vZUw;R#>2D zjl;;Z%aALo?1?IY)%EvNg_18nkd%QOpso)iXCI!aWf7TlX^gZdGE+2b%h(0=GNM## za)dAGAC1rla~TW0q^HmVi!9ciiK610I0SK|R0E-EIePP_Jj+=$ayChAP$?DXWGi9k zVB>6?4g+SJsSVkO^a~0VXj*Kd*=|8aPvn+Q4K6z64zpL_MC~E=vDxMi9#(2BBY{(W zYC}#UxZq$xoLe}tnktls5|vw^5{@?17f%gO4dd4^UH%J6yZ)c8|4Z1qU9$C?zPtWs zxH^IUFNpDum zTC-BpnN_YevO>0FCPzyJrQ%|}r7ihWMOMG`WaZ})f)bo&VbILPC%sMK&PPBGz1&$Lz=f1F1Hh4Ti1 zNIVnXLaP{}Rwsz~0s+-jAx2Izfg>VZgb7XvWtaqu+os!8_28C6H-g8=2!HTbekaOe~*GY-SrV5UeUAKT-g-vFvkU ziVC!IGLypsZXuE`b&_|#Mb->Ll8Q0h2%w1LeKK;X*03Q#L`U2K?r;zsNfcUoZb8Kk zEl9S3|FJg!-Gy2nErp1MCD2VA^P~m#C&obKpPIn)V>;e=y#%v>{ie1p+YZQ?#+!=< zB#yD-Pm~3OB@0mhf4ci1GVmRs(d}Ms`!lEic}j4JAF+m8{!dDm@BRRABNC<(B>(`n CjOg|N diff --git a/submodules/TelegramUI/Resources/Animations/anim_botToKey.json b/submodules/TelegramUI/Resources/Animations/input_anim_botToKey.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_botToKey.json rename to submodules/TelegramUI/Resources/Animations/input_anim_botToKey.json diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToBot.json b/submodules/TelegramUI/Resources/Animations/input_anim_keyToBot.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_keyToBot.json rename to submodules/TelegramUI/Resources/Animations/input_anim_keyToBot.json diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToSmile.json b/submodules/TelegramUI/Resources/Animations/input_anim_keyToSmile.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_keyToSmile.json rename to submodules/TelegramUI/Resources/Animations/input_anim_keyToSmile.json diff --git a/submodules/TelegramUI/Resources/Animations/anim_keyToSticker.json b/submodules/TelegramUI/Resources/Animations/input_anim_keyToSticker.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_keyToSticker.json rename to submodules/TelegramUI/Resources/Animations/input_anim_keyToSticker.json diff --git a/submodules/TelegramUI/Resources/Animations/anim_smileToKey.json b/submodules/TelegramUI/Resources/Animations/input_anim_smileToKey.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_smileToKey.json rename to submodules/TelegramUI/Resources/Animations/input_anim_smileToKey.json diff --git a/submodules/TelegramUI/Resources/Animations/anim_smiletosticker.json b/submodules/TelegramUI/Resources/Animations/input_anim_smileToSticker.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_smiletosticker.json rename to submodules/TelegramUI/Resources/Animations/input_anim_smileToSticker.json diff --git a/submodules/TelegramUI/Resources/Animations/anim_stickerToKey.json b/submodules/TelegramUI/Resources/Animations/input_anim_stickerToKey.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_stickerToKey.json rename to submodules/TelegramUI/Resources/Animations/input_anim_stickerToKey.json diff --git a/submodules/TelegramUI/Resources/Animations/anim_stickertosmile.json b/submodules/TelegramUI/Resources/Animations/input_anim_stickerToSmile.json similarity index 100% rename from submodules/TelegramUI/Resources/Animations/anim_stickertosmile.json rename to submodules/TelegramUI/Resources/Animations/input_anim_stickerToSmile.json diff --git a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift index 8656ef430b..a5986e03e5 100644 --- a/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift +++ b/submodules/TelegramUI/Sources/ChatTextInputPanelNode.swift @@ -207,60 +207,60 @@ private final class AccessoryItemIconButtonNode: HighlightTrackingButtonNode { case .keyboard: if let previousInputMode = previousInputMode { if case .stickers = previousInputMode { - animationName = "anim_stickerToKey" + animationName = "input_anim_stickerToKey" animationMode = .animating(loop: false) } else if case .emoji = previousInputMode { - animationName = "anim_smileToKey" + animationName = "input_anim_smileToKey" animationMode = .animating(loop: false) } else if case .bot = previousInputMode { - animationName = "anim_botToKey" + animationName = "input_anim_botToKey" animationMode = .animating(loop: false) } else { - animationName = "anim_stickerToKey" + animationName = "input_anim_stickerToKey" } } else { - animationName = "anim_stickerToKey" + animationName = "input_anim_stickerToKey" } case .stickers: if let previousInputMode = previousInputMode { if case .keyboard = previousInputMode { - animationName = "anim_keyToSticker" + animationName = "input_anim_keyToSticker" animationMode = .animating(loop: false) } else if case .emoji = previousInputMode { - animationName = "anim_smileToSticker" + animationName = "input_anim_smileToSticker" animationMode = .animating(loop: false) colorKeys = emojiColorKeys } else { - animationName = "anim_keyToSticker" + animationName = "input_anim_keyToSticker" } } else { - animationName = "anim_keyToSticker" + animationName = "input_anim_keyToSticker" } case .emoji: if let previousInputMode = previousInputMode { if case .keyboard = previousInputMode { - animationName = "anim_keyToSmile" + animationName = "input_anim_keyToSmile" animationMode = .animating(loop: false) } else if case .stickers = previousInputMode { - animationName = "anim_stickerToSmile" + animationName = "input_anim_stickerToSmile" animationMode = .animating(loop: false) colorKeys = emojiColorKeys } else { - animationName = "anim_keyToSmile" + animationName = "input_anim_keyToSmile" } } else { - animationName = "anim_keyToSmile" + animationName = "input_anim_keyToSmile" } case .bot: if let previousInputMode = previousInputMode { if case .keyboard = previousInputMode { - animationName = "anim_keyToBot" + animationName = "input_anim_keyToBot" animationMode = .animating(loop: false) } else { - animationName = "anim_keyToBot" + animationName = "input_anim_keyToBot" } } else { - animationName = "anim_keyToBot" + animationName = "input_anim_keyToBot" } } } else { diff --git a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m index a58c63b7c8..9241d2297b 100644 --- a/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m +++ b/submodules/UIKitRuntimeUtils/Source/UIKitRuntimeUtils/UIKitUtils.m @@ -169,46 +169,31 @@ void applySmoothRoundedCornersImpl(CALayer * _Nonnull layer) { } } -/*@interface _UIPortalView : UIView - -@property(nonatomic, getter=_isGeometryFrozen, setter=_setGeometryFrozen:) _Bool _geometryFrozen; // @synthesize _geometryFrozen=__geometryFrozen; -@property(nonatomic) _Bool forwardsClientHitTestingToSourceView; // @synthesize forwardsClientHitTestingToSourceView=_forwardsClientHitTestingToSourceView; -@property(copy, nonatomic) NSString * _Nullable name; // @synthesize name=_name; -@property(nonatomic) __weak UIView * _Nullable sourceView; // @synthesize sourceView=_sourceView; -- (void)setCenter:(struct CGPoint)arg1; -- (void)setBounds:(struct CGRect)arg1; -- (void)setFrame:(struct CGRect)arg1; -- (void)setHidden:(_Bool)arg1; -@property(nonatomic) _Bool allowsHitTesting; // @dynamic allowsHitTesting; -@property(nonatomic) _Bool allowsBackdropGroups; // @dynamic allowsBackdropGroups; -@property(nonatomic) _Bool matchesPosition; // @dynamic matchesPosition; -@property(nonatomic) _Bool matchesTransform; // @dynamic matchesTransform; -@property(nonatomic) _Bool matchesAlpha; // @dynamic matchesAlpha; -@property(nonatomic) _Bool hidesSourceView; // @dynamic hidesSourceView; -- (instancetype _Nonnull)initWithFrame:(struct CGRect)arg1; -- (instancetype _Nonnull)initWithSourceView:(UIView * _Nullable)arg1; - -@end*/ - UIView * _Nullable makePortalView() { - static Class portalViewClass = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - portalViewClass = NSClassFromString([@[@"_", @"UI", @"Portal", @"View"] componentsJoinedByString:@""]); - }); - if (!portalViewClass) { + if (@available(iOS 12.0, *)) { + static Class portalViewClass = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + portalViewClass = NSClassFromString([@[@"_", @"UI", @"Portal", @"View"] componentsJoinedByString:@""]); + }); + if (!portalViewClass) { + return nil; + } + UIView *view = [[portalViewClass alloc] init]; + if (!view) { + return nil; + } + + if (@available(iOS 13.0, *)) { + view.forwardsClientHitTestingToSourceView = false; + } + view.matchesPosition = true; + view.matchesTransform = true; + view.matchesAlpha = false; + view.allowsHitTesting = false; + + return view; + } else { return nil; } - UIView *view = [[portalViewClass alloc] init]; - if (!view) { - return nil; - } - - view.forwardsClientHitTestingToSourceView = false; - view.matchesPosition = true; - view.matchesTransform = true; - view.matchesAlpha = false; - view.allowsHitTesting = false; - - return view; }