/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠLe ah ĠN ich ita Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . fer elin . core . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroidx . core . view . do On Pre Draw Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . view binding . View Binding Ċ import Ġcom . fer elin . core . R Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ Ċ abstract Ġclass ĠBase Fragment < VB Ġ: ĠView Binding > Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġabstract Ġval Ġbinding Inflater : Ġ( LayoutInflater , ĠViewGroup ?, ĠBoolean ) Ġ-> ĠVB ĊĊĠĠĠ Ġprivate Ġvar Ġ_ view Binding : ĠVB ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġval Ġview Binding : ĠVB ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠcheckNotNull (_ view Binding ) ĊĊĠĠĠ Ġprivate Ġvar Ġactive Snackbar : ĠSn ackbar ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ view Binding Ġ= Ġbinding Inflater . invoke ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview Binding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpost p one Transitions ( this ) ĊĠĠĠĠĠĠĠ Ġinit Ui () ĊĠĠĠĠĠĠĠ Ġinit Ux () ĊĠĠĠĠĠĠĠ Ġinit Observer s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġactive Snackbar ?. dismiss () ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ view Binding Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġinit Ui () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠOverride Ġin Ġsubclasses ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġinit Ux () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠOverride Ġin Ġsubclasses ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġinit Observer s () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠOverride Ġin Ġsubclasses ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Snackbar ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactive Snackbar Ġ= ĠSn ackbar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. make ( view Binding . root , Ġmessage , ĠSn ackbar . LENGTH _ IN DEFIN ITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction ( R . string . hint Ok ) Ġ{ Ġ/* dismiss Ġby Ġdefault */ Ġ} ĊĊĠĠĠĠĠĠĠ Ġactive Snackbar !!. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Action Snackbar ( message : ĠString , Ġaction Message : ĠString , Ġaction : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactive Snackbar Ġ= ĠSn ackbar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. make ( view Binding . root , Ġmessage , ĠSn ackbar . LENGTH _ IN DEFIN ITE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction ( action Message ) Ġ{ Ġaction . invoke () Ġ} ĊĊĠĠĠĠĠĠĠ Ġactive Snackbar !!. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Temp Snackbar ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactive Snackbar Ġ= ĠSn ackbar . make ( view Binding . root , Ġmessage , ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠ Ġactive Snackbar !!. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( require Activity ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Manager Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Manager . hide Soft Input From Window ( current Focus ?. window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Keyboard ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( require Activity ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Focus ?. clear Focus () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . request Focus () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show Soft Input ( view , ĠInput Method Manager . SHOW _ IMP LICIT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpost p one Transitions ( fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfragment . post p one Enter Transition () ĊĠĠĠĠĠĠĠ Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. require View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Pre Draw Ġ{ Ġfragment . start Post p oned Enter Transition () Ġ} ĊĠĠĠ Ġ} Ċ }