From 8961a1014432930c8b9933d8022ca5ce39cbfbac Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 16 Jul 2024 20:49:33 +0400 Subject: [PATCH] Various improvements --- .../Navigation/NavigationModalContainer.swift | 2 +- .../Sources/StarsTransactionsScreen.swift | 50 +++++++++++++++--- .../Sources/StarsTransferScreen.swift | 17 ++++-- .../Resources/Animations/StarsBuy.tgs | Bin 0 -> 11142 bytes .../Resources/Animations/StarsSend.tgs | Bin 0 -> 5796 bytes 5 files changed, 57 insertions(+), 12 deletions(-) create mode 100644 submodules/TelegramUI/Resources/Animations/StarsBuy.tgs create mode 100644 submodules/TelegramUI/Resources/Animations/StarsSend.tgs diff --git a/submodules/Display/Source/Navigation/NavigationModalContainer.swift b/submodules/Display/Source/Navigation/NavigationModalContainer.swift index 5ead1f9391..b7c486c8d5 100644 --- a/submodules/Display/Source/Navigation/NavigationModalContainer.swift +++ b/submodules/Display/Source/Navigation/NavigationModalContainer.swift @@ -282,7 +282,7 @@ final class NavigationModalContainer: ASDisplayNode, ASScrollViewDelegate, ASGes let transition: ContainedViewLayoutTransition let dismissProgress: CGFloat if (velocity.y < -0.5 || progress >= 0.5) && self.checkInteractiveDismissWithControllers() { - if self.isDraggingHeader, let controller = self.container.controllers.last as? MinimizableController { + if let controller = self.container.controllers.last as? MinimizableController, self.isDraggingHeader || "".isEmpty { dismissProgress = 0.0 targetOffset = 0.0 transition = .immediate diff --git a/submodules/TelegramUI/Components/Stars/StarsTransactionsScreen/Sources/StarsTransactionsScreen.swift b/submodules/TelegramUI/Components/Stars/StarsTransactionsScreen/Sources/StarsTransactionsScreen.swift index f7ebfb81c6..638f2d3f57 100644 --- a/submodules/TelegramUI/Components/Stars/StarsTransactionsScreen/Sources/StarsTransactionsScreen.swift +++ b/submodules/TelegramUI/Components/Stars/StarsTransactionsScreen/Sources/StarsTransactionsScreen.swift @@ -815,12 +815,14 @@ public final class StarsTransactionsScreen: ViewControllerComponentContainer { let presentationData = context.sharedContext.currentPresentationData.with { $0 } let resultController = UndoOverlayController( presentationData: presentationData, - content: .image( - image: UIImage(bundleImageName: "Premium/Stars/StarLarge")!, - title: presentationData.strings.Stars_Intro_PurchasedTitle, + content: .universal( + animation: "StarsBuy", + scale: 0.066, + colors: [:], + title: presentationData.strings.Stars_Intro_PurchasedTitle, text: presentationData.strings.Stars_Intro_PurchasedText(presentationData.strings.Stars_Intro_PurchasedText_Stars(Int32(stars))).string, - round: false, - undoText: nil + customUndoText: nil, + timeout: nil ), elevatedLayout: false, action: { _ in return true}) @@ -850,8 +852,42 @@ public final class StarsTransactionsScreen: ViewControllerComponentContainer { starsContext: starsContext, options: options, purpose: .gift(peerId: peerId), - completion: { stars in - + completion: { [weak self] stars in + guard let self else { + return + } + + Queue.mainQueue().after(2.0) { + //TODO:localize + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let resultController = UndoOverlayController( + presentationData: presentationData, + content: .universal( + animation: "StarsSend", + scale: 0.066, + colors: [:], + title: nil, + text: "\(stars) Stars sent.", + customUndoText: "View Chat", + timeout: nil + ), + elevatedLayout: false, + action: { [weak self] action in + if case .undo = action, let navigationController = self?.navigationController as? NavigationController { + let _ = (context.engine.data.get( + TelegramEngine.EngineData.Item.Peer.Peer(id: peerId) + ) + |> deliverOnMainQueue).start(next: { peer in + guard let peer else { + return + } + context.sharedContext.navigateToChatController(NavigateToChatControllerParams(navigationController: navigationController, chatController: nil, context: context, chatLocation: .peer(peer), subject: nil, botStart: nil, updateTextInputState: nil, keepStack: .always, useExisting: true, purposefulAction: nil, scrollToEndIfExists: false, activateMessageSearch: nil, animated: true)) + }) + } + return true + }) + self.present(resultController, in: .window(.root)) + } } ) self.push(purchaseController) diff --git a/submodules/TelegramUI/Components/Stars/StarsTransferScreen/Sources/StarsTransferScreen.swift b/submodules/TelegramUI/Components/Stars/StarsTransferScreen/Sources/StarsTransferScreen.swift index 71b0c643d1..84cdd6589f 100644 --- a/submodules/TelegramUI/Components/Stars/StarsTransferScreen/Sources/StarsTransferScreen.swift +++ b/submodules/TelegramUI/Components/Stars/StarsTransferScreen/Sources/StarsTransferScreen.swift @@ -518,12 +518,21 @@ private final class SheetContent: CombinedComponent { if let lastController = navigationController.viewControllers.last as? ViewController { let resultController = UndoOverlayController( presentationData: presentationData, - content: .image( - image: UIImage(bundleImageName: "Premium/Stars/StarLarge")!, +// content: .image( +// image: UIImage(bundleImageName: "Premium/Stars/StarLarge")!, +// title: presentationData.strings.Stars_Transfer_PurchasedTitle, +// text: text, +// round: false, +// undoText: nil +// ), + content: .universal( + animation: "StarsSend", + scale: 0.066, + colors: [:], title: presentationData.strings.Stars_Transfer_PurchasedTitle, text: text, - round: false, - undoText: nil + customUndoText: nil, + timeout: nil ), elevatedLayout: lastController is ChatController, action: { _ in return true} diff --git a/submodules/TelegramUI/Resources/Animations/StarsBuy.tgs b/submodules/TelegramUI/Resources/Animations/StarsBuy.tgs new file mode 100644 index 0000000000000000000000000000000000000000..e684dd1aa7724f133d86bf731e2a4aba0899ae5a GIT binary patch literal 11142 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 literal 0 HcmV?d00001 diff --git a/submodules/TelegramUI/Resources/Animations/StarsSend.tgs b/submodules/TelegramUI/Resources/Animations/StarsSend.tgs new file mode 100644 index 0000000000000000000000000000000000000000..3d4e32a67eb427151adbffaa08b57e2b6be52462 GIT binary patch literal 5796 zcmV;V7F+2biwFP!000021KnI*ZyZ;4{42&h_cZSJhu$_w?57PDaUK>ijDTxPmSR~_ zNM@7GLjOHgb#4!D4~G<`mA#H(nB??y-_LXF)Twh?e?8p(aC3O(m&2bA&klLbYd9>2 z7uSbp#Vvn(nzvK;>V@GSeV9A1v!Z+^lvf4F}B(-&XgUR{6jyLa!N<5xig z-+%wTp1iubd47xbzxj4KyuSL&^K1V7*VEUp-h8jVZ~uZ0Mtf@N_gAmppqZO%ef=Yz z`s?AEKd$V8T6x6_|ARl>8qq%5_{M+x9>cwV-SPVE;TZ;fGd}K~udQt@tUjN&l6pC7 z$7gHkSk7C@-9I#z(>HDnv2P<9Lu&Vi^wcS}hlcXh7Gkj$q8h-3bhk{r<=sOIkEYa; zpW5H9IcwXEreRsdFERTy#;`by;Px$hSe$)$b^0(*0&}>~L8)^OK8-GXSsnTaF@1(U zc9RHWfkH^uMRlLMi#TQx%9us&PwIlZHP$%f^GCINS7Y~_?Vi&;al1p0K76e5a{93u z(}Mrb4Qd(xZ-zC7HyMD30o1<4x_Ed0^eyB6NBStdVf?tz&1MB?eHs6MN-vMiWV3>f z)^YxSh92T+5^3q>=jdUxmEO>LIQ779@`VNb_B{>gt?lB=t9Q>0z6sZdAFct=uWrp` z-WZ=3Pf0{n~q9jty`f3LDK~ZD_RQHHF3t0k`N1{6US@YDmj5!$JDSw!S+&dvW#p z=K1@xqu$~NK`}o(yT0b-$mPfv=hoNGsr&rU)C$fw25?NcvvJ(V8Zg<0D;bA4@k%V1 zWzdzXxg8Ta^t#|eeQa`Z^vXZ7ai+S>gt^K3BVgLP$FIQnoFj4 z#ueB@(CqwLGAGwo-`mH|<;)Dj!?QVJtzbhPD;6(K%VQ_F?tyFj&~9P$4fEkFau~Z6 zbC#XOsw)XTC*hu2Fm>&g$6P!1*u!dljQ8hAD9MkFJT7f5j~Q5cXuyH?8O^Z#YDUyG z%*<~}Ty=b~k~Y3@Hag;v(Z;LWmtS}w#mn!vZz@wqza5wU;q|K@52xwfpUy9i(iO*UA)4OVJUAbq6DPNJ zeJYioV!6XGoFY$`)oYrbB9g)uYt=zt9q}04&fT@lqYzvpV&)0$i2(&yF&29mBX@;& zwP@(x)(rmR_38Wt{IWZ;Jy8vDLHGkm zR|uzj%G%LrUsGw*wU(+DO7~$Uxlk>0EE$&*-CF4R>{!;iX01&C7;%Yl?m9;Z46L3P z0>;_|o8}aKU8AQr!*4y&tOYPf-wjtiAQw;oI$E6$I1s5fJW~J>cEv~F51VNuo_2*j zqUVN{jRwaFXp#sGX{~ZwM;|hGQJ|f>?&^dz3>drZ+vp#E0X^ZX%tv9&ITBR>F|Cg) z9;A#$5Y@5=R)Rwv1MR5~xJ=w_5L$_R@FL&D-cZOo@KSu|Q{O_U+!*`jr3 zoa`4Pk*zvk9`?iK`9?`XP8-{h! zgcHsPw=z}izfqE=rm&JV(L{KtySj4Q=RS^Q%U%~kl?^3Y437b9SZ05$^r~Imv~D&8 zf~V6=hiin%mxe`)GS9)Gz_&1yEOQ)g8Oyw89&&`8KHFUm+>|)u6YysvR+W2=Z3!|^ z44UK>25Pg)*ccl1HVcn4TIt*qG0Z<=!=FaQHWM!Ho(X$@XTtF^u*q<7yDY^_7lfeq zo$*FAUuWydf%KDn+H5ZbLr>c_Fy3AlP*Gnm*==kew%h)g-3DJb%f$oJDLl7bMyTc_ z1VKbvg0T$~AXYT$-tNIKA*u>(TMA~oxf;9`Q6<`LF0wH%=mPkcs?Sw+!Ksk6V)L{4 z7+6;l+5(4-wbuxH>!Mh}ycpS7ke>tI`?T3^*Co2LVd2H@0=T0|gXv717f|M+yE^GI zsUM%`f}xw#FlGR8(Ujq3oDdntE$5C4l~F^$(nf<{*e)lYxX|q*ZTBhEo5M!r4GT;& zz2Hi1K#1>Zrnv>5XBZB2;jpSQ!*B*yp|kb_ic9PSkmAn5Gi^Nex_$JE zFlU~6#PDH~y-hHU)v-WQX2L|PFtsD;^N>l?M8<(-`{S!(gK8X zpJO}}dLh7Dyg!57Isg~eG@-E*>^+?pH+}vzZDTFq?8X-wT{~HS6G-a@G`ya3r}vc&-ze{NH`8Az93m7+GA@8t{h{+Bz6%UrlLn<^PS+5SUTp=A~v7 zhq`UxQb*%FKxGoFr84&zw<`?Dd)h|qVAaaIVB54!i2H_#P!C+-xpj0j` zWjpb3D;4A-OVH;^GZg}&LSi01zuIx>r}2=aAaRB+2~|CZ9c%feWRY?wi@*q-Afb0Z z9i-->F^y@2#K$1GvSbUoY?1BvkUj~r@*S1Jc>HeUPZ43f1+#m)73dL4eSmXS07ibQ z7?ViQ7oM^yf}nbVGXq2Jdv8@6fhpQ{gKN;CxiIymKyQalu=H>lnj+>3@MC-^WWtbe z5&|^=c7TJ>ff=4|u?aFj%!ZKHbZk9)10@qm6%o^9xOq=F0=#U(k@oeTa8wWw+2;{@ z`;%;xKEG_#m^DN=*euZbJhBmBnoi$a-0EExC<78L$OCf0LoEQy5t1=2i0E?hSaLr! z0E{i8S05Oijj_S~Fuulil_*4N#Hu2Qazp&aCINJ?B&Jd`xLd%TyIIv*K~bk-0&zZL*B=Td)$7LQ1({_{P($@6J#OVnr z^r)mZP-u5Ya1sbxc~D!c3+G>-s;$AUF=4IIoceCS_e@b{nhzZ!7Q5;wgOQbpTg*Bi zwu(FCY1ojmh)D$FK%}k|S&akX?Dbq0ai@Viq`O%KFOR{_J<*S6bBKQ7vgQ{~nx7@1 z5E5*fpC6iECi{}+*EY?M^o4Qjke&a|njgG8$y^;F30WNu3zyH-T{0s;IRGKsP%=ph zkcXLLg%H$wIv^WhOu=3&QLy#60KC#I93eo5#76!AxReN0o+O!15OuM39XE>m6@qtO z8r*;PpI3K;q0nc}2ZG4WixW-29%o{a>^Vsy!?j$d18`Bf#8OeX4ECXPMQP!pZaFJL zOkOfvaet$3+3<;;4$k3jsBE_@B~jyyA8W|oVzL2JfeI&XZgcEg8Ilpnc3=?{q~?&% zu#18^t9jZE3II_~I9AQU(XQEO3~d*`K1EBl5Vy~v*wducT*$6k&L1VE!oSA4s|t~0 zMQpTy9@M^rRRkjR1g1H97;qfNXky8lc%CXq7R##vy zb8DDhBub_c+c8?9ia^Ge#5}wSDhz48DvO z+v-0^ukMN2Wfrs3&mmMiSI0 z1>R&+Cg-TqOv(qNvkyx7UJF;o(v@|jhVtJ{%%||P#4u6|j=_!{TdXz=-yW610~}!u z&8F|*+Y-mU+KghyiKm%o*(QYsc#fOC;>lk)UP*NN25Z|sK5_8Fi^CI=06*}CcYp%j zuov~2W+<%o=E2aXno0aUaY&zARV_GR?frfIzmr=4!@327xZ(N!2F2K9F2w2R(pI`X z=JwU~)%UNSzq$SQfBw(w7dQX(yZDDMe+zkvFR$Oex&0O9DJ~RD;OI$pS$u*io8 z?Yp3bdq_Fke;^3E3&#tqc9}VilM`X)f@-uMxk``|#F(JN9(-<8OPI&AO`GBI8p zC`4ps27H*Iq}s zIx-d14ASJb&~3`5{M5dSCY-VWE`%M;r23+DfGD{8Ig0 zwJ$Y(N$g}}eUnUq=L}0Njt{Jkmv$c%1+%hVG>r^XFyC!bjB=&MARs5X06yb_d| zG%|Lkt>jIpC3wkS#Uwl``mt~h$rNSB7z>yL3>AUufkiP?6pI3P=7q7aL%I9%#OO8R_FJ(vEJ^a32h3{el2hHy^>D0|~W15mXOAFNrU+z+anNfzzPy2ox-R zlxed-27w~k_g2D#zy8~h z{*#nAodZl$(JzB2+acNl&swQd6d4@DK*G=ze^NL%y?#1#p1g)UYL0gK3XRFgSseM3 zpe2fmjWL!buTMpf-I`M0Lx9c*u8r)a*09YpaD;L&otk!HX_3Y-!xpJEv&OjE^DgJ= zXlKl3MhlK4de&(xniB@aHbDtrqX|~d)~w>qGi>4&zI>TS7FAi^HZ*@+U_Jq#EkUg~ z)1bssG>z#aDQexyf5D<6i@)*~HhP>~Pnj;_89^9Tr%s_ZP#!TX86u-+Hf=C6=IZ(K zNmZ2!=2Dr4OIt#rFyh1RhoOXIjDw1x+a&T1ut7UNYg@itx(w98>s#v!D@)h7k zOiO+%l_XChqBG{J19-C4y*6ou8_Xy_!@TRrW3i;P4dI8W{A35qozeva9o7;0Et%m| z)3myH8jF|k1g{_LriQJiE<|QNdS>X$+&XrqSO&8;D*xK&()=%y0k|xIe-e!BnhDx< zc&juL8;u@dO@59zG2NK;xHv?xo+&{I z@q^P#e=HfWbR18!w;F;Z17=w2MNGT^2tF^#QsuTs;F^k6E*MktyoZ831*169kl+Ya z_~)&Z9+?em@ z!AVt0h;dZ=lg@fXna#>5G7}Q8fqr^TjDa@61JSF!jYB`*95^=X7__ZrppCEzdR?G?Q5V5F| z(T~>xsP8hHzDpdiplP=PUJ?aM&qlUhgqgy{y*QT6v+nkqS#lN^jnsgO;*y)It62A7 zTJeq`8I_vDVggzYRN3;J>hSi;3ln6uj(RQCr}#E|h#r(-cCqYWE-{#*wG9p>z zXHVj@N)voz^50tOdVRzV4W94+GF)I761GGoRr2OXcG+iU&8ot>(Cob&vfnCcO>4tU zT<7Z!U@7C(9iUohkrf=xG&`qqLSjkYYF?cWMrfjCTD{OGvL25(=ygH~p-$aaD@mY$ zH$t6N4Y-ly6I4*)Zj1-F7>j3)5uzVuR;;7I5-52v>cF_sqFdyRwa`65Gp z)4lhyP2Wj2reJ@LI4Vmsc0&vYrI`*crSR}nKEyXv=OTm3S3xbGz4~3M<5Ly zr18(oA33}b*BP#f;Gar@vXy4c5Rr9z8v}5b1F?@?*$;dt4W;W%tzw@{l5e)=Rb3WK zB=8P~P!=qy39yeo$d6=s?FB;@$tQUfO&}h!74t!II-@oYf}8D|Jw#Z+hqR7V^P&PH zo3(u~r!Qk_n^y1DM70e%viYp$?R@d{EmB`bxRDkiKVJt3Hgc|tAG&*IQXurvG|-Dk zF_gufum!~CPRDfBx<{^7UhPcr@g{@#D}Z*RX!|M)LIV?Lt#beeB3 zk|-NW+^6JMw{^>XIj|E(Pckv$! i_}2cVFK_?S7ZqLp8w}5YeReMl{r>>s6Iw