package Ġcom . mo eg irl viewer . screen . edit Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroidx . compose . foundation . layout .* Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . material . Tab Row Defaults . tab Indicator Offset Ċ import Ġandroidx . compose . material . icons . Icons Ċ import Ġandroidx . compose . material . icons . filled . Aut ore new Ċ import Ġandroidx . compose . material . icons . filled . Done Ċ import Ġandroidx . compose . material . icons . filled . Search Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . Experimental Compose Ui Api Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . platform . Local Configuration Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . text . style . Text Overflow Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . h ilt . navigation . compose . h ilt ViewModel Ċ import Ġcom . google . ac comp an ist . pager . Experimental Pager Api Ċ import Ġcom . google . ac comp an ist . pager . Horizontal Pager Ċ import Ġcom . mo eg irl viewer . R Ċ import Ġcom . mo eg irl viewer . component . App Header Icon Ċ import Ġcom . mo eg irl viewer . component . Back Handler Ċ import Ġcom . mo eg irl viewer . component . common Dialog . Button Config Ċ import Ġcom . mo eg irl viewer . component . common Dialog . Common AlertDialog Props Ċ import Ġcom . mo eg irl viewer . component . styled . Styled Text Ċ import Ġcom . mo eg irl viewer . component . styled . Styled Top AppBar Ċ import Ġcom . mo eg irl viewer . screen . edit . tabs . preview . Edit Screen Preview Ċ import Ġcom . mo eg irl viewer . screen . edit . tabs . wik it ext Editor . Edit Screen W ikit ext Editor Ċ import Ġcom . mo eg irl viewer . screen . edit . util . show Submit Dialog Of Edit Ċ import Ġcom . mo eg irl viewer . theme . is Use Dark Mode Ċ import Ġcom . mo eg irl viewer . theme . is Use Pure Theme Ċ import Ġcom . mo eg irl viewer . util . Globals Ċ import Ġcom . mo eg irl viewer . util . Load Status Ċ import Ġcom . mo eg irl viewer . util . compute Md 5 Ċ import Ġcom . mo eg irl viewer . util . ime Bottom Padding Ċ import Ġkotlinx . coroutines . Flow Preview Ċ import Ġkotlinx . coroutines . Internal Cor outines Api Ċ import Ġkotlinx . coroutines . launch Ċ Ċ @ Suppress Lint (" Unused Material Sca ffold Padding Parameter ") Ċ @ Opt In ( Flow Preview :: class ) Ċ @ Internal Cor outines Api Ċ @ Experimental Compose Ui Api Ċ @ Experimental Material Api Ċ @ Experimental Pager Api Ċ @ Composable Ċ fun ĠEdit Screen ( arguments : ĠEdit Route Arguments ) Ġ{ ĊĠ Ġval Ġmodel : ĠEdit Screen Model Ġ= Ġh ilt ViewModel () ĊĊĠ ĠSide Effect Ġ{ ĊĠĠĠ Ġmodel . route Arguments Ġ= Ġarguments ĊĠĠĠ Ġmodel . backup Id Ġ= Ġcompute Md 5 ( ĊĠĠĠĠĠ Ġarguments . page Name Ġ+ Ġarguments . type . name Ġ+ Ġ( arguments . section Ġ?: Ġ"") Ġ+ Ġ( arguments . preload Ġ?: Ġ"") ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ ĠLa unched Effect ( true ) Ġ{ ĊĠĠĠ Ġif Ġ( model . wik it ext Status Ġ== ĠLoad Status . INITIAL ) Ġ{ ĊĠĠĠĠĠ Ġmodel . load W ikit ext () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( model . check Backup Flag ) Ġ{ ĊĠĠĠĠĠ Ġmodel . check Backup () ĊĠĠĠĠĠ Ġmodel . check Backup Flag Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ ĠLa unched Effect ( model . pager State . currentPage ) Ġ{ ĊĠĠĠ Ġif Ġ( model . pager State . currentPage Ġ== Ġ 1 Ġ&& Ġmodel . should Reload Preview ) Ġ{ ĊĠĠĠĠĠ Ġmodel . should Reload Preview Ġ= Ġfalse ĊĠĠĠĠĠ Ġmodel . load Preview () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠĠ Ċ // Ġ ĠBack Handler ( true ) Ġ{ Ċ // ĠĠĠ Ġscope . launch Ġ{ Ċ // ĠĠĠĠĠ Ġif Ġ( model . wiki Editor State . getText Content () Ġ!= Ġmodel . original Wiki Text ) Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠGlobals . common AlertDialog . show ( Common AlertDialog Props ( Ċ // ĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġ{ ĠStyled Text ( string Resource ( id Ġ= ĠR . string . ed itle ave Hint )) Ġ}, Ċ // ĠĠĠĠĠĠĠĠĠ Ġsecondary Button Ġ= ĠButton Config . cancel Button (), Ċ // ĠĠĠĠĠĠĠĠĠ Ġon Primary Button Click Ġ= Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠGlobals . nav Controller . pop Back Stack () Ċ // ĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ)) Ċ // ĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠGlobals . nav Controller . pop Back Stack () Ċ // ĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ġ Ġ} ĊĊĠ Ġmodel . memory Store . Provider Ġ{ ĊĠĠĠ Ġmodel . cached Web Views . Provider Ġ{ ĊĠĠĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠ Ġ. ime Bottom Padding (), ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠComp osed Header ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Name Ġ= Ġarguments . page Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Type Ġ= Ġarguments . type ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠHorizontal Pager ( ĊĠĠĠĠĠĠĠĠĠ Ġcount Ġ= Ġ 2 , ĊĠĠĠĠĠĠĠĠĠ Ġuser Scroll Enabled Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġmodel . pager State , ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĠcurrentIndex Ġ-> ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( currentIndex Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEdit Screen W ikit ext Editor () ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEdit Screen Preview () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ @ Experimental Pager Api Ċ @ Composable Ċ private Ġfun ĠComp osed Header ( ĊĠ Ġpage Name : ĠString , ĊĠ Ġedit Type : ĠEdit Type Ċ ) Ġ{ ĊĠ Ġval Ġmodel : ĠEdit Screen Model Ġ= Ġh ilt ViewModel () ĊĠ Ġval Ġconfiguration Ġ= ĠLocal Configuration . current ĊĠ Ġval Ġtheme Colors Ġ= ĠMaterial Theme . colors ĊĊĠ ĠLa unched Effect ( model . selected TabIndex ) Ġ{ ĊĠĠĠ Ġmodel . pager State . animate Scroll To Page ( model . selected TabIndex ) ĊĠ Ġ} ĊĊĠ Ġval Ġtitles Ġ= Ġremember Ġ{ ĠlistOf ( ĊĠĠĠ ĠGlobals . context . getString ( R . string . wiki Text ), ĊĠĠĠ ĠGlobals . context . getString ( R . string . preview View ) ĊĠ Ġ) Ġ} ĊĊĠ Ġval Ġaction Name Ġ= Ġwhen ( edit Type ) Ġ{ ĊĠĠĠ ĠEdit Type . FULL Ġ-> Ġstring Resource ( id Ġ= ĠR . string . edit ) ĊĠĠĠ ĠEdit Type . SECTION Ġ-> Ġstring Resource ( id Ġ= ĠR . string . edit Section ) ĊĠĠĠ ĠEdit Type . NEW _ PAGE Ġ-> Ġstring Resource ( id Ġ= ĠR . string . create ) ĊĠ Ġ} ĊĊĊĠ ĠSurface ( ĊĠĠĠ Ġelevation Ġ= Ġ 5 . dp ĊĠ Ġ) Ġ{ ĊĠĠĠ ĠColumn () Ġ{ ĊĠĠĠĠĠ ĠStyled Top AppBar ( ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠStyled Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"$ action Name ï¼ļ $ page Name ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lines Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverflow Ġ= ĠText Overflow . El lipsis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġtheme Colors . on Primary ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġactions Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠApp Header Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= ĠIcons . Filled . Search , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobals . nav Controller . navigate (" search ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠ ĠApp Header Icon ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= ĠIcons . Filled . Done , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Submit Dialog Of Edit ( model ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ ĠTab Row ( ĊĠĠĠĠĠĠĠ Ġselected TabIndex Ġ= Ġmodel . selected TabIndex , ĊĠĠĠĠĠĠĠ Ġindicator Ġ= Ġ{ Ġtab Positions Ġ-> ĊĠĠĠĠĠĠĠĠĠ ĠTab Row Defaults . Indicator ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . tab Indicator Offset ( tab Positions [ model . selected TabIndex ]), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= Ġif Ġ(! is Use Pure Theme () Ġ&& Ġ! is Use Dark Mode ()) ĠColor . White Ġelse Ġtheme Colors . primary Variant , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 3 . dp ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtitles . forEach Indexed Ġ{ Ġindex , Ġtitle Ġ-> ĊĠĠĠĠĠĠĠĠĠ ĠTab ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor Ġ= ĠColor . Unspecified ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ġ= Ġmodel . selected TabIndex Ġ== Ġindex , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ Ġmodel . selected TabIndex Ġ= Ġindex Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }