/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 Ġ- Ġ 2 0 2 1 ĠMark o ĠSal me la Ċ Ġ* Ċ Ġ* Ġhttp :// fu us io . org Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* Ġhttp :// 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 . fl x . features . start . view Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . widget . Button Ċ import Ġorg . fu us io . api . view . Confirmation Bottom Sheet Ċ import Ġcom . fl x . app . R Ċ import Ġcom . fl x . app . databinding . E ula Accept ance Fragment Binding Ċ import Ġcom . fl x . app . view . MainActivity Ċ import Ġcom . fl x . features . e ula . model . E ula ViewModel Ċ import Ġorg . k oin . android . view model . ext . android . viewModel Ċ import Ġkotlin . math . floor Ċ Ċ class ĠE ula Accept ance Fragment Ġ: ĠStart Fragment < E ula Accept ance Fragment Binding >() Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby ĠviewModel < E ula ViewModel >() ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaccept Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdecl ine Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠwebView : ĠWebView ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Binding ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?): ĠE ula Accept ance Fragment Binding Ġ= ĊĠĠĠĠĠĠĠ ĠE ula Accept ance Fragment Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon Activate ( activity : ĠStart Activity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaccept Button Ġ= Ġactivity . positive Button ĊĠĠĠĠĠĠĠ Ġdecl ine Button Ġ= Ġactivity . negative Button ĊĊĠĠĠĠĠĠĠ Ġdecl ine Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġdecl ine Button . text Ġ= ĠgetString ( R . string . action _ decl ine _ e ula ) ĊĊĠĠĠĠĠĠĠ Ġaccept Button . text Ġ= ĠgetString ( R . string . action _ accept _ e ula ) ĊĠĠĠĠĠĠĠ Ġaccept Button . isEnabled Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġdecl ine Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Dis agreement () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġaccept Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . accept E ula () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfirm Dis agreement (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠConfirm ation Bottom Sheet ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . title _ exit _ application , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . text _ application _ exit , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . action _ cancel , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . action _ ok ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( which Ġ== ĠDialog Interface . BUTTON _ POSITIVE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . decl ine E ula () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġrequire Activity () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( MainActivity . KEY _ IS _ E ULA _ DECL IN ED , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , Ġintent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. show () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Setup View Bindings ( binding : ĠE ula Accept ance Fragment Binding ) Ġ{ ĊĠĠĠĠĠĠĠ ĠwebView Ġ= Ġbinding . web View E ula ĊĠĠĠĠĠĠĠ Ġload Url (" file :/// android _ asset / html / e ula . html ") ĊĊĠĠĠĠĠĠĠ ĠwebView . setOn Scroll ChangeListener Ġ{ Ġ_, Ġ_, Ġscroll Y , Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġfloor ( web View . content Height Ġ* Ġresources . display Metrics . density Ġ- ĠwebView . height ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoffset Ġ= Ġ( height Ġ- Ġscroll Y ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( offset Ġ< Ġ 8 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccept Button . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Same Parameter Value ") ĊĠĠĠ Ġprivate Ġfun Ġload Url ( url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠwebView . post Ġ{ ĠwebView . load Url ( url ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ