package Ġcom . t roy . ters ive . ui . intro Ċ Ċ import Ġandroid . print . Print Document Adapter Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroidx . compose . foundation . Icon Ċ import Ġandroidx . compose . foundation . Text Ċ import Ġandroidx . compose . material . IconButton Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Arrow Back Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . view interop . Android View Ċ import Ġandroidx . compose . ui . view interop . viewModel Ċ import Ġcom . t roy . ters ive . R Ċ import Ġcom . t roy . ters ive . ui . base . App Theme Ċ import Ġcom . t roy . ters ive . ui . nav . Nav Controller Ambient Ċ import Ġtim ber . log . Tim ber Ċ Ċ // class ĠIntro Activity Ġ: ĠAppCompatActivity () Ġ{ Ċ // Ċ // ĠĠĠ Ġprivate Ġval ĠviewModel : ĠIntro ViewModel Ġby Ġview Models () Ċ // Ċ // ĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) Ċ // ĠĠĠĠĠĠĠ Ġset Content Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠ ĠApp Theme Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntro Page () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġsetup Receiver () Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠviewModel . on Back Pressed () Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġprivate Ġfun Ġsetup Receiver () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġreceive When Started ( viewModel . event Channel ) Ġ{ Ġaction Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( action ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFinish Ġ-> Ġfinish () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent ( context , ĠIntro Activity :: class . java )) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ //} Ċ Ċ @ Composable Ċ fun ĠIntro Page () Ġ{ Ċ // todo Ġbroken Ġin ĠK oin Ġ 2 . 2 . 0 ĠĠĠ Ġval ĠviewModel : ĠIntro ViewModel Ġ= Ġget ViewModel () ĊĠĠĠ Ġval ĠviewModel : ĠIntro ViewModel Ġ= ĠviewModel () ĊĠĠĠ ĠApp Theme Ġ{ ĊĠĠĠĠĠĠĠ ĠScaffold ( top Bar Ġ= Ġ{ ĠApp Bar ( viewModel ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWeb Component ( url Ġ= Ġ" file :/// android _ asset / T ers ive _ Intro . html ", Ġweb Context Ġ= ĠviewModel . web Context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠApp Bar ( viewModel : ĠIntro ViewModel ) Ġ{ ĊĠĠĠ Ġval Ġnav Controller Ġ= ĠNav Controller Ambient . current ĊĠĠĠ ĠTop AppBar ( ĊĠĠĠĠĠĠĠ Ġnavigation Icon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ ĠviewModel . on Back Pressed ( nav Controller ) Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Arrow Back ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( string Resource ( id Ġ= ĠR . string . intro _ title )) ĊĠĠĠĠĠĠĠ Ġ}, Ċ // ĠĠĠĠĠĠĠ Ġactions Ġ= Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirections Ġ= ĠIndividual Fragment Directions . action Individual Edit Fragment ( viewModel . individual Id ) Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( directions ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Edit ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠIcon Button ( onClick Ġ= Ġ{ ĠviewModel . confirm Delete State Ġ= Ġtrue Ġ}) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( Icons . Filled . Delete ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠ Ġ) Ċ } Ċ Ċ class ĠWeb Context Ġ{ ĊĠĠĠ Ġlateinit Ġvar ĠwebView : ĠWebView ĊĊĠĠĠ Ġfun Ġcreate Print Document Adapter ( document Name : ĠString ): ĠPrint Document Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate WebView () ĊĠĠĠĠĠĠĠ Ġreturn ĠwebView . create Print Document Adapter ( document Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgo Forward () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate WebView () ĊĠĠĠĠĠĠĠ ĠwebView . go Forward () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgo Back () Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate WebView () ĊĠĠĠĠĠĠĠ ĠwebView . go Back () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcan Go Back (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvalidate WebView () ĊĠĠĠĠĠĠĠ Ġreturn ĠwebView . can Go Back () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate WebView () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: web View . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" The ĠWebView Ġis Ġnot Ġinitialized Ġyet .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdebug Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠWebView . set Ref ( ref : Ġ( WebView ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġref ( this ) Ċ } Ċ Ċ private Ġfun ĠWebView . set Url ( url : ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( original Url Ġ!= Ġurl ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Web Context . debug ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" Web Component Ġload Ġurl ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġload Url ( url ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠWeb Component ( ĊĠĠĠ Ġurl : ĠString , ĊĠĠĠ ĠwebView Client : ĠWebView Client Ġ= ĠWebView Client (), ĊĠĠĠ Ġweb Context : ĠWeb Context Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( Web Context . debug ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Web Component Ġcompose Ġ$ url ") ĊĠĠĠ Ġ} ĊĠĠĠ ĠAndroid View (:: WebView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġit . set Ref Ġ{ Ġview Ġ-> Ġweb Context . web View Ġ= Ġview Ġ} ĊĠĠĠĠĠĠĠ Ġit . set Url ( url ) ĊĠĠĠĠĠĠĠ Ġit . web View Client Ġ= ĠwebView Client ĊĠĠĠ Ġ} Ċ }