package Ġcom . github . sms . utils . ext Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġandroid . arch . lifecycle . ViewModel Provider Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . Point Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . support . annotation . Id Res Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 4 . app . Fragment Activity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġcom . github . sms . R Ċ Ċ / ************************************************ *** Ċ Ġ* ĠActivity ĠExtension Ġfunctions Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġg k Ċ Ġ************************************************* */ Ċ Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ fun Ġ< T > ĠFragment Activity . find Fragment ById (@ Id Res Ġid : ĠInt ): ĠT Ġ= Ġsupport FragmentManager . find Fragment ById ( id ) Ġas ĠT Ċ Ċ /** Ċ Ġ* ĠThe Ġ` fragment ` Ġis Ġadded Ġto Ġthe Ġcontainer Ġview Ġwith Ġid Ġ` frame Id `. ĠThe Ġoperation Ġis Ċ Ġ* Ġperformed Ġby Ġthe Ġ` fragment Manager `. Ċ Ġ*/ Ċ fun ĠFragment Activity . set Fragment ( fragment : ĠFragment , Ġframe Id : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġtransaction Ġ= Ġsupport FragmentManager . beginTransaction () ĊĠĠĠ Ġtransaction . add ( frame Id , Ġfragment ) ĊĠĠĠ Ġtransaction . commit () Ċ } Ċ Ċ /** Ċ Ġ* ĠExtension Ġfunction Ġto Ġcreate Ġa Ġview Ġmodel Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠViewModel > ĠFragment Activity . get ViewModel ( model Class : ĠClass < T >, ĠviewModel Factory : ĠViewModel Provider . Factory ? Ġ= Ġnull ): ĠT Ġ{ ĊĠĠĠ Ġreturn ĠviewModel Factory ?. let Ġ{ ĠViewModel Providers . of ( this , Ġit ). get ( model Class ) Ġ} Ġ?: ĠViewModel Providers . of ( this ). get ( model Class ) Ċ } Ċ Ċ /** Ċ Ġ* ĠGet ĠDevice ĠScreen Ġwidth Ġin Ġpixels Ċ Ġ*/ Ċ fun ĠActivity . get Screen Width (): ĠInt Ġ{ ĊĠĠĠ Ġval Ġdisplay Ġ= Ġwindow Manager . default Display ĊĠĠĠ Ġval Ġsize Ġ= ĠPoint () ĊĠĠĠ Ġdisplay . getSize ( size ) ĊĠĠĠ Ġreturn Ġsize . x Ċ } Ċ Ċ /** Ċ Ġ* ĠGet ĠDevice ĠScreen Ġheight Ġin Ġpixels Ċ Ġ*/ Ċ fun ĠActivity . get Screen Height (): ĠInt Ġ{ ĊĠĠĠ Ġval Ġdisplay Ġ= Ġwindow Manager . default Display ĊĠĠĠ Ġval Ġsize Ġ= ĠPoint () ĊĠĠĠ Ġdisplay . getSize ( size ) ĊĠĠĠ Ġreturn Ġsize . y Ċ } Ċ Ċ /** Ċ Ġ* ĠExtension Ġfunction Ġto Ġhide Ġthe Ġkeyboard Ċ Ġ*/ Ċ fun ĠActivity . hide Keyboard () Ġ{ ĊĠĠĠ Ġval Ġimm Ġ= Ġget System Service ( Activity . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġ// Find Ġthe Ġcurrently Ġfocused Ġview , Ġso Ġwe Ġcan Ġgrab Ġthe Ġcorrect Ġwindow Ġtoken Ġfrom Ġit . ĊĠĠĠ Ġvar Ġview Ġ= Ġcurrent Focus ĊĠĠĠ Ġ// If Ġno Ġview Ġcurrently Ġhas Ġfocus , Ġcreate Ġa Ġnew Ġone , Ġjust Ġso Ġwe Ġcan Ġgrab Ġa Ġwindow Ġtoken Ġfrom Ġit ĊĠĠĠ Ġif Ġ( view Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Ġ= ĠView ( this ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġimm . hide Soft Input From Window ( view . window Token , Ġ 0 ) Ċ } Ċ Ċ /** Ċ Ġ* ĠConvenience Ġmethod Ġfor Ġgetting Ġinto ĠImm ers ive Ġmode . Ċ Ġ*/ Ċ fun ĠActivity . go Fullscreen () Ġ{ ĊĠĠĠ Ġwindow . set Flags ( WindowManager . LayoutParams . FLAG _ LAYOUT _ NO _ LIMIT S , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWindow Manager . LayoutParams . FLAG _ LAYOUT _ NO _ LIMIT S ) ĊĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= Ġ( View . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ HIDE _ NAV IG ATION ĊĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ HIDE _ NAV IG ATION Ġ// Ġhide Ġnav Ġbar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN Ġ// Ġhide Ġstatus Ġbar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ IM MER SIVE _ STICK Y ) Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġa ĠProgress ĠDialog Ġfrom ĠActivity Ċ Ġ* Ġ@ return Ċ Ġ*/ Ċ fun ĠActivity . create Progress Dialog (): ĠDialog Ġ{ ĊĠĠĠ Ġval Ġprogress Dialog Ġ= ĠDialog ( this ) ĊĠĠĠ Ġprogress Dialog . show () ĊĠĠĠ Ġprogress Dialog . window ?. setBackground Drawable ( Color Drawable ( Color . TRANSP ARENT )) ĊĠĠĠ Ġprogress Dialog . set ContentView ( R . layout . progress _ dialog ) ĊĠĠĠ Ġprogress Dialog . set Cancel able ( false ) ĊĠĠĠ Ġprogress Dialog . set Canceled On Touch Outside ( false ) ĊĠĠĠ Ġreturn Ġprogress Dialog Ċ }