package Ġcom . p unto gr is . bl int . common . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . annotation . Raw Res Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . camera . core . Camera Ċ import Ġandroidx . camera . core . Torch State Ċ import Ġandroidx . core . content . File Provider Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . lifecycle . repeat On Lifecycle Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Options Ċ import Ġandroidx . navigation . fragment . Nav Host Fragment Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . paging .* Ċ import Ġandroidx . preference . Preference Ċ import Ġandroidx . preference . Preference Fragment Compat Ċ import Ġcom . air bnb . lott ie . Lot tie Animation View Ċ import Ġcom . air bnb . lott ie . Lot tie Drawable Ċ import Ġcom . google . android . material . app bar . Material Toolbar Ċ import Ġcom . google . firebase . Timestamp Ċ import Ġcom . max ke pp eler . sheets . options . DisplayMode Ċ import Ġcom . max ke pp eler . sheets . options . Option Ċ import Ġcom . max ke pp eler . sheets . options . Options Sheet Ċ import Ġcom . p unto gr is . bl int . Navigation Directions Ċ import Ġcom . p unto gr is . bl int . R Ċ import Ġcom . p unto gr is . bl int . common . utils . types . Event Ui Ċ import Ġcom . p unto gr is . bl int . feature _ store . domain . model . Event Ċ import Ġcom . p unto gr is . bl int . feature _ store . domain . model . product . Product Ċ import Ġcom . p unto gr is . bl int . feature _ store . presentation . main . Setup Ui Listener Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . flow .* Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . th reet en . bp . DateTime Utils Ċ import Ġorg . th reet en . bp . Offset DateTime Ċ import Ġorg . th reet en . bp . Zone Id Ċ import Ġorg . th reet en . bp . format . DateTime Formatter Ċ import Ġjava . io . File Ċ import Ġjava . text . Decimal Format Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ fun ĠView . g one () Ġ{ ĊĠĠĠ Ġvisibility Ġ= ĠView . GONE Ċ } Ċ Ċ fun ĠView . visible () Ġ{ ĊĠĠĠ Ġvisibility Ġ= ĠView . VISIBLE Ċ } Ċ Ċ fun ĠEditText . getString () Ġ= Ġtext . toString () Ċ Ċ fun ĠEditText . getInt (): ĠInt Ġ= Ġtext . toString (). toInt OrNull () Ġ?: Ġ 0 Ċ Ċ fun ĠEditText . get Float (): ĠFloat Ġ= Ġtext . toString (). toFloat OrNull () Ġ?: Ġ 0 F Ċ Ċ fun ĠAppCompatActivity . get Nav Controller () Ġ= ĊĠĠĠ Ġ( support FragmentManager . find Fragment ById ( R . id . nav _ host _ fragment ) Ġas ĠNav Host Fragment ). nav Controller Ċ Ċ fun ĠAppCompatActivity . get Nav Host Fragment () Ġ= ĊĠĠĠ Ġ( support FragmentManager . find Fragment ById ( R . id . nav _ host _ fragment ) Ġas ĠNav Host Fragment ) Ċ Ċ fun ĠString . contains Invalid Characters () Ġ= Ġ! all Ġ{ Ġit . is Letter () Ġ|| Ġit . is Whitespace () Ġ} Ċ Ċ fun ĠActivity . hide Keyboard () Ġ{ ĊĠĠĠ Ġhide Keyboard ( current Focus Ġ?: ĠView ( this )) Ċ } Ċ Ċ fun ĠFragment . hide Keyboard () Ġ{ ĊĠĠĠ Ġview ?. let Ġ{ Ġrequire Activity (). hide Keyboard ( it ) Ġ} Ċ } Ċ Ċ fun ĠDialog Fragment . hide Keyboard () Ġ{ ĊĠĠĠ Ġrequire Dialog (). current Focus ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Method Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (). getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġinput Method Manager . hide Soft Input From Window ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . window Token , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Method Manager . HIDE _ NOT _ ALWAYS ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun ĠContext . hide Keyboard ( view : ĠView ) Ġ{ ĊĠĠĠ Ġval Ġinput Method Manager Ġ= Ġget System Service ( Activity . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġinput Method Manager . hide Soft Input From Window ( view . window Token , Ġ 0 ) Ċ } Ċ Ċ fun ĠFloat . to Money Formatted ( remove Suffix : ĠBoolean Ġ= Ġfalse ): ĠString Ġ{ ĊĠĠĠ Ġreturn ĠDecimal Format (" ### , ### , ## 0 . 0 0 "). format ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( remove Suffix ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis . remove Suffix (". 0 0 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠTimestamp . to Offset DateTime (): ĠOffset DateTime Ġ{ ĊĠĠĠ Ġreturn ĠOffset DateTime . of Instant ( DateTime Utils . to Instant ( toDate ()), ĠZone Id . system Default ()) Ċ } Ċ Ċ fun ĠOffset DateTime . get DateFormat ted String (): ĠString Ġ= ĊĠĠĠ Ġformat ( DateTime Formatter . of Pattern (" dd / MM / yyyy ")) Ċ Ċ fun ĠOffset DateTime . getDate With Time Formatted String (): ĠString Ġ= ĊĠĠĠ Ġformat ( DateTime Formatter . of Pattern (" dd / MM / yyyy Ġ- Ġh : mm Ġa ")) Ċ Ċ fun ĠOffset DateTime . getMonth And Y eah (): ĠString Ġ= Ġformat ( DateTime Formatter . of Pattern (" MMMM Ġ- Ġy yyy ")) Ċ Ċ fun ĠDate . getDate With Time Formatted String () Ġ= ĊĠĠĠ ĠSimpleDateFormat (" dd / MM / yyyy Ġ- Ġh : mm Ġa ", ĠLocale . getDefault ()). format ( this ). toString () Ċ Ċ fun ĠFlow < Paging Data < Event >> . to Event Ui (): ĠFlow < Paging Data < Event Ui >> Ġ{ ĊĠĠĠ Ġreturn Ġmap Ġ{ Ġpaging Data Ġ-> ĊĠĠĠĠĠĠĠ Ġpaging Data . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Ui . Event Item ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠ Ġit . insert Separ ators Ġ{ Ġbefore , Ġafter Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( after Ġ== Ġnull ) Ġreturn @ insert Separ ators Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( before Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Ui . Separator Item ( after . event . timestamp . month . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( before ?. event ?. timestamp ?. getMonth And Y eah () Ġ!= Ġafter . event . timestamp . getMonth And Y eah ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Ui . Separator Item ( after . event . timestamp . month . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠFragment . launch Web Browser Intent ( uri : ĠString , ĠpackageName : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . data Ġ= ĠUri . parse ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( packageName Ġ!= Ġnull ) Ġit . set Package ( packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ ĠUi Interface . show Sn ackBar ( getString ( R . string . sn ack _ ups _ visit _ bl int )) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ fun ĠL ot tie Animation View . play Animation Once (@ Raw Res Ġanimation : ĠInt ) Ġ{ ĊĠĠĠ Ġvisible () ĊĠĠĠ Ġset Animation ( animation ) ĊĠĠĠ Ġrepeat Count Ġ= Ġ 0 ĊĠĠĠ Ġplay Animation () Ċ } Ċ Ċ fun ĠL ot tie Animation View . play Animation Infinite (@ Raw Res Ġanimation : ĠInt ) Ġ{ ĊĠĠĠ Ġvisible () ĊĠĠĠ Ġset Animation ( animation ) ĊĠĠĠ Ġrepeat Count Ġ= ĠL ot tie Drawable . INF IN ITE ĊĠĠĠ Ġplay Animation () Ċ } Ċ Ċ fun ĠFragment . show Order Picker And Navigate ( product : ĠProduct ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ ĠOptions Sheet (). show ( require Parent Fragment (). require Context ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠdisplayMode ( DisplayMode . LIST ) ĊĠĠĠĠĠĠĠ Ġwith ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( R . drawable . ic _ fi _ rr _ download , ĠR . string . in _ entry ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( R . drawable . ic _ fi _ rr _ upload , ĠR . string . out _ entry ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġon Positive Ġ{ Ġindex : ĠInt , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġif Ġ( index Ġ== Ġ 0 ) ĠConstants . IN Ġelse ĠConstants . OUT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠNavigation Directions . action Global New Order Graph Nav ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Type Ġ= Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Ġ= Ġproduct ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠFragment . launch And Repeat With View Lifecycle ( ĊĠĠĠ Ġmin Active State : ĠLifecycle . State Ġ= ĠLifecycle . State . STARTED , ĊĠĠĠ Ġcross inline Ġblock : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle . repeat On Lifecycle ( min Active State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠString . capitalize First Char () Ġ= ĊĠĠĠ Ġreplace First Char Ġ{ Ġif Ġ( it . is LowerCase ()) Ġit . title case ( Locale . getDefault ()) Ġelse Ġit . toString () Ġ} Ċ Ċ inline Ġval ĠFragment . Ui Interface : ĠSetup Ui Listener ĊĠĠĠ Ġget () Ġ= Ġ( require Activity () Ġas ĠSetup Ui Listener ) Ċ Ċ fun ĠFragment . register Toolbar Back Button ( toolbar : ĠMaterial Toolbar ) Ġ{ ĊĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate Up () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠList < T >. copy And Add ( item : ĠT ): ĠList < T > Ġ{ ĊĠĠĠ Ġreturn Ġthis . to Mutable List (). apply Ġ{ Ġadd ( item ) Ġ} Ċ } Ċ Ċ fun Ġ< T > ĠList < T >. copy And Remove ( item : ĠT ): ĠList < T > Ġ{ ĊĠĠĠ Ġreturn Ġthis . to Mutable List (). apply Ġ{ Ġremove ( item ) Ġ} Ċ } Ċ Ċ inline Ġfun ĠPreference Fragment Compat . preference ( key : ĠString , Ġblock : ĠPreference . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfind Preference < Preference >( key )?. apply Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠPreference . onClick ( cross inline Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġset On Preference ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠPreference Fragment Compat . on Preference Change ( ĊĠĠĠ Ġkey : ĠString , ĊĠĠĠ Ġcross inline Ġblock : Ġ( Any ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġfind Preference < Preference >( key )?. setOn Preference ChangeListener Ġ{ Ġ_, ĠnewValue Ġ-> ĊĠĠĠĠĠĠĠ Ġblock ( newValue ) ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun ĠPreference Fragment Compat . preference OnClick ( key : ĠString , Ġcross inline Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġfind Preference < Preference >( key )?. setOn Preference ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠFile . get Uri From Provider ( context : ĠContext ): ĠUri Ġ{ ĊĠĠĠ Ġreturn ĠFile Provider . get Uri For File ( context , Ġcontext . packageName , Ġthis ) Ċ } Ċ Ċ fun ĠNav Controller . navigate And Clear Stack ( destination : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġnav Ġ= ĠNav Options . Builder (). set Pop Up To ( R . id . navigation , Ġtrue ). build () ĊĠĠĠ Ġnavigate ( destination , Ġnull , Ġnav ) Ċ } Ċ Ċ fun ĠFragment . is Dark Theme On () Ġ= ĊĠĠĠ Ġ( resources . configuration . ui Mode Ġand ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration . UI _ MODE _ N IGHT _ MASK Ġ== ĠConfiguration . UI _ MODE _ N IGHT _ YES ) ĊĊ Ċ fun ĠCamera . toggle Flash () Ġ{ ĊĠĠĠ Ġcamera Control . enable Torch ( camera Info . torch State . value Ġ== ĠT orch State . OFF ) Ċ } Ċ Ċ suspend Ġinline Ġfun Ġshow Empty Ui On Empty Adapter ( ĊĠĠĠ Ġadapter : ĠP aging Data Adapter < *, Ġ* >, ĊĠĠĠ Ġview : ĠView Ċ ) Ġ{ ĊĠĠĠ Ġadapter . load State Flow ĊĠĠĠĠĠĠĠ Ġ. distinct Until Changed () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . source . refresh Ġ} ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġis ĠLoad State . Not Loading Ġ} ĊĠĠĠĠĠĠĠ Ġ. collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . isVisible Ġ= Ġadapter . item Count Ġ== Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} Ċ }