package Ġio . github . g math i . no vel library . activity Ċ Ċ import Ġio . github . g math i . no vel library . network . sync . No vel Sync Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . widget . PopupMenu Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . core . view . Motion Event Compat Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġcom . af ol le st ad . material dialogs . Material Dialog Ċ import Ġcom . af ol le st ad . material dialogs . input . input Ċ import Ġcom . af ol le st ad . material dialogs . lifecycle . lifecycle Owner Ċ import Ġcom . google . firebase . analytics . k tx . log Event Ċ import Ġio . github . g math i . no vel library . R Ċ import Ġio . github . g math i . no vel library . adapter . Generic Adapter Ċ import Ġio . github . g math i . no vel library . database .* Ċ import Ġio . github . g math i . no vel library . databinding . Activity No vel Sections Binding Ċ import Ġio . github . g math i . no vel library . databinding . List item No vel Section Binding Ċ import Ġio . github . g math i . no vel library . util . FAC Ċ import Ġio . github . g math i . no vel library . extensions . show Empty Ċ import Ġio . github . g math i . no vel library . extensions . show Loading Ċ import Ġio . github . g math i . no vel library . model . database . No vel Section Ċ import Ġio . github . g math i . no vel library . util . view . Custom Divider Item Decoration Ċ import Ġio . github . g math i . no vel library . util . view . Simple Item Touch Helper Callback Ċ import Ġio . github . g math i . no vel library . util . view . Simple Item Touch Listener Ċ import Ġio . github . g math i . no vel library . util . view . set Defaults Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠNo vel Sections Activity Ġ: ĠBase Activity (), ĠGeneric Adapter . Listener < No vel Section >, ĠSimple Item Touch Listener Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġadapter : ĠGeneric Adapter < No vel Section > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtouch Helper : ĠItem Touch Helper ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity No vel Sections Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity No vel Sections Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( binding . toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġset RecyclerView () ĊĠĠĠĠĠĠĠ Ġbinding . content RecyclerView . progress Layout . show Loading () ĊĠĠĠĠĠĠĠ ĠsetData () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠGeneric Adapter ( ArrayList (), ĠR . layout . list item _ no vel _ section , Ġthis ) ĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= ĠSimple Item Touch Helper Callback ( this ) ĊĠĠĠĠĠĠĠ Ġtouch Helper Ġ= ĠItem Touch Helper ( callback ) ĊĠĠĠĠĠĠĠ Ġtouch Helper . attach To RecyclerView ( binding . content RecyclerView . re cyclerView ) ĊĠĠĠĠĠĠĠ Ġbinding . content RecyclerView . re cyclerView . set Defaults ( adapter ) ĊĠĠĠĠĠĠĠ Ġbinding . content RecyclerView . re cyclerView . addItem Decoration ( Custom Divider Item Decoration ( this , ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠĠĠĠĠ Ġbinding . content RecyclerView . swipe Refresh Layout . isEnabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetData () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Order Ids () ĊĠĠĠĠĠĠĠ Ġval Ġnovel Sections Ġ= Ġdb Helper . getAll No vel Sections () ĊĠĠĠĠĠĠĠ Ġadapter . update Data ( ArrayList ( no vel Sections )) ĊĠĠĠĠĠĠĠ Ġbinding . content RecyclerView . swipe Refresh Layout . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbinding . content RecyclerView . progress Layout . show Content () ĊĠĠĠĠĠĠĠ Ġif Ġ( no vel Sections . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . content RecyclerView . progress Layout . show Empty ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġres Id Ġ= ĠR . drawable . ic _ info _ white _ vector , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Lot tie Animation Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġempty Text Ġ= ĠgetString ( R . string . no vel _ section _ empty _ message ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Text Ġ= ĠgetString ( R . string . add _ no vel _ section ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd No vel Section () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Order Ids () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( adapter . items . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġadapter . items . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper . update No vel Section OrderId ( adapter . items [ i ]. id , Ġi . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠ Ġoverride Ġfun Ġbind ( item : ĠNo vel Section , ĠitemView : ĠView , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem Binding Ġ= ĠList item No vel Section Binding . bind ( item View ) ĊĠĠĠĠĠĠĠ Ġitem Binding . no vel Section Title . text Ġ= Ġitem . name ĊĊĠĠĠĠĠĠĠ Ġitem Binding . reorder Button . setOn Touch Listener Ġ{ Ġ_, Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Motion Event Compat . getAction Mask ed ( event ) Ġ== ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMotion Event . ACTION _ DOWN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtouch Helper . start Drag ( binding . content RecyclerView . re cyclerView . getChild ViewHolder ( item View )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġitem Binding . pop Menu . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpopup Ġ= ĠPopup Menu ( this @ No vel Sections Activity , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . menu Inflater . inflate ( R . menu . menu _ popup _ no vel _ section , Ġpopup . menu ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . setOn MenuItem ClickListener Ġ{ Ġmenu Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ no vel _ section _ rename Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Rename ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ no vel _ section _ remove Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Remove ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpopup . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠitemView . set BackgroundColor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( position Ġ% Ġ 2 Ġ== Ġ 0 ) ĠContext Compat . getColor ( this , ĠR . color . black _ transparent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠContext Compat . getColor ( this , Ġandroid . R . color . transparent ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( item : ĠNo vel Section , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Do ĠNothing ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ no vel _ section , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== Ġandroid . R . id . home ) Ġfinish () ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( item . itemId Ġ== ĠR . id . action _ add _ no vel _ section ) Ġadd No vel Section () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Move ( source : ĠInt , Ġtarget : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter . on Item Move ( source , Ġtarget ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Dismiss ( view Holder Position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Item Remove ( view Holder Position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Notify DataSet Changed ") ĊĠĠĠ Ġprivate Ġfun Ġon Item Remove ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠMaterial Dialog ( this ). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( R . string . confirm _ remove ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ( R . string . confirm _ remove _ description _ no vel _ section ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button ( R . string . remove ) Ġ{ Ġdialog Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ No vel Sections Activity . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnovel Section Ġ= Ġadapter . items [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( no vel Section . id Ġ!= Ġ- 1 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper . getAll No vel s ( no vel Section . id ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper . update No vel Section Id ( it . id , Ġ- 1 L ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNo vel Sync . getInstance ( it )?. apply Async ( lifecycle Scope ) Ġ{ Ġsync Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Center . get Sync Add No vel s ( sync . host )) Ġsync . update No vel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper . delete No vel Section ( no vel Section . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . log Event ( FAC . Event . REMOVE _ NO VEL _ SECTION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam ( FAC . Param . NO VEL _ SECTION _ NAME , Ġnovel Section . name Ġ?: Ġ" N / A ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnegative Button ( R . string . cancel ) Ġ{ Ġdialog Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ No vel Sections Activity . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Item Rename ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnovel Section Ġ= Ġadapter . items [ position ] ĊĠĠĠĠĠĠĠ ĠMaterial Dialog ( this ). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( R . string . rename ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput ( hint Res Ġ= ĠR . string . no vel _ section _ name , Ġpref ill Ġ= Ġnovel Section . name ) Ġ{ Ġdialog , Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠnewName Ġ= Ġinput . trim (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Name . isNotBlank () Ġ&& Ġdb Helper . get No vel Section ( new Name ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper . update No vel Section Name ( no vel Section . id , ĠnewName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġold Name Ġ= Ġnovel Section . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNo vel Sync . getAll Instances (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Center . get Sync Add No vel s ( it . host )) Ġit . rename Section ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnovel Section , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠnewName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . log Event ( FAC . Event . RE NAME _ NO VEL _ SECTION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam ( FAC . Param . NO VEL _ SECTION _ NAME , ĠnewName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( this @ No vel Sections Activity ). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ( R . string . no vel _ section _ name _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner ( this @ No vel Sections Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button ( R . string . ok ay ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Owner ( this @ No vel Sections Activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd No vel Section () Ġ{ ĊĠĠĠĠĠĠĠ ĠMaterial Dialog ( this ). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle ( R . string . add _ no vel _ section _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ( R . string . add _ no vel _ section _ description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput ( hint Res Ġ= ĠR . string . no vel _ section _ name ) Ġ{ Ġdialog , Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġinput . trim (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name . isNotBlank () Ġ&& Ġdb Helper . get No vel Section ( name ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Helper . create No vel Section ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetData () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirebase Analytics . log Event ( FAC . Event . ADD _ NO VEL _ SECTION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparam ( FAC . Param . NO VEL _ SECTION _ NAME , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial Dialog ( this @ No vel Sections Activity ). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage ( R . string . no vel _ section _ name _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġupdate Order Ids () ĊĠĠĠ Ġ} Ċ Ċ } Ċ