package Ġcom . top view . pure joy . video . ui . horizontal Ċ Ċ import Ġandroid . net . Traffic Stats Ċ import Ġandroidx . compose . foundation . click able Ċ import Ġandroidx . compose . foundation . interaction . Mutable Interaction Source Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . layout . wrap Content Size Ċ import Ġandroidx . compose . foundation . shape . Rounded Corner Shape Ċ import Ġandroidx . compose . material . Icon Ċ import Ġandroidx . compose . material . Surface Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . compose . ui . tool ing . preview . Preview Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . constraint layout . compose . Constraint Layout Ċ import Ġcom . top view . pure joy . common . app . Common Application Ċ import Ġcom . top view . pure joy . common . entity . Video Ċ import Ġcom . top view . pure joy . video . R Ċ import Ġcom . top view . pure joy . video . ui . components . Error Components Ċ import Ġcom . top view . pure joy . video . ui . components . Pause Icon Ċ import Ġcom . top view . pure joy . video . ui . components . Play Icon Ċ import Ġcom . top view . pure joy . video . ui . state . Horizontal Video Screen State Ċ import Ġcom . top view . pure joy . video . ui . state . Video Load State Ċ import Ġcom . top view . pure joy . video . ui . theme . Half Alpha Black Ċ import Ġcom . top view . pure joy . video . util . Progress Util Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . flow . flow Ċ Ċ /** Ċ Ġ* Ġæ¨ ª å±ı çĬ¶æĢģ ä¸ĭ æĺ¾ç¤º å½ĵåīį Video çĬ¶æĢģ çļĦ æİ§ä»¶ Ċ Ġ*/ Ċ @ Composable Ċ internal Ġfun ĠHorizontal Video State Components ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġvideo : ĠVideo ?, ĊĠĠĠ Ġload State : ĠVideo Load State , ĊĠĠĠ Ġon Retry Click : Ġ( Video ?) Ġ-> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġon Play Icon Click : Ġ() -> ĠUnit Ġ= Ġ{}, ĊĠĠĠ Ġon Pause Icon Click : Ġ() -> ĠUnit Ġ= Ġ{} Ċ ) Ġ{ ĊĠĠĠ Ġwhen ( load State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠVideo Load State . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠError Components ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Retry Click Ġ= Ġon Retry Click , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvideo Ġ= Ġvideo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠVideo Load State . Pause -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPlay Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . click able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinteraction Source Ġ= Ġremember { ĠMutable Interaction Source () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindication Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġon Play Icon Click ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Size Ġ= Ġ 8 0 . dp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis ĠVideo Load State . Playing -> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPause Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . click able ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinteraction Source Ġ= Ġremember { ĠMutable Interaction Source () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindication Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġon Pause Icon Click ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Size Ġ= Ġ 6 5 . dp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġæ¨ ª å±ı çĬ¶æĢģ ä¸ĭ Loading æĹ¶ æĺ¾ç¤º ç½ĳ éĢŁ çļĦ æİ§ä»¶ Ċ Ġ*/ Ċ @ Composable Ċ internal Ġfun ĠHorizontal Loading Components ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġspeed By Bytes Ġby Ġremember Ġ{ ĊĠĠĠĠĠĠĠ Ġmutable State Of ( 0 L ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠLa unched Effect ( true ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġr Bytes Ġ= ĠTraffic Stats . get Uid Rx Bytes ( Common Application . getContext (). application Info . uid ) ĊĠĠĠĠĠĠĠ Ġflow Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelay ( 7 5 0 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Bytes Ġ= ĠTraffic Stats . get Uid Rx Bytes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Application . getContext (). application Info . uid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( n Bytes Ġ- Ġr Bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Bytes Ġ= Ġn Bytes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspeed By Bytes Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . wrap Content Size (), ĊĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" æŃ£åľ¨ ç¼ĵ åĨ² ... ${ Progress Util . to Traffic Bytes ( speed By Bytes ) }/ s ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . White ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġæ¨ ª å±ı çĬ¶æĢģ ä¸ĭçļĦ éĶģ å±ı æĮīéĴ® Ċ Ġ*/ Ċ @ Composable Ċ internal Ġfun ĠHorizontal Lock Icon ( ĊĠĠĠ Ġmodifier : ĠModifier Ġ= ĠModifier , ĊĠĠĠ Ġstate : ĠHorizontal Video Screen State , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġpainter Ġ= Ġif Ġ( state . is Locked ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpainter Resource ( id Ġ= ĠR . drawable . video _ ic _ locked ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġpainter Resource ( id Ġ= ĠR . drawable . video _ ic _ unlock ) ĊĠĠĠ Ġ} ĊĠĠĠ ĠSurface ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier . padding ( 1 . dp ), ĊĠĠĠĠĠĠĠ Ġcolor Ġ= ĠHalf Alpha Black , ĊĠĠĠĠĠĠĠ Ġshape Ġ= ĠRo unded Corner Shape ( 1 2 . dp ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Alignment Ġ= ĠAlignment . Center , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 1 0 . dp ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . size ( 2 8 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt int Ġ= ĠColor . White ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Preview ( show Background Ġ= Ġtrue , Ġwidth Dp Ġ= Ġ 8 4 0 , Ġheight Dp Ġ= Ġ 3 9 2 ) Ċ @ Composable Ċ private Ġfun ĠHorizontal Components Preview () Ġ{ ĊĠĠĠ ĠSurface ( color Ġ= ĠColor . Blue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠConstraint Layout Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( le , Ġri ) Ġ= Ġcreate Refs () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġremember Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHorizontal Video Screen State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHorizontal Lock Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( le ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Vert ically To ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart . link To ( parent . start ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . is Locked Ġ= Ġ! state . is Locked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHorizontal Lock Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. constr ain As ( ri ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcenter Vert ically To ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend . link To ( parent . end ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. click able Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . is Locked Ġ= Ġ! state . is Locked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }